AWS SAAのサンプル問題(本番形式・解説付き)
AWS SAA(Amazon Web Services・AWS Certified Solutions Architect – Associate(SAA-C03))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録ですぐ解ける模試 第1回(65問)の冒頭から抜粋したオリジナル問題です。当サイトは全388問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。
設問1
ある企業が、ステートレスなバッチ処理を多数のEC2インスタンスで並列実行している。処理は途中で中断・再開しても問題なく、完了まで数十分かかる。コストを最小化したい。最も適したインスタンスの購入オプションはどれか。
- オンデマンドインスタンス
- 1年間の Savings Plans を購入したオンデマンド
- スポットインスタンス(正解)
- ハードウェア専有の Dedicated Hosts
解説
中断耐性があり再開可能なワークロードは、最大90%割引のスポットインスタンスが最もコスト効率に優れます。中断されても再実行できるため要件に合致します。常時起動の定常負荷なら Savings Plans/リザーブドが向きますが、ここでは中断可なのでスポットが最適です。
他の選択肢が誤りである理由
- 「オンデマンドインスタンス」通常料金が適用されるオンデマンドは割引がなく、中断耐性のある断続的なワークロードに使うには割高です。
- 「1年間の Savings Plans を購入したオンデマンド」1年間のコミットメントが発生するため、断続的なバッチ処理では不使用時間帯の料金も無駄になります。
- 「ハードウェア専有の Dedicated Hosts」ハードウェア専有は規制対応やソフトウェアライセンス要件向けのオプションで、コスト最小化とは正反対の選択です。
設問2
ECS でコンテナ化したマイクロサービスを運用する企業が、EC2 インスタンスの管理(パッチ・スケーリング・キャパシティ計画)から解放されたいと考えている。最も運用負荷の低い起動タイプはどれか。
- EC2 起動タイプ(自己管理のコンテナインスタンス)
- AWS Fargate 起動タイプ(正解)
- EC2 スポットフリート上の ECS
- EKS のセルフマネージドノードグループ
解説
Fargate はサーバーレスのコンテナ実行環境で、ホスト EC2 のプロビジョニングやパッチ適用が不要です。タスク単位でリソースを指定するだけで動くため運用オーバーヘッドが最小になります。EC2 起動タイプやセルフマネージドノードはホスト管理が必要です。
他の選択肢が誤りである理由
- 「EC2 起動タイプ(自己管理のコンテナインスタンス)」ホスト EC2 のプロビジョニング・パッチ・スケーリングをユーザー自身が管理しなければならず、運用負荷が残ります。
- 「EC2 スポットフリート上の ECS」コスト削減にはなりますが、スポット中断時の処理や EC2 のライフサイクル管理はユーザー責任で、Fargate より運用負荷が高くなります。
- 「EKS のセルフマネージドノードグループ」ECS ではなく Kubernetes 基盤であり、ノード管理をユーザーが行う必要があるため運用負荷はさらに大きくなります。
設問3
Auto Scaling グループ配下の Web 層で、毎日決まって18時から19時にアクセスが急増する。負荷の立ち上がりが速く、メトリクス検知後のスケールアウトでは増設が間に合わない。最も適した対策はどれか。
- ターゲット追跡スケーリングのみを設定する
- インスタンスタイプをより大きなものに変更する
- ヘルスチェックの間隔を短くする
- スケジュールされたスケーリングで、急増前にあらかじめ容量を増やしておく(正解)
解説
発生時刻が予測できる定期的な急増には、スケジュールされたスケーリング(Scheduled Scaling)で事前に台数を増やしておくのが最適です。メトリクス検知に依存する動的スケーリングだけでは立ち上がりに間に合いません。
他の選択肢が誤りである理由
- 「ターゲット追跡スケーリングのみを設定する」メトリクスの検知・評価・インスタンス起動に数分かかるため、急激なスパイクの立ち上がりには間に合いません。
- 「インスタンスタイプをより大きなものに変更する」スケールアップは常時コストが増加し、平常時に過剰スペックとなるため、予測可能な急増への対策として非効率です。
- 「ヘルスチェックの間隔を短くする」ヘルスチェックはインスタンスの正常性を確認するためのもので、スケールアウトの速度には影響しません。
設問4
ALB と Auto Scaling を2つのアベイラビリティゾーンに配置した Web アプリで、「1つのAZが完全に停止し、かつ残りのAZで新規インスタンスがまだ起動できていない瞬間でも、ピーク負荷の100%を処理し続ける」ことが要件である。各AZの最小構成として正しいのはどれか。
- 各AZにピーク負荷の50%分のインスタンスを配置する
- 各AZにピーク負荷の70%分のインスタンスを配置する
- 各AZにピーク負荷の100%分のインスタンスを配置する(正解)
- 1つのAZに100%、もう1つは空にしておく
解説
片方のAZが落ち、残りAZで増設が間に合わない瞬間でも100%を捌くには、残る1つのAZ単独でピークを処理できる必要があります。したがって各AZに100%分を持たせる構成(合計200%、N+1相当)が要件を満たします。各50%では片系喪失時に50%しか残りません。
他の選択肢が誤りである理由
- 「各AZにピーク負荷の50%分のインスタンスを配置する」1つのAZが停止すると残り50%の処理能力しかなく、ピーク100%の要件を満たせません。
- 「各AZにピーク負荷の70%分のインスタンスを配置する」片系喪失時に70%の処理能力しか残らず、100%のピーク要件を満たせません。
- 「1つのAZに100%、もう1つは空にしておく」100%を持つAZが障害になった瞬間に残りのAZの容量がゼロになり、可用性が全く担保されません。
設問5
画像ファイルが S3 にアップロードされるたびに、サムネイルを自動生成する処理を実装したい。処理は短時間で完了し、リクエスト数は不定期に変動する。運用負荷とコストを最小化する構成はどれか。
- 常時起動の EC2 インスタンスが S3 をポーリングして処理する
- Auto Scaling グループの EC2 が定期的にバケットを走査する
- AWS Batch のジョブを1分ごとに起動する
- S3 のイベント通知で AWS Lambda 関数をトリガーして処理する(正解)
解説
イベント駆動かつ短時間・不定期な処理は、S3 イベント通知で Lambda を起動するサーバーレス構成が最適です。実行時のみ課金され、サーバー管理も不要です。常時起動 EC2 やポーリングはコストと運用負荷が無駄に高くなります。
他の選択肢が誤りである理由
- 「常時起動の EC2 インスタンスが S3 をポーリングして処理する」常時起動のため処理がなくても費用が発生し、イベント駆動の Lambda に比べてコストと運用負荷が無駄に高くなります。
- 「Auto Scaling グループの EC2 が定期的にバケットを走査する」定期走査ではアップロードのたびにリアルタイムで反応できず、処理まで最大でポーリング間隔分の遅延が生じます。
- 「AWS Batch のジョブを1分ごとに起動する」Batch はコンテナジョブの立ち上がりに時間がかかり、不定期なイベントへのリアルタイム応答には適しません。
続きは無料の会員登録ですぐ解けます。第1回模試(65問)は、これから先もずっと無料です。
第1回模試(無料)を解く