AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト – アソシエイト

正解 A問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業では、データ分析バッチ処理を毎日実行しています。この処理は完了までに約90分かかり、途中で処理が中断されても再実行が可能な設計になっています。また、処理の優先度は低く、実行タイミングは柔軟に調整できます。コスト効率を最大化しながら、この要件を満たすソリューションはどれですか。
  • AWS Batch を使用し、Amazon EC2 スポットインスタンスで構成されたコンピューティング環境で処理を実行する
  • Amazon EC2 オンデマンドインスタンスを起動してバッチ処理を実行し、完了後に停止する
  • Amazon EC2 リザーブドインスタンスを購入し、毎日決まった時刻にバッチ処理を実行する
  • AWS Lambda 関数を複数並行実行し、処理を分散させてバッチ処理を完了する
解説 頻出度★★★★★
この問題は、「中断されても再実行可能 × 優先度が低い × 実行タイミングが柔軟 × コスト効率最大化」という、スポットインスタンスの適用条件をそのまま並べた要件を読み取り、AWS Batch + EC2 スポットインスタンスを選べるかがポイント
正解

A. AWS Batch を使用し、Amazon EC2 スポットインスタンスで構成されたコンピューティング環境で処理を実行する

スポットインスタンスはオンデマンド価格から最大 90% 割引で利用でき、「中断されても再実行できる」「優先度が低く実行タイミングが柔軟」という本問の条件はスポットの適用条件そのものです。
AWS Batch はジョブのキューイング、コンピューティング環境の自動スケーリング、スポット中断時のジョブの自動リトライまでマネージドで面倒を見るため、中断への対処を自前実装せずに済みます。
コスト効率が最も高く、かつ運用負荷も低い構成であり、これが正解です。

B. Amazon EC2 オンデマンドインスタンスを起動してバッチ処理を実行し、完了後に停止する

オンデマンドインスタンスは中断されない安定性が利点ですが、スポットに比べて大幅に割高です。
本問は「途中で処理が中断されても再実行が可能」と明記されており、中断されない安定性に対価を払う理由がありません
要件を満たすことはできますが、「コスト効率を最大化」という観点で A に明確に劣ります。

C. Amazon EC2 リザーブドインスタンスを購入し、毎日決まった時刻にバッチ処理を実行する

リザーブドインスタンスは1 年または 3 年の継続利用を確約する代わりに割引を得る仕組みで、24 時間に近い常時稼働のワークロードほど効果が出ます。
本問は1 日わずか 90 分(稼働率にして約 6%)の利用であり、使っていない時間の分まで支払うことになるため費用対効果は最悪です。
「実行タイミングが柔軟」という強みも活かせません。

D. AWS Lambda 関数を複数並行実行し、処理を分散させてバッチ処理を完了する

AWS Lambda には最大実行時間 15 分という上限があるため、90 分かかる処理をそのまま実行できません
「複数並行実行して分散させる」には、処理を 15 分以内の単位に分割する大幅なアーキテクチャ変更が必要で、複雑性が増します。
既存のバッチ処理を安く動かしたいという本問の意図には合致しません。

これだけ覚える(記憶フック)
「中断OK・急がない・とにかく安く」の 3 拍子が揃ったらスポット。バッチの実行基盤は AWS Batch。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
途中で処理が中断されても再実行が可能 中断耐性がある=スポットインスタンスを使ってよいという最大のシグナル
→選択肢(A)は候補
優先度が低く、実行タイミングを柔軟に調整できる 空きキャパシティを待てるということ。スポットの中断リスクを許容できる裏付けになる
→選択肢(A)は候補
処理は完了までに約 90 分かかる AWS Lambda の実行時間上限は 15 分。分割改修なしには完走できない
→選択肢(D)を消す
実行は毎日 1 回・90 分だけ(稼働率は約 6%) リザーブドインスタンスは常時稼働向けの割引。使わない時間まで払うことになる
→選択肢(C)を消す
コスト効率を最大化する オンデマンドは要件自体は満たすが、スポットより明確に割高で「最大化」に負ける
→選択肢(B)を消す
ひっかけポイント
  • 「中断されても再実行が可能」「優先度は低く実行タイミングは柔軟」の 2 文は、問題文がスポットを使ってよいと宣言しているのと同義。ここを読み飛ばすと安全側のオンデマンド (B) を選んでしまう
  • リザーブドインスタンスを「とにかく安くなるもの」と覚えていると引っかかる。1 日 90 分(稼働率約 6%)では、使わない残り 94% の時間も課金対象となり、かえって割高になる
  • 選択肢 D の「複数並行実行して分散させる」という表現は、いかにも 90 分を捌けそうに読める。しかし1 実行あたり 15 分の壁は並列化しても消えず、処理の分割という大規模改修が前提になる
  • AWS Batch を選ぶ理由は「Batch 自体が安いから」ではない。スポット中断時のリトライとジョブキューをマネージドで引き受ける点にあり、スポットと組み合わせて初めてこの選択肢が最適解になる
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「処理は中断されてはならない(途中から再開できない)」に変わったら スポットは使えず、オンデマンド(または Savings Plans)が正解軸に。
「処理は10 分で完了する」 AWS Lambda + EventBridge スケジュールが正解に浮上。AWS Batch は過剰になる。
「バッチ基盤を24 時間 365 日常時稼働させる」 リザーブドインスタンス / Savings Plans が正解軸に変わる。
コンテナ化済みのジョブを、サーバー管理なしで安く実行したい」 AWS Batch on Fargate(+Fargate Spot)が正解軸に。
Apache Spark / Hadoop による大規模分散処理をできるだけ安く」 Amazon EMR + スポットインスタンス(タスクノード)の組み合わせが問われる。
関連サービスの解説 Amazon EC2
AWS Batch
AWS Lambda
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 74%
No.9 解説
ある企業では、データ分析バッチ処理を毎日実行しています。この処理は完了までに約90分かかり、途中で処理が中断されても再実行が可能な設計になっています。また、処理の優先度は低く、実行タイミングは柔軟に調整できます。コスト効率を最大化しながら、この要件を満たすソリューションはどれですか。
  • AWS Batch を使用し、Amazon EC2 スポットインスタンスで構成されたコンピューティング環境で処理を実行する
  • Amazon EC2 オンデマンドインスタンスを起動してバッチ処理を実行し、完了後に停止する
  • Amazon EC2 リザーブドインスタンスを購入し、毎日決まった時刻にバッチ処理を実行する
  • AWS Lambda 関数を複数並行実行し、処理を分散させてバッチ処理を完了する

(会員限定)当問題の評価をお願いします。改善に活用します。