Docker HubにイメージをPushしてみる - 焼売飯店の続きです。
かなりアッサリ出来ました。
手順
1.AWSコンソールからECSを選択
これら2つをガイド付きで実行できるようになっています。
ただし、今回はこのどちらも使わない(ECR使わないし、サンプルアプリも不要なので)ので、キャンセルを押して次に進みます。
2.タスクの登録
ECSでイメージを実行するには、タスクの登録が必要になります。 実行するイメージを登録(複数可)したり、リンクさせたりなどの設定をこちらで行います。 Docker Composeで言うdocker-compose.ymlみたいな物だと考えるとわかりやすい気がします。 こちらでは、コンテナのメモリ、CPU数も設定できます。
イメージには、前回Docker HubにPushしたsyumai/sinatra-alpine:0.1.0を指定しています。 シンプルなSinatraアプリなので、メモリ128MB、CPU数1で登録しました。
3.クラスターの作成
タスクを実行するためのクラスターを作ります。 こちらは、コンテナを実行するインスタンスの数、種類、スケーリング方法などについて設定を行います。 試験的にデプロイしたいだけなので、インスタンス数1のt2.microで作りました。
セキュリティグループに関しては、インバウンドで80番を受け付けるように設定します。
4.タスクの実行
こちらのクラスタで、先ほど作ったsinatra-alpineのタスクを実行してみます。 クラスタの作成と同時にコンテナ実行用のEC2が一つ立ち上がるのですが、2,3分ほどかかるので、少し待ってから実行する必要があります。
こちらも、あっさり動きました!
まとめ
実行するだけなら本当に簡単に出来てしまいました。 本番環境で使うとなると、今回タスクの実行で起動したものをサービス(今回は使いませんでした)で起動するようにしたり、複数コンテナを連携させたり、ELB(ロードバランサ)を追加してスケーリングに対応できるようにしたりする事になるかと思います。 この辺りは追い追いやっていこうかと思います。