ある企業がElastic Beanstalkで運用するWebアプリケーションの新バージョンをデプロイしようとしている。本番環境の可用性を維持しながら、新バージョンに問題があった場合に素早く旧バージョンに戻せるようにしたい。さらに、デプロイ後に新旧両バージョンを並行稼働させてA/Bテストも行いたい。この要件を最も満たすデプロイポリシーはどれか。
- A. Rolling(ローリング):既存インスタンスを順次更新してローリングデプロイする
- B. Immutable(イミュータブル):新インスタンスを起動して新バージョンをデプロイ後、ヘルスチェック通過後に切り替える
- C. Blue/Green(ブルーグリーン):新環境を別途作成してDNSを切り替え、古い環境をしばらく保持する
- D. Rolling with additional batch:追加バッチで可用性を維持しながらローリングする
解答と解説を見る
正解: C
Elastic BeanstalkのBlue/Greenデプロイは、現在の本番環境(Blue)とは完全に独立した新環境(Green)を作成し、新バージョンをGreenに展開してテスト後、Route 53またはCNAMEスワップでトラフィックを切り替える方法である。旧環境(Blue)はそのまま保持されるため、問題発生時は即座にBlueへ戻せる。また、両環境が同時に稼働しているためA/Bテストも可能である。Aのローリングは既存インスタンスを更新するためロールバックに時間がかかる。Bのイミュータブルは新インスタンスを作成して切り替えるが、旧環境全体を保持しないため長期のA/Bテストには不向きである。Dの追加バッチはローリングの一種であり、旧バージョンの完全な保持とA/Bテストには対応していない。