Amazon ECSでnginxコンテナを立ち上げてみた

saitotakahiroPosted by

こんにちは!サーバーサイドエンジニアの斎藤です。
業務でECSを使うことになりましたので、自分でECSを使ってnginxコンテナを立ち上げてみました。

Amazon ECSとは

Amazon Elastic Container Service (Amazon ECS) は、Docker コンテナをサポートする拡張性とパフォーマンスに優れたコンテナオーケストレーションサービスです。

https://aws.amazon.com/jp/ecs/

簡単に言うと実用的なコンテナ環境を手軽に作成できるサービスです。

実践

「クラスターの作成」でも作成できますが、今回は初めてということで「今すぐ始める」から開始してみます。

ステップ1:コンテナとタスク

ECSの起動タイプについてはFargateとEC2の2種類ありますが、チュートリアルでは自動的にFargateとなっています。
EC2はEC2インスタンス毎に起動で、Fargateはコンテナ毎に起動となりますので、ECSで使用する場合は余程のことがない限りFargateで問題ないでしょう。

まずはコンテナの定義。今回はnginxを選択します。

詳細について変更したい場合は右上の編集より変更でき、メモリやcpuだけでなく、ヘルスチェックの設定やストレージとログ、ネットワークの設定など細かく簡単に設定できるのが大変便利です。

ステップ2:サービス

次にサービス設定。いわゆるネットワーク設定のことでロードバランサーの設定ができます。
今回はnginxコンテナを立ち上げるだけなので、ロードバランサーもなしにしておきます。

ステップ3:クラスター

最後はクラスター設定。
とはいえ特に設定するものはないのでそのままdefaultにしておきます。

ステップ4:確認

改めて内容を確認して問題なければ「作成」します。

下記のような感じで保留中が完了になっていきます。
最大10分かかるとありますが、今回は簡単な構成なので1分くらいで完了しました。

確認

作成が終わると下記のようにタスクが1つとserviceが1つ起動していることが分かります。

では、nginxコンテナを確認してみましょう。
タスクを選択し詳細を見ると、Network > Public IP を確認できるので実際にアクセスしてみます。

こんな風にnginxが立ち上がっているのを確認しました。

実際にログを見るときちんとアクセスできることも確認できます。

後片付け

今回の目的を達成したのでクラスターを削除します。
なぜかここだけもろに英文でビックリw

最後に

こんな風に10分あれば簡単に本格的なコンテナ環境を構築できるので、Amazon ECSを試してみてはいかがでしょうか。