無限ノック › SOA 練習問題一覧 › 問題
SOA信頼性とビジネス継続性

あるWebアプリケーションはEC2 Auto Scalingグループ(ALB配下)で稼働しています。各インスタンスはカスタムAMIからの起動後、大量のライブラリ展開とキャッシュのウォームアップに約10分を要します。日中に予測不能な突発的トラフィックスパイクが発生すると、スケールアウトしたインスタンスがすぐにトラフィックを処理できず、数分間503エラーが発生します。追加コストを最小限に抑えつつ、スパイク時のスケールアウトを高速化する方法はどれですか。

A
Auto Scalingグループにウォームプールを構成し、あらかじめ初期化を済ませた停止状態のインスタンスをプールに保持しておき、スケールアウト時に即座に起動して投入する
✓ 正解
ウォームプールは初期化済みインスタンスを停止状態で保持し、スケールアウト時に起動するだけで投入できるためブートストラップ遅延を回避でき、停止インスタンスはストレージ料金のみで低コストという要件に最も合致する。
B
Auto Scalingグループの最小キャパシティを想定される日中ピークの台数まで恒常的に引き上げ、常に十分な数のインスタンスを起動状態で待機させておく
最小キャパシティをピーク台数まで引き上げれば即応できるが、常時多数のインスタンスを起動状態で維持することになり実行時間課金が大きく増加し、追加コスト最小化の要件に反する。
C
予測スケーリングポリシーを追加し、機械学習モデルが過去の履歴から将来の負荷を予測して、需要が高まる前に事前にインスタンス数を増やしておく
予測スケーリングは過去の履歴に基づく周期的・規則的な負荷変動には有効だが、履歴から予測できない突発的で予測不能なスパイクには対応できず、この要件には適さない。
D
スケーリングポリシーのクールダウン期間とヘルスチェックの猶予期間を短縮して、連続したスケールアウトアクションがより高速に実行されるようにする
クールダウンや猶予期間を短縮してもスケーリングアクションの発火間隔が縮まるだけで、各インスタンスの初期化に要する約10分のブートストラップ時間そのものは短縮できず遅延は残る。

解説

Auto Scalingのウォームプールは、初期化(AMI展開・キャッシュウォームアップ等)を済ませたインスタンスを停止(Stopped)状態でプールに保持しておく機能です。スケールアウト時にはこの初期化済みインスタンスを起動するだけでよいため、ブートストラップに時間がかかるアプリでもスケールアウトのレイテンシを大幅に短縮できます。停止状態のインスタンスにはEBS等のストレージ料金のみが発生し、実行中インスタンスを余分に持つよりコストを抑えられます。 選択肢Bの最小キャパシティ引き上げは即応性は得られますが、常時稼働インスタンスが増えるためコストが大きく増加します。 選択肢Cの予測スケーリングは規則的・周期的な負荷には有効ですが、予測不能な突発スパイクには対応できません。 選択肢Dのクールダウンや猶予期間の短縮は、インスタンス自体のブートストラップに要する10分を短縮できないため、根本的な遅延は解消しません。

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

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

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