DISPLAY SETTINGS 各種設定
表示モード
画像位置
文字位置
理解度の自動記録
理解度の位置
Q1AWS Certified Devops Engineer Professional
Q1. あるオンライン決済サービスの企業は、APIで受け付けた注文を処理するAWS Lambda関数を構築しました。
この企業では、CI/CDパイプラインの最後の工程としてAWS CodeDeployでLambda関数をデプロイしています。
担当のDevOpsエンジニアは、デプロイ直後の数秒間、注文APIで断続的なエラーが発生していることに気付きました。
調査の結果、Lambda関数が呼び出される前にデータベースの変更がまだ完全に反映されていないことが原因だと判断しました。
この問題を解決するには、どうすればよいですか。
解答を見る
正解:A. AppSpecファイルにBeforeAllowTrafficフックを設定し、新バージョンのLambda関数へトラフィックが切り替わる前に、必要なデータベース変更のテストと完了待機を行う。
AWS CodeDeployによるLambdaデプロイでは、AppSpecファイルのフックを使ってライフサイクルの各段階で検証処理を実行できます。BeforeAllowTrafficフックは新バージョンへトラフィックを切り替える直前に実行されるため、データベース変更の反映完了を待つ検証処理を組み込むのに最適です。
これによりトラフィック切替前に依存関係の準備を保証でき、断続的な障害を防げます。
AfterAllowTrafficは切替後に実行されるため障害の回避にはつながりません。
validateServiceはEC2・オンプレミス向けのフックであり、Lambdaデプロイでは使用できません。
Cはデプロイ前を対象としており、トラフィック制御とは結び付きません。
Lambdaで使えるフックはBeforeAllowTrafficとAfterAllowTrafficのみである点を押さえておきましょう。
AWS CodeDeploy AppSpec の hooks セクション
Q2AWS Certified Devops Engineer Professional
Q2. ある製造業向けSaaS企業の本番環境では、AWS CodeDeployのブルー/グリーンデプロイでアプリケーションを運用しています。
このデプロイ対象には、Amazon Linux 2で起動するAmazon EC2 Auto Scalingグループが含まれます。
コードリポジトリには稼働実績のあるappspec.ymlファイルが用意されています。
担当のDevOpsエンジニアは、置換用インスタンスがリクエストトラフィックを処理し始める前に、ライセンスファイルをダウンロードしてインストールするスクリプトを実行させる必要があります。
そこでappspec.ymlファイルにhooksセクションを追加することにしました。
ライセンスファイルのダウンロードとインストールを行うスクリプトを実行するには、どのフックを使用すべきですか。
解答を見る
正解:C. BeforeInstall
EC2・オンプレミス向けCodeDeployのライフサイクルフックの実行順序を問う設問です。ブルー/グリーンデプロイでは、置換インスタンスが起動してトラフィックを受け取る前に、アプリケーションのインストール処理が行われます。
BeforeInstallフックは新しいアプリケーションバージョンがインストールされる前に実行されるため、ライセンスファイルのダウンロードとインストールを行う位置として最適です。
AfterBlockTrafficとBeforeBlockTrafficは、既存インスタンスからトラフィックを切り離す前後に実行されるフックであり、今回の目的には合いません。
DownloadBundleはCodeDeployエージェントが管理する予約済みイベントで、ユーザースクリプトを指定できません。
フックの実行順序を正確に押さえることが試験対策の要点です。
AWS CodeDeploy AppSpec の hooks セクション
Q3AWS Certified Devops Engineer Professional
Q3. ある物流企業は、AWS Organizations、AWS Control Tower、AWS Config、Terraformを組み合わせてAWSアカウントとリソースを管理しています。
この企業では、メンバーアカウントのユーザーが、VPCに接続されたAWS Lambda関数だけをデプロイできるようにする必要があります。
最小の運用負荷でこの要件を満たすには、どのソリューションを選ぶべきですか。
解答を見る
正解:D. lambda:VpcIdsがnullの場合にLambdaの作成を拒否する条件を持つ、新しいSCPを作成する。
最小の運用負荷で、VPCに接続されたLambda関数のみを許可する要件です。サービスコントロールポリシー(SCP)でlambda:VpcIdsに対しNull条件を設定し、VPC未接続の場合にLambdaの作成を拒否すれば、全メンバーアカウントへ自動かつ予防的に強制でき、手動修復が不要になります。
AWS Configのカスタムルールは検出型であり、非準拠リソースの作成自体は防げず、後追いの修復が必要になります。
Control TowerのプロアクティブコントロールはCloudFormation Hooksの構築が必要で運用負荷が高くなります。
許可値を指定する方式もありますが、Null判定による一律拒否のほうが単純で確実です。
予防的ガバナンスにはSCPが有効である点を押さえましょう。
サービスコントロールポリシー(SCP)
Q4AWS Certified Devops Engineer Professional
Q4. ある保険会社のDevOpsエンジニアは、AWS Control Towerを使い、事業部門・技術部門・管理部門を支える複数のAWSアカウントを運用しています。
セキュリティチームからは、企業全体に向けてAWS Control Towerのガードレールを自動化してほしいと依頼されました。
ガードレールは、AWS Organizations上のOU配下にあるすべてのアカウントへ適用される必要があります。
セキュリティチームは、バージョン管理の機能を備えたソリューションを求めています。
必要に応じてバージョンをレビューし、ロールバックできることも条件です。
このソリューションは、セキュリティチーム自身のOUで管理します。
セキュリティチームは、許可するガードレールの種類を自分たちで指定したいと考えています。
さらに、自チームが承認した新しいガードレールだけを反映させたいと考えています。
最も運用効率の高い形でこれらの要件を満たすには、どのソリューションを選ぶべきですか。
解答を見る
正解:C. 必要なガードレールごとに個別のAWS CloudFormationテンプレートを作成する。テンプレートはAWS CodeConnections互換のGitリポジトリに保管する。組織内の各OUに対応するAWS::ControlTower::EnableControl論理リソースをテンプレート内に定義する。セキュリティチームのアカウントでAWS CodePipelineのパイプラインを構成し、セキュリティチームのGitリポジトリへのマージをトリガーにパイプラインを起動するAmazon EventBridgeルールを設定する。
バージョン管理・レビュー・ロールバック・承認統制を備えつつ、最小の運用負荷でControl Towerのガードレールを自動化する要件です。各ガードレールをAWS::ControlTower::EnableControlリソースとしてCloudFormationテンプレート化し、CodeConnections互換のGitリポジトリで管理すれば、バージョン管理・変更レビュー・ロールバックを標準のGitワークフローで実現できます。
OU単位でEnableControlの対象を指定すれば、そのOU配下の全アカウントへ一貫して適用できます。
さらにEventBridgeでリポジトリへのマージを検知してCodePipelineを起動すれば、承認済みの変更だけが自動デプロイされます。
パイプラインと承認フローを欠く案や、手動起動かつアカウント単位の設定を行う案は負荷が高くなります。
S3を情報源とする案はGitのようなバージョン管理・承認の仕組みがありません。
GitOps型の構成が最も効率的です。
AWS Control Tower のコントロール(ガードレール)について
Q5AWS Certified Devops Engineer Professional
Q5. ある旅行予約サービスの企業は、Amazon EC2インスタンス上で稼働する新しいアプリケーションをデプロイしようとしています。
この企業は、アプリケーションログとAWSアカウントのAPIアクティビティの両方をクエリできるソリューションを必要としています。
これらの要件を満たすには、どのソリューションを選ぶべきですか。
解答を見る
正解:B. Amazon CloudWatchエージェントを使い、EC2インスタンスからAmazon CloudWatch Logsへログを送信する。AWS CloudTrailを設定してAPIログをCloudWatch Logsへ配信する。CloudWatch Logs Insightsで両方のログセットをクエリする。
アプリケーションログとAWSアカウントのAPIアクティビティの両方をクエリしたいという要件です。CloudWatchエージェントはログをCloudWatch Logsへ送信でき、CloudTrailもAPIログをCloudWatch Logsへ配信できるため、両方をCloudWatch Logs Insightsで横断的にクエリできます。
CloudWatchエージェントはS3へ直接ログを送れないため、エージェントから直接S3へ送る構成は成立しません。
Kinesis経由でRedshiftへロードする構成はデータを一旦経由させる必要があり、運用負荷が高くなります。
ログの集約先をCloudWatch Logsに統一し、Logs Insightsで分析するのが最小構成の定番パターンです。
CloudWatch Logs Insights によるログデータの分析
Q6AWS Certified Devops Engineer Professional
Q6. あるゲーム配信企業は、アプリケーションのデータストアとしてAmazon Auroraクラスターを利用しています。
このAuroraクラスターは、単一のDBインスタンスのみで構成されています。
アプリケーションは、クラスターのインスタンスエンドポイントを使ってデータベースの読み書きを行っています。
この企業は、近く実施するメンテナンスウィンドウでクラスターへ更新を適用する予定です。
メンテナンスウィンドウ中も、クラスターはできる限り中断を抑えて利用可能な状態を保つ必要があります。
これらの要件を満たすために、DevOpsエンジニアは何をすべきですか。
解答を見る
正解:C. AuroraクラスターでマルチAZオプションを有効化する。書き込み操作にはAuroraクラスターエンドポイントを使うようアプリケーションを更新し、読み取りにはAuroraクラスターのリーダーエンドポイントを使うよう更新する。
メンテナンス中もできるだけ中断を抑えて、Auroraクラスターの可用性を維持したいという要件です。マルチAZを有効化し、スタンバイ(リーダー)インスタンスを別のアベイラビリティーゾーンへ配置すれば、メンテナンス時のフェイルオーバーによって中断を最小化できます。
書き込みはクラスターエンドポイント(プライマリ)へ、読み取りはリーダーエンドポイントへ振り分けます。
単一インスタンス構成のままではメンテナンス中に停止が発生します。
カスタムANYエンドポイントで読み書きを混在させる構成は、書き込みがプライマリに限定されるAuroraの特性に照らして適切ではありません。
可用性向上には、レプリカ追加による冗長化が要点です。
Amazon Aurora の高可用性
Q7AWS Certified Devops Engineer Professional
Q7. ある医療機関は、規制コンプライアンス要件を満たすため、AWS Key Management Service(AWS KMS)キーと手動のキーローテーションを利用しています。
セキュリティチームは、いずれかのキーが90日を超えてもローテーションされていない場合に通知を受け取りたいと考えています。
これを実現するには、どのソリューションを選ぶべきですか。
解答を見る
正解:C. キーが90日より古くなった際にAmazon Simple Notification Service(Amazon SNS)トピックへ発行するAWS Configカスタムルールを開発する。
KMSキーが90日間ローテーションされていない場合に通知したいという要件です。AWS Configのカスタムルールでキーの最終ローテーションからの経過日数を評価し、90日を超えたらAmazon SNSトピックへ発行すれば、継続的なコンプライアンス監視と通知を実現できます。
KMS自体には、経過日数に基づいてSNSへ通知する機能はありません。
Trusted Advisorはキーのローテーション期限を評価する項目を提供しません。
Security Hubは集約的なセキュリティ検出には有用ですが、任意の90日ローテーション判定を直接行うものではありません。
独自要件の継続的評価にはAWS Configのカスタムルールが適する点を押さえましょう。
AWS Config ルールによるリソースの評価
Q8AWS Certified Devops Engineer Professional
Q8. あるメディア企業は、WindowsとLinuxのAmazon EC2インスタンス上でアプリケーションを稼働させています。
これらのインスタンスは、AWSリージョン内の複数のアベイラビリティーゾーンにまたがって稼働しています。
各アプリケーションにはAuto Scalingグループを利用しています。
この企業は、インスタンス向けに耐久性のあるストレージソリューションを必要としています。
そのソリューションは、WindowsにはSMBを、LinuxにはNFSを提供する必要があります。
また、サブミリ秒のレイテンシーを備えている必要があります。
すべてのインスタンスがデータの読み取りと書き込みを行います。
これらの要件を満たす手順の組み合わせはどれですか。(3つ選択)
解答を見る
正解:A、B、D
WindowsにはSMB、LinuxにはNFSを提供し、全インスタンスが読み書きする、耐久性のある共有ストレージが求められています。Amazon FSx for NetApp ONTAPのマルチAZ構成は、SMBとNFSの両プロトコルに対応し、サブミリ秒の低レイテンシーと高可用性を提供します。
Linux向けにはマルチAZのマウントターゲットを持つAmazon EFSを併用し、NFSでの同時アクセスと耐久性を確保します。
各アプリケーションの起動テンプレートのユーザーデータを更新すれば、Auto Scalingで起動する新規インスタンスが自動的にファイルシステムをマウントします。
gp3のEBSは複数インスタンスからの共有ファイルアクセスには適しません。
インスタンスリフレッシュや個別のマウント更新は、本要件の自動化には必須ではありません。
用途に応じた共有ファイルストレージの選定基準を押さえましょう。
Amazon FSx for NetApp ONTAP とは
Q9AWS Certified Devops Engineer Professional
Q9. あるフィンテック企業は、AWS Organizationsの組織を使い、複数のAWSアカウントを管理しています。
この企業は、すべてのアカウントのAmazon S3バケット内にある機密情報を検出するソリューションを必要としています。
機密データを検出した際には、すべての検出結果を集約し、単一の場所で企業のセキュリティ責任者が確認できるようにする必要があります。
また、機密情報を含むS3オブジェクトを隔離用のS3バケットへ移動する必要もあります。
最小の運用負荷でこれらの要件を満たすには、どのソリューションを選ぶべきですか。(2つ選択)
解答を見る
正解:A、C
組織全体でS3の機密情報を検出し、検出結果を一元集約したうえで該当オブジェクトを隔離する、最小運用負荷の要件です。組織レベルでAmazon Macieを有効化すると、全アカウント・全リージョンのS3を自動スキャンし、機械学習でPIIなどの機密データを検出できます。
Macieの検出結果をAWS Security Hubへ集約すれば、セキュリティ責任者が単一のダッシュボードで確認できます。
さらにEventBridgeルールでMacieの検出をトリガーにLambdaを起動し、対象オブジェクトを隔離用S3バケットへコピーして元を削除すれば、修復まで自動化できます。
独自の検出ロジックを組む案は複雑になり、SCPではデータの検査や移動はできず不適切です。
MacieとSecurity Hub、EventBridge連携の定番構成を押さえましょう。
Amazon Macie とは
Q10AWS Certified Devops Engineer Professional
Q10. あるDevOpsエンジニアは、WebサービスをデプロイするAWS CloudFormationテンプレートを作成しています。
このWebサービスは、Application Load Balancer(ALB)の背後にあるプライベートサブネット内のAmazon EC2インスタンス上で稼働します。
IPv6アドレスを持つクライアントからのリクエストもサービスが受け付けられるようにする必要があります。
IPv6クライアントがWebサービスへアクセスできるようにするために、CloudFormationテンプレートで何をすべきですか。
解答を見る
正解:D. ALB用のVPCとサブネットにIPv6 CIDRブロックを追加する。ポート443でリスナーを作成し、ALBにdualstackのIPアドレスタイプを指定する。ターゲットグループを作成してEC2インスタンスを登録し、ターゲットグループをALBに関連付ける。
プライベートサブネットのEC2をALBの背後で運用しつつ、IPv6クライアントのリクエストを受け付けたいという要件です。VPCとALB用サブネットにIPv6 CIDRブロックを追加し、ALBのIPアドレスタイプをdualstackに指定すれば、ALBはIPv4とIPv6の両方でリクエストを受け付け、ターゲットグループ経由でEC2へ転送できます。
ALBはIPv6終端をサポートし、バックエンドへはIPv4で転送するため、EC2自体にIPv6を割り当てる必要はありません。
ALBにElastic IPを割り当てることはできません。
NLBへの置き換えは要件上不要で、ALBのdualstack対応で十分です。
ロードバランサーのdualstack設定によるIPv6対応が要点です。
Application Load Balancer について
