メインコンテンツへ移動
SAA-C03Resilient Architectures難易度難しい

SAA-041

ピーク時に常時6台分の処理能力が必要なWebアプリケーションを、3つのアベイラビリティーゾーンへ均等に分散したAuto Scalingグループで運用します。1つのAZが完全に停止してもピーク時の処理能力を維持したい場合、最小台数として最も適した設定はどれですか?

選択肢

解説と正解

解説と正解を読む(先に自分で回答してから開くのがおすすめです)

正解:C. 9台(各AZに3台)

解説

3つのAZへ均等配置した場合、1つのAZを失うと全体の3分の1の台数が同時に失われます。残る3分の2でピーク時に必要な6台分を賄う必要があるため、6 ÷ (1 - 1/3) = 9台が必要です。各AZに3台ずつ配置すれば、1AZ喪失後も6台が残ります。

選択肢ごとの解説

A. 7台

7台は3で割り切れずAZごとの台数が不均等になり、最も台数の多いAZを失うと残りは5台以下となって要件を満たしません。

B. 12台(各AZに4台)

要件自体は満たしますが、1AZ喪失後も8台が残る過剰な構成です。常時4台分の余剰コストが発生するため、最小台数としては適切ではありません。

C. 9台(各AZに3台)

正解です。1AZ喪失後も6台が残り、ピーク時の処理能力を維持できます。

D. 6台(各AZに2台)

各AZに2台で合計6台の場合、1つのAZを失うと4台になり、ピーク時に必要な6台分を下回ります。

実務での使いどころ

「マルチ AZ にしてある」だけでは AZ 障害に耐えられない。EC2 Auto Scaling グループは指定した複数のサブネット(= AZ)へインスタンスを均等に配置しようとするが、AZ が 1 つ落ちればその AZ 上のインスタンスは同時に失われる。したがって、AZ 障害後も必要な処理能力を維持するには、あらかじめ「失われる分」を織り込んだ台数を確保しておく静的安定性(static stability)の考え方が必要になる。必要能力を N、AZ 数を Z とすると、1 AZ の喪失に耐えるための総台数は N ÷ (1 - 1/Z) を切り上げた値になる。2 AZ なら N の 2 倍、3 AZ なら 1.5 倍、4 AZ なら約 1.34 倍で、AZ 数を増やすほど必要な余剰率は下がる。 ここで「AZ が落ちたら Auto Scaling が残りの AZ で自動的に補充するから余剰は不要では」という反論があるが、実際には補充にはインスタンスの起動・初期化・ヘルスチェック通過までの時間がかかり、さらに AZ 障害時は同じリージョンの他利用者も一斉に容量を要求するため、必要なキャパシティを即座に確保できるとは限らない。障害の瞬間に必要な能力を「すでに動いている状態」で持っておく、というのが静的安定性の要点である。関連する設定として、Auto Scaling グループのヘルスチェックタイプを EC2 だけでなく ELB にしておくと、プロセス異常でアプリが応答しないインスタンスも置き換え対象になる。 SAA-C03 では「1 つの AZ が停止しても性能を維持したい」という条件付きで最小台数や desired capacity を選ばせる計算問題として出題される。3 AZ 構成なら必要能力の 1.5 倍、2 AZ 構成なら 2 倍、という比率を押さえておくと即答できる。過剰な台数を選ぶ選択肢はコスト最適化の観点で誤答となるため、「要件を満たす最小の構成」を選ぶという読み方が重要になる。

関連リンク

関連サービス

関連用語