ECS × VPC Lattice で blue/green・linear・canary デプロイがついに標準対応!
おつかれさま、しぃちゃんだよ!
AWS What's NewVPC Lattice でサービス間通信している ECS サービスで、トラフィックを段階的に切り替えるデプロイが使えるようになったよ!
なにが発表されたの?
AWS の What's New で、Amazon ECS が Amazon VPC Lattice を使う ECS サービス向けに、blue/green、linear、canary の各デプロイ戦略を組み込みでサポートしたと発表されたよ。
今までどうだったの?
元の発表には、これまでの手段の説明はないよ。VPC Lattice で VPC やアカウントをまたいでサービス間通信しているアプリが、今回は ECS からネイティブにマネージドなトラフィックシフトを使えるようになった、という内容なの。
これで何が変わるの?
リリースへの自信に合わせて、トラフィックを動かす速さを選べるよ。
- blue/green: 一度にすべて切り替える
- linear: 等しい増分で少しずつ切り替える
- canary: 最初は少量の割合だけ切り替える
さらに、本番トラフィックを動かす前に、テストトラフィックで新バージョンを検証できるよ。
深く潜ってみよう
検証と承認
デプロイライフサイクルフックで、独自の検証ステップや手動承認を入れられるよ。フックには Lambda と pause フックが含まれるの。
自動ロールバック
- Amazon CloudWatch アラームと ECS のデプロイサーキットブレーカーで、問題を検知したら自動でロールバックできる
- bake time を設けると、前のバージョンを待機させたままにでき、ダウンタイムなしですばやく戻せる
設定方法
ECS サービスの設定で、次の 3 つを選ぶよ。
- VPC Lattice のターゲットグループ
- リスナールール
- 希望のデプロイ戦略
AWS マネジメントコンソール、AWS CLI、AWS SDK、IaC ツールから設定できるよ。新規と既存の ECS サービスの両方で有効にでき、VPC Lattice が使えるすべての AWS リージョンで利用可能なの。
まとめ
- VPC Lattice を使う ECS サービスで、blue/green、linear、canary が組み込みで使える
- Lambda や pause のライフサイクルフックで、検証や手動承認を挟める
- CloudWatch アラームとサーキットブレーカーで自動ロールバックでき、bake time で素早く戻せる
- 新規・既存サービスの両方で、VPC Lattice の利用可能な全リージョンで使える
VPC Lattice 上でマイクロサービスを運用して、安全なリリースを仕組み化したいみんなに刺さるよ!