AWS CloudFormationだけでECS環境を構築する
本章では、AWS CloudFormationを利用した、ECSの構築方法について共有します。
構成
例として、SpringアプリケーションをECS上に展開させます。以下のコンテナを用意します。
外部からの接続を想定して、SecurityGroupでアクセス権限を限定し、ロードバランサーで負荷分散も行います。
ソースコード
ソースコードのボリュームが多かったので、GitHubにアップしました。記事と照らし合わせて参照ください。
github.com
CloudFormationの実演
事前準備
ロールの作成
ECSの環境を構築、実行するために、必要な権限を保持したロール及びプロファイルを作成します。今回は、すでに定義されているポリシーを参照し、以下のロールを用意しました。
ロググループの作成
コンテナ内サービスの実行ログを監視するために、CloudWatch Logsを使用します。そして今回のECSでのログを束ねるグループとして、ロググループを作成します。
- AWS::Logs::LogGroup
- LogGroupName
- ロググループ名を指定
- RetentionInDays
- ログの保持期間を指定
- LogGroupName
ネットワークの作成
今回のECSで必要なインフラを配置する、ネットワークを構築します。
サービスディスカバリーの作成
コンテナ間での名前解決のために、Cloud Mapを利用します。Cloud Mapにより、コンテナのサービス名がRoute53に登録され、正引きが行なえます。
ECSの作成
Reverse ProxyサーバーやWEBサーバーを構築します。
筆休め
アプリケーションのポータビリティと再現性を担保するために、コンテナ技術を利用するケースがあります。AWSのインフラ構築もコマンド一つで展開できるよう準備しておくことで、フットワークの軽いサービスを提供できます。ぜひインフラ構成のコード化も試みてください。
以上、「CloudFormationだけでECS環境を構築する」でした。