ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

AWS ECSのserviceにアクセスする方法

こんにちは、プロダクトエンジニアリング部のちょうです。天気もすっかり春になった気分ですね。気温がさむくなったり暖かくなったりするので体調管理を十分気をつけましょう。

さて、コンテナ技術の流行りとともに、AWS ECSなどを利用して機能を提供するサービスが増えたと思います。ただ、EC2インスタンスからECS serviceに変わる際に、実際インフラレベルの内容が複雑になることが多く、いままでできたことをどうやってECSで実現できるかを調べないといけないです。その一つはサーバーに入って、調査したり、作業したりすることです。

ECSにはEC2とFargate二種類があります。EC2は名前通りEC2インスタンスです。既存のEC2インスタンスを再利用できます。特にSpot instanceなどです。Fargateはまったくインスタンスを管理しなくてもいいタイプです。EC2タイプはインスタンスがあるので、そのインスタンスに入って、ローカルと同じようにdockerのコマンドを使えば実行中のECS serviceにアクセスできます。Fargateになると、インスタンスがないので、簡単で入ることができません。

先月AWSからECS serviceにdocker execを実行できるニュースがあります。

Amazon ECS で、Amazon EC2 または AWS Fargate で実行されているコンテナでのコマンドの実行が可能に

いろいろ設定を変えれば、Fargateでも入れるようになります。先日弊社のブログにも書きました。

Amazon ECS Execを使ってrails consoleを動かしてみる - ユニファ開発者ブログ

でも、よく考えると、実行中のECS serviceに、docker execで入って、調査はまだいいですが、作業はやめたほうがいいかもしれません。実行中のサービスに影響があります。それと、Fargateを使ってインスタンスを管理しなくてもいい反面、ディスクのサイズは固定、プログラムが終わると消えるデメリットがあります。正直本番作業に向いていないです。いろいろ設定して、作業用に変えるより、素直にEC2タイプを使いましょう。

続きを読む

決め方の数理 1:検討の数理

UniFa プロダクトデベロップメント本部 副本部長の西川です、こんにちは。

仕事柄、意思決定に携わることが多いです。
意思決定はその結果がより良い未来につながっていることもあれば、より好ましくない未来につながっていることもあります。
当然、未来に大した影響を与えないような意思決定もあります。

先に意思決定の結果が知れるような魔法の杖でもあればステッキなのですが、残念ながら2021年現在、どのECサイトを覗いてもそんなものは売ってないようです。

では、私たちは何を基準として意思決定を行っていけば良いのでしょうか。
この記事から数回に分けて不定期更新する(心意気の)「決め方の数理」というシリーズは、この問いへの、現時点での私なりの見解をまとめてみようという試みです。
第1回のこの記事、”検討の数理”では、「調査や議論に代表されるような検討には、果たしてどれくらいコストを投じるのが適切なのか」をテーマに語ってみたいと思います。

続きを読む

Amazon ECS Execを使ってrails consoleを動かしてみる

人生初の某春のパン祭りに参加中のWebエンジニアの本間です。早くゴールしてご飯に戻りたい...。

さて、弊社のRailsアプリケーションの多くは、Amazon ECS + AWS Fargateの組み合わせで稼働しています。 過去はEC2上で動かしていたのですが、ECS + Fargateに移行したことで様々なメリットがありました。

しかし、ECS + Fargateに移行したことでデメリットもあります。 EC2でRailsを動かしていた時代では、作業用のEC2にsshで接続し、そこでrails consoleを動かして作業、ということが簡単にできていました。 ECS + Fargateに移行してからはこの方法が使えなくなってしまったため、データ修復やジョブリトライの作業を行うのが難しくなりました。 DBに直接接続したり、ECSのRun taskを使ったり、SREチームに特別な環境を用意してもらったりとだましだましやってきたのですが、この部分はEC2自体の方がやりやすかったと思っています。

そのような中、先日 Amazon ECS Exec が発表されました。 詳細は割愛しますが、ECS Execを使うことで 稼働中のDockerコンテナに接続してコマンドを実行する ことができるようになります。 (詳細は クラスメソッドさんの解説記事 が詳しいです)

この機能のリリースを聞いたとき「EC2時代と同じ感覚でrails consoleが使えるのではないか?」という期待が頭に浮かびました。 今回はこれができるかどうか確認するため、ECS Execを有効にした作業用のDockerコンテナを立ち上げて接続し、rails consoleを動かしてみようと思います。

続きを読む

WordCloudによるツイートの可視化

こんにちは、データエンジニアリングチームの宮崎です。 最近、趣味で言語処理について取り組みたくて、Twitter APIの利用に必要なTwitterの開発者アカウントを取得しました。 APIから取得した情報はブラウザで見るのとはまた見え方が違ってきて、分析すると色々面白そうな感じがします。

そこで、今回はWordCloudという、単語を出現頻度にしたがって大きく表示する手法を用いて、ツイートを可視化してみたいと思います。

続きを読む

改めて1on1について考える

こんにちは。年明け早々からConfluenceに蓄積されているデータを一部吹き飛ばしてしまい、すでに年末の本番環境でやらかしちゃった人 Advent Calendarへのエントリーが決まっている浅野です。そちらの顛末は喪が明けたら(=復旧と原因究明が終わり再発防止のアクションが軌道に乗ったら)改めてこのブログでもまとめるかもしれません。。。

簡単なようで掴みきれない1on1

さて、今回のテーマは1on1です。ユニファの開発チームはほとんどのメンバーが上司との1on1を毎週実施しています。私自身もメンバーとして上司として前職も含めて数多く参加してきましたが、まだ1on1の本質を掴んだという感覚は持てていません。特に上司として1on1をチームマネジメントにより有効活用していきたいという思いが強いです。最近は書籍やWebなど参考資料が増えてきた印象があり、「傾聴」「心理的安全性」「コーチング」といったキーワードや、「進捗確認だけで終わらない」「先に自分の意見を言わない」「褒める/感謝を伝える」など戦術面でのアドバイスにも多く触れることができます。それでも、「1対1で話す」以外に明確な定義がない上にクローズドな状況で行われるため客観的なフィードバックが働きづらく、結局手探りで自分なりのやり方を模索している方も多いのではないでしょうか。こうしたもやもやを抱えたなかで、昨年行われた1on1カンファレンスのセッションをいくつか視聴する機会に恵まれました。

続きを読む

神様がいれば「ふりかえり」はいらない。

f:id:unifa_tech:20210228125750p:plain こんにちは、プロダクトマネージャーの田嶋です。

今回のテーマは、もしかして"沼"とはこのこと..?と最近感じている「ふりかえり」について、まだ始めていない皆さんが一歩目を踏み出せることを目指して記事を書きます!

ただ一言に「ふりかえり」と言っても様々なものがあるので、今回指す「ふりかえり」をはじめに定義します。 f:id:unifa_tech:20210228123456p:plain

続きを読む

Slack じゃんけん、じゃんけんぽんっ!

みなさんこんにちは。サーバーサイドエンジニアの柿本です。

新型コロナの影響でリモートワークをしている人が増えていると思いますが、みなさんはリモートワーク中に誰かとじゃんけんをする時はどうしていますか?

① Zoom ごしにする
 => 「あっ、ネットの調子が!!」とか言いながら後出しする人いますね?

② チャットで同時に「グー」「チョキ」「パー」とポストする
 => 後出しのオンパレードになりますね。というか誰も先に出しません。

③ WEB ツールを使う
 => じゃんけん丸 さんが便利です。

④ そもそも仕事中にじゃんけんしない
 => え、しないんですか?

Slack が仕事場と化した今、オフィスでじゃんけんをするように Slack でじゃんけんできたら便利ですよね?

ということで「じゃんけんボット」を作ることにしました!!

続きを読む