難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。
AWS DOP-C02のサンプル問題(本番形式・解説付き)
AWS DOP-C02(Amazon Web Services・AWS Certified DevOps Engineer - Professional(DOP-C02))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(75問)の冒頭から抜粋したオリジナル問題です。当サイトは全600問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。
設問1
ある会社は、Amazon EC2 インスタンス群で動く Web アプリケーションを AWS CodeDeploy のインプレースデプロイで更新しています。新しいファイルをコピーしている最中に旧バージョンのプロセスがファイルを開いたままになり、デプロイが失敗することがあります。開発チームは appspec.yml にスクリプトを追加し、新しいファイルが配置される前に旧バージョンのプロセスを確実に止めたいと考えています。この要件を満たす解決策はどれですか。
- 旧バージョンのプロセスを止めるスクリプトを AfterInstall フックに指定し、ファイルの配置が終わった直後に実行させる
- 旧バージョンのプロセスを止めるスクリプトを appspec.yml の ApplicationStop フックに指定し、新しいファイルの配置より前に実行させる(正解)
- 旧バージョンのプロセスを止めるスクリプトを ApplicationStart フックに指定し、新バージョンを起動する直前に実行させる
- 旧バージョンのプロセスを止めるスクリプトを ValidateService フックに指定し、デプロイの検証の段階で実行させる
解説
ApplicationStop はデプロイの最初期に実行されるフックで、新しいファイルを配置する前に旧バージョンのアプリケーションを停止させるために使います。ファイルを掴んだままのプロセスを配置前に止めるという、この場面の要件に合います。AfterInstall はファイルの配置後に実行されるため、配置中の失敗は防げません。ApplicationStart は新バージョンの起動に使うフックで、配置はすでに終わっています。ValidateService はデプロイの最後に正常性を確かめるフックで、配置前の停止処理を置く場所ではありません。
他の選択肢が誤りである理由
- 「旧バージョンのプロセスを止めるスクリプトを AfterInstall フックに指定し、ファイルの配置が終わった直後に実行させる」AfterInstall はファイルの配置後に実行されるため、配置中に旧プロセスがファイルを掴む失敗は防げません。
- 「旧バージョンのプロセスを止めるスクリプトを ApplicationStart フックに指定し、新バージョンを起動する直前に実行させる」ApplicationStart は配置が終わった後の起動に使うフックで、配置前の停止には間に合いません。
- 「旧バージョンのプロセスを止めるスクリプトを ValidateService フックに指定し、デプロイの検証の段階で実行させる」ValidateService はデプロイの最後に正常性を確かめるフックで、配置前の停止処理を置く場所ではありません。
設問2
ある会社は、本番環境の VPC とセキュリティグループを AWS CloudFormation のスタックで管理しています。先週の障害対応の際に、運用担当者がマネジメントコンソールからセキュリティグループへ直接インバウンドルールを追加しました。どのリソースがテンプレートの定義から外れたのかは記録に残っていません。次回のスタック更新の前に、テンプレートに書かれた状態と実際の設定の食い違いをリソースごとに洗い出す必要があります。この要件を満たす解決策はどれですか。
- スタックにスタックポリシーを設定してセキュリティグループの更新を拒否し、次回のスタック更新で食い違いがあればエラーとして表示させる
- 現在のテンプレートで変更セットを作成し、変更セットに表示される差分から、手作業で変更されたリソースを特定する
- スタックに対してドリフト検出を実行し、ドリフトのステータスが MODIFIED のリソースについて、期待値と実際の値の差分を確認する(正解)
- セキュリティグループをネストスタックに切り出して親スタックを更新し、子スタックの作り直しで設定をテンプレートの定義に戻す
解説
ドリフト検出は、スタックが管理するリソースの実際の設定を、テンプレートで定義された期待値と比べ、食い違い(ドリフト)をリソースごとに示す機能です。MODIFIED と判定されたリソースでは期待値と実際の値の差分を確かめられるので、コンソールからの直接変更を更新前に洗い出すという要件に合います。変更セットはこれから行う更新の差分を事前に確かめる機能で、テンプレートの外で入った変更は示しません。スタックポリシーは更新操作で書き換えてよいリソースを制限する機能で、既存の食い違いは検出しません。ネストスタックはテンプレートを部品に分ける構成で、実際の設定との比較は行いません。作り直しても、どのリソースが外れていたかは分かりません。
他の選択肢が誤りである理由
- 「スタックにスタックポリシーを設定してセキュリティグループの更新を拒否し、次回のスタック更新で食い違いがあればエラーとして表示させる」スタックポリシーは更新で書き換えてよいリソースを制限する機能で、手作業で入った食い違いは検出しません。
- 「現在のテンプレートで変更セットを作成し、変更セットに表示される差分から、手作業で変更されたリソースを特定する」変更セットはこれから行う更新の差分を示す機能で、テンプレートの外で入った変更は示しません。
- 「セキュリティグループをネストスタックに切り出して親スタックを更新し、子スタックの作り直しで設定をテンプレートの定義に戻す」ネストスタックはテンプレートを部品に分ける構成で、実際の設定との比較は行いません。
設問3
ある会社は、Application Load Balancer と Auto Scaling グループを使い、2 つのアベイラビリティーゾーン(AZ)に Web アプリケーションを配置しています。事業部門は、1 つの AZ が完全に停止しても、ピーク時の負荷をすべて処理し続けることを求めています。Auto Scaling による新しいインスタンスの起動には数分かかり、その間も処理能力が足りなくなってはいけません。この要件を満たす各 AZ の最小構成はどれですか。
- 各AZにピーク負荷の50%分のインスタンスを配置する
- 各AZにピーク負荷の100%分のインスタンスを配置する(正解)
- 各AZにピーク負荷の70%分のインスタンスを配置する
- 1つのAZに100%、もう1つは空にしておく
解説
片方の AZ が止まり、残りの AZ で増設が間に合わない間もピークを処理するには、残る 1 つの AZ だけでピークを処理できる必要があります。したがって各 AZ にピーク負荷の 100% 分を持たせる構成(合計 200%)が要件を満たします。各 AZ に 50% では、片方が止まった時点で 50% しか残りません。各 AZ に 70% でも、残るのは 70% でピークに届きません。1 つの AZ に 100% を置いてもう 1 つを空にする構成は、100% を持つ AZ が止まった瞬間に処理能力がゼロになります。
他の選択肢が誤りである理由
- 「各AZにピーク負荷の50%分のインスタンスを配置する」1つのAZが停止すると残り50%の処理能力しかなく、ピーク100%の要件を満たせません。
- 「各AZにピーク負荷の70%分のインスタンスを配置する」片系喪失時に70%の処理能力しか残らず、100%のピーク要件を満たせません。
- 「1つのAZに100%、もう1つは空にしておく」100%を持つAZが障害になった瞬間に残りのAZの容量がゼロになり、可用性が全く担保されません。
設問4
ある会社のセキュリティチームは、本番 VPC の通信の許可と拒否の状況を 1 年以上さかのぼって分析するため、VPC フローログを有効にする計画を立てています。設計レビューでは、フローログをどこへ直接配信できるかについてメンバーの意見が割れました。チームは、配信先の候補を正しく理解したうえで、長期保管と分析の方式を決める必要があります。VPC フローログの配信先について正しい説明はどれですか。
- Amazon CloudWatch Logsに限られ、長期保管が必要な場合はロググループからAmazon S3へ定期的にエクスポートして保管する
- AWS Configの設定レコーダー(Configuration Recorder)で記録し、Configの配信チャネル経由でAmazon S3バケットへ保管する
- Amazon CloudWatch Logs、Amazon S3、Amazon Data Firehoseのいずれかを選択でき、S3へは直接配信できる(正解)
- Amazon SNSトピックへ配信し、サブスクリプションでSQSキューやLambda関数へ渡して保管する
解説
VPC フローログの配信先は、Amazon CloudWatch Logs、Amazon S3、Amazon Data Firehose から選べます。長期保管と分析が目的なら S3 へ直接配信する方式を選べます。配信先が CloudWatch Logs に限られるという説明は誤りで、S3 を直接選べるため、ロググループからのエクスポートを挟む必要はありません。AWS Config の設定レコーダーはリソースの構成を記録する仕組みで、フローログの配信先ではありません。Amazon SNS は通知の仕組みで、フローログの配信先には選べません。
他の選択肢が誤りである理由
- 「Amazon CloudWatch Logsに限られ、長期保管が必要な場合はロググループからAmazon S3へ定期的にエクスポートして保管する」S3を直接の配信先に選べるため、CloudWatch Logsに限られてエクスポートが必要という説明は誤りです。
- 「AWS Configの設定レコーダー(Configuration Recorder)で記録し、Configの配信チャネル経由でAmazon S3バケットへ保管する」AWS Configの設定レコーダーはリソースの構成を記録する仕組みで、フローログの配信先ではありません。
- 「Amazon SNSトピックへ配信し、サブスクリプションでSQSキューやLambda関数へ渡して保管する」SNSは通知の仕組みで、フローログの配信先には選べません。
設問5
ある会社は AWS Organizations で 30 の AWS アカウントを運用しています。運用担当者は管理アカウントの IAM ユーザーでサインインし、各メンバーアカウントで管理作業を行います。各メンバーアカウントには共通の管理者ロールを作り、信頼ポリシーで管理アカウントを信頼させました。運用担当者は、メンバーアカウントごとに長期の認証情報を作らずに、このロールの一時的な認証情報を取得する必要があります。この要件を満たす解決策はどれですか。
- 運用担当者の IAM ユーザーに各メンバーアカウントの管理者ロールへの sts:AssumeRole を許可し、AssumeRole でロールの一時的な認証情報を取得させる(正解)
- 管理アカウントで GetFederationToken を呼び出してフェデレーションユーザーの一時的な認証情報を取得し、それで各メンバーアカウントの管理者ロールを操作させる
- 運用担当者を OIDC の ID プロバイダーで認証し直し、AssumeRoleWithWebIdentity で各メンバーアカウントの管理者ロールの一時的な認証情報を取得させる
- 運用担当者を SAML 2.0 の ID プロバイダーで認証し直し、AssumeRoleWithSAML で各メンバーアカウントの管理者ロールの一時的な認証情報を取得させる
解説
AssumeRole は、IAM ユーザーやロールが、信頼ポリシーで許可された別のロールを引き受けて一時的な認証情報を得るための STS API です。管理アカウントの IAM ユーザーに sts:AssumeRole を許可すれば、メンバーアカウントの管理者ロールを引き受けられます。GetFederationToken は、長期の認証情報を持つ独自の ID ブローカーがフェデレーションユーザー向けの一時認証情報を得る API で、ロールの引き受けには使いません。AssumeRoleWithWebIdentity は OIDC の Web ID プロバイダーで認証した利用者向け、AssumeRoleWithSAML は SAML IdP で認証した利用者向けです。どちらも IAM ユーザーが別アカウントのロールを引き受ける場面には当たらず、IdP を新たに用意する手間も増えます。
他の選択肢が誤りである理由
- 「管理アカウントで GetFederationToken を呼び出してフェデレーションユーザーの一時的な認証情報を取得し、それで各メンバーアカウントの管理者ロールを操作させる」GetFederationToken は独自の ID ブローカー向けにフェデレーションユーザーの認証情報を得る API で、別アカウントのロールの引き受けには使いません。
- 「運用担当者を OIDC の ID プロバイダーで認証し直し、AssumeRoleWithWebIdentity で各メンバーアカウントの管理者ロールの一時的な認証情報を取得させる」AssumeRoleWithWebIdentity は OIDC の Web ID プロバイダーで認証した利用者向けで、IAM ユーザーがロールを引き受ける場面には当たりません。
- 「運用担当者を SAML 2.0 の ID プロバイダーで認証し直し、AssumeRoleWithSAML で各メンバーアカウントの管理者ロールの一時的な認証情報を取得させる」AssumeRoleWithSAML は SAML IdP で認証した利用者向けで、IAM ユーザーがロールを引き受ける場面には当たりません。
続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。
登録なしで50問解く