ある企業がElastic Beanstalkでデプロイ中の可用性を最大化したいと考えている。Rolling with additional batch(追加バッチでのローリング)デプロイポリシーを選択した場合の動作として正しいものはどれか。
- A. 既存インスタンスのバッチを順次更新するが、更新中はそのバッチのインスタンスがサービスから外れるため可用性が低下する
- B. 新しいAuto Scalingグループを作成して新バージョンをデプロイし、DNSを切り替える方式のためドメインの伝播時間が必要になる
- C. 既存インスタンスをすべて保持したまま同数の新インスタンスを起動し、すべての新インスタンスが健全になってから一括で切り替えるため、最も安全なデプロイ方法である
- D. 既存インスタンスを更新する前に追加インスタンスを起動して新バージョンをデプロイし、追加インスタンスが健全になってから既存インスタンスを順次更新するため、デプロイ中も常に元の台数以上のインスタンスが稼働する
解答と解説を見る
正解: D
Rolling with additional batchは、まず既存インスタンスと同じ台数ではなく1バッチ分の追加インスタンスを起動して新バージョンをデプロイする。この追加バッチが健全であることを確認してから既存インスタンスのローリング更新を開始する。これにより更新中も元の容量と同等またはそれ以上のインスタンスが常に稼働するため可用性を維持できる。追加で起動するインスタンスのコストがかかることがトレードオフである。Aは通常のRollingポリシーの説明であり、更新中のバッチ分だけ容量が減少する。Cはほぼimmutableポリシーの説明であり、完全な新インスタンスセットを作成するが、バッチ方式ではない。BはBlue/Greenデプロイの説明であり、追加バッチでのローリングとは異なる。