本番環境の Elastic Beanstalk 環境(Auto Scaling グループで複数インスタンスが稼働)に新しいアプリケーションバージョンをデプロイしたいと考えています。要件は次のとおりです。 - デプロイ中もすべての本番トラフィックを処理できること(キャパシティを維持すること) - デプロイに失敗した場合は最短時間でロールバックできること これらの要件を最もよく満たすデプロイポリシーはどれですか?
選択肢Cの Immutable(イミュータブル)デプロイは、既存とは別の新しい Auto Scaling グループに新バージョンのインスタンスを全台起動し、ヘルスチェック通過後にトラフィックを切り替えます。デプロイ中は新旧インスタンスが並存するためキャパシティが完全に維持されます。失敗時は新しい Auto Scaling グループを丸ごと削除するだけで即座にロールバックが完了します。 選択肢Aの Rolling は、既存インスタンスをバッチ単位で順番に更新するため、更新中はキャパシティが一時的に低下します。ロールバック時も古いバージョンを再デプロイする必要があり時間がかかります。 選択肢Bの Rolling with additional batch は、追加インスタンスを起動することでデプロイ中もキャパシティを維持できますが、ロールバック時は古いバージョンを再デプロイする必要があり時間がかかります。 選択肢Dの All at once は、全インスタンスを一括更新するため一時的なダウンタイムが発生し、デプロイ中はキャパシティが失われます。