動作確認

いよいよ、コンテナアプリケーションにアクセスをしてみます。まずは動作確認のため EC2 コンソールから ALB のターゲットグループを確認します。

※ 図では2つのターゲットが稼働していますが、この段階では1つのターゲットのみが稼働しているのが正しいです。

ステータスが healthy になっていることを確認したら、メモしておいた ALB の DNS をブラウザからアクセスしてみます。 (httpsではなく、 http でアクセスします。)

ALB のエンドポイントは EC2 コンソールのロードバランサーから確認が可能です。

無事に Rails の画面が表示されると完成です。おめでとうございます!


ECSによるコンテナのスケーラビリティを確認

ここまでは、Cloud9 上でコンテナを実行した場合と違いをあまり感じられていないかもしれません。
では、早速 ECS によるコンテナのスケーリング機能を体験してみます。まずは、コンテナの数を倍に増やしてみます。

コンテナを簡単に増やすことができました。逆に、タスクを停止させた場合どうなるでしょうか。次の手順を試してみて下さい。

しばらく待つと、無事にコンテナのタスクが 2 つ追加され、元の状態に戻ることが確認できます。

同じ仕組みを自分で実装も可能ですが、ECS を用いると余分な開発をせずに 運用負荷を軽減 できることが実感できます。
次のハンズオンでは、運用負荷を更に軽減させる Fargate というサーバーレスのサービスを試してみます。

Question: タスクを 3 つ以上に増やしてみるとどうなるでしょうか?時間に余裕がある方は試してみて下さい。

Answer:
いくらサービスを増やしても、現在の設定ではタスクが最大 2 つまでしか実行できないことがわかります。
これは、ホストマシンの t3インスタンス にネットワークインターフェイスが 3 つまでしか追加できないからです。 https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-eni.html

更に時間に余裕のある方は、インスタンスの数を増やすことでコンテナを更にスケールさせてみましょう。
ヒント:EC2 コンソールから Auto Scaling の希望するインスタンス数を設定。