ECSでコンテナの実行

ECS でコンテナを動作させる前に ECS で使われる基本的な用語を確認します。

既に登場したクラスタ以外に Task Definition (タスク定義)Service (サービス) という概念が新たに出てきます。
タスク定義には 1 つ以上のコンテナの設定等が記述してあり、これ参照して タスク(コンテナ群) が実行できます。
このタスクを長時間・複数個起動する場合には サービス を設定します。

今回は、タスク定義として Rails のコンテナを設定し、サービスとして 2 つのタスクを実行するようにします。

タスク定義の作成

まずはタスク定義から設定します。マネージドコンソールで ECS を開きます。

ネットワークモードに関してはこちらのドキュメントをご参考下さい。 https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode

ECR の画面でコピーしておいた イメージの URI を貼り付ける

更にもう1つコンテナを追加することで、1つのタスク内で2つのコンテナを動かすことも可能です。


サービスの作成(1) : タスクの設定

タスク定義の作成が完了しました。早速、このタスクを使ってサービスを作成してみます。

タスク定義から直接タスクを実行することもできます。

編集を押して、default と書かれたセキュリティーグループを選択します。
(注)ヘルスチェックの猶予期間は、その後の手順でLoad BalancerとしてALB(Application Load Balancer)を選択すると入力できるようになります。

セキュリティーグループが default になっていることを再確認して下さい。


サービスの作成(2) : Load Balancer の設定

ECS は ELB と連携させてタスクを実行させることができます。既に作成してある ALB を指定して設定します。

リスナーが 80番、コンテナが3000番というのは、Cloud9 で実行したパラメータと同様です。

ついにオーケストレーションツールを用いてコンテナを EC2 上で動作させることができました。
最後に、このコンテナの動作を確認していきます。