全く新しい Auto Scaling グループに新バージョンのインスタンスを並行起動し、ヘルスチェック通過後に既存インスタンスと入れ替えます。問題発生時は新グループを即時終了するだけでロールバックでき、ダウンタイムゼロと迅速なロールバックを両立します。
解説
Immutable デプロイは新しい Auto Scaling グループに全く新しいインスタンスを並行起動し、ヘルスチェック通過後に既存インスタンスと置き換えます。デプロイ中も既存インスタンスがトラフィックを処理するためダウンタイムはゼロです。問題発生時は新インスタンスグループを終了するだけで即座にロールバック可能で、追加コストが許容できる要件に最も適したポリシーです。
選択肢Aの All at once は全インスタンスを同時に新バージョンへ更新するため、デプロイ中に一時的なサービス停止(ダウンタイム)が発生します。ゼロダウンタイムの要件を満たしません。
選択肢Bの Rolling はバッチ単位で順次更新するためダウンタイムを回避できますが、問題発生時には逆方向の Rolling デプロイが別途必要となり、数分以内のロールバック要件を満たしにくい場合があります。
選択肢Cの Rolling with additional batch は既存キャパシティを維持しながら追加バッチで順次更新するためダウンタイムは発生しません。しかしロールバック時に別途デプロイが必要な点は Rolling と同様であるため、迅速なロールバックには適しません。