無限ノック › SOA 練習問題一覧 › 問題
SOAデプロイ、プロビジョニング、および自動化

ある企業は Elastic Beanstalk のロードバランサー環境で Web アプリケーションを運用しています。新バージョンのデプロイ中にダウンタイムをゼロにしたい、かつ問題が発生した場合は数分以内にロールバックできるようにしたいと考えています。デプロイ中の追加コストは許容できます。Elastic Beanstalk のデプロイポリシーとして最も適切なものはどれですか?

A
All at once(一括):全インスタンスを同時に更新する
全インスタンスを同時に新バージョンへ更新するため、デプロイ中に一時的なサービス停止(ダウンタイム)が発生します。最も高速なデプロイ方法ですが、ゼロダウンタイムという要件を満たせず、障害発生時の影響範囲も最大になります。
B
Rolling(ローリング):バッチ単位でインスタンスを順次更新する
バッチ単位で順次更新するためダウンタイムは回避できますが、問題発生時には逆方向の Rolling デプロイが別途必要となります。数分以内という迅速なロールバック要件を満たしにくく、ロールバック速度の条件を満たせません。
C
Rolling with additional batch(追加バッチ付きローリング):既存キャパシティを維持しながら追加バッチで順次更新する
追加バッチを起動して既存キャパシティを維持しながら順次更新するためダウンタイムは発生しません。しかしロールバック時に別途デプロイが必要な点は Rolling と同様で、数分以内という迅速なロールバック要件を満たせません。
D
Immutable(イミュータブル):全く新しいインスタンスグループを並行起動し、ヘルスチェック通過後に既存インスタンスを置き換える
✓ 正解
全く新しい Auto Scaling グループに新バージョンのインスタンスを並行起動し、ヘルスチェック通過後に既存インスタンスと入れ替えます。問題発生時は新グループを即時終了するだけでロールバックでき、ダウンタイムゼロと迅速なロールバックを両立します。

解説

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

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SOA の問題一覧に戻る