AWS認定資格 WEB問題集&徹底解説
デベロッパー–アソシエイト
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
問題文と選択肢
あるスタートアップ企業が、新製品のリリースサイクルを短縮するため、開発環境をクラウドへ移行することを決定した。ソースコードの管理には AWS CodeCommit を採用し、ビルドには AWS CodeBuild を使用する予定である。開発チームは、リリース頻度の増加に伴いビルドの負荷が増大することを懸念しており、ビルド環境が負荷の増減に応じて柔軟に対応でき、かつ複数のビルドを同時並行で実行できることを要件としている。
この要件を満たすために、最も適切な対応はどれか。
この要件を満たすために、最も適切な対応はどれか。
- AWS CodeBuild は、追加の設定や構成を行わなくても、自動的にスケールし複数のビルドを並列実行できる
- AWS CodeBuild のビルドインスタンスに、より高スペックなコンピューティングタイプを手動で選択することで、並列処理能力を高める
- AWS CodeBuild のビルド環境を Amazon EC2 Auto Scaling グループ上に手動で構築し、スケーリングポリシーを設定する
- AWS CodeBuild の Auto Scaling 機能を管理コンソールから明示的に有効化することで、スケーリングを実現する
解説
頻出度★★★★★
この問題は、AWS CodeBuild がフルマネージドで、スケーリングも並列ビルドも追加設定なしに提供されると理解しているかがポイント。「スケールさせたい=何かを設定する」という発想を捨てられるかが分かれ目
正解
A. AWS CodeBuild は、追加の設定や構成を行わなくても、自動的にスケールし複数のビルドを並列実行できる
AWS CodeBuild はフルマネージドのビルドサービスで、ビルドを開始するたびにサービス側が新しいビルド環境(コンテナ)をプロビジョニングして実行し、終了すると破棄する。
そのためビルドリクエストの増減に応じて自動的にスケールし、複数のビルドを同時並行で実行できる。ユーザーはサーバーのプロビジョニングもスケーリング設定も行う必要がない。
「負荷の増減に柔軟に対応」「複数ビルドの同時実行」という要件を、追加設定ゼロで満たす正解。
B. AWS CodeBuild のビルドインスタンスに、より高スペックなコンピューティングタイプを手動で選択することで、並列処理能力を高める
コンピューティングタイプ(vCPU / メモリ)の変更は1 本のビルドを速くする(垂直スケール)ための設定であり、同時に走らせられるビルドの本数を増やすものではない。
本問の要件は「負荷の増減への柔軟な対応」と「複数ビルドの並列実行」=水平スケールであり、論点がずれている。
C. AWS CodeBuild のビルド環境を Amazon EC2 Auto Scaling グループ上に手動で構築し、スケーリングポリシーを設定する
Amazon EC2 Auto Scaling グループでビルド環境を自前構築するのは、フルマネージドサービスをわざわざ自己管理に戻すアンチパターン。
AMI の管理・パッチ適用・スケーリングポリシーの調整といった運用負荷が発生し、「クラウドへ移行してリリースサイクルを短縮する」という狙いにも逆行する。
CodeBuild を使う前提の設問で、この構成を選ぶ理由はない。
D. AWS CodeBuild の Auto Scaling 機能を管理コンソールから明示的に有効化することで、スケーリングを実現する
CodeBuild にはユーザーが明示的に有効化する「Auto Scaling 機能」というオプションは存在しない。
スケーリングはサービス側で自動的に行われるため、コンソールで有効化するという操作自体が架空のもの。実在しない機能を本物らしく見せる典型的なディストラクタ。
これだけ覚える(記憶フック)
CodeBuild は勝手にスケールする。Auto Scaling の設定も EC2 の自前管理も不要。並列ビルドは標準機能。
CodeBuild は勝手にスケールする。Auto Scaling の設定も EC2 の自前管理も不要。並列ビルドは標準機能。
正解への思考ルート
問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。| 要件 | 判断ポイント |
|---|---|
| ビルドの負荷増減に柔軟に対応したい | CodeBuild はフルマネージドでサービス側が自動的にスケールする。利用者側のスケーリング設定は不要 →選択肢(A)が正解 |
| 複数のビルドを同時並行で実行したい | ビルドごとに独立した環境が起動するため並列実行は標準動作。コンピューティングタイプの強化(垂直方向)では並列度は上がらない →選択肢(B)を消す |
| 運用負荷を増やさずにクラウドで完結させたい | EC2 Auto Scaling グループでビルド基盤を自作するのはマネージドサービスの利点を捨てるアンチパターン →選択肢(C)を消す |
| 「明示的に有効化する設定」があるか | CodeBuild にユーザーが有効化する Auto Scaling 機能は存在しない(架空の機能を問う選択肢) →選択肢(D)を消す |
ひっかけポイント
- 「スケーリング=何かを設定するはず」という思い込みが最大の罠。フルマネージドサービスでは「設定不要」が正解になり得る
- 選択肢 B のコンピューティングタイプは 1 ビルドあたりの vCPU / メモリを決めるもの。速くはなるが同時に走る本数(並列度)は増えない
- 選択肢 D の「CodeBuild の Auto Scaling 機能を有効化」は実在しない機能。もっともらしい機能名を作る手口に注意
- 実運用では同時実行ビルド数にアカウント単位のクォータがあり、プロジェクトごとに同時実行数の上限を設定することもできる。ただし「スケールさせるための設定」ではない点を混同しない
出題バリエーション
同じ知識が本番では条件を変えて出題されます。| 問題文がこう変わったら | 正解はこう変わる |
|---|---|
| 「ビルドがキューに溜まり同時実行数の上限に達している」 | サービスクォータ(同時実行ビルド数)の引き上げ申請が正解軸に。 |
| 「ビルドをVPC 内のリソース(RDS 等)に接続したい」 | CodeBuild プロジェクトの VPC 設定(サブネット・セキュリティグループ)が正解に。 |
| 「依存関係のダウンロードが毎回遅く、ビルド時間を短縮したい」 | キャッシュ(S3 キャッシュ / ローカルキャッシュ)の有効化が正解軸に。 |
| 「ビルド → テスト → デプロイまで一連の流れを自動化したい」 | AWS CodePipeline によるパイプライン構築が正解に。 |
| 「ビルド手順(コマンド)はどこに定義するか」 | ソースのルートに置く buildspec.yml が正解になる。 |
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 64%
No.10 解説
あるスタートアップ企業が、新製品のリリースサイクルを短縮するため、開発環境をクラウドへ移行することを決定した。ソースコードの管理には AWS CodeCommit を採用し、ビルドには AWS CodeBuild を使用する予定である。開発チームは、リリース頻度の増加に伴いビルドの負荷が増大することを懸念しており、ビルド環境が負荷の増減に応じて柔軟に対応でき、かつ複数のビルドを同時並行で実行できることを要件としている。
この要件を満たすために、最も適切な対応はどれか。
この要件を満たすために、最も適切な対応はどれか。
- AWS CodeBuild は、追加の設定や構成を行わなくても、自動的にスケールし複数のビルドを並列実行できる
- AWS CodeBuild のビルドインスタンスに、より高スペックなコンピューティングタイプを手動で選択することで、並列処理能力を高める
- AWS CodeBuild のビルド環境を Amazon EC2 Auto Scaling グループ上に手動で構築し、スケーリングポリシーを設定する
- AWS CodeBuild の Auto Scaling 機能を管理コンソールから明示的に有効化することで、スケーリングを実現する