ECS サービスの入口づくりにサヨナラ!Amazon ECS Gateway が誕生
みんな、しぃちゃんだよ!
AWS BlogECS のサービスを公開するたびに、ロードバランサーや証明書を整える作業、大変だよね。それを肩代わりしてくれる新機能が来たよ!
なにが発表されたの?
AWS Blog で、Amazon ECS Gateway が紹介されたよ。ECS 上のコンテナ化サービスの ingress ネットワークを扱う、アカウントレベルの新しいリソースなの。ロードバランサー、証明書、セキュリティグループなどの必要なインフラを代わりに用意・管理して、リソースはすべて自分のアカウント内に作られるよ。
今までどうだったの?
新しいサービスを作るたびに、プラットフォームチームが同じネットワーク設定を繰り返す必要があったの。ECS Gateway はこのサービスごとの作業をなくすのが狙いだよ。
これで何が変わるの?
役割ごとに、こう変わるよ。
- プラットフォームチーム: サブネット、セキュリティグループ、TLS 証明書、リスナー設定、WAF の web ACL といったネットワークの標準を、gateway で一か所に定義して、クラスターに関連付ける
- アプリケーションチーム: サービスの作成・更新時に gateway connector を追加するだけで参加できる。ネットワークの専門知識は要らない
深く潜ってみよう
接続したサービスごとに、ECS が次のものを作るよ。
- ACM 証明書
- 固有の DNS ホスト名
- リスナールール
- ターゲットグループ
- サービス用セキュリティグループ(ロードバランサーからの inbound のみ許可)
ホストベースのルーティングで、最大 25 サービスが 1 つの ALB を共有するよ。容量が埋まると ECS が ALB を追加して、不要になると削除するの。
デプロイのたびに、クラスターの gateway の関連付けを評価して、互換性のあるすべての gateway にサービスを接続するよ。互換性の条件は、アクセスタイプがコネクタのフィルターと合うこと、同じ VPC にあること、サービスの全 AZ をカバーしていることなの。
制限と要件はこれだよ。
- 1 つの gateway は最大 10,000 クラスターに関連付けられる
- 1 つのクラスターに関連付けられる gateway は最大 5 つ
maxAlbCountのデフォルトのクォータは 10 で、上限に達して空きがないとデプロイは失敗するawsvpcネットワークモードのサービスのみ対応(EC2、Fargate、ECS Managed Instances)- 名前、scheme、VPC、サブネット、IP アドレスタイプ、リスナーのプロトコルとポートは、作成後に変更できない
導入手順は 4 ステップだよ。
aws ecs create-gatewayなどで gateway を作る(この時点ではインフラは作られない)aws ecs associate-gateway-with-clusterでクラスターに関連付けるcreate-serviceかupdate-serviceで gateway connector を追加する- デプロイすると、ECS が ALB とサービスごとのリソースを用意し、route が
ACTIVEになる
既存サービスも UpdateService で connector を追加できて、古い設定と並行して動かしながら試せるよ。
料金は ECS Gateway 自体に追加料金なしで、ALB、CloudWatch、ACM 証明書、データ転送など、作られるインフラ分を支払うの。
まとめ
- ECS Gateway は、ECS サービスの ingress を自動で用意するアカウントレベルのリソース
- プラットフォームチームが標準を決め、アプリチームは connector を足すだけ
- 最大 25 サービスが 1 つの ALB を共有する
- 追加料金なし、基盤のインフラ分のみ課金
ECS で多くのサービスを運用しているプラットフォームチームのみんなに刺さる発表だよ!