[新機能]AWS OpsWorksでECSコンテナインスタンスを管理出来るようになりました!

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

今日発表の新機能はこちら!

AWS OpsWorksからAmazon EC2 Container Serviceのコンテナインスタンスを管理出来るようになりました。これまでOpsWorks上でDockerコンテナを動かすことは出来ましたが、ECSとは連携していませんでした。今回の新機能により、ECSがOpsWorksのLayerとして管理操作出来るようになります。

ということは、Layerの切り替えを使ったBlue Green DeploymentにECSが使えちゃうわけですね。Blue環境が本番稼動しているときに、 Green環境でECSのタスクを入れ替えて最新のアプリケーションコンテナを実行、テストし、問題なければGreenを本番環境にする、というようなイメージです。

早速やってみました!

やってみた

まず、ECSのCLusterを作っておきます。今回は「app」という名前にしました。この段階ではコンテナクラスタは0台です。

Amazon_EC2_Container_Service

AWS管理コンソールのOpsWroks画面で、[Add Your First Stack]ボタンをクリックします。

First_Run_–_AWS_OpsWorks

[Add Stack]画面が表示されます。名前を適当に決めます。その他パラメータを設定し、[Add Stack]ボタンをクリックします。なお、ここの[Default Operating System]でRedHat Enterprise Linux7が選べるようになったのが、今回のもう1つの新機能です。

Add_Stack_–_AWS_OpsWorks

Stackが出来上がりましたので、[Add a layer]からレイヤーを作成します。

Stack_-_ecs_–_AWS_OpsWorks

[Add Layer]画面が表示されます。[Layer type]で[ECS Cluster Layer]を選択します。[ECS Cluster]でコンテナインスタンスを作りたいECSクラスタを指定します。設定後[Add Layer]ボタンをクリックします。

Add_Layer_-_ecs_–_AWS_OpsWorks

Layerが出来上がりました。この状態だとまだコンテナインスタンスは無いので、[Add Instance]をクリックします。

Layers_-_ecs_–_AWS_OpsWorks

[Instances]画面の[New]タブで、作りたいコンテナインスタンスの情報を設定し、[Add Instance]ボタンをクリックします。

Instances_-_ecs_–_AWS_OpsWorks

コンテナインスタンスが出来上がりました。

Instances_-_ecs_–_AWS_OpsWorks 2

同じようにコンテナインスタンスを追加し、2台にしました。この状態だとコンテナインスタンスは停止中なので、[Start All Instances]ボタンをクリックします。

Instances_-_ecs_–_AWS_OpsWorks 3

しばらく待つと、2台のコンテナインスタンスがどちらも[online]になります。

Instances_-_ecs_–_AWS_OpsWorks 4

ECS管理画面でも、クラスタ「app」にコンテナインスタンスが2台追加されていることがわかります!

Amazon_EC2_Container_Service 2

さいごに

使い慣れているOpsWorksの考え方やインターフェースをそのまま使いつつ、フロントをECS化してコンテナ環境を一括管理出来る、というのはとても便利だと思います。今後さらにOpsWorksの活用が増えるかもしれませんね!