Amazon ECSサービスの新しいDAEMONタイプでSidecarアプローチを実装する

インサイトウォッチ

ども、大瀧です。 AWSのDockerコンテナ管理サービスAmazon ECSの管理画面を眺めていたら、ECSサービスの設定画面にサービスタイプという項目が追加されていました。本記事ではサービスタイプとして新たに追加されたDAEMONタイプをご紹介します。

ECSサービスとDAEMONタイプ

ECSではDockerコンテナの実行数や配置を管理するECSサービスという機能があり、従来はDockerを実行するホスト(ECSインスタンス)の配置ルールをある程度決める一方で、1ホスト1コンテナと配置するいわゆるSidecarアプローチの仕組みがありませんでした。今回追加されたDAEMONタイプは、ホストの増減に合わせて1ホスト1コンテナを実行する新しいECSサービスの設定です。なお、DAEMONタイプの追加に伴い、従来のルールベースのECSサービスはREPLICAタイプと分類されるようになりました。

設定方法と動作確認

  • 動作確認環境 : AWS東京リージョン

ECSサービスのサービスタイプは、サービスの作成時に「Service Type」で選択します。DAEMONを選択し、サービスを作成します。

クラスタのECSインスタンス数は2なので、自動でサービスの必要タスク数が2になり、タスク(Dockerコンテナ)が2つ実行されました。きちんと動作していますね。

ちょっと意地悪してみましょう。実行中のタスクの1つを停止してしばらく待つと。。。

保留中の数が1になり、新しいコンテナが補充されました。

さらにクラスタのECSインスタンスを2→3台に増やしてみます。

しばらくすると。。。

必要数と実行中の数が3に増え、やはりコンテナが補充されました!

まとめ

Amazon ECSサービスの新しいDAEMONタイプでSidecarアプローチを実装してみました。ECSの運用ではログ転送などSidecarアプローチの出番が多いと思いますので、DAEMONタイプをどんどん活用していきましょう!

新メンバーズ