この記事は PMOB Advent Calendar 18日目の記事です.
前回は,『Docker/Kubernetes 実践コンテナ開発入門』の4章をコンソールからECSクラスタを構築し,その上でアプリケーションを動かすまでをやった.
『Docker/Kubernetes 実践コンテナ開発入門』のサンプルアプリケーションをECSに載せる - Re:cohalz
今回はそれをAWS CDKを使って,デプロイしてみた.
作成したリポジトリをサンプル用に公開したのが以下.
気をつけたところなど
細かいところはリポジトリを見てもらうとして,気をつけたところや工夫したところをまとめる.
まず,DBは試行錯誤の途中で作り直されるのが面倒だったので,RDSに変更した.
ロググループがデフォルトで削除保護がかかっており,作り直しでエラーになるため,retainLogGroup: false
を追加した.
サービスディスカバリの追加を関数化して扱いやすくした.サービスも削除保護が掛かっているのでそれを外した.
Dockerボリュームを使うにはプロパティを上書きする必要があったのでそれをやった.
ALBは初めにaddContainerしたコンテナを負荷分散用コンテナとして扱う動作をするようなのでnginxを先に追加した.
終わりに
AWS CDKはまだ開発者プレビューという状態で,気を付けることがあったり破壊的変更もよく出る感じだけれど,こういったECSクラスタなどをさっと作るには便利だと思った.
この構成と同じものををCloudFormationで作成しようと思ったら1200行ほど書かないといけないので非常に楽になる.(その分何が作られるのかしっかり把握しないといけないけれど)