IT・情報処理 / AWS 認定

AWS Certified DevOps Engineer – Professionalの例題・出題範囲・重要用語

SDLC automation / configuration & IaC / monitoring & logging / incident & event response / security & compliance / cost & governance

出題範囲

  • SDLC Automation
  • Configuration Management and Infrastructure as Code
  • Resilient Cloud Solutions
  • Monitoring and Logging
  • Incident and Event Response
  • Security and Compliance

例題に挑戦

スキルサートのAIが生成した演習問題のサンプルです。アプリでは毎週新しい問題が追加されます。

例題1

AWS CodePipeline を使用して、開発用 AWS アカウント (Account A) から本番用 AWS アカウント (Account B) へアプリケーションをデプロイする CI/CD パイプラインを構成しています。パイプラインのアーティファクトは Account A の S3 バケットに保存されており、Account A のカスタマーマネージドキー (KMS CMK) で暗号化されています。このクロスアカウントデプロイを実現するために必要な設定として、正しいものを 3 つ選択してください。

  1. Account B に新しい KMS キーを作成し、Account A の CodePipeline サービスロールにそのキーの使用権限を付与する。
  2. Account A のアーティファクトバケットをパブリックアクセス可能にし、バケットポリシーで Account B の IP アドレス帯域のみを許可する。
  3. Account A の KMS キーポリシーを更新し、Account B のデプロイ用 IAM ロールに対して kms:Decrypt および kms:GenerateDataKey 権限を許可する。
  4. Account A の S3 バケットポリシーを更新し、Account B のデプロイ用 IAM ロールに対して s3:Get* および s3:List* のアクションを許可する。
  5. Account B のデプロイ用 IAM ロールに、Account A の KMS キーおよび S3 バケットへのアクセスを許可するインラインポリシーを追加する。
解答と解説を見る

正解: Account A の KMS キーポリシーを更新し、Account B のデプロイ用 IAM ロールに対して kms:Decrypt および kms:GenerateDataKey 権限を許可する。 / Account A の S3 バケットポリシーを更新し、Account B のデプロイ用 IAM ロールに対して s3:Get* および s3:List* のアクションを許可する。 / Account B のデプロイ用 IAM ロールに、Account A の KMS キーおよび S3 バケットへのアクセスを許可するインラインポリシーを追加する。

正解は「Account A の KMS キーポリシーを更新し、Account B のデプロイ用 IAM ロールに対して kms:Decrypt および kms:GenerateDataKey 権限を許可する。」、「Account A の S3 バケットポリシーを更新し、Account B のデプロイ用 IAM ロールに対して s3:Get* および s3:List* のアクションを許可する。」および「Account B のデプロイ用 IAM ロールに、Account A の KMS キーおよび S3 バケットへのアクセスを許可するインラインポリシーを追加する。」です。クロスアカウントデプロイでは、リソースを所有するアカウント(Account A)側で相手アカウントのロールを許可するリソースベースポリシー(S3バケットポリシーやKMSキーポリシー)の設定と、アクセスする側(Account B)のロールに権限を付与するアイデンティティベースポリシーの両方が必要です。

例題2

ある企業では、AWS CodeBuild を使用して Docker イメージのビルドを行っていますが、ビルドごとに外部リポジトリから多数の依存関係をダウンロードしており、ビルド時間が長くなっていることが問題となっています。ビルドの効率を向上させ、実行時間を短縮するための最も適切な方法はどれですか。

  1. CodeBuild プロジェクトのコンピューティングタイプをより大きなインスタンスに変更する。
  2. Amazon EC2 インスタンス上でセルフホストされた Jenkins サーバーに移行する。
  3. CodeBuild プロジェクトでキャッシュを有効にし、アーティファクトを再利用する。
  4. ビルドスペックファイル (buildspec.yml) で、ビルド開始前に毎回 `docker prune` を実行するように設定する。
  5. CodeCommit リポジトリのサイズを小さくするために、古いブランチをすべて削除する。
解答と解説を見る

正解: CodeBuild プロジェクトでキャッシュを有効にし、アーティファクトを再利用する。

正解は「CodeBuild プロジェクトでキャッシュを有効にし、アーティファクトを再利用する。」です。CodeBuild のキャッシュ機能(S3 キャッシュまたはローカルキャッシュ)を使用することで、ビルド間で依存関係や Docker レイヤーを再利用でき、ダウンロード時間を大幅に削減できます。コンピューティングタイプの変更は CPU やメモリを増強しますが、ネットワーク経由のダウンロード遅延の根本解決にはなりません。`docker prune` はキャッシュを削除するため逆効果です。Jenkins への移行は管理オーバーヘッドを増やし、SDLC 自動化のベストプラクティスに反します。リポジトリのブランチ削除はビルド時間には影響しません。

AWS Certified DevOps Engineer – Professionalの対策はアプリで

AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。

IT・情報処理の他の資格