はじめに
ECSでは現在Expressモードが話題の中心と言っても過言ではないほどですが、ECSではデプロイ戦略というものを設定することができます。
なお、Expressモードについては先日投稿しました記事がありますので参考にしてください。
デプロイ戦略
ECSでは現在、ローリングアップデート、Blue/Green、Canary、リニアの4種類に対応しています。
ローリングアップデート
これは、タスクをひとつずつ置き換え、以前のバージョンから新しいバージョンに置き換えるものです。
セットアップがより簡単ですが、デプロイプロセスおよびトラフィックルーティングの制御性は低下します。
Blue/Green
既存のバージョン(ブルー)とともに、Amazon ECSはサービスの新しいバージョン(グリーン) を作成します。
デプロイプロセスを詳細に制御できます (トラフィックの移行、テスト、ロールバック機能など)。
→ロールバックはやりやすい
2025年7月のアップデートにより、ECSネイティブな方法によりBlue/Greenデプロイを設定できるようになりました。
(それまではCodeDeploy等を併用する必要があった)
Canary
Canaryデプロイには、Canaryパーセントと、Canaryベイクタイムが存在します。
最初にCanaryパーセント分だけ、新しいバージョン側にトラフィックを流します。
Canaryベイクタイム分待機した後、残りのトラフィックも切り替えます。
ECSでは2025年10月のアップデートでビルトインとして組み込まれた設定となっています。
リニア(線型)
線型デプロイと表現されることもあります。
仕組みとしては、現在のサービスリビジョンから新しいリビジョンへ、指定した期間内に一定の割合で段階的にトラフィックを切り替えられます。
各ステップでどの程度トラフィックを切り替えるかを制御するために、ステップの割合 (例: 10%)を設定します。
また、切り替えの間にモニタリングや検証を行うための待機時間 (ステップベイク時間) も設定します。
これにより、本番トラフィックを徐々に増やしながら新しいアプリケーションバージョンを複数段階で検証できます。
これもECSでは2025年10月のアップデートでCanaryと同じくビルトインとして組み込まれた設定となっています。
その他
今まではデプロイ戦略を考えるときに、
ALBの使用
Route53の使用
ElasticBeanstalkの使用
CodeDeployの使用
が考えられていましたが、2025年10月までのアップデートにより、ECSネイティブで前述のデプロイ戦略を設定できるようになりました。
Expressモードの場合
このモードではCanaryが強制となり、他のデプロイ戦略に変更することはできません。
その仕組みも
Canaryパーセント→5%
Canaryベイクタイム→95%
が固定となっており、5%分を流して大丈夫なら残りの95%も流してしまうといったものです。
他のデプロイ戦略を選択したいときは、標準のECSで設定していく必要があります。
終わりに
ECSとデプロイ戦略について書いてきましたが、どんどん便利になっていますね。
それでもトレードオフの関係なのか、ExpressモードではCanaryのみ選択可能となっており、「惜しいな」というのが正直な感想です。
(ここについてもre:Inventに期待)
