-
Q1. ある企業が、自社従業員に航空会社の特典を提供しています。旧来のプロセスでは、エンジニアが管理者の役割を担っていました。セキュリティチームは、管理者の役割が引き受けられた際に、ほぼリアルタイムで通知を受け取ることを望んでいます。
- A. AWS Configを設定し、ログをAmazon S3バケットに公開します。Amazon Athenaを使用してログをクエリし、管理者ロールが引き受けられた際にセキュリティチームに通知を送信します。
- B. Amazon GuardDutyを設定し、管理者ロールが引き受けられた場合を監視し、セキュリティチームに通知を送信します。
- C. AWS Management Consoleログインイベントパターンを使用してAmazon EventBridgeルールを作成し、管理者ロールが引き受けられた場合にAmazon SNSトピックにメッセージを公開します。
- D. AWS CloudTrailイベントパターンを使用して呼び出されるAWS API呼び出しを活用し、AWS Lambda関数を呼び出すことで、管理者ロールが引き受けられた際にAmazon SNSトピックにメッセージを公開します。
この問題を見る →
-
Q2. ある会社が、同一AWSアカウント内で複数のアプリケーションを実行しています。これらのアプリケーションはログをAmazon CloudWatchに送信します。
データ分析チームは、各アプリケーションのパフォーマンス指標およびカスタム指標を収集する必要があります。分析チームは、まず指標データを変換し、その後そのデータをAmazon S3バケットに保存する必要があります。
また、分析チームは、CloudWatchの名前空間に新しく追加されたあらゆる指標を自動的に収集できるようにしたいと考えています。
これらの要件を最小限の運用オーバーヘッドで満たすソリューションはどれですか?
- A. CloudWatch指標ストリームを、アプリケーションおよびCloudWatch名前空間からの指標を含むように設定します。指標ストリームをAmazon Data Firehose配信ストリームへ指標を送信するように設定します。Firehose配信ストリームを、データ変換のためにAWS Lambda関数を呼び出すように設定します。配信ストリームを、変換後のデータをS3バケットへ送信するように設定します。
- B. CloudWatch指標ストリームを、すべての指標を含むように設定し、それらをAmazon Data Firehose配信ストリームへ送信するように設定します。Firehose配信ストリームを、データ変換のためにAWS Lambda関数を呼び出すように設定します。配信ストリームを、変換後のデータをS3バケットへ送信するように設定します。
- C. CloudWatchログに対してメトリクスフィルターを設定してカスタム指標を作成します。CloudWatch指標ストリームを、アプリケーション指標をS3バケットへ送信するように設定します。
- D. アプリケーションのロググループ上でサブスクリプションフィルターを設定し、Amazon Data Firehose配信ストリームをターゲットとして指定します。Firehose配信ストリームを、データ変換のためにAWS Lambda関数を呼び出すように設定します。配信ストリームを、変換後のデータをS3バケットへ送信するように設定します。
この問題を見る →
-
Q3. ある会社がAmazon Aurora PostgreSQLデータベースクラスターを使用しており、トランザクションデータを5分ごとにデータベースへロードしています。データアナリストは、このAurora PostgreSQLデータベースを用いて短時間で実行されるクエリや、複雑な集計クエリを実行し、これらのデータを用いた簡易レポートを作成しています。また、データアナリストは手動でデータを更新(削除および挿入)しています。
データアナリストはパフォーマンス問題を報告しています。データベースチームは最近、長時間実行中のクエリによるブロッキングや、VACUUM処理のパフォーマンスを阻害するアイドル状態のトランザクション接続を発見しました。
このチームは、こうした潜在的な運用問題を能動的に把握し、解決策を提案する仕組みを望んでいます。
当該会社のAWSアカウントでは、Amazon DevOps Guruを用いてアカウント内のワークロードを監視しています。
これらの要件を満たすソリューションはどれですか?
- A. 既存のAurora PostgreSQLデータベースクラスターでPerformance InsightsおよびDevOps Guruを有効化します。DevOps GuruをAmazon Simple Notification Service(Amazon SNS)を用いてデータベースチームへ通知を送信するよう設定します。
- B. 既存のAurora PostgreSQLデータベースクラスターでPerformance Insightsを有効化します。Amazon EventBridgeを設定し、既存のAurora PostgreSQLデータベースクラスターからイベントを受信するようにします。Aurora PostgreSQL DBクラスターをAmazon Simple Notification Service(Amazon SNS)を用いてデータベースチームへ通知を送信するよう設定します。
- C. 既存のAurora PostgreSQLデータベースクラスターでPerformance InsightsおよびDevOps Guruを有効化します。Aurora PostgreSQL DBクラスターをAmazon Simple Email Service(Amazon SES)を用いてデータベースチームへ通知を送信するよう設定します。
- D. 既存のAurora PostgreSQLデータベースクラスターでPerformance Insightsを有効化します。Amazon EventBridgeを設定し、既存のAurora PostgreSQLデータベースクラスターからイベントを受信するようにします。DevOps GuruをAmazon Simple Notification Service(Amazon SNS)を用いるよう設定します。
この問題を見る →
-
Q4. ある会社のDevOpsエンジニアは、AWS Systems Managerのメンテナンスウィンドウを用いてメンテナンスタスクを実行しています。同社のAmazon EC2インスタンスは、AWS Healthからの通知を受け取った後に再起動する必要があります。DevOpsエンジニアは、これらの通知に対する自動修復ソリューションを実装する必要があります。DevOpsエンジニアは、Amazon EventBridgeルールを作成しました。
DevOpsエンジニアは、EventBridgeルールをどのように設定すればこれらの要件を満たすことができますか?
- A. AWS Healthをイベントソースとして設定し、EC2サービスおよびインスタンスメンテナンスを示すイベントタイプを指定します。EC2インスタンスの再起動を実行するSystems Managerドキュメントをターゲットとして設定します。
- B. Systems Managerをイベントソースとして設定し、メンテナンスウィンドウを示すイベントタイプを指定します。EC2インスタンスの再起動を実行するSystems Managerドキュメントをターゲットとして設定します。
- C. AWS Healthをイベントソースとして設定し、EC2サービスおよびインスタンスメンテナンスを示すイベントタイプを指定します。新しいAWS Lambda関数をターゲットとして設定し、その関数がメンテナンスウィンドウ期間中にEC2インスタンスを再起動する自動化タスクを登録します。
- D. EC2をイベントソースとして設定し、インスタンスメンテナンスを示すイベントタイプを指定します。新しいAWS Lambda関数をターゲットとして設定し、その関数がメンテナンスウィンドウ期間中にEC2インスタンスを再起動する自動化タスクを登録します。
この問題を見る →
-
Q5. ある会社のアプリケーション開発チームは、LinuxベースのAmazon EC2インスタンスをバステーションホストとして使用しています。バステーションホストへのSSHアクセスは、セキュリティグループで指定された特定のIPアドレスに制限されています。セキュリティグループのルールが変更され、任意のIPアドレスからのSSHアクセスを許可するようになった場合、同社のセキュリティチームは通知を受けることを望んでいます。
- A. イベントソースをaws.cloudtrail、イベント名をAuthorizeSecurityGroupIngressとするAmazon EventBridgeルールを作成します。Amazon Simple Notification Service(Amazon SNS)トピックをターゲットとして定義します。
- B. Amazon GuardDutyを有効化し、AWS Security Hubでセキュリティグループの結果を確認します。GuardDutyイベントの出力がNON_COMPLIANTとなるパターンに一致するよう、カスタムパターンでAmazon EventBridgeルールを設定します。Amazon Simple Notification Service(Amazon SNS)トピックをターゲットとして定義します。
- C. restricted-sshマネージドルールを用いたAWS Configルールを作成し、セキュリティグループが無制限のインバウンドSSHトラフィックを禁止しているかをチェックします。自動修復アクションを設定し、その結果をAmazon Simple Notification Service(Amazon SNS)トピックへ送信するよう構成します。
- D. Amazon Inspectorを有効化します。バステーションホストに関連付けられたセキュリティグループをチェックするために、CVE-1.1ルールパッケージを含めます。Amazon InspectorがAmazon Simple Notification Service(Amazon SNS)トピックへメッセージを発行するよう構成します。
この問題を見る →
-
Q6. ある会社が、単一のAWSアカウント内でアプリケーションをホストしています。このアプリケーションは、機密情報を含むオブジェクトの保存にAmazon S3バケットを使用しています。
同社は、S3 API呼び出し(オブジェクトレベルの操作を含む)をキャプチャする必要があります。これには、無効な認証情報によって拒否された呼び出しも含まれます。
- A. アカウント内にAWS CloudTrailトレースを作成します。S3データイベントの記録を有効化します。トレースのログ出力をAmazon CloudWatchへ設定します。
- B. 新しいS3バケットを作成します。アプリケーションのS3バケットでアクセスログ記録を設定し、新しいS3バケットへログを記録するアクセス権限を付与します。
- C. Amazon GuardDutyを設定し、アカウントに対してS3保護を有効化します。S3バケットに関連付けられた検出事項に一致するAmazon EventBridgeルールを作成します。ルールをAmazon Simple Queue Service(Amazon SQS)キューをターゲットとして設定します。
- D. アカウント内にAWS CloudTrailトレースおよび新しいS3バケットを作成します。トレースのログ出力を新しいS3バケットへ設定します。
この問題を見る →
-
Q7. ある会社がGo言語で書かれたWebアプリケーションをオンプレミスでホストしています。DevOpsエンジニアは、このアプリケーションをAWSへ移行することを検討しています。同社の開発チームは、ブルー/グリーンデプロイメントを有効化し、A/Bテストを実行したいと考えています。
- A. Amazon EC2インスタンス上にアプリケーションを展開し、そのインスタンスからAMIを作成します。このAMIを用いてAuto Scalingグループで使用されるAuto Scaling起動設定を作成します。Elastic Load Balancerを用いてトラフィックを分散します。アプリケーションの変更時に、新しいAMIを作成し、EC2インスタンスの更新を開始します。
- B. Amazon Lightsailを用いてアプリケーションを展開します。アプリケーションを圧縮形式でAmazon S3バケットに格納します。この圧縮版を用いてLightsailへアプリケーションの新バージョンを展開します。Lightsailのデプロイオプションを用いてデプロイを管理します。
- C. AWS CodeArtifactを用いてアプリケーションコードを保管します。AWS CodeDeployを用いてアプリケーションを一連のAmazon EC2インスタンスへ展開します。Elastic Load Balancingを用いてEC2インスタンスへトラフィックを分散します。アプリケーションの変更時に、新しいバージョンをCodeArtifactへアップロードし、新しいCodeDeployデプロイを作成します。
- D. AWS Elastic Beanstalkを用いてアプリケーションをホストします。アプリケーションの圧縮版をAmazon S3で保管し、その場所を用いてアプリケーションの新バージョンをデプロイします。Elastic Beanstalkのデプロイオプションを用いてデプロイを管理します。
この問題を見る →
-
Q8. アプリケーションはApplication Load Balancer(ALB)の背後にあるAmazon EC2インスタンス上で実行されています。DevOpsエンジニアは、AWS CodeDeployを用いて新バージョンをリリースしています。デプロイはAllowTrafficライフサイクルイベントで失敗していますが、デプロイログには失敗原因が明記されていません。
- A. appspec.ymlファイルに、AllowTrafficライフサイクルフック内で実行される無効なスクリプトが含まれています。
- B. デプロイを開始したユーザーが、ALBと対話するのに必要な権限を持っていません。
- C. ALBターゲットグループに指定されたヘルスチェック設定が誤っています。
- D. ALBターゲットグループに属するEC2インスタンスに、CodeDeployエージェントがインストールされていません。
この問題を見る →
-
Q9. 開発チームは、電子商取引アプリケーションを構築しており、Amazon Simple Notification Service(Amazon SNS)を用いて注文メッセージを複数のエンドポイントへ送信しています。そのうち1つのエンドポイントは、常に利用可能なわけではない外部HTTPエンドポイントです。注文メッセージがHTTPエンドポイントへ配信されなかった場合、開発チームは通知を受ける必要があります。
- A. Amazon Simple Queue Service(Amazon SQS)キューを作成します。SNSトピック上で、配信に失敗したメッセージをSQSキューへ送信するリドライブポリシーを設定します。新しいSQSキューに対してAmazon CloudWatchアラームを作成し、メッセージがキューへ到着した際に開発チームへ通知します。
- B. Amazon Simple Queue Service(Amazon SQS)キューを作成します。SNSトピックのHTTPエンドポイント購読設定で、配信に失敗したメッセージをSQSキューへ送信するリドライブポリシーを設定します。新しいSQSキューに対してAmazon CloudWatchアラームを作成し、メッセージがキューへ到着した際に開発チームへ通知します。
- C. SNSトピック上で、注文メッセージが成功するまで再試行するHTTPS送信ポリシーを設定します。ポリシー内でBackoffFunctionパラメータを設定し、設定された制約内での配信が不可能な場合に開発チームへ通知します。
- D. SNSトピックのHTTPエンドポイント購読設定で、注文メッセージの配信が成功するまで再試行するHTTPS配信ポリシーを設定します。ポリシー内でBackoffFunctionパラメータを設定し、設定された制約内での配信が不可能な場合に開発チームへ通知します。
この問題を見る →
-
Q10. あるDevOpsエンジニアが、AWS上で実行されているソフトウェア・アズ・ア・サービス(SaaS)Webアプリケーション向けに、継続的デプロイ戦略を設計しています。アプリケーションおよびセキュリティ上の理由から、このアプリケーションのサブスクライバーは複数のApplication Load Balancer(ALB)に分散されており、各ALBは専用のAuto ScalingグループおよびAmazon EC2インスタンス群に対応しています。アプリケーションにはビルドステップは不要であり、AWS CodeCommitへのコミット時に、対応するALB、Auto Scalingグループ、およびEC2インスタンス群への同期デプロイがトリガーされます。
これらの要件を満たすために、最も少ない設定で実現できるアーキテクチャはどれですか?
- A. 各ALB-Auto Scalingグループペアに対して個別のAWS CodeDeployアプリケーションおよびデプロイメントグループを作成し、並列デプロイを実行する単一のAWS CodePipelineを作成します。
- B. 単一のAWS CodeDeployアプリケーションおよび単一のデプロイメントグループを使用してアプリケーションをデプロイする単一のAWS CodePipelineを作成します。
- C. 単一のAWS CodeDeployアプリケーションと、各ALB-Auto Scalingグループペアに対して一意のデプロイメントグループを使用して並列デプロイを実行する単一のAWS CodePipelineを作成します。
- D. 各ALB-Auto Scalingグループペアごとに、同じALB-Auto Scalingグループペア向けに作成されたAWS CodeDeployアプリケーションおよびデプロイメントグループを用いたAWS CodePipelineを作成します。
この問題を見る →
-
Q11. 設計者は、既存の3層アプリケーション向けにブルー/グリーンデプロイを構成する必要があります。このアプリケーションはAmazon EC2インスタンス上で実行され、Amazon RDSデータベースを利用しています。EC2インスタンスはApplication Load Balancer(ALB)の後ろで実行され、Auto Scalingグループに属しています。
DevOpsエンジニアは、ブルー環境およびグリーン環境それぞれについて、CloudFormationテンプレート、Auto Scalingグループ、およびALBのターゲットグループを作成しました。各ターゲットグループは、EC2インスタンス上でロードされるアプリケーションのバージョン(ブルーまたはグリーン)を指定します。Amazon Route 53のレコードは、このルーティングを管理します。
デプロイ時に、トラフィックをブルー環境からグリーン環境へ即座に切り替える必要があります。
これらの要件を満たすソリューションはどれですか?
- A. グリーン環境のAuto Scalingグループを再起動し、新しいアプリケーションバージョンをグリーン環境のEC2インスタンスにデプロイします。ローリング再起動完了後に、AWS CLIコマンドを使用してALBのトラフィックをグリーン環境のターゲットグループへ送信するよう更新します。
- B. AWS CLIコマンドを使用してALBのトラフィックをグリーン環境のターゲットグループへ送信するよう更新します。その後、グリーン環境のAuto Scalingグループのローリング再起動を開始し、新しいアプリケーションバージョンをグリーン環境のEC2インスタンスにデプロイします。
- C. CloudFormationテンプレートを更新し、グリーン環境のアプリケーションバージョンをブルー環境のEC2インスタンスにデプロイします。いずれの環境においてもターゲットグループやAuto Scalingグループを変更しません。ブルー環境のEC2インスタンスに対してローリング再起動を実行します。
- D. グリーン環境のAuto Scalingグループを再起動し、新しいアプリケーションバージョンをグリーン環境のEC2インスタンスにデプロイします。ローリング再起動完了後に、Route 53の設定を更新してALBのグリーン環境エンドポイントを指すようにします。
この問題を見る →
-
Q12. ある企業が、多数のAWSアカウントで異常なログイン試行を検出しました。複数回のログイン試行が失敗した場合、開発者およびDevOpsエンジニアは、セキュリティチームへ通知を送信するソリューションを実装する必要があります。エンジニアはすでにAmazon Simple Notification Service(Amazon SNS)トピックを作成し、セキュリティチームをそのトピックへサブスクライブ済みです。
どのソリューションが、通知の運用性を最も高めますか?
- A. AWS CloudTrailを設定し、管理イベントをAmazon CloudWatch Logsのロググループへ送信します。CloudWatch Logsメトリクスフィルターを作成して、失敗したコンソールログインイベントをマッチさせます。メトリクスフィルターに基づくCloudWatchアラームを作成し、アラームアクションとしてSNSトピックへメッセージを送信するよう設定します。
- B. AWS CloudTrailを設定し、管理イベントをAmazon S3バケットへ送信します。Amazon Athenaクエリを作成し、S3バケット内のログで失敗ログインを検出するとクエリが失敗を返すようにします。Amazon EventBridgeルールを設定して定期的にこのクエリを実行します。さらに、クエリの失敗を検知し、SNSトピックへメッセージを送信する第2のEventBridgeルールを作成します。
- C. AWS CloudTrailを設定し、データイベントをAmazon CloudWatch Logsのロググループへ送信します。CloudWatch Logsメトリクスフィルターを作成して、失敗したコンソールログインイベントをマッチさせます。メトリクスフィルターに基づくCloudWatchアラームを作成し、アラームアクションとしてSNSトピックへメッセージを送信するよう設定します。
- D. AWS CloudTrailを設定し、データイベントをAmazon S3バケットへ送信します。S3:ObjectCreatedイベントタイプに対してAmazon S3イベント通知を設定します。失敗イベントをフィルタリングし、そのイベント通知をSNSトピックへ転送するよう設定します。
この問題を見る →
-
Q13. ある企業が、予想を上回る人気を得たアプリケーションを最近リリースしました。同社は、アプリケーションが需要の増加に応じてスケールアウトできることを保証したいと考えており、また、複数の可用性ゾーン(AZ)を活用して可用性を確保したいと考えています。このアプリケーションは、Application Load Balancer(ALB)の背後で動作する一連のAmazon EC2インスタンス上で実行されています。DevOpsエンジニアは、アプリケーションを複数のAZにまたがって実行するAuto Scalingグループを作成しました。しかし、新しく追加されたAZで起動したEC2インスタンスは、アプリケーションへのトラフィックを受信していません。
この問題の原因として考えられるものは何ですか?
- A. Auto Scalingグループは、単一のAZ内でのみ新規インスタンスを作成できます。
- B. EC2インスタンスが手動でALBに関連付けられていません。
- C. ALBはNetwork Load Balancer(NLB)に置き換える必要があります。
- D. 新しいAZがALBに追加されていません。
この問題を見る →
-
Q14. ある企業が、Amazon EC2インスタンスを用いる新しいアプリケーションをデプロイしています。同社は、アプリケーションログおよびAWSアカウントのAPIアクティビティを照会するソリューションを必要としています。
これらの要件を満たすソリューションはどれですか?
- A. Amazon CloudWatch Agentを使用して、EC2インスタンスからログをAmazon CloudWatch Logsへ送信します。AWS CloudTrailを設定して、APIログをAmazon S3へ送信します。CloudWatchで両方のログセットを照会します。
- B. Amazon CloudWatch Agentを使用して、EC2インスタンスからログをAmazon CloudWatch Logsへ送信します。AWS CloudTrailを設定して、APIログをCloudWatch Logsへ送信します。CloudWatch Logs Insightsを使用して両方のログセットを照会します。
- C. Amazon CloudWatch Agentを使用して、EC2インスタンスからログをAmazon Kinesisへ送信します。AWS CloudTrailを設定して、APIログをKinesisへ送信します。Kinesisを使用してデータをAmazon Redshiftへロードし、Amazon Redshiftで両方のログセットを照会します。
- D. Amazon CloudWatch Agentを使用して、EC2インスタンスからログをAmazon S3へ送信します。AWS CloudTrailを使用して、APIログをAmazon S3へ送信します。Amazon Athenaを使用してAmazon S3内の両方のログセットを照会します。
この問題を見る →
-
Q15. DevOpsエンジニアは、AWS WAFを複数のAWSアカウント間でWeb ACLを管理するために使用しています。DevOpsエンジニアは、各アカウント内の対応するApplication Load Balancer(ALB)に対してAWS WAFを有効化することを保証する必要があります。
DevOpsエンジニアは、各アプリケーションスタックのデプロイプロセスの一環として、単一のALBおよびAWS WAFをデプロイするAWS CloudFormationテンプレートを使用しています。ALBがデプロイされた後、AWS WAFはALBに自動的に追加される必要があります。
これらの要件を最も効率的に満たすソリューションはどれですか?
- A. AWS Configを有効化します。alb-wafが有効化されたマネージドルールを追加します。AWS Systems Manager Automationドキュメントを作成し、ALBへのAWS WAF追加を自動化します。ルールを編集して自動修復を有効化し、修復アクションとしてSystems Manager Automationドキュメントを選択します。
- B. AWS Configを有効化します。alb-wafが有効化されたマネージドルールを追加します。Amazon EventBridgeルールを作成し、すべてのAWS Config項目変更通知タイプをAWS Lambda関数へ送信します。Lambda関数を設定して、AWS Configのstart-resource-evaluation APIを呼び出し、検出モードで評価を実行します。
- C. Amazon EventBridgeルールを設定し、定期的にAWS Lambda関数を呼び出します。このLambda関数は、CloudFormationテンプレート上でバックグラウンドドリフト検出APIを呼び出します。Lambda関数を設定して、AWS::WAFv2::WebACLAssociationリソースがwaf.ail_open.enabledを有効化している場合に、ALBのプロパティをtrueに設定し、ドリフト状態を示すようにします。
- D. Amazon EventBridgeルールを設定し、定期的にAWS Lambda関数を呼び出します。このLambda関数は、CloudFormationテンプレート上でバックグラウンドドリフト検出APIを呼び出します。Lambda関数を設定して、AWS::WAFv2::WebACLAssociationリソースがドリフト状態を示す場合に、CloudFormationスタックを削除・再デプロイします。
この問題を見る →
-
Q16. あるDevOpsチームが、AWS ConfigでカスタムLambdaルールを作成しました。このルールは、Amazon Elastic Container Registry(Amazon ECR)ポリシーの変更に関するECR:*アクションを監視します。
不適合なリポジトリが検出された場合、Amazon EventBridgeがAmazon Simple Notification Service(Amazon SNS)を介してセキュリティチームへ通知をルーティングします。
カスタムAWS Configルールを評価する際に、AWS Lambda関数が実行されません。
この問題を解決するソリューションはどれですか?
- A. Lambda関数のリソースポリシーを変更し、AWS Configがその関数を呼び出す権限を付与します。
- B. SNSトピックポリシーを変更し、EventBridgeがSNSトピックへ公開するための設定変更を含めるようにします。
- C. Lambda関数の実行ロールを変更し、カスタムAWS Configルールの設定変更を含むようにします。
- D. すべてのECRリポジトリポリシーを変更し、必要なECR API操作に対するAWS Configのアクセスを許可します。
この問題を見る →
-
Q17. ある企業が、世界規模でアクセス可能なAPIスタック向けに、アーキテクチャ的に優れた設計を実装しています。この設計は、北米および欧州のユーザーに対する高い可用性と迅速な応答を保証する必要があります。
APIスタックは以下の3層で構成されます:
・Amazon API Gateway
・AWS Lambda
・Amazon DynamoDB
- A. Amazon Route 53を、ヘルスチェックを用いて北米および欧州のAPI Gatewayエンドポイントを指すように設定します。APIを、そのリージョン内のLambda関数へリクエストを転送するよう設定します。Lambda関数を、Lambda関数と同じリージョンにあるDynamoDBテーブルからデータを取得・更新するよう設定します。
- B. Amazon Route 53を、レイテンシーベースのルーティングおよびヘルスチェックを用いて北米および欧州のAPI Gatewayエンドポイントを指すように設定します。APIを、そのリージョン内のLambda関数へリクエストを転送するよう設定します。Lambda関数を、DynamoDBグローバルテーブルからデータを取得・更新するよう設定します。
- C. Amazon Route 53を北米のAPI Gatewayを指すように設定し、欧州にディザスタリカバリ用APIを作成します。両方のAPIを、そのリージョン内のLambda関数へリクエストを転送するよう設定します。DynamoDBグローバルテーブルからデータを取得します。Lambda関数を5分ごとに北米APIのヘルスチェックを行い、障害発生時にRoute 53をディザスタリカバリAPIへ切り替えるようデプロイします。
- D. Amazon Route 53を、レイテンシーベースのルーティングを用いて北米のAPI Gatewayエンドポイントを指すように設定します。APIを、ユーザーに最も近いリージョン内のLambda関数へリクエストを転送するよう設定します。Lambda関数を、DynamoDBテーブルからデータを取得・更新するよう設定します。
この問題を見る →
-
Q18. ある企業が、コンテナベースのアプリケーションをAmazon EKSに移行し、自動メール通知を確立したいと考えています。各メールアドレスへの通知は、EKSコンポーネントに関連する特定のアクティビティに対して送信されます。このソリューションにはAmazon SNSトピックとAWS Lambda関数が含まれ、Lambda関数は各ログイベントを評価し、適切なSNSトピックにメッセージを発行します。
どのログ記録ソリューションがこれらの要件を満たしますか?
- A. Amazon CloudWatch Logsを有効化してEKSコンポーネントのログを記録します。各コンポーネントに対して、LambdaをサブスクリプションターゲットとしてCloudWatch Logsのサブスクリプションフィルターを作成します。
- B. Amazon CloudWatch Logsを有効化してEKSコンポーネントのログを記録します。CloudWatch Logs Insightsクエリを作成し、それをAmazon EventBridgeイベントにリンクしてLambdaを呼び出します。
- C. EKSコンポーネントに対してAmazon S3ログ記録を有効化します。各コンポーネントに対して、LambdaをサブスクリプションターゲットとしてAmazon CloudWatch Logsのサブスクリプションフィルターを設定します。
- D. EKSコンポーネントに対してAmazon S3ログ記録を有効化します。S3 PUTオブジェクトイベント通知をAWS Lambdaをターゲットとして設定します。
この問題を見る →
-
Q19. セキュリティ監査により、AWS CodeBuildプロジェクトが認証されていないリクエストを使用してAmazon S3バケットからデータベース初期化スクリプトをダウンロードしていることが判明しました。セキュリティチームは、CodeBuildプロジェクトのS3バケットに対する認証されていないリクエストを許可しません。
この問題を最も安全な方法で修正するにはどうすればよいですか?
- A. バケット名をCodeBuildプロジェクト設定のAllowedBucketsセクションに追加します。ビルド仕様を更新し、AWS CLIを使用してデータベース初期化スクリプトをダウンロードします。
- B. S3バケット設定を変更してHTTPS基本認証を有効化し、トークンを指定します。ビルド仕様を更新し、cURLを使用してトークンを渡してデータベース初期化スクリプトをダウンロードします。
- C. バケットポリシーを使用してS3バケットからの認証されていないアクセスを削除します。CodeBuildプロジェクトのサービスロールを変更し、Amazon S3へのアクセス権限を含めます。AWS CLIを使用してデータベース初期化スクリプトをダウンロードします。
- D. バケットポリシーを使用してS3バケットからの認証されていないアクセスを削除します。IAMアクセスキーとシークレットアクセスキーを使用してAWS CLIでデータベース初期化スクリプトをダウンロードします。
この問題を見る →
-
Q20. ある企業がAWSを使用しており、予測可能なトラフィックパターンを持つ重要な計算インフラストラクチャを含むVPCを所有しています。同社はVPCフローログを構成し、それらをAmazon CloudWatch Logs内のロググループに送信しています。
同社のDevOpsチームは、VPCフローログ向けのモニタリングソリューションを構成し、1分以内にVPCへのネットワークトラフィックにおける異常を検出できるようにする必要があります。モニタリングソリューションが異常を検出した場合、企業は異常に即座に対応できる必要があります。
DevOpsチームは、これらの要件を満たすためにモニタリングソリューションをどのように構成すべきですか?
- A. Amazon Kinesis Data Streamを作成します。そのストリームに対してロググループをサブスクライブします。Amazon Kinesis Data Analyticsを構成して、ストリーム内のログ異常を検出します。データストリームの出力としてAWS Lambda関数を作成します。Lambda関数を、異常が検出された際にデフォルトのAmazon EventBridgeイベントバスに書き込むように構成します。
- B. Amazon Kinesis Data Firehose配信ストリームを作成し、イベントをAmazon S3バケットに配信します。ロググループを配信ストリームにサブスクライブします。Amazon Lookout for Metricsを構成して、S3バケット内のデータにおける異常を監視します。指標異常の検出に応じて実行されるAWS Lambda関数を作成します。Lambda関数を、デフォルトのAmazon EventBridgeイベントバスに発行するように構成します。
- C. 異常を検出するAWS Lambda関数を作成します。Lambda関数が異常を検出した場合にイベントをデフォルトのAmazon EventBridgeイベントバスに発行するようにLambda関数を構成します。ロググループをLambda関数にサブスクライブします。
- D. Amazon Kinesis Data Streamを作成します。そのストリームに対してロググループをサブスクライブします。ログ異常を検出するAWS Lambda関数を作成します。Lambda関数が異常を検出した際にデフォルトのAmazon EventBridgeイベントバスに書き込むようにLambda関数を構成します。Lambda関数をデータストリームのプロセッサとして設定します。
この問題を見る →
-
Q21. ある企業のDevOpsエンジニアはマルチアカウント環境で作業しています。同社はAWS Transit Gatewayを用いてネットワーク運用アカウントでトラフィックをルーティングしています。ネットワーク運用アカウントでは、すべてのアカウントトラフィックがファイアウォール設定を通じて検査され、その後インターネットゲートウェイへ進みます。
ファイアウォール設定は、重大、高、中、低、情報の5段階のイベント重大度を含むログをAmazon CloudWatch Logsに送信します。セキュリティチームは、重大なイベントが発生した際に即座にアラートを受け取りたいと考えています。
DevOpsエンジニアはこれらの要件を満たすためにどうすべきですか?
- A. ファイアウォールの状態を監視するためのAmazon CloudWatch Synthetics Canaryを作成します。ファイアウォールが臨界状態に達した場合、または臨界イベントを記録した場合に、CloudWatchアラートを使用してAmazon Simple Notification Service (Amazon SNS)トピックに通知を発行します。セキュリティチームのメールアドレスをそのトピックに登録します。
- B. 重要イベントを検索するためのAmazon CloudWatchメトリクスフィルターを作成します。調査結果をカスタムメトリクスとして発行します。カスタムメトリクスに基づくCloudWatchアラートを使用して、Amazon Simple Notification Service (Amazon SNS)トピックに通知を発行します。セキュリティチームのメールアドレスをそのトピックに登録します。
- C. ネットワーク運用アカウントでAmazon GuardDutyを有効化します。GuardDutyをフローログの監視に構成します。重要なGuardDutyイベントによって呼び出されるAmazon EventBridgeイベントルールを作成します。Amazon Simple Notification Service (Amazon SNS)トピックをターゲットとして定義します。セキュリティチームのメールアドレスをそのトピックに登録します。
- D. AWS Firewall Managerを使用してすべてのアカウントに一貫したポリシーを適用します。重要なFirewall Managerイベントによって呼び出されるAmazon EventBridgeイベントルールを作成します。Amazon Simple Notification Service (Amazon SNS)トピックをターゲットとして定義します。セキュリティチームのメールアドレスをそのトピックに登録します。
この問題を見る →
-
Q22. ある企業がAmazon S3バケット上で静的Webサイトを展開しています。このWebサイトは天文台のクラウドイメージを使用しています。CloudFormationテンプレートはS3バケットとカスタムリソースを定義しており、これらのリソースはコンテンツをバケットに複製するソース位置を指定しています。
同社はWebサイトを新しい場所に移動することを決定し、現在のCloudFormationスタックを削除して再作成することを検討しています。しかし、CloudFormationはスタックをクリーンに削除できないと報告しています。
最も可能性の高い原因は何ですか?また、この問題を今後のバージョンのWebサイトで回避するにはどうすればよいですか?
- A. 削除失敗の原因は、S3バケットにアクティブなウェブサイト構成があるためです。CloudFormationテンプレートを修正し、S3バケットリソースからWebsiteConfigurationプロパティを削除します。
- B. 削除失敗の原因は、S3バケットが空でないためです。カスタムリソースのAWS Lambda関数コードを修正し、Deleteリクエストタイプ時にバケットを再帰的に空にするようにします。
- C. 削除失敗の原因は、カスタムリソースに削除ポリシーが定義されていないためです。カスタムリソース定義にDeletionPolicy属性を追加し、値としてDeleteを指定します。
- D. 削除失敗の原因は、S3バケットが空でないためです。CloudFormationテンプレート内のS3バケットリソースに、空文字列を値とするDeletionPolicy属性を追加します。
この問題を見る →
-
Q23. ある企業が、Amazon Elastic Container Registry (Amazon ECR)のプライベートレジストリを使用してコンテナイメージを保存しています。
開発者チームは、コンテナイメージが定期的にソフトウェアパッケージの脆弱性をスキャンすることを保証する必要があります。
- A. Amazon ECRのプライベートレジストリに対して強化スキャンを有効化します。
- B. Amazon ECRのプライベートレジストリに対して基本的な連続スキャンを有効化します。
- C. AWS SDKを使用してイメージをスキャンするAWS Systems Manager Automationドキュメントを作成します。新しいイメージがECRレジストリにプッシュされたときに、Automationドキュメントが実行されるように構成します。
- D. AWS SDKを使用してAmazon ECR内のすべてのイメージをスキャンするAWS Lambda関数を作成します。毎日Amazon EventBridgeルールを作成し、Lambda関数を呼び出します。
この問題を見る →
-
Q24. セキュリティチームは、AWS CloudTrailを用いて企業のAWSアカウント内の機密なセキュリティ問題を検出しています。DevOpsエンジニアは、AWSアカウント内で無効化されたCloudTrailを自動修復するソリューションを必要としています。
どのソリューションが、CloudTrailログ配信の停止時間を最短に保証しますか?
- A. CloudTrail StopLoggingイベントに対してAmazon EventBridgeルールを作成します。AWS SDKを使用してStopLoggingが呼び出されたリソースのARN上でStartLoggingを呼び出すAWS Lambda関数を作成します。EventBridgeルールのターゲットとしてLambda関数ARNを追加します。
- B. CloudTrailを有効化するAWSマネージドAWS Configルールをデプロイし、1時間の周期間隔に設定します。AWS Configルールのコンプライアンス変更に対してAmazon EventBridgeルールを作成します。AWS SDKを使用してStopLoggingが呼び出されたリソースのARN上でStartLoggingを呼び出すAWS Lambda関数を作成します。EventBridgeルールのターゲットとしてLambda関数ARNを追加します。
- C. 5分ごとのスケジュールイベントに対してAmazon EventBridgeルールを作成します。AWS SDKを使用してAWSアカウント内のCloudTrailトラッキングに対してStartLoggingを呼び出すAWS Lambda関数を作成します。EventBridgeルールのターゲットとしてLambda関数ARNを追加します。
- D. t2.nanoインスタンスを起動し、5分ごとにAWS SDKを用いて現在のアカウント内のCloudTrailを照会するスクリプトを実行します。CloudTrailトラッキングが無効化されている場合は、スクリプトで再び有効化します。
この問題を見る →
-
Q25. あるDevOpsエンジニアは、アプリケーションをオンプレミスからAWSへ移行するソリューションを探しています。このアプリケーションはLinux上で動作し、特定バージョンのApache Tomcat、HAProxyおよびVarnish Cache上で正常に動作する必要があります。アプリケーションのOSレベルパラメータの調整も必要です。このソリューションには、新しいアプリケーションバージョンを自動展開する方法が含まれる必要があります。インフラストラクチャはスケーラブルであり、障害が発生したサーバーは自動的に置き換えられる必要があります。
- A. 必要なすべてのソフトウェアを含むアプリケーションをDockerイメージとしてAmazon ECRにアップロードします。AWS Fargate起動タイプとAuto Scalingグループを使用してAmazon ECSクラスターを作成します。Amazon ECRをソース、Amazon ECSをデプロイプロバイダーとして使用するAWS CodePipelineを作成します。
- B. ソフトウェアの設定およびインストール用の保存済み設定ファイルとともにアプリケーションコードをAWS CodeCommitリポジトリにアップロードします。Tomcatソリューションスタックを使用するAWS Elastic Beanstalk Webサーバー層およびロードバランス型環境を作成します。CodeCommitをソース、Elastic Beanstalkをデプロイプロバイダーとして使用するAWS CodePipelineを作成します。
- C. アプリケーションコードをAWS CodeCommitリポジトリにアップロードします。ソフトウェアの設定およびインストール用のebextensionsファイルを使用します。Tomcatソリューションスタックを使用するAWS Elastic Beanstalkワーカー層環境を作成します。CodeCommitをソース、Elastic Beanstalkをデプロイプロバイダーとして使用するAWS CodePipelineを作成します。
- D. appspec.ymlファイルを使用してアプリケーションコードをAWS CodeCommitリポジトリにアップロードし、必要なソフトウェアの設定およびインストールを行います。Amazon EC2 Auto Scalingグループに関連付けられたAWS CodeDeployデプロイメントグループを作成します。CodeCommitをソース、CodeDeployをデプロイプロバイダーとして使用するAWS CodePipelineを作成します。
この問題を見る →
-
Q26. ある企業が、Amazon EKS(Amazon Elastic Kubernetes Service)上でアプリケーションを実行しています。EKSクラスターは複数のPodを正常に実行しています。同社は、PodイメージをAmazon ECR(Amazon Elastic Container Registry)に保存しています。
企業はEKSクラスターに対してPod IDアクセスを構成する必要があります。すでにノードのIAMロールを更新し、Pod IDアクセスを有効化しています。
これらの要件を満たすソリューションはどれですか?
- A. EKSクラスター用のIAM OpenID Connect(OIDC)プロバイダーを作成します。
- B. ノードがEKS APIに到達できることを確認します。EKSクラスターにEKPOD IDエージェントプラグインを追加および構成します。
- C. EKSアクセスエントリを作成し、APIサーバーとクラスター認証モードを設定します。
- D. EKSクラスター内のスケーリングに使用されるKubernetesサービスアカウントに対して、AWS Security Token Service(AWS STS)エンドポイントを構成します。
この問題を見る →
-
Q27. ある企業が、Application Load Balancerの後ろで実行されるAmazon EC2インスタンス上にWebアプリケーションをテストしています。これらのインスタンスは、複数の可用性ゾーンにまたがるAuto Scalingグループで実行されています。同社は、新規ソフトウェアのデプロイ時にブルー/グリーンデプロイメントプロセスを採用しています。
テスト期間中、ユーザーはアプリケーションから自動的にログアウトします。テスト担当者は、アプリケーションの新バージョンをデプロイするとすべてのユーザーがログアウトすることを報告しています。開発チームは、スケーリングイベントおよびアプリケーションデプロイメント中にユーザーがログイン状態を維持できるソリューションを必要としています。
ユーザーがログイン状態を維持するための最も効果的な方法は何ですか?
- A. ロードバランサー上でスマートセッションを有効化し、アプリケーションを既存セッションをチェックするように変更します。
- B. ロードバランサー上でセッション共有を有効化し、アプリケーションをセッションストレージから読み取るように変更します。
- C. ユーザーのセッション情報をAmazon S3バケットに保存し、アプリケーションをそのバケットからセッション情報を読み取るように変更します。
- D. アプリケーションを変更して、ユーザーのセッション情報をAmazon ElastiCacheクラスターに保存するようにします。
この問題を見る →
-
Q28. DevOpsエンジニアは、異なるログ形式を生成する複数のアプリケーションを管理しています。エンジニアはまずログ形式を標準化し、その後それらをAmazon S3に書き込んでクエリおよび分析可能にしたいと考えています。
この要件を最もコスト効率よく満たすにはどうすればよいですか?
- A. アプリケーションがログをAmazon EMRクラスターに送信し、Amazon S3に送信する前にログを標準化します。
- B. アプリケーションがログをAmazon QuickSightに送信し、Amazon QuickSight SPICEエンジンを使用してログを標準化します。その後、Amazon QuickSightから直接分析を行います。
- C. ログをAmazon S3に保存し、Amazon Redshift Spectrumを使用してS3上のログをオンザフライで標準化します。
- D. 各サーバーでAmazon Kinesis Agentを使用してログをアップロードし、Amazon Kinesis Data FirehoseがAWS Lambda関数を用いてAmazon S3に書き込む前にログを標準化します。
この問題を見る →
-
Q29. ある企業には20のサービスチームがあり、各チームが独自のマイクロサービスを担当しています。各サービスチームは、自社のマイクロサービスのために個別のAWSアカウントを用い、CIDRブロック192.168.0.0/22を持つVPCを活用しています。同社はAWS Organizationsを用いてAWSアカウントを管理しています。
各サービスチームは、Application Load Balancerの後ろで複数のAmazon EC2インスタンス上にマイクロサービスをホストしています。マイクロサービス間の通信は、パブリックインターネット経由で行われています。同社のセキュリティチームは、マイクロサービス間の通信はすべて専用ネットワーク接続を介してHTTPSで行うよう、新たな方針を発表しました。パブリックインターネットを経由した通信は禁止されています。
DevOpsエンジニアは、これらの要件を満たすソリューションを実装し、各サービスチームの変更作業を最小限に抑えたいと考えています。
これらの要件を満たすソリューションはどれですか?
- A. AWS Organizations内に新しいAWSアカウントを作成します。このアカウント内でVPCを作成し、AWS Resource Access Managerを用いて組織全体でこのVPCのプライベートサブネットを共有します。サービスチームに対し、新しいネットワークロードバランサー(NLB)および共有プライベートサブネットを用いたEC2インスタンスの起動を指示します。マイクロサービス間の通信にはNLBのDNS名を用います。
- B. 各マイクロサービスVPC内にネットワークロードバランサー(NLB)を作成します。各AWSアカウント内でNLB用にAWS PrivateLinkを用いたVPCエンドポイントを作成します。他の各AWSアカウントで、各VPCエンドポイントへのサブスクリプションを作成します。マイクロサービス間の通信にはVPCエンドポイントのDNS名を用います。
- C. 各マイクロサービスVPC内にネットワークロードバランサー(NLB)を作成します。各マイクロサービスVPC間でVPCピアリング接続を作成します。各VPCのルートテーブルを更新し、ピアリング接続を経由するように設定します。マイクロサービス間の通信にはNLBのDNS名を用います。
- D. AWS Organizations内に新しいAWSアカウントを作成します。このアカウント内でトランジットゲートウェイを作成し、AWS Resource Access Managerを用いて組織全体でトランジットゲートウェイを共有します。各マイクロサービスVPC内で、共有トランジットゲートウェイへのトランジットゲートウェイ接続を作成します。各VPCのルートテーブルを更新し、トランジットゲートウェイを経由するように設定します。各マイクロサービスVPC内でネットワークロードバランサー(NLB)を作成します。マイクロサービス間の通信にはNLBのDNS名を用います。
この問題を見る →
-
Q30. ある企業が、Amazon EKS(Amazon Elastic Kubernetes Service)クラスター上でアプリケーションを実行しています。EKSクラスターはアプリケーションロードバランサーを用いてトラフィックをクラスター内で実行中のアプリケーションにルーティングしています。
EKSクラスターへの移行後の新しいアプリケーションのパフォーマンスが劣悪です。EKSクラスター内の他のアプリケーションはすべて正常に動作しています。新しいアプリケーションはデプロイ後に、Webアプリケーションにユーザーからのトラフィックが到達する前に、あらかじめ設定された最大Pod数まで即座に水平スケーリングします。
- A. EKSクラスター内でHorizontal Pod Autoscaler(HPA)を実装します。
- B. EKSクラスター内でVertical Pod Autoscaler(VPA)を実装します。
- C. クラスターオートスケーラーを実装します。
- D. EKSクラスター内でAWS Load Balancer Controllerを実装します。
この問題を見る →
-
Q31. ある企業が、MySQL互換のAmazon AuroraマルチAZデータベースクラスターをアプリケーションのデータベースとして使用しています。災害復旧用に、クロスリージョンの読み取り専用レプリカが作成されています。DevOpsエンジニアは、障害発生時に自動的にこのレプリカを昇格させ、マスターデータベースインスタンスとして機能させるようにしたいと考えています。
- A. ヘルスチェックを用いて、遅延に基づくAmazon Route 53 CNAMEを設定し、マスターエンドポイントおよびレプリカエンドポイントを指すようにします。AWS CloudTrailからのAmazon RDS障害通知をAmazon SNSトピックにサブスクライブし、このトピックをトリガーとしてAWS Lambda関数を実行させ、レプリカインスタンスをマスターとして昇格させます。
- B. Auroraカスタムエンドポイントを作成し、マスターデータベースインスタンスを指すように設定します。アプリケーションがこのエンドポイントを使用するように構成します。AWS CloudTrailを設定し、AWS Lambda関数を実行してレプリカインスタンスを昇格させ、カスタムエンドポイントを新しく昇格したインスタンスを指すように変更します。
- C. AWS Lambda関数を作成し、アプリケーションのAWS CloudFormationテンプレートを変更してレプリカを昇格させ、テンプレートを適用してスタックを更新し、アプリケーションを新しく昇格したインスタンスを指すようにします。Amazon CloudWatchアラームを作成し、障害イベント発生時にこのLambda関数をトリガーします。
- D. AuroraエンドポイントをAWS Systems Manager Parameter Storeに保存します。データベース障害を検出するAmazon EventBridge(Amazon CloudWatch Events)イベントを作成し、AWS Lambda関数を実行してレプリカインスタンスを昇格させ、AWS Systems Manager Parameter Storeに保存されているエンドポイントURLを更新します。アプリケーション側でデータベース接続失敗時にParameter Storeからエンドポイントを再読み込みするようにコード化します。
この問題を見る →
-
Q32. Auto Scalingグループ内のAmazon EC2インスタンス群で実行されるアプリケーションは、設定ファイルを必要としています。これらのインスタンスはAWS CloudFormationを用いて作成および管理されています。DevOpsエンジニアは、インスタンス起動時に最新の設定ファイルが利用可能になることを望んでおり、CloudFormationテンプレートの更新時に設定ファイルの変更が可能な限り短い遅延で反映されることを望んでいます。企業ポリシーでは、アプリケーションの設定ファイルはソースコード管理システム内のAWSインフラストラクチャ設定ファイルとともに管理される必要があります。
- A. CloudFormationテンプレートにAWS Configルールを追加します。設定ファイルの内容をルールのInputParametersプロパティに配置し、ScopeプロパティをEC2 Auto Scalingグループに設定します。AWS Systems Manager Resource Data Syncリソースをテンプレートに追加し、設定更新をポーリングします。
- B. CloudFormationテンプレートにEC2起動テンプレートリソースを追加します。設定ファイルの内容を起動テンプレートに配置します。cfn-initスクリプトをインスタンス起動時に実行するように設定し、cfn-hupスクリプトを設定更新をポーリングするように設定します。
- C. CloudFormationテンプレートにEC2起動テンプレートリソースを追加します。設定ファイルの内容を起動テンプレートに配置します。AWS Systems Manager Resource Data Syncリソースをテンプレートに追加し、設定更新をポーリングします。
- D. CloudFormationテンプレートにCloudFormation初期化メタデータを追加します。設定ファイルの内容をメタデータに配置します。cfn-initスクリプトをインスタンス起動時に実行するように設定し、cfn-hupスクリプトを設定更新をポーリングするように設定します。
この問題を見る →
-
Q33. ある企業が、内部のビルドプロセスをコンテナ化しました。同社はAmazon EC2インスタンス上でJenkinsを実行しており、これはパッチ適用およびアップグレードを必要としています。コンプライアンス担当者は、DevOpsエンジニアに対し、ビルド成果物(アーティファクト)の暗号化を開始するよう指示しました。なぜなら、これらには企業の知的財産が含まれているためです。
- A. EC2インスタンス上でAWS Systems Managerを用いてパッチ適用およびアップグレードを自動実行し、Amazon EBSボリュームを暗号化します。
- B. JenkinsをAmazon ECSクラスターにデプロイし、ビルド成果物をデフォルト暗号化が有効なAmazon S3バケットにコピーします。
- C. AWS CodePipelineをビルド操作に活用し、AWS Secrets Managerを用いて成果物を暗号化します。
- D. EC2インスタンス上で実行されるJenkinsインスタンスを、成果物の暗号化機能を備えたAWS CodeBuildで置き換えます。
この問題を見る →
-
Q34. ある医療保険サービス会社は、患者の健康状態を監視するアプリケーションのソフトウェアライセンスコストが継続的に増加していることに懸念を抱いています。同社は、アプリケーションがAmazon EC2専用ホスト上でのみ実行されるよう、監査プロセスを確立したいと考えています。DevOpsエンジニアは、このコンプライアンス要件を満たすための監査ソリューションを構築する必要があります。
エンジニアは、最小限の管理オーバーヘッドでこの要件を満たすために、どのような手順を取るべきでしょうか?
- A. AWS Systems Managerのコンプライアンス機能を使用します。put-compliance-items API操作を呼び出して、ホスト配置設定に基づきスキャンおよび非準拠EC2インスタンスのデータベースを構築します。これらのインスタンスIDを保存するためにAmazon DynamoDBテーブルを使用し、迅速なアクセスを可能にします。Systems Managerでlist-compliance-summaries API操作を呼び出してレポートを生成します。
- B. EC2インスタンス上で実行されるカスタムJavaコードを使用します。チェック対象のインスタンス数に応じてEC2 Auto Scalingを設定します。非準拠EC2インスタンスIDのリストをAmazon SQSキューに送信します。別のワーカーインスタンスを設定してSQSキューからインスタンスIDを処理し、Amazon DynamoDBに書き込みます。AWS Lambda関数を使用してSQSキューから取得した非準拠インスタンスIDを終了させ、Amazon SNSメールトピックに配信します。
- C. AWS Configを使用します。そのリージョン内のすべてのAmazon EC2リソースでConfigレコーディングを有効化することで、監査対象となるすべてのEC2インスタンスを特定します。「Config-Rule-Change-Trigger」ブループリントを使用して、AWS Lambda関数をトリガーするカスタムAWS Configルールを作成します。LambdaのevaluateCompliance()関数を修正してホスト配置を検証し、インスタンスがEC2専用ホスト上で実行されていない場合にNON_COMPLIANT結果を返します。AWS Configレポートを使用して非準拠インスタンスを解決します。
- D. AWS CloudTrailを使用します。EC2 RunCommand API操作へのすべての呼び出しを分析することで、監査対象となるすべてのEC2インスタンスを特定します。AWS Lambda関数を呼び出してインスタンスのホスト配置を分析します。非準拠リソースのEC2インスタンスIDをAmazon RDS for MySQL DBインスタンスに保存します。RDSインスタンスをクエリし、クエリ結果をCSVテキストファイルにエクスポートしてレポートを生成します。
この問題を見る →
-
Q35. ある企業は、AWS Organizationsを使用して複数のAWSアカウントを管理しています。組織ルートには「Environments」という名前のOU(Organizational Unit)があります。このEnvironments OUには、それぞれ「開発」と「本番」の名前を持つ2つの子OUがあります。
Environments OUおよびその子OUには、デフォルトでFullAWSAccessポリシーが適用されています。あるDevOpsエンジニアは、開発OUからFullAWSAccessポリシーを削除し、代わりにAmazon EC2リソースに対するすべての操作を許可するポリシーを適用することを計画しています。
このポリシー置換の結果として生じるのは何ですか?
- A. 開発OU内のすべてのユーザーは、すべてのリソースに対してすべてのAPI操作を実行できます。
- B. 開発OU内のすべてのユーザーは、EC2リソースに対してすべてのAPI操作を実行できます。その他のすべてのAPI操作は拒否されます。
- C. 開発OU内のすべてのユーザーは、すべてのリソースに対してすべてのAPI操作を拒否されます。
- D. 開発OU内のすべてのユーザーは、EC2リソースに対してすべてのAPI操作を拒否されます。その他のすべてのAPI操作は許可されます。
この問題を見る →
-
Q36. ある企業は、AWS Control Towerを使用してアプリケーションのAWSアカウントを管理しています。各アプリケーションチームは、自身のAWSアカウントの保護を担当しています。
DevOpsエンジニアは、アプリケーションチームがまだAmazon GuardDutyを有効化していないAWSアカウントに対してGuardDutyを有効化する必要があります。DevOpsエンジニアは、AWS Control Towerの管理アカウントからAWS CloudFormation StackSetsを使用しています。
DevOpsエンジニアは、StackSets展開中に障害が発生しないようにCloudFormationテンプレートをどのように構成すべきでしょうか?
- A. AWS Lambda関数を呼び出すCloudFormationカスタムリソースを作成します。アカウントでGuardDutyがまだ有効化されていない場合、Lambda関数を条件付きでGuardDutyを有効化するように構成します。
- B. CloudFormationテンプレートのConditionsセクションを使用して、GuardDutyがまだ有効化されていないアカウントでGuardDutyを有効化します。
- C. CloudFormationのFn::GetAtt内部関数を使用してGuardDutyが有効化されているかどうかを確認します。GuardDutyがまだ有効化されていない場合、CloudFormationテンプレートのResourcesセクションでGuardDutyを有効化します。
- D. 手動でGuardDutyが有効化されていないAWSアカウントIDのリストを特定します。CloudFormationのFn::ImportValue内部関数を使用して、このアカウントIDリストをCloudFormationテンプレートにインポートし、リストに記載されたAWSアカウントの展開をスキップします。
この問題を見る →
-
Q37. ある企業は、コンテナベースのアプリケーションをAmazon EKSに移行し、自動電子メール通知を確立したいと考えています。各電子メールアドレスに送信される通知は、EKSコンポーネントに関連する特定のイベントに応じて異なります。このソリューションにはAmazon SNSトピックとAWS Lambda関数が含まれ、Lambda関数は受信したログイベントを評価し、適切なSNSトピックにメッセージをパブリッシュします。
これらの要件をサポートするログ記録ソリューションはどれですか?
- A. Amazon CloudWatch Logsを有効化してEKSコンポーネントのログを記録します。各コンポーネントに対してCloudWatchサブスクリプションフィルターを作成し、Lambdaをサブスクリプション先として設定します。
- B. Amazon CloudWatch Logsを有効化してEKSコンポーネントのログを記録します。CloudWatch Logs Insightsクエリを作成し、それをAmazon EventBridgeイベントにリンクしてLambdaを呼び出します。
- C. EKSコンポーネントに対してAmazon S3ログ記録を有効化します。各コンポーネントに対してAmazon CloudWatchサブスクリプションフィルターを設定し、Lambdaをサブスクリプション先として使用します。
- D. EKSコンポーネントに対してAmazon S3ログ記録を有効化します。S3 PUTオブジェクトイベント通知としてAWS Lambdaをターゲットとして設定します。
この問題を見る →
-
Q38. ある企業は、AWSアカウント内でセキュリティ監査アプリケーションをホストしています。この監査アプリケーションはIAMロールを使用して他のAWSアカウントにアクセスします。これらのターゲットアカウントはすべて、同一のAWS Organizations内にあります。
最近のセキュリティ監査では、監査対象のAWSアカウント内のユーザーが、監査アプリケーションのIAMロールを変更または削除できることが明らかになりました。企業は、信頼された管理者IAMロール以外のいかなるエンティティも、監査アプリケーションのIAMロールに対して変更を加えることを防止する必要があります。
- A. 監査アプリケーションのIAMロールの変更を拒否するステートメントを含むSCPを作成します。信頼された管理者IAMロールによる変更を許可する条件を含め、このSCPを組織のルートにアタッチします。
- B. 信頼された管理者IAMロールによる監査アプリケーションのIAMロールの変更を許可するAllowステートメントを含むSCPを作成します。その他のすべてのIAM主体による変更を拒否するステートメントを含め、このSCPを監査アプリケーションがIAMロールを持つ各AWSアカウントのIAMサービスにアタッチします。
- C. 監査アプリケーションのIAMロールの変更を拒否するステートメントを含むIAMパーミッションバウンダリーを作成します。信頼された管理者IAMロールによる変更を許可する条件を含め、このパーミッションバウンダリーを監査対象のAWSアカウントにアタッチします。
- D. 監査アプリケーションのIAMロールの変更を拒否するステートメントを含むIAMパーミッションバウンダリーを作成します。信頼された管理者IAMロールによる変更を許可する条件を含め、このパーミッションバウンダリーをAWSアカウント内の監査アプリケーションのIAMロールにアタッチします。
この問題を見る →
-
Q39. あるDevOpsエンジニアは、AWS CodePipelineを使用して、ビルド、検証、ステージング、テスト、およびデプロイの多段階パイプラインを構築しています。テスト段階とデプロイ段階の間に、手動承認段階が必要です。開発チームは、Webhook対応のチャットツールを使用しており、ほぼリアルタイムの通知を要求しています。
DevOpsエンジニアは、チャットツールへのパイプラインイベントおよび承認リクエストのステータス更新をどのように構成すべきでしょうか?
- A. CodePipeline実行ステータスの変化をフィルタリングするAmazon CloudWatch Logsサブスクリプションを作成します。サブスクリプションイベントをAmazon Simple Notification Service (Amazon SNS)トピックにパブリッシュします。SNSトピックのチャットWebhook URLをサブスクライブし、サブスクリプションの検証を完了します。
- B. AWS CloudTrailイベントによって呼び出されるAWS Lambda関数を作成します。CodePipelineパイプライン実行ステータス変更イベントを検出した場合、イベント詳細をチャットWebhook URLに送信します。
- C. CodePipeline実行ステータスの変化をフィルタリングするAmazon EventBridgeルールを作成します。イベントをAmazon Simple Notification Service (Amazon SNS)トピックにパブリッシュします。イベント詳細をチャットWebhook URLに送信するAWS Lambda関数を作成し、SNSトピックをサブスクライブします。
- D. パイプラインコードを変更し、各段階の終了時にイベント詳細をチャットWebhook URLに送信します。URLをパラメータ化して、各パイプラインがパイプライン環境に応じて異なるURLに送信できるようにします。
この問題を見る →
-
Q40. ある企業のWebアプリケーションは、アプリケーションロードバランサー(ALB)を使用して、3つの可用性ゾーンにわたってAmazon EC2インスタンスへのトラフィックを分散しています。
同社は、新バージョンのアプリケーションを1つの可用性ゾーンにデプロイしました。もしアプリケーションに問題が発生した場合、同社は影響を受けた可用性ゾーンからのトラフィックを、デプロイがロールバックされる前に他の可用性ゾーンに再分配したいと考えています。ロールバックプロセス中、アプリケーションは可用性を維持し、ステートフルな安定性を保つ必要があります。
- A. ALBターゲットグループのクロスゾーンロードバランスを無効化します。ALB上でゾーン転送を開始し、影響を受けた可用性ゾーンからのトラフィックを除外します。
- B. ALBターゲットグループのクロスゾーンロードバランスを無効化します。影響を受けた可用性ゾーンのターゲットグループから手動でインスタンスを削除します。
- C. ALBターゲットグループのクロスゾーンロードバランスをALBから設定を継承するように構成します。ALB上でゾーン転送を開始し、影響を受けた可用性ゾーンからのトラフィックを除外します。
- D. ALBターゲットグループのクロスゾーンロードバランスをALBから設定を継承するように構成します。影響を受けた可用性ゾーンに関連付けられたサブネットを削除します。
この問題を見る →
-
Q41. ある企業には20のサービスチームがあります。各サービスチームは、独自のマイクロサービスを担当しています。各サービスチームは、マイクロサービスごとに個別のAWSアカウントを使用し、CIDRブロック192.168.0.0/22を持つVPCを使用しています。企業はAWS Organizationsを使用してAWSアカウントを管理しています。
各サービスチームは、Application Load Balancerの後ろにある複数のAmazon EC2インスタンスでマイクロサービスをホストしています。マイクロサービスはパブリックインターネット経由で相互に通信しています。企業のセキュリティチームは、マイクロサービス間のすべての通信が専用ネットワーク接続を介してHTTPSで行われ、パブリックインターネットを通過してはならないという新しい方針を発表しました。
DevOpsエンジニアは、これらの要件を満たすソリューションを実装し、各サービスチームの変更を最小限に抑える必要があります。
これらの要件を満たすソリューションはどれですか?
- A. AWS Organizations内に新しいAWSアカウントを作成します。このアカウント内でVPCを作成し、AWS Resource Access Managerを使用して、組織全体でこのVPCのプライベートサブネットを共有します。サービスチームに対し、新しいネットワークロードバランサー(NLB)と共有プライベートサブネットを使用するEC2インスタンスの起動を指示します。マイクロサービス間の通信にはNLBのDNS名を使用します。
- B. 各マイクロサービスVPC内でネットワークロードバランサー(NLB)を作成します。各AWSアカウントでNLBのためのVPCエンドポイントをAWS PrivateLinkを使用して作成します。各他のAWSアカウントで、各VPCエンドポイントへのサブスクリプションを作成します。マイクロサービス間の通信にはVPCエンドポイントのDNS名を使用します。
- C. 各マイクロサービスVPC内でネットワークロードバランサー(NLB)を作成します。各マイクロサービスVPC間でVPCピアリング接続を作成します。各VPCのルーティングテーブルを更新してピアリング接続を使用します。マイクロサービス間の通信にはNLBのDNS名を使用します。
- D. AWS Organizations内に新しいAWSアカウントを作成します。このアカウント内でTransit Gatewayを作成し、AWS Resource Access Managerを使用して組織全体でTransit Gatewayを共有します。各マイクロサービスVPC内で、共有Transit GatewayへのTransit Gateway接続を作成します。各VPCのルーティングテーブルを更新してTransit Gatewayを使用します。各マイクロサービスVPC内でネットワークロードバランサー(NLB)を作成します。マイクロサービス間の通信にはNLBのDNS名を使用します。
この問題を見る →
-
Q42. Auto Scalingグループ内のAmazon EC2インスタンスで実行されるアプリケーションは、設定ファイルを必要としています。これらのインスタンスはAWS CloudFormationを使用して作成および管理されています。DevOpsエンジニアは、インスタンス起動時に最新の設定ファイルが適用されることを望んでおり、CloudFormationテンプレートの更新後に設定ファイルの変更が可能な限り短い遅延で反映されることを望んでいます。また、企業ポリシーにより、アプリケーションの設定ファイルはソースコード管理システム内のAWSインフラストラクチャ設定ファイルとともに管理する必要があります。
この要件を満たす解決策はどれですか?
- A. CloudFormationテンプレートにAWS Configルールを追加します。設定ファイルの内容をルールのInputParametersプロパティに配置し、ScopeプロパティをEC2 Auto Scalingグループに設定します。テンプレートにAWS Systems Manager Resource Data Syncリソースを追加して設定更新をポーリングします。
- B. CloudFormationテンプレートにEC2起動テンプレートリソースを追加します。設定ファイルの内容を起動テンプレートに配置します。cfn-initスクリプトをインスタンス起動時に実行するように構成し、cfn-hupスクリプトを設定更新をポーリングするように構成します。
- C. CloudFormationテンプレートにEC2起動テンプレートリソースを追加します。設定ファイルの内容を起動テンプレートに配置します。テンプレートにAWS Systems Manager Resource DataSyncリソースを追加して設定更新をポーリングします。
- D. CloudFormationテンプレートにCloudFormation初期化メタデータを追加します。設定ファイルの内容をメタデータに配置します。cfn-initスクリプトをインスタンス起動時に実行するように構成し、cfn-hupスクリプトを設定更新をポーリングするように構成します。
この問題を見る →
-
Q43. ある企業はAmazon S3バケットを使用して機密情報を保存しています。開発チームは毎日新しい項目用にS3バケットを作成します。セキュリティチームは、既存および新規のS3バケットに対して暗号化、ログ記録、バージョン管理が有効化されていることを保証したいと考えています。さらに、どのバケットも公開書き込み可能であってはなりません。
DevOpsエンジニアはこれらの要件をどのように満たすべきですか?
- A. AWS CloudTrailを有効化し、AWS Lambdaを使用して自動修復を構成します。
- B. AWS Systems Managerドキュメントを使用してAWS Configルールを有効化し、自動修復を構成します。
- C. Amazon EventBridgeを使用してAWS Trusted Advisorを有効化し、自動修復を構成します。
- D. AWS Systems Managerを有効化し、Systems Managerドキュメントを使用して自動修復を構成します。
この問題を見る →
-
Q44. ある企業は、現在使用しているbashデプロイスクリプトをAWS開発ツールに置き換えることを検討しています。同社は現在、LAMPアプリケーションをアプリケーションロードバランサー(ALB)の後ろにある一連のAmazon EC2インスタンスにデプロイしています。デプロイ期間中、同社は提出されたアプリケーションの単体テストを実行し、サービスを停止・再起動し、ALBからインスタンスを登録解除・再登録し、ファイルの権限を更新します。同社は、AWSサービスへの移行によって同じデプロイ機能を維持したいと考えています。
この要件を満たす解決策はどれですか?
- A. AWS CodeBuildを使用してアプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動し、ALBからインスタンスを登録解除・再登録します。appspec.ymlファイルを使用して、カスタムスクリプトなしでファイル権限を更新します。
- B. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションをAWS CodeDeployに移動します。CodeDeployのデプロイグループを使用してアプリケーションをテストし、ALBへのインスタンスの登録解除・再登録およびサービスの再起動を行います。appspec.ymlファイルを使用して、カスタムスクリプトなしでファイル権限を更新します。
- C. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションソースコードをAWS CodeDeployに移動します。CodeDeployを使用してアプリケーションをテストします。CodeDeployのappspec.ymlファイルを使用してサービスを再起動および権限を更新し、カスタムスクリプトを必要としません。AWS CodeBuildを使用してALBからインスタンスを登録解除・再登録します。
- D. AWS CodePipelineがAWS CodeBuildをトリガーしてアプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動します。ALB内でAWS CodeDeployデプロイグループ内のインスタンスを登録解除・再登録します。appspec.ymlファイルを更新して、カスタムスクリプトなしでファイル権限を更新します。
この問題を見る →
-
Q45. ある企業は、段階的およびトラフィック転送戦略を使用して、航空会社からのワークロードを移行しています。同社はAmazon EC2 Auto Scalingグループを使用しています。各EC2インスタンスはWebアプリケーション、データベース、およびRedisキャッシュを実行しています。
ユーザーは、Webアプリケーションの応答時間が大幅に増加していることに気づいています。Webアプリケーションへのリクエストは、高負荷下の単一EC2インスタンスに集中しています。同社はアプリケーションコンポーネントを分離し、可用性およびパフォーマンスを向上させたいと考えています。
この要件を満たす解決策はどれですか?
- A. Webアプリケーション用にネットワークロードバランサーとAuto Scalingグループを作成します。データベースをAmazon Aurora Serverlessに移行します。Redisキャッシュ用にアプリケーションロードバランサーとAuto Scalingグループを作成します。
- B. Webアプリケーション用にアプリケーションロードバランサーとAuto Scalingグループを作成します。データベースをマルチAZ展開のAmazon Auroraデータベースに移行します。Redisキャッシュ用に1つの可用性ゾーンでネットワークロードバランサーとAuto Scalingグループを作成します。
- C. Webアプリケーション用にネットワークロードバランサーとAuto Scalingグループを作成します。データベースをAmazon Aurora Serverlessに移行します。キャッシュ用にAmazon ElastiCacheクラスターを作成します。ElastiCacheクラスターのホスト名を含むDNSターゲットタイプのターゲットグループを作成します。
- D. Webアプリケーション用にアプリケーションロードバランサーとAuto Scalingグループを作成します。データベースをマルチAZ展開のAmazon Auroraデータベースに移行します。キャッシュ用にAmazon ElastiCacheクラスターを作成します。
この問題を見る →
-
Q46. ある企業はGo言語で書かれた内部アプリケーションを持っています。DevOpsエンジニアはこのアプリケーションをAWSに移行することを検討しています。同社の開発チームはブルー/グリーンデプロイとA/Bテストを有効化したいと考えています。
この要件を満たす解決策はどれですか?
- A. Amazon EC2インスタンス上にアプリケーションをデプロイし、インスタンスのAMIを作成します。AMIを使用してAuto Scalingグループで使用するAuto Scaling起動設定を作成します。ELB(Elastic Load Balancing)を使用してトラフィックを分散します。アプリケーションの変更がある場合、新しいAMIを作成し、これによりEC2インスタンスの更新が開始されます。
- B. Amazon Lightsailを使用してアプリケーションをデプロイします。アプリケーションを圧縮形式でAmazon S3バケットに保存します。この圧縮バージョンを使用してLightsailにアプリケーションの新バージョンをデプロイします。Lightsailのデプロイオプションを使用してデプロイを管理します。
- C. AWS CodeArtifactを使用してアプリケーションコードを保存します。AWS CodeDeployを使用してAmazon EC2インスタンス群にアプリケーションをデプロイします。ELBを使用してEC2インスタンスにトラフィックを分散します。アプリケーションの変更がある場合、CodeArtifactに新しいバージョンをアップロードし、新しいCodeDeployデプロイを作成します。
- D. AWS Elastic Beanstalkを使用してアプリケーションをホストします。アプリケーションの圧縮バージョンをAmazon S3に保存します。この場所を使用してアプリケーションの新バージョンをデプロイします。Elastic Beanstalkを使用してデプロイオプションを管理します。
この問題を見る →
-
Q47. ある開発チームは、AWS CodeCommitを使用してアプリケーションコードのバージョン管理を行い、AWS CodePipelineを使用してソフトウェアデプロイを編成しています。チームは、パイプラインのトリガーとしてリモートのmainブランチをコードとして管理することを決定しました。ある開発者がCodeCommitリポジトリにコード変更をプッシュしましたが、パイプラインが反応しないことに気づきました。10分経過しても同様の状況が続いています。
この問題を解決するために以下のどの措置を取るべきですか?
- A. mainブランチ用にAmazon EventBridgeルールがパイプラインをトリガーするよう作成されているか確認します。
- B. CodePipelineサービスロールがCodeCommitリポジトリにアクセスできる権限を持っているか確認します。
- C. 開発者のIAMロールがCodeCommitリポジトリへのプッシュ権限を持っているか確認します。
- D. Amazon CloudWatchログ内のCodeCommitエラーによりパイプラインが起動できない状態になっていないか確認します。
この問題を見る →
-
Q48. ある企業は、Apache Webサーバーを搭載したJava-Apache TomcatアプリケーションのデプロイをAWS CodeDeployで自動化しています。開発チームは、開発環境向けにデプロイグループを作成し、アプリケーション内で機能テストを実行しました。完了後、チームはステージングおよび本番環境向けに追加のデプロイグループを作成する予定です。
現在、ログレベルはApache設定で構成されていますが、チームはデプロイ時にこの設定を動的に変更したいと考えており、デプロイグループごとに異なるログレベル設定を、それぞれのグループ用に異なるアプリケーションバージョンを用意することなく設定したいと考えています。
これらの要件を最小限の管理コストで満たし、各デプロイグループに異なるスクリプトバージョンを要求しない方法はどれですか?
- A. デプロイグループでAmazon EC2インスタンスにタグ付けします。その後、アプリケーションリビジョンに、インスタンスがどのデプロイグループに属するかを判断するためにメタデータサービスおよびEC2 APIを呼び出すスクリプトを配置します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをAfterInstallライフサイクルフックの一部として参照します。
- B. CodeDeploy環境変数DEPLOYMENT_GROUP_NAMEを使用して、インスタンスがどのデプロイグループに属するかを識別するスクリプトを作成します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをBeforeInstallライフサイクルフックの一部として参照します。
- C. 各環境向けにCodeDeployカスタム環境変数を作成します。その後、アプリケーションリビジョンに、この環境変数をチェックしてインスタンスがどのデプロイグループに属するかを判断するスクリプトを配置します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをValidateServiceライフサイクルフックの一部として参照します。
- D. CodeDeploy環境変数DEPLOYMENT_GROUP_IDを使用して、インスタンスがどのデプロイグループに属するかを識別するスクリプトを作成し、ログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをインストールライフサイクルフックの一部として参照します。
この問題を見る →
-
Q49. ある企業は、複数のAWSアカウントで実行されるデータ取り込みアプリケーションを持っています。これらのアカウントはAWS Organizations内の組織に属しています。同社はアプリケーションの監視およびアクセスの統合を必要としています。現在、同社は複数のAuto Scalingグループ上のAmazon EC2インスタンスでこのアプリケーションを実行しています。EC2インスタンスはインターネットにアクセスできません。なぜなら、データが機密であるためです。エンジニアは必要なVPCエンドポイントをすでにデプロイしています。EC2インスタンスはアプリケーション専用に構築されたカスタムAMI上で実行されています。
アプリケーションの保守およびトラブルシューティングのために、システム管理者はEC2インスタンスにログインできる必要があります。このアクセスは自動化され、集中管理される必要があります。インスタンスへのアクセスが発生するたびに、同社のセキュリティチームは通知を受け取る必要があります。
この要件を満たす解決策はどれですか?
- A. ユーザーがEC2インスタンスにログインした際にセキュリティチームに通知を送信するよう、Amazon EventBridge(Amazon CloudWatch Events)ルールを作成します。EC2 Instance Connectを使用してインスタンスにログインします。AWS CloudFormationを使用してAuto Scalingグループをデプロイします。外部アクセス用に適切なVPCルーティングを展開するためcfn-initヘルパーファイルを使用します。カスタムAMIを再構築し、最新版のAWS Systems Managerエージェントを含めます。
- B. NATゲートウェイおよびインターネット接続可能なバストホストをデプロイします。バストホストからのすべてのEC2インスタンスへの着信トラフィックを許可するセキュリティグループを作成します。すべてのEC2インスタンスにAWS Systems Managerエージェントをインストールします。Auto Scalingグループライフサイクルフックを使用してアクセスを監視および監査します。Systems Managerセッションマネージャーを使用してインスタンスにログインします。ログをAmazon CloudWatch Logsのロググループに送信します。監査用にデータをAmazon S3にエクスポートします。S3イベント通知を使用してセキュリティチームに通知を送信します。
- C. EC2 Image Builderを使用してカスタムAMIを再構築します。イメージに最新版のAWS Systems Managerエージェントを含めます。Auto ScalingグループがすべてのEC2インスタンスにAmazonSSMManagedInstanceCoreロールをアタッチするように構成します。Systems Managerセッションマネージャーを使用してインスタンスにログインします。セッション詳細をAmazon S3に記録するように有効化します。新しいファイルアップロード用にS3通知を作成し、Amazon Simple Notification Service(Amazon SNS)トピック経由でセキュリティチームにメッセージを送信します。
- D. AWS Systems Manager Automationを使用してSystems ManagerエージェントをカスタムAMIに組み込みます。AWS Configを使用してSCPをルート組織アカウントにアタッチし、EC2インスタンスがSystems Managerに接続できるようにします。Systems Managerセッションマネージャーを使用してインスタンスにログインします。セッション詳細をAmazon S3に記録するように有効化します。新しいファイルアップロード用にS3通知を作成し、Amazon Simple Notification Service(Amazon SNS)トピック経由でセキュリティチームにメッセージを送信します。
この問題を見る →
-
Q50. ある企業が AWS 上に Web アプリケーションをデプロイしています。このアプリケーションは Application Load Balancer の後ろで実行される Amazon EC2 インスタンス上で動作します。これらのインスタンスは、複数のアベイラビリティーゾーンにまたがる Auto Scaling グループ内で実行されます。アプリケーションはデータを Amazon RDS for Oracle データベースインスタンスおよび Amazon DynamoDB に保存します。開発、テスト、本番の独立した環境が存在します。
デプロイ時に資格情報(クレデンシャル)を取得する最も安全かつ推奨される方法は何ですか?
- A. AWS Systems Manager SecureString パラメータから AWS サービスへのアクセスに使用するアクセスキーを取得します。データベースの資格情報も Systems Manager SecureString パラメータから取得します。
- B. AWS サービスへのアクセスのために EC2 IAM ロールを持つ EC2 インスタンスを起動します。データベースの資格情報は AWS Secrets Manager から取得します。
- C. AWS Systems Manager のプレーンテキストパラメータから AWS サービスへのアクセスに使用するアクセスキーを取得します。データベースの資格情報は Systems Manager SecureString パラメータから取得します。
- D. AWS サービスへのアクセスのために EC2 IAM ロールを持つ EC2 インスタンスを起動します。データベースのパスワードは暗号化された設定ファイルにアプリケーションアーティファクトと一緒に保存します。
この問題を見る →
-
Q51. ソフトウェア開発チームが AWS CodePipeline を使用して Java アプリケーションのリリースパイプラインを自動化しています。パイプラインはソースステージ、ビルドステージ、デプロイステージで構成されています。各ステージには runOrder 値が 1 のアクションが含まれています。
チームは、既存のリリースパイプラインにユニットテストを追加したいと考えています。チームは、ユニットテストが成功した場合のみコード変更をデプロイするソリューションが必要です。
これらの要件を満たすソリューションはどれですか?
- A. ビルドステージを変更し、runOrder 値が 1 のテストアクションを追加します。AWS CodeDeploy をアクションプロバイダーとして使用してユニットテストを実行します。
- B. ビルドステージを変更し、runOrder 値が 2 のテストアクションを追加します。AWS CodeBuild をアクションプロバイダーとして使用してユニットテストを実行します。
- C. デプロイステージを変更し、runOrder 値が 1 のテストアクションを追加します。AWS CodeDeploy をアクションプロバイダーとして使用してユニットテストを実行します。
- D. デプロイステージを変更し、runOrder 値が 2 のテストアクションを追加します。AWS CodeBuild をアクションプロバイダーとして使用してユニットテストを実行します。
この問題を見る →
-
Q52. AnyCompany 社は AWS Organizations を使用して複数の AWS アカウントを作成および管理しています。最近、AnyCompany 社は競合他社である Example Corp 社を買収しました。買収プロセスにおいて、Example Corp 社の単一 AWS アカウントが組織招待を通じて AnyCompany 社の管理アカウントに参加しました。AnyCompany 社は、新規メンバー アカウントを Example Corp 専用の OU(Organizational Unit)に移動させました。
AnyCompany 社の DevOps エンジニアは、`OrganizationAccountAccessRole` という名前のロールを Assume する権限を持つ IAM ユーザーです。このロールにはフルアクセスポリシーがアタッチされています。DevOps エンジニアが AWS Management Console を使用して Example Corp の新規メンバー アカウント内のロールを Assume しようとしたところ、以下のエラーが表示されました。「1 つ以上のフィールドに無効な情報が含まれています。情報を確認するか、管理者に連絡してください。」
DevOps エンジニアが新規メンバー アカウントにアクセスできるようにするソリューションはどれですか?
- A. 管理アカウントで、DevOps エンジニアの IAM ユーザーに、新規メンバー アカウント内で `OrganizationAccountAccessRole` IAM ロールを Assume する権限を付与します。
- B. 管理アカウントで新しい SCP(Service Control Policy)を作成します。SCP 内で、DevOps エンジニアの IAM ユーザーに新規メンバー アカウント内のすべてのリソースに対する完全アクセス権限を付与します。この SCP を新規メンバー アカウントを含む OU にアタッチします。
- C. 新規メンバー アカウントで、`OrganizationAccountAccessRole` という名前の新しい IAM ロールを作成します。このロールに `AdministratorAccess` AWS マネージドポリシーをアタッチします。ロールの信頼ポリシーで、管理アカウントがこのロールを Assume できるように許可します。
- D. 新規メンバー アカウントで、`OrganizationAccountAccessRole` IAM ロールの信頼ポリシーを編集します。管理アカウントがこのロールを Assume できるように許可します。
この問題を見る →
-
Q53. ある宇宙探査会社は、複数の衛星からテレメトリデータを受信しています。これらのデータパケットは Amazon API Gateway 経由で受信され、直接 Amazon Simple Queue Service(Amazon SQS)標準キューに送信されます。対応するアプリケーションがキューをサブスクライブし、データを標準形式に変換します。
衛星から送信されるデータの不整合により、アプリケーションがデータ変換に失敗することがあります。このような場合、メッセージは SQS キュー内に残ります。DevOps エンジニアは、失敗したメッセージを保持し、科学者がそれらを確認・さらに処理できるようにするソリューションを開発する必要があります。
これらの要件を満たすソリューションはどれですか?
- A. AWS Lambda を使用して SQS キューをポーリングし、Lambda 関数を呼び出してキュー内のメッセージが有効かどうかをチェックします。検証に失敗した場合、無効なデータのコピーを Amazon S3 バケットに送信し、科学者が確認・修正できるようにします。データが修正された後、修正済みデータを使用して SQS キュー内のメッセージを再送信する Lambda 関数を実行します。
- B. SQS 標準キューを SQS FIFO キューに変換します。Amazon EventBridge スケジュールを使用して、AWS Lambda を 10 分ごとに SQS キューをポーリングするよう設定します。Lambda 関数を呼び出して `SentTimestamp` 値が 5 分を超えるメッセージを特定し、データをアプリケーションの出力先と同じ場所にプッシュし、キューからメッセージを削除します。
- C. SQS デッドレターキュー(DLQ)を作成します。既存のキューを再ドライバーポリシー(re-drive policy)を含むように変更し、最大受信回数(maxReceiveCount)を 1 に設定し、デッドレターキューの ARN を新しく作成したキューの ARN に設定します。科学者にデッドレターキューを使用して無効なデータを確認させ、その後再処理を行います。
- D. API Gateway を設定して、各衛星ごとに異なる名前の SQS 仮想キューにメッセージを送信します。アプリケーションを更新し、変換できないデータに対して新しい仮想キューを使用し、メッセージを新しい仮想キューに送信します。科学者に仮想キューを使用して無効なデータを確認させ、その後再処理を行います。
この問題を見る →
-
Q54. 開発チームは、AWS CloudFormation スタックを使用してアプリケーションをデプロイしたいと考えています。しかし、開発者の IAM ロールには、CloudFormation テンプレートで指定されたリソースをプロビジョニングするのに必要な権限がありません。DevOps エンジニアは、開発者がスタックをデプロイできるようにするソリューションを実装する必要があります。このソリューションは、最小権限の原則に従う必要があります。
- A. 開発者が必要なリソースをプロビジョニングできる IAM ポリシーを作成し、開発者の IAM ロールにアタッチします。
- B. AWS CloudFormation への完全アクセスを許可する IAM ポリシーを作成し、開発者の IAM ロールにアタッチします。
- C. 必要な権限を持つ AWS CloudFormation サービスロールを作成します。開発者の IAM ロールに `cloudformation:*` 操作を許可します。スタックデプロイ時に新しいサービスロールを使用します。
- D. 必要な権限を持つ AWS CloudFormation サービスロールを作成します。開発者の IAM ロールに `iam:PassRole` 権限を付与します。スタックデプロイ時に新しいサービスロールを使用します。
この問題を見る →
-
Q55. 企業は AWS Organizations の組織を使用しており、管理対象の AWS アカウントの機能を有効化しています。Amazon EC2 インスタンスが AWS アカウント内で実行されています。
企業は、現在実行中の EC2 インスタンスがインスタンスメタデータサービスバージョン 2(IMDSv2)を使用することを要求しています。また、IMDSv2 を使用しない EC2 インスタンスからの AWS API 呼び出しをブロックする必要があります。
これらの要件を満たすソリューションはどれですか?
- A. 新しい SCP ステートメントを作成し、`ec2:MetadataHttpTokens` 条件キーが所望の値と等しくない場合に `ec2:RunInstances` 操作を拒否します。この SCP を組織のルートにアタッチします。
- B. 新しい SCP ステートメントを作成し、`ec2:MetadataHttpPutResponseHopLimit` 条件キーの値が 2 より大きい場合に `ec2:RunInstances` 操作を拒否します。この SCP を組織のルートにアタッチします。
- C. 新しい SCP ステートメントを作成し、`ec2:RoleDelivery` 条件キーの値が 2 未満の場合に `*` を拒否します。この SCP を組織のルートにアタッチします。
- D. 新しい SCP ステートメントを作成し、`ec2:MetadataHttpTokens` 条件キーの値が所望の値と等しくない場合に操作を拒否します。この SCP を組織のルートにアタッチします。
この問題を見る →
-
Q56. 企業は、すべての AWS アカウントで既存および新規の VPC に対してフローログを有効化することを保証する必要があります。企業は AWS CloudFormation スタックを使用して VPC を管理しています。このソリューションは、任意の IAM ユーザーが作成した任意の VPC に適用可能である必要があります。
- A. VPC を作成する CloudFormation スタックに `AWS::EC2::FlowLog` リソースを追加します。
- B. AWS Organizations で組織を作成します。企業の AWS アカウントを組織に追加します。VPC フローログの変更を防止する SCP を作成します。
- C. AWS Config を有効化します。VPC フローログが有効化されているかをチェックする AWS Config ルールを作成します。自動修復を設定して VPC フローログを有効化します。
- D. VPC フローログに関する API 呼び出しを拒否する IAM ポリシーを作成し、すべての IAM ユーザーにアタッチします。
この問題を見る →
-
Q57. DevOps エンジニアは、Classic Load Balancer の後ろで実行されるステートレスな RESTful サービスの稼働状況を監視したいと考えています。新しいアプリケーションのリビジョンのデプロイは CI/CD パイプラインを通じて行われます。サービスの遅延が定義されたしきい値を超えた場合、サービスが復旧するまでデプロイを停止する必要があります。以下のうち、最も迅速な検出を実現する方法はどれですか?
- A. Elastic Load Balancing が提供する Amazon CloudWatch メトリクスを使用して平均遅延を計算します。遅延が定義されたしきい値を超えた場合、アラームを発行し、デプロイを停止します。
- B. AWS Lambda と Elastic Load Balancing のアクセスログを使用して平均遅延を検出します。遅延が定義されたしきい値を超えた場合、アラームを発行し、デプロイを停止します。
- C. AWS CodeDeploy の `MinimumHealthyHosts` 設定を使用してロールバックデプロイのしきい値を定義します。これらのしきい値が違反された場合、デプロイをロールバックします。
- D. Amazon CloudWatch Logs のアプリケーションログをメトリクスフィルターで解析します。遅延フィルターを作成します。遅延が定義されたしきい値を超えた場合、アラームを発行し、デプロイを停止します。
この問題を見る →
-
Q58. ある企業が、密閉された本番環境で3層Webアプリケーションを実行しており、このアプリケーションは単一のAWS CloudFormationテンプレートに基づいて構築されています。このテンプレートは、ELB Application Load Balancerの後ろに配置されたAmazon EC2インスタンスで構成されています。これらのインスタンスは、複数の可用性ゾーンにまたがるEC2 Auto Scalingグループで実行されています。データストアは、マルチAZ構成のAmazon RDSデータベースインスタンスであり、読み取り専用レプリカを備えています。Amazon Route 53がアプリケーションのパブリックDNSレコードを管理しています。
DevOpsエンジニアは、新しいアプリケーションソフトウェアのデプロイ時に障害が発生した場合に、本番環境への影響を最小限に抑え、迅速なロールバックを可能にするワークフローを作成する必要があります。
エンジニアは、これらの要件を満たすために、最も短いダウンタイムで実行すべき手順は何ですか?
- A. CloudFormationを使用して追加のステージング環境を展開し、Route 53 DNSに加重レコードを設定します。切り替え期間中に、Route 53のAレコードの加重値を変更して、2つの環境間でトラフィックを均等に分配します。新環境でのトラフィックを検証し、テストが成功した場合、直ちに旧環境を終了します。
- B. 単一のAWS Elastic Beanstalk環境を使用してステージングおよび本番環境を展開します。新しいアプリケーションコードを含むZIPファイルをアップロードして環境を更新します。Elastic Beanstalk環境のCNAMEを交換します。新環境でのトラフィックを検証し、テストが成功した場合、直ちに旧環境を終了します。
- C. 単一のAWS Elastic Beanstalk環境とAWS OpsWorks環境を使用してステージングおよび本番環境を展開します。OpsWorksスタックでデプロイされたElastic Beanstalk環境に、新しいアプリケーションコードを含むZIPファイルをアップロードして環境を更新します。新環境でのトラフィックを検証し、テストが成功した場合、直ちに旧環境を終了します。
- D. AWS CloudFormationを使用して追加のステージング環境を展開し、Route 53 DNSに加重レコードを設定します。切り替え期間中、ワークロードの正常動作を確認しながら、徐々に加重値を増加させ、より多くのトラフィックを新しいステージング環境に振り向けます。新しいステージング環境がすべてのトラフィックを処理するまで、旧の本番環境を維持します。
この問題を見る →
-
Q59. AWS CodePipelineパイプラインがコードリリースプロセスを実装しています。このパイプラインはAWS CodeDeployと統合されており、各CodePipelineステージでアプリケーションのバージョンを複数のAmazon EC2インスタンスにデプロイできます。
最近のデプロイプロセスで、パイプラインがCodeDeployの問題により失敗しました。DevOpsチームは、デプロイ期間中のモニタリングと通知機能を強化し、問題解決までの時間を短縮したいと考えています。
問題が検出された際に、DevOpsエンジニアはどのように通知を設定すべきですか?
- A. CodePipelineおよびCodeDeployに対してAmazon CloudWatch Logsを実装し、AWS Configルールを作成してコードデプロイの問題を評価し、Amazon Simple Notification Service(Amazon SNS)トピックを作成して関係者にデプロイ問題を通知します。
- B. CodePipelineおよびCodeDeployに対してAmazon EventBridgeを実装し、AWS Lambda関数を作成してコードデプロイの問題を評価し、Amazon Simple Notification Service(Amazon SNS)トピックを作成して関係者にデプロイ問題を通知します。
- C. AWS CloudTrailを実装してCodePipelineおよびCodeDeployのAPI呼び出し情報を記録し、AWS Lambda関数を作成してコードデプロイの問題を評価し、Amazon Simple Notification Service(Amazon SNS)トピックを作成して関係者にデプロイ問題を通知します。
- D. CodePipelineおよびCodeDeployに対してAmazon EventBridgeを実装し、Amazon Inspector評価ターゲットを作成してコードデプロイの問題を評価し、Amazon Simple Notification Service(Amazon SNS)トピックを作成して関係者にデプロイ問題を通知します。
この問題を見る →
-
Q60. ある企業が、現在使用しているbashデプロイスクリプトをAWS開発ツールに置き換えたいと考えています。同社は現在、LAMPアプリケーションをアプリケーションロードバランサー(ALB)の後ろに配置された一連のAmazon EC2インスタンスにデプロイしています。デプロイ期間中、同社は提出されたアプリケーションの単体テストを実行し、サービスを停止・起動し、ロードバランサーからインスタンスを登録解除・再登録し、ファイルの権限を更新します。同社は、AWSサービスへの移行を通じて、これらのデプロイ機能を維持したいと考えています。
これらの要件を満たすソリューションはどれですか?
- A. AWS CodeBuildを使用してアプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動し、ALBからインスタンスを登録解除・再登録します。appspec.ymlファイルを使用して、カスタムスクリプトなしでファイルの権限を更新します。
- B. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションをAWS CodeDeployに移動します。CodeDeployのデプロイメントグループを使用してアプリケーションをテストし、ALBのインスタンスを登録解除・再登録し、サービスを再起動します。appspec.ymlファイルを使用して、カスタムスクリプトなしで権限を更新します。
- C. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションのソースコードをAWS CodeDeployに移動します。CodeDeployを使用してアプリケーションをテストします。CodeDeployのappspec.ymlファイルを使用して、カスタムスクリプトなしでサービスを再起動し、権限を更新します。AWS CodeBuildを使用してALBからインスタンスを登録解除・再登録します。
- D. AWS CodePipelineを使用してAWS CodeBuildをトリガーし、アプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動します。ALBからAWS CodeDeployデプロイメントグループ内のインスタンスを登録解除・再登録します。appspec.ymlファイルを更新して、カスタムスクリプトなしでファイルの権限を更新します。
この問題を見る →
-
Q61. ・多数のインスタンスがデプロイ期間中にトラフィックを処理できる必要があります。
・トラフィックはこれらのインスタンス間でバランスを保ち、インスタンス障害時に自動修復されます。
・新しいリビジョンを自動デプロイするために、新しいインスタンスのセットを起動でき、手動設定は不要です。
・トラフィックを新しい環境の半分の新規インスタンスに一度に再ルーティングする必要があります。少なくとも半分のインスタンスにトラフィックが再ルーティングされた場合、デプロイは成功と見なされ、そうでない場合は失敗と見なされます。
・新しいインスタンス群へのトラフィックルーティングを開始する前に、デプロイプロセス中に生成された一時ファイルを削除する必要があります。
・成功したデプロイ完了後、コスト削減のために、デプロイグループ内の元のインスタンスを直ちに削除する必要があります。
- A. Application Load Balancerとインプレースデプロイを使用します。デプロイグループに関連付けられたAuto Scalingグループを使用します。Auto Scalingグループの自動複製オプションを有効にし、デプロイ構成としてCodeDeployDefault.OneAtATimeを使用します。AWS CodeDeployにデプロイグループ内の元のインスタンスを終了させ、appspec.ymlのAllowTrafficフックを使用して一時ファイルを削除させます。
- B. アプリケーションロードバランサーとブルー/グリーンデプロイを使用します。デプロイグループに関連付けられたAuto ScalingグループおよびApplication Load Balancerターゲットグループを使用します。Auto Scalingグループの自動複製オプションを有効にし、最小健全ホスト数を50%と定義するカスタムデプロイ構成を作成し、それをデプロイグループに割り当てます。AWS CodeDeployにデプロイグループ内の元のインスタンスを終了させ、appspec.ymlのBeforeBlockTrafficフックを使用して一時ファイルを削除させます。
- C. アプリケーションロードバランサーとブルー/グリーンデプロイを使用します。デプロイグループに関連付けられたAuto ScalingグループおよびApplication Load Balancerターゲットグループを使用します。Auto Scalingグループの自動複製オプションを有効にし、デプロイ構成としてCodeDeployDefault.HalfAtATimeを使用します。AWS CodeDeployにデプロイグループ内の元のインスタンスを終了させ、appspec.ymlのBeforeAllowTrafficフックを使用して一時ファイルを削除させます。
- D. アプリケーションロードバランサーとインプレースデプロイを使用します。デプロイグループに関連付けられたAuto ScalingグループおよびApplication Load Balancerターゲットグループを使用します。Auto Scalingグループの自動複製オプションを有効にし、デプロイ構成としてCodeDeployDefault.AllAtOnceを使用します。AWS CodeDeployにデプロイグループ内の元のインスタンスを終了させ、appspec.ymlのBlockTrafficフックを使用して一時ファイルを削除させます。
この問題を見る →
-
Q62. ある企業が、Amazon Elastic Kubernetes Service(Amazon EKS)クラスターを使用して機械学習(ML)アプリケーションをホストしています。MLモデルおよびコンテナイメージのサイズが増加するにつれ、新しいPodの起動時間が8分にまで延びています。
開発エンジニアは、起動時間を秒単位に短縮する必要があります。ソリューションは、クラスターに最近追加されたノード上でPodが実行される際の起動時間を秒単位に短縮しなければなりません。
開発エンジニアは、新しいイメージがリポジトリにプッシュされたときに、Amazon Elastic Container Registry(Amazon ECR)リポジトリからコンテナイメージを取得するよう、AWS Systems Manager内のAutomationを呼び出すAmazon EventBridgeルールを作成しました。以前のDevOpsエンジニアは、クラスターおよびノードグループのタグ付けを構成済みです。
これらの要件を満たすために、以前のDevOpsエンジニアは何を行うべきですか?
- A. EKSクラスターのコントロールプレーンノード上でSystems Managerコマンドを実行するために、EventBridgeがSystems Managerを使用できるIAMロールを作成します。コントロールプレーンノードのタグを使用して対応するコンテナイメージを事前フェッチするSystems Manager State Managerアソシエーションを作成します。
- B. EKSクラスターのノード上でSystems Managerコマンドを実行するために、EventBridgeがSystems Managerを使用できるIAMロールを作成します。ノードのインスタンスタイプ(マシンサイズ)を使用して対応するコンテナイメージを事前フェッチするSystems Manager State Managerアソシエーションを作成します。
- C. EKSクラスターのノード上でSystems Managerコマンドを実行するために、EventBridgeがSystems Managerを使用できるIAMロールを作成します。ノードのタグを使用して対応するコンテナイメージを事前フェッチするSystems Manager State Managerアソシエーションを作成します。
- D. EKSクラスターのコントロールプレーンノード上でSystems Managerコマンドを実行するために、EventBridgeがSystems Managerを使用できるIAMロールを作成します。ノードのタグを使用して対応するコンテナイメージを事前フェッチするSystems Manager State Managerアソシエーションを作成します。
この問題を見る →
-
Q63. ある企業には、すべてのAmazon EC2インスタンスが、セキュリティチームが作成したAMIから起動しなければならないという方針があります。毎週、セキュリティチームは最新の準拠AMIに関する情報を含むメールを開発チームに送信します。
開発チームは、AWS CloudFormationを使用してアプリケーションをデプロイしています。開発者が新しいサービスを展開する際には、メール内でセキュリティチームが提供した最新のAMIを検索します。DevOpsエンジニアは、セキュリティチームが開発チームにAMI IDを提供するプロセスを自動化したいと考えています。
これらの要件を満たす、最もスケーラブルなソリューションは何ですか?
- A. セキュリティチームに対し、CloudFormationを使用してAMIの新バージョンを作成し、暗号化されたAmazon S3オブジェクト内にAMI ARNをスタック出力の一部として記録するよう指示します。開発者に対し、クロススタック参照を使用して暗号化S3オブジェクトを読み込み、最新のAMIを取得するよう指示します。
- B. セキュリティチームに対し、CloudFormationスタックを使用してAWS CodePipelineを作成し、新しいAMIをビルドし、パイプライン出力の一部として暗号化されたAmazon S3オブジェクトに最新のAMI ARNを配置するよう指示します。開発者に対し、自身のCloudFormationテンプレート内でクロススタック参照を使用してS3オブジェクトの場所と最新のAMI ARNを取得するよう指示します。
- C. セキュリティチームに対し、Amazon EC2 Image Builderを使用して新しいAMIを作成し、AMI ARNをAWS Systems Managerパラメータストアにパラメータとして格納するよう指示します。開発者に対し、CloudFormationスタック内でSSMタイプのパラメータを指定して、パラメータストアから最新のAMI ARNを取得するよう指示します。
- D. セキュリティチームに対し、Amazon EC2 Image Builderを使用して新しいAMIを作成し、各開発チームが通知を受け取れるようAmazon Simple Notification Service(Amazon SNS)トピックを作成するよう指示します。開発チームが通知を受け取った際、最新のAMI ARNでCloudFormationスタックを更新するAWS Lambda関数を作成するよう指示します。
この問題を見る →
-
Q64. ある企業が、現在使用しているbashデプロイスクリプトをAWS開発ツールに置き換えたいと考えています。同社は現在、LAMPアプリケーションをアプリケーションロードバランサー(ALB)の後ろに配置された一連のAmazon EC2インスタンスにデプロイしています。デプロイ期間中、同社は提出されたアプリケーションの単体テストを実行し、サービスを停止・起動し、ロードバランサーからインスタンスを登録解除・再登録し、ファイルの権限を更新します。同社は、AWSサービスへの移行を通じて、これらのデプロイ機能を維持したいと考えています。
これらの要件を満たすソリューションはどれですか?
- A. AWS CodeBuildを使用してアプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動し、ALBからインスタンスを登録解除・再登録します。appspec.ymlファイルを使用して、カスタムスクリプトなしでファイルの権限を更新します。
- B. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションをAWS CodeDeployに移動します。CodeDeployのデプロイメントグループを使用してアプリケーションをテストし、ALBのインスタンスを登録解除・再登録し、サービスを再起動します。appspec.ymlファイルを使用して、カスタムスクリプトなしで権限を更新します。
- C. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションのソースコードをAWS CodeDeployに移動します。CodeDeployを使用してアプリケーションをテストします。CodeDeployのappspec.ymlファイルを使用して、カスタムスクリプトなしでサービスを再起動し、権限を更新します。AWS CodeBuildを使用してALBからインスタンスを登録解除・再登録します。
- D. AWS CodePipelineを使用してAWS CodeBuildをトリガーし、アプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動します。ALBからAWS CodeDeployデプロイメントグループ内のインスタンスを登録解除・再登録します。appspec.ymlファイルを更新して、カスタムスクリプトなしでファイルの権限を更新します。
この問題を見る →
-
Q65. ・コンテンツを保存するAmazon S3バケット
・フロントエンドWebサーバーとしてのAmazon EC2
・画像処理のためのAWS Lambda
・名前付きキー関係データを保存するAmazon DynamoDB
チームは、このWebアプリケーションのトラフィックが大幅に増加すると予測しています。アプリケーションは、追加の負荷を継続的に処理できる必要があります。チームは、EC2フロントエンドに新しいサーバーを追加することで負荷変化に対応する初期テストを行いましたが、インスタンスの完全な設定には最大20分かかります。チームはこの設定時間を短縮したいと考えています。
エンジニアリングチームは、予測される要件を満たすとともに、最も弾力性と高可用性を実現するソリューションを実装するために、どのような措置を講じるべきですか?
- A. AWS OpsWorksを使用して、新しいEC2インスタンスの起動時に自動的に設定します。複数の可用性ゾーンにわたるApplication Load Balancerの後ろに配置されたAuto ScalingグループでEC2インスタンスを構成します。Amazon DynamoDB Auto Scalingを実装します。Amazon Route 53を使用して、アプリケーションのDNSレコードをアプリケーションロードバランサーを指すように設定します。
- B. 現在の容量を2倍にしたEC2インスタンスのセットをデプロイし、それらをアプリケーションロードバランサーの後ろに配置します。Amazon DynamoDBの読み取りおよび書き込みキャパシティユニットを増加させます。アプリケーションロードバランサーのエンドポイントを指すエイリアスレコードを、既存のAmazon Route 53 DNSレコードに追加します。
- C. Amazon CloudFrontをデプロイし、そのオリジンとしてAmazon S3を指定してWebアプリケーションをホストします。Amazon DynamoDB Auto Scalingを実装します。Amazon Route 53を使用して、アプリケーションのDNSレコードをCloudFrontのDNS名を指すように設定します。
- D. AWS Elastic Beanstalkと、すべてのWebコンポーネントを含むカスタムAMIを組み合わせて使用します。複数の可用性ゾーンにわたるApplication Load Balancerの後ろに配置されたAuto Scalingグループを使用してプラットフォームをデプロイします。Amazon DynamoDB Auto Scalingを実装します。Amazon Route 53を使用して、アプリケーションのDNSレコードをElastic Beanstalkロードバランサーを指すように設定します。
この問題を見る →
-
Q66. DevOpsエンジニアがコンテナベースのアーキテクチャを構築しています。エンジニアは、Amazon ECSクラスターおよびEC2コンテナインスタンスを起動するためのAmazon EC2 Auto Scalingグループを自動的にプロビジョニングするためにAWS CloudFormationテンプレートを使用することを決定しました。CloudFormationスタックの作成が成功した後、エンジニアはECSクラスターとEC2インスタンスが正常に作成され、スタックの作成が完了したにもかかわらず、EC2インスタンスが異なるECSクラスターに関連付けられていることに気づきました。
DevOpsエンジニアは、この問題を解決するためにCloudFormationテンプレートをどのように更新すべきですか?
- A. AWS::ECS::Clusterリソース内でEC2インスタンスを参照し、AWS::ECS::Serviceリソース内でECSクラスターを参照します。
- B. AWS::AutoScaling::LaunchConfigurationリソースのUserData属性内でECSクラスターを参照します。
- C. AWS::EC2::InstanceリソースのUserData属性内でECSクラスターを参照します。
- D. AWS::CloudFormation::CustomResourceリソース内でECSクラスターを参照し、適切なECSクラスターにEC2インスタンスを登録するAWS Lambda関数をトリガーします。
この問題を見る →
-
Q67. ある企業は、複数の開発チームが共有のAWSアカウントで作業する異なるビジネス部門を抱えています。このアカウント内で作成されるすべてのAmazon EC2リソースには、リソース作成者を特定するタグが付与されています。これらのタグ付けは、リソース作成直後の最初のイベント内で実行されます。
DevOpsエンジニアは、リソース作成者のユーザーIDおよびコストセンターIDを含むタグをリソースに追加する必要があります。DevOpsエンジニアは、コストセンターのマッピング情報を使用してAWS Lambda関数を作成し、リソースのタグ付けを行います。また、DevOpsエンジニアはAWSアカウント内でAWS CloudTrailを設定し、CloudTrailイベントログを保存するAmazon S3バケットを用意しています。
この要件を満たすソリューションはどれですか?
- A. S3バケット上でs3:ObjectTagging:Putイベントを呼び出すS3イベント通知を作成します。S3バケットでバージョン管理を有効化します。
- B. S3バケットでサーバーアクセスログ記録を有効化します。S3バケットでs3:ObjectTagging:*イベント向けのS3イベント通知を作成します。
- C. 1時間ごとに実行されるAmazon EventBridgeのスケジュールルールを作成し、Lambda関数を呼び出します。Lambda関数を修正してS3バケットからログを読み込むようにします。
- D. Amazon EC2をイベントソースとするAmazon EventBridgeルールを作成します。このルールをCloudTrailによって配信されたイベントに一致するように設定し、Lambda関数をターゲットとして設定します。
この問題を見る →
-
Q68. ある企業が、レコード処理を行う定常的なアプリケーションを実行しています。アプリケーションのコンポーネントは、Auto Scalingグループ内のAmazon EC2インスタンス上で動作します。各レコードの処理は、ステップごとの順次操作であり、それぞれが5分以内に完了する必要があります。
現在のシステムの制限は、いずれかのステップが失敗した場合、アプリケーション全体が最初からレコードを再処理することです。企業は、アーキテクチャを更新して、失敗したステップのみを再処理できるようにしたいと考えています。
これらの要件を満たす最も効率的なビジネスソリューションは何ですか?
- A. レコードをAmazon S3に書き込むWebアプリケーションを作成します。S3イベント通知をAmazon Simple Notification Service (Amazon SNS)トピックに発行します。EC2インスタンスを使用してAmazon SNSをポーリングし、処理を開始します。中間結果をAmazon S3に保存します。
- B. アプリケーション内でロジックを実装して処理ステップを実行します。アプリケーションコードをコンテナで実行するように変換し、AWS Fargateでコンテナインスタンスを管理します。コンテナを、自身を呼び出してステップ間の状態を渡すように設定します。
- C. レコードをAmazon Kinesis Data Streamsに送信するWebアプリケーションを作成します。Kinesis Data StreamsおよびAWS Lambda関数を活用して処理を非同期化します。
- D. レコードをAWS Step Functionsに送信するWebアプリケーションを作成します。処理をStep FunctionsのタスクとAWS Lambda関数に分割します。
この問題を見る →
-
Q69. ある企業が、サードパーティの外部ベンダーに自社AWSアカウントへのアクセス権限を付与しています。このベンダーは、AWSアカウント内でさまざまなAWS操作を実行する必要があり、多様なIAM権限を必要としています。企業は、IAMユーザーを作成し、IAMポリシーをアタッチし、そのIAMユーザーの認証情報をベンダーに提供することでアクセス権限を付与しています。
セキュリティ監査では、ベンダーのアクセス権限が過剰であることが判明しました。企業は最小権限の原則を適用し、ベンダーが過去6か月間に実行した操作のみを許可する権限を継続的に付与したいと考えています。
- A. AWS Identity and Access Management Access Analyzerを用いて、IAMユーザーのAWS CloudTrail履歴に基づき新しいIAMポリシーを生成します。IAMユーザーのポリシーを新しく生成されたポリシーに置き換えます。
- B. AWS Identity and Access Management Access Analyzerを用いて、IAMユーザーのAWS CloudTrail履歴に基づき新しいIAMポリシーを生成します。新しく生成されたポリシーをIAMユーザーの権限境界としてアタッチします。
- C. AWS Identity and Access Management Access Analyzerを用いてIAMユーザーの最終アクセス情報を検出し、最終アクセスのレビューで特定されたサービスおよび操作のみを許可する新しいIAMポリシーを作成します。IAMユーザーのポリシーを新しく生成されたポリシーに置き換えます。
- D. AWS Identity and Access Management Access Analyzerを用いてIAMユーザーの最終アクセス情報を検出し、最終アクセスのレビューで特定されたサービスおよび操作のみを許可する新しいIAMポリシーを作成します。新しく生成されたポリシーをIAMユーザーの権限境界としてアタッチします。
この問題を見る →
-
Q70. グローバル企業がAWS Organizationsを活用して複数のAWSアカウントを管理しています。同社は、内部向けアプリケーションおよびパブリック向けアプリケーションをホストしています。各アプリケーションチームは、自社のAWSアカウントでアプリケーションをホストしており、AWS Organizations内ではすべてのアカウントが1つの組織に統合されています。そのうち1つのAWS Organizationsメンバーアカウントは、CI/CDパイプラインをホストする集中型DevOpsアカウントであり、アプリケーションチームはこのアカウントを用いて各々のターゲットAWSアカウントへアプリケーションをデプロイします。集中型DevOpsアカウントには、デプロイに必要なIAMロールが存在します。
あるアプリケーションチームが、アプリケーションAWSアカウント内のAmazon Elastic Kubernetes Service (Amazon EKS)クラスターへアプリケーションをデプロイしようとしています。アプリケーションAWSアカウントには、デプロイに必要なIAMロールが存在します。デプロイは、集中型DevOpsアカウントで設定されたAWS CodeBuildプロジェクトを介して実行されます。CodeBuildプロジェクトは、CodeBuildサービス用のIAMロールを使用しています。CodeBuildがクロスアカウントのEKSクラスターに接続しようとした際、承認されていないエラーが発生し、デプロイが失敗しました。
このエラーを解決するソリューションはどれですか?
- A. アプリケーションアカウントのデプロイIAMロールを、集中型DevOpsアカウントとの信頼関係を持つように設定します。信頼関係をsts:AssumeRole操作を許可するように設定します。アプリケーションアカウントのデプロイIAMロールに、EKSクラスターへのアクセスに必要な権限を付与します。EKSクラスターのaws-auth ConfigMapを設定し、ロールを適切なKubernetesシステム権限にマッピングします。
- B. 集中型DevOpsアカウントのデプロイIAMロールを、アプリケーションアカウントとの信頼関係を持つように設定します。信頼関係をsts:AssumeRole操作を許可するように設定します。集中型DevOpsアカウントのデプロイIAMロールに、CodeBuildに対する必要なアクセス権限を付与します。
- C. 集中型DevOpsアカウントのデプロイIAMロールを、アプリケーションアカウントとの信頼関係を持つように設定します。信頼関係をsts:AssumeRoleWithSAML操作を許可するように設定します。集中型DevOpsアカウントのデプロイIAMロールに、CodeBuildに対する必要なアクセス権限を付与します。
- D. アプリケーションアカウントのデプロイIAMロールを、AWS Control Tower管理アカウントとの信頼関係を持つように設定します。信頼関係をsts:AssumeRole操作を許可するように設定します。アプリケーションアカウントのデプロイIAMロールに、EKSクラスターへのアクセスに必要な権限を付与します。EKSクラスターのaws-auth ConfigMapを設定し、ロールを適切なKubernetesシステム権限にマッピングします。
この問題を見る →
-
Q71. ある企業が、Auto Scalingグループ内のAmazon EC2インスタンス上で実行されるアプリケーションを保有しています。このアプリケーションは、Amazon Simple Queue Service (SQS)キューからメッセージを処理します。
開発エンジニアは、アプリケーションがSQSキューから一連のメッセージを処理するのに数分かかると観測しました。メッセージ処理中のAuto Scalingグループの平均CPU利用率は、ターゲット追跡スケーリングポリシーのしきい値を超えています。SQSキューを処理するアプリケーションは、Amazon CloudWatch Logsにログを出力します。
開発エンジニアは、キューが迅速に処理されるようにする必要があります。
これらの要件を満たすために最小限の操作オーバーヘッドで実現可能なソリューションはどれですか?
- A. AWS Lambda関数を作成します。SQSキューのApproximateNumberOfMessagesVisible属性およびAuto Scalingグループのインスタンス数を用いて、各インスタンスあたりのキュー内のメッセージ数を近似計算し、Lambda関数でカスタムメトリクスを発行します。1時間ごとにAmazon EventBridgeのスケジュールルールを設定してLambda関数を実行します。Auto Scalingグループに対して、このカスタムメトリクスを用いるターゲット追跡スケーリングポリシーを作成します。
- B. AWS Lambda関数を作成します。SQSキューのApproximateNumberOfMessagesVisible属性およびAuto Scalingグループのインスタンス数を用いて、各インスタンスあたりのキュー内のメッセージ数を近似計算し、Lambda関数でカスタムメトリクスを発行します。アプリケーションログに対してCloudWatch Logsのサブスクリプションフィルターを作成し、Lambda関数をターゲットとして設定します。Auto Scalingグループに対して、このカスタムメトリクスを用いるターゲット追跡スケーリングポリシーを作成します。
- C. Auto Scalingグループに対してターゲット追跡スケーリングポリシーを作成します。このポリシーで、SQSキューのApproximateNumberOfMessagesVisible属性およびAuto Scalingグループのインスタンス数を用い、CloudWatchのメトリクス数学(例:メッセージ総数 ÷ インスタンス数)により各インスタンスあたりのキュー内のメッセージ数を計算します。この計算された値をスケーリングの基準とします。
- D. AWS Lambda関数を作成し、SQSキューのApproximateNumberOfMessagesVisible属性をCloudWatch Logsグループにログ出力します。5分ごとにAmazon EventBridgeのスケジュールルールを設定してLambda関数を実行します。CloudWatch Logsグループからログイベント数を計算するメトリクスフィルターを作成します。Auto Scalingグループに対して、このカスタムメトリクスを用いるターゲット追跡スケーリングポリシーを作成します。
この問題を見る →
-
Q72. ある企業が、AWS Cloud Development Kit (AWS CDK)アプリケーションをインフラストラクチャで使用しています。AWS CDKアプリケーションは、AWS Lambda関数およびそれらにアタッチされたIAMロールを作成します。同社は、業界標準のセキュリティコンプライアンスを遵守する組織です。開発者は、AWS CDKアプリケーションのデプロイに必要なロールを引き受けることができます。
セキュリティチームは、開発者およびAWS CDKアプリケーションのデプロイロールが、必要以上に多くの権限を持っていることを発見しました。また、CDKアプリケーションが作成するLambda関数に関連付けられたロールが、実際に必要な権限よりも広範な権限を保持していることも確認されました。開発者は、余分な権限を付与される可能性があります。
- A. SCP(Service Control Policy)を作成し、開発者ロールおよびAWS CDKアプリケーションデプロイロールに対してIAM:CreateRoleおよびIAM:UpdateRole操作を拒否します。新しいIAMロールを中央で作成し、開発者がLambda関数にアタッチできるようにします。
- B. IAM権限境界ポリシーを作成します。このポリシー内でAWS CDKアプリケーションが必要とする最大操作を定義します。アカウントのAWS CDKブートストラップ設定を権限境界で更新します。AWS CDKアプリケーションの設定を更新し、このポリシーをデフォルトの権限境界として使用するようにします。
- C. IAM権限境界ポリシーを作成します。このポリシー内でAWS CDKアプリケーションが必要とする最大操作を定義します。開発者に対し、AWS CDKアプリケーションコード内でロールを作成する際に権限境界ポリシー名を指定するよう指示します。
- D. SCP(Service Control Policy)を作成し、開発者ロールに対してIAM:CreateRoleおよびIAM:UpdateRole操作を拒否します。AWS CDKデプロイロールに、Lambda関数に関連付けられたロールを作成するアクセス権限を付与します。AWS Identity and Access Management Access Analyzerを実行し、Lambda関数ロールに不要な権限がないか検証します。
この問題を見る →
-
Q73. 大規模企業がAWS上でWebアプリケーションをデプロイしています。このアプリケーションはApplication Load Balancerの背後でAmazon EC2インスタンス上で実行され、複数の可用性ゾーンにまたがるAuto Scalingグループで実行されます。アプリケーションは、Amazon RDS OracleデータベースインスタンスおよびAmazon DynamoDBにデータを保存します。開発、テスト、本番環境がそれぞれ独立しています。
- A. AWS Systems Manager SecureStringパラメータからAWSサービスへのアクセスキーを取得します。Systems Manager SecureStringパラメータからデータベース認証情報を取得します。
- B. AWSサービスへのアクセスにEC2 IAMロールを付与したEC2インスタンスを起動します。データベース認証情報をAWS Secrets Managerから取得します。
- C. AWS Systems ManagerのプレーンテキストパラメータからAWSサービスへのアクセスキーを取得します。Systems Manager SecureStringパラメータからデータベース認証情報を取得します。
- D. AWSサービスへのアクセスにEC2 IAMロールを付与したEC2インスタンスを起動します。データベースパスワードを暗号化された設定ファイルにアプリケーションアーティファクトとともに格納します。
この問題を見る →
-
Q74. ある会社は、AWS Organizations を使用して複数のアカウントを管理しており、その組織内のアカウントで機密性の高いワークロードを実行しています。この会社は、Amazon VPC の CIDR ブロックおよびオンプレミスのハードウェアに割り当てる IP アドレスを含む単一の IP アドレス範囲を使用しています。
この会社は、自社の IP アドレス範囲外からの委任されたユーザーが組織内のアカウントで AWS 操作を実行することを防止するソリューションを必要としています。
これらの要件を満たすソリューションはどれですか?
- A. AWS Firewall Manager を組織に対して設定します。AWS Network Firewall ポリシーを作成し、自社の IP アドレス範囲からの送信トラフィックのみを許可します。このポリシーを組織内のすべてのアカウントに適用します。
- B. 組織内で、自社の IP アドレス範囲外の送信元 IP アドレスを拒否する Service Control Policy (SCP) を作成します。この SCP を組織のルートにアタッチします。
- C. Amazon GuardDuty を組織に対して設定します。自社の IP 範囲に対して信頼された IP アドレスリストを作成します。組織全体で信頼された IP リストを有効化します。
- D. 組織内で、自社の IP アドレス範囲内の送信元 IP アドレスを許可する Service Control Policy (SCP) を作成します。この SCP を組織のルートにアタッチします。
この問題を見る →
-
Q75. Amazon EC2 Auto Scaling グループが、特定の AMI から起動される EC2 インスタンスを管理しています。情報システム部門は、EC2 インスタンスに Systems Manager Agent をインストール済みです。Auto Scaling グループによって起動された EC2 インスタンスには、タグが自動的に適用されます。
Auto Scaling グループによって起動された EC2 インスタンスは、適切なオペレーティング システム構成を確実に適用する必要があります。
- A. 必要なインスタンス構成を実行する Systems Manager Run Command ドキュメントを作成します。EC2 インスタンスが最新のパッチを適用していない場合、Systems Manager Compliance を使用して Run Command ドキュメントを呼び出します。
- B. Systems Manager State Manager アソシエーションを作成し、これを Systems Manager Command ドキュメントに関連付けます。即時実行可能なタグクエリを作成します。
- C. 必要なインスタンス構成を指定する Systems Manager Run Command タスクを作成します。日常実行される Systems Manager Maintenance Window を作成します。Maintenance Window に Run Command タスクを登録し、ターゲットを指定します。
- D. Systems Manager Patch Manager のパッチベースラインとパッチグループを作成し、Auto Scaling グループと同じタグを使用します。パッチベースラインでパッチグループを登録します。Systems Manager Run Command を使用してインスタンスをパッチする Systems Manager Command ドキュメントを定義します。
この問題を見る →
-
Q76. ・アプリケーションは、1 回に 1 つのインスタンスにデプロイされるようにし、キューに蓄積されたトラフィックを継続的に提供できるようにする必要があります。
・このアプリケーションは CPU 集約型であり、監視が必要です。
・デプロイされたインスタンスの CPU 使用率が 85% を超えた場合、デプロイは自動的にロールバックされる必要があります。
- A. AWS CloudFormation を使用して AWS Step Functions ステートマシンと Auto Scaling ライフサイクルフックを作成し、1 回に 1 つのインスタンスを待機状態に移行させます。AWS Systems Manager Automation を使用して各インスタンスへの更新をデプロイし、ハートビートタイムアウトを使用して Auto Scaling グループへ戻します。
- B. AWS CodeDeploy と Amazon EC2 Auto Scaling を組み合わせて使用します。CPU 使用率メトリクスに関連付けられたアラームを設定します。デプロイ戦略として CodeDeployDefault.OneAtATime を構成します。デプロイグループ内で、アラームしきい値違反時にデプロイをロールバックする自動ロールバックを構成します。
- C. 負荷分散および AWS Auto Scaling のために AWS Elastic Beanstalk を使用します。CPU 使用率メトリクスに関連付けられたアラームを設定します。ローリングデプロイを固定バッチサイズ 1 で構成します。強化ヘルス機能を有効化してデプロイ状態を監視し、事前に作成したアラームに基づいてロールバックします。
- D. Amazon EC2 Auto Scaling を使用して AWS Systems Manager でブルー/グリーンデプロイを実行します。CPU 使用率メトリクスに関連付けられたアラームを設定します。1 回に 1 つずつ更新をデプロイします。Auto Scaling グループ内で、アラームしきい値違反時にデプロイをロールバックする自動ロールバックを構成します。
この問題を見る →
-
Q77. 開発チームは、アプリケーションのバージョン管理に AWS CodeCommit を使用しています。また、CI/CD インフラストラクチャとして AWS CodePipeline、AWS CodeBuild、AWS CodeDeploy を使用しています。CodeCommit 内で、開発チームは最近、長期間実行されるテストを含むコードベースへのプルリクエストをマージしました。この結果、不要なリソース消費と遅延が発生しました。
DevOps エンジニアは、CodeCommit 内でプルリクエストを自動テストし、レビュアーがコードレビューの一部として自動テストの結果を容易に確認できるようにする必要があります。
- A. pullRequestStatusChanged イベントに応答する Amazon EventBridge ルールを作成します。アプリケーションテストを実行する CodeBuild アクションを使用して CodePipeline パイプラインを呼び出す AWS Lambda 関数を作成します。Lambda 関数をプログラムして、CodeBuild バッジをプルリクエストのコメントとして投稿し、開発者がコードレビューでそのバッジを確認できるようにします。
- B. pullRequestCreated イベントに応答する Amazon EventBridge ルールを作成します。アプリケーションテストを実行する CodeBuild アクションを使用して CodePipeline パイプラインを呼び出す AWS Lambda 関数を作成します。Lambda 関数をプログラムして、テスト結果完了時に CodeBuild のテスト結果をプルリクエストのコメントとして投稿します。
- C. pullRequestCreated および pullRequestSourceBranchUpdated イベントに応答する Amazon EventBridge ルールを作成します。アプリケーションテストを実行する CodeBuild アクションを使用して CodePipeline パイプラインを呼び出す AWS Lambda 関数を作成します。Lambda 関数をプログラムして、CodeBuild バッジをプルリクエストのコメントとして投稿し、開発者がコードレビューでそのバッジを確認できるようにします。
- D. pullRequestStatusChanged イベントに応答する Amazon EventBridge ルールを作成します。アプリケーションテストを実行する CodeBuild アクションを使用して CodePipeline パイプラインを呼び出す AWS Lambda 関数を作成します。Lambda 関数をプログラムして、テスト結果完了時に CodeBuild のテスト結果をプルリクエストのコメントとして投稿します。
この問題を見る →
-
Q78. DevOps エンジニアは、Web サービスをデプロイするための AWS CloudFormation テンプレートを作成しています。Web サービスは、Application Load Balancer (ALB) の背後、プライベートサブネット内の Amazon EC2 インスタンス上で実行されます。DevOps エンジニアは、IPv6 アドレスを持つクライアントからのリクエストをこのサービスが受け入れられるようにする必要があります。
- A. VPC および EC2 インスタンスのプライベートサブネットに IPv6 CIDR ブロックを追加します。IPv6 ネットワーク向けのルートテーブルエントリを作成し、IPv6 対応の EC2 インスタンスタイプを使用し、各 EC2 インスタンスに IPv6 アドレスを割り当てます。
- B. 各 EC2 インスタンスに IPv6 エラスティック IP アドレスを割り当てます。ターゲットグループを作成し、EC2 インスタンスをターゲットとして追加します。ALB のポート 443 にリスナーを作成し、ターゲットグループを ALB に関連付けます。
- C. ALB をネットワークロードバランサー (NLB) に置き換えます。NLB の VPC およびサブネットに IPv6 CIDR ブロックを追加し、NLB に IPv6 エラスティック IP アドレスを割り当てます。
- D. ALB の VPC およびサブネットに IPv6 CIDR ブロックを追加します。ポート 443 にリスナーを作成し、ALB でデュアルスタック IP アドレスタイプを指定します。ターゲットグループを作成し、EC2 インスタンスをターゲットとして追加します。ターゲットグループを ALB に関連付けます。
この問題を見る →
-
Q79. ある会社は多数のアプリケーションを運用しています。異なるチームがさまざまな言語およびフレームワークを使用してアプリケーションを開発しており、これらはローカルおよび異なるオペレーティングシステムを搭載した複数のサーバー上で実行されています。各チームは独自のリリースプロトコルおよびプロセスを持っています。この会社は、これらのアプリケーションのリリースおよび保守の複雑さを軽減したいと考えています。
この会社は、これらのアプリケーションを含む技術スタック全体を AWS へ移行中です。同社は、ソースコードの集中管理、一貫性および自動化されたデリバリーパイプライン、そして可能な限り少ない下位インフラストラクチャの保守作業を望んでいます。
- A. すべてのアプリケーションに対して 1 つの AWS CodeCommit リポジトリを作成します。各アプリケーションのコードを異なるブランチに配置します。ブランチをマージし、AWS CodeBuild を使用してアプリケーションをビルドします。AWS CodeDeploy を使用して、集中管理されたアプリケーションサーバーにアプリケーションをデプロイします。
- B. 各アプリケーションに対して個別の AWS CodeCommit リポジトリを作成します。AWS CodeBuild を使用して 1 つのアプリケーションを一度にビルドします。AWS CodeDeploy を使用して、集中管理されたアプリケーションサーバーにアプリケーションをデプロイします。
- C. 各アプリケーションに対して個別の AWS CodeCommit リポジトリを作成します。AWS CodeBuild を使用して 1 つのアプリケーションを一度にビルドし、各サーバー用に AMI を作成します。AWS CloudFormation StackSets を使用して、これらの AMI を用いて Amazon EC2 インスタンスの自動構成および停止を実行します。
- D. 各アプリケーションに対して個別の AWS CodeCommit リポジトリを作成します。AWS CodeBuild を使用して、各アプリケーションの Docker イメージを Amazon Elastic Container Registry (Amazon ECR) にビルドします。AWS CodeDeploy を使用して、AWS Fargate が管理するインフラストラクチャ上の Amazon Elastic Container Service (Amazon ECS) にアプリケーションをデプロイします。
この問題を見る →
-
Q80. ある会社は、AWS Elastic Beanstalk でワンタイムデプロイ方式を使用してアプリケーションをデプロイしています。アプリケーションの設定ミスにより、最近のデプロイが失敗し、重大なダウンタイムが発生しました。
このようなダウンタイムの再発を防ぐため、DevOps エンジニアはアプリケーションのパフォーマンスを維持しながらデプロイ方法を改善する必要があります。DevOps エンジニアは、インスタンス上でのアプリケーションバージョンの構成が一貫していることを保証し、新しい環境を作成せずにそれを達成する必要があります。
- A. 今後のアプリケーション更新のために、ローリングデプロイ戦略に切り替えます。
- B. 今後のアプリケーション更新のために、追加のバッチ戦略を伴うローリングデプロイに切り替えます。
- C. 今後のアプリケーション更新のために、イミュータブルデプロイ戦略に切り替えます。
- D. 今後のアプリケーション更新のために、ブルー/グリーンデプロイ戦略に切り替えます。
この問題を見る →
-
Q81. DevOps エンジニアは、既存の 3 層アプリケーションに対してブルー/グリーンデプロイを設定する必要があります。このアプリケーションは Amazon EC2 インスタンス上で実行され、Amazon RDS データベースを使用しています。EC2 インスタンスは Application Load Balancer (ALB) の背後で実行され、Auto Scaling グループに属しています。
DevOps エンジニアは、ブルー環境用の起動テンプレートおよび Auto Scaling グループを作成しました。また、グリーン環境用の起動テンプレートおよび Auto Scaling グループも作成しました。各 Auto Scaling グループは、対応するブルーまたはグリーンのターゲットグループにデプロイされます。ターゲットグループは、EC2 インスタンス上でどのソフトウェア(ブルーまたはグリーン)をロードするかを指定します。ALB は、ブルー環境のターゲットグループまたはグリーン環境のターゲットグループにトラフィックを送信するように設定できます。www.example.com の Amazon Route 53 レコードは ALB を指しています。
デプロイでは、ブルー環境の EC2 インスタンス上で実行されているソフトウェアへのトラフィックを、グリーン環境の EC2 インスタンス上で新規デプロイされたソフトウェアに完全に切り替える必要があります。
- A. グリーン環境の Auto Scaling グループのローリング再起動を開始し、グリーン環境の EC2 インスタンスに新ソフトウェアをデプロイします。ローリング再起動完了後、AWS CLI コマンドを使用して ALB を更新し、トラフィックをグリーン環境のターゲットグループに送信します。
- B. AWS CLI コマンドを使用して ALB を更新し、トラフィックをグリーン環境のターゲットグループに送信します。その後、グリーン環境の Auto Scaling グループのローリング再起動を開始し、グリーン環境の EC2 インスタンスに新ソフトウェアをデプロイします。
- C. 起動テンプレートを更新し、グリーン環境のソフトウェアをブルー環境の EC2 インスタンスにデプロイします。両環境のターゲットグループおよび Auto Scaling グループは変更せず、ブルー環境の EC2 インスタンスのローリング再起動を実行します。
- D. グリーン環境の Auto Scaling グループのローリング再起動を開始し、グリーン環境の EC2 インスタンスに新ソフトウェアをデプロイします。ローリング再起動完了後、Route 53 DNS を更新して ALB のグリーン環境エンドポイントを指すようにします。
この問題を見る →
-
Q82. ある企業がレガシーアプリケーションをAWSに移行しようとしています。DevOpsエンジニアは、このレガシーアプリケーションのデプロイ可能なアーティファクトを構築するプロセスを自動化する必要があります。ソリューションは、デプロイ可能なアーティファクトを既存のAmazon S3バケットに保存し、今後のデプロイで参照できるようにしなければなりません。
これらの要件を最も効率的に満たすソリューションはどれですか?
- A. レガシーアプリケーションのすべての依存関係を含むカスタムDockerイメージを作成します。このカスタムDockerイメージを新しいAmazon Elastic Container Registry (Amazon ECR)リポジトリに保存します。カスタムDockerイメージを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存するよう、新しいAWS CodeBuildプロジェクトを設定します。
- B. 新しいAmazon EC2インスタンスを起動します。EC2インスタンス上にレガシーアプリケーションのすべての依存関係をインストールします。このEC2インスタンスを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存します。
- C. カスタムEC2イメージビルダーイメージを作成します。このイメージ上にレガシーアプリケーションのすべての依存関係をインストールします。このイメージから新しいAmazon EC2インスタンスを起動します。新しいEC2インスタンスを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存します。
- D. 複数の可用性ゾーンで実行されるAWS Fargateプロファイルを持つAmazon Elastic Kubernetes Service (Amazon EKS)クラスターを作成します。レガシーアプリケーションのすべての依存関係を含むカスタムDockerイメージを作成します。このカスタムDockerイメージを新しいAmazon Elastic Container Registry (Amazon ECR)リポジトリに保存します。EKSクラスター内のカスタムDockerイメージを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存します。
この問題を見る →
-
Q83. ある企業が、世界中の複数の国(AWSリージョン外)でサービスを提供するグローバルな製品を展開しています。開発チームは、この製品をサポートするためにAmazon API Gatewayを用いてAPIをデプロイする必要があります。
APIは冗長性を確保してデプロイされる必要があります。各デプロイ先のロケーションは、独立した可用性を提供しなければなりません。また、各デプロイ先には独自のカスタムドメインURLが必要であり、APIユーザーのリクエストに対してパフォーマンスを最適化する必要があります。
これらの要件を満たすソリューションはどれですか?
- A. 米国東部(バージニア北部)リージョンにAPI Gatewayのエッジ最適化APIエンドポイントをデプロイします。API用にAPI Gatewayのカスタムドメインを作成します。このAPIのカスタムドメイン向けに、地理的近接性ルーティングポリシーを適用したAmazon Route 53レコードセットを作成します。地域偏向を最大許容値まで高めます。
- B. 米国東部(バージニア北部)リージョンにAPI GatewayのリージョナルAPIエンドポイントをデプロイします。API GatewayのAPIをパブリックApplication Load Balancer (ALB)に統合します。Global Acceleratorの標準アクセラレータを作成します。このエンドポイントを、アクセラレータに割り当てられたDNS名を指すよう設定されたAmazon Route 53エイリアスレコードセットに関連付けます。
- C. 企業の製品がデプロイされる各AWSリージョンに、API GatewayのリージョナルAPIエンドポイントをデプロイします。各リージョンでデプロイされたAPI Gateway APIに対して、それぞれのAPI Gatewayカスタムドメインを作成します。各デプロイされたAPI Gatewayカスタムドメインに対して、遅延ルーティングポリシーを適用したAmazon Route 53レコードセットを作成します。
- D. 米国東部(バージニア北部)リージョンにAPI Gatewayのエッジ最適化APIエンドポイントをデプロイします。Amazon CloudFrontディストリビューションを作成します。別のドメインでCloudFrontディストリビューションを設定し、API Gatewayの呼び出しURLをオリジンとして指定します。シンプルルーティングポリシーを適用したAmazon Route 53エイリアスレコードセットを作成し、そのルーティングポリシーをCloudFrontディストリビューションのドメインに指向させます。
この問題を見る →
-
Q84. セキュリティチームは、AWS Organizations内で同一組織に属する複数のアカウントにおけるユーザー操作およびAPI呼び出しを監視するためにAWS CloudTrailを活用したいと考えています。セキュリティチームは、各アカウントのユーザーがCloudTrailを無効化できないようにする必要があります。
- A. すべてのOU(Organizational Unit)に、cloudtrail:StopLoggingおよびcloudtrail:DeleteTrailアクションを拒否するサービス制御ポリシー(SCP)を適用します。
- B. 各アカウントでIAMポリシーを作成し、cloudtrail:StopLoggingおよびcloudtrail:DeleteTrailアクションを拒否します。
- C. ユーザーがアカウント内でCloudTrailを無効化した際にセキュリティチームに通知するよう、Amazon CloudWatchアラームを設定します。
- D. ユーザーがアカウント内でCloudTrailを無効化した場合に、AWS Configを用いて自動的にCloudTrailを再有効化します。
この問題を見る →
-
Q85. DevOpsエンジニアは、動画配信会社の動画ファイルを管理するアプリケーションを管理しています。このアプリケーションは、Application Load Balancer(ALB)の背後で動作するAmazon EC2インスタンス上で実行されています。これらのインスタンスは、複数の可用性ゾーンにまたがるAuto Scalingグループで実行されています。データはAmazon RDS PostgreSQLのマルチAZデータベースインスタンスに格納され、動画ファイルはAmazon S3バケットに保存されています。通常、S3バケットには1日に50GBの新しい動画が追加されます。エンジニアは、データ損失を最小限に抑え、復旧時間を最短にするマルチリージョンのディザスタリカバリ計画を実装したいと考えています。現在のアプリケーションインフラストラクチャは、すでにAWS CloudFormationで記述されています。エンジニアは、システムの稼働時間要件および復旧目標を満たすために、どのデプロイオプションを選択すべきでしょうか?
- A. 第2のリージョンのCloudFormationテンプレートからアプリケーションを起動し、Auto Scalingグループの容量を1に設定します。第2のリージョンにAmazon RDSの読み取り専用レプリカを作成します。第2のリージョンで、元のS3バケットと新しいS3バケット間のクロスリージョンレプリケーションを有効化します。フェイルオーバー時には、読み取り専用レプリカをプライマリに昇格させます。CloudFormationスタックを更新し、Auto Scalingグループの容量を増加させます。
- B. 第2のリージョンのCloudFormationテンプレートからアプリケーションを起動し、Auto Scalingグループの容量を1に設定します。Amazon RDSのクロスリージョンスナップショットを第2のリージョンに毎日撮影するスケジュールタスクを作成します。第2のリージョンで、元のS3バケットとAmazon Glacier間のクロスリージョンレプリケーションを有効化します。障害発生時には、第2のリージョンで新しいアプリケーションスタックを起動し、最新のスナップショットからデータベースを復元します。
- C. 第2のリージョンのCloudFormationテンプレートからアプリケーションを起動し、Auto Scalingグループの容量を1に設定します。Amazon CloudWatch Eventsを用いて夜間タスクをスケジュールし、データベーススナップショットを撮影し、それを第2のリージョンにコピーして、第2のリージョンのデータベースインスタンスを置き換えます。第2のリージョンで、元のS3バケットと新しいS3バケット間のクロスリージョンレプリケーションを有効化します。フェイルオーバー時には、Auto Scalingグループの容量を増加させます。
- D. Amazon CloudWatch Eventsを用いて夜間タスクをスケジュールし、データベーススナップショットを撮影して第2のリージョンにコピーします。S3イベント通知に応じて各オブジェクトを第2のリージョンの新しいS3バケットにコピーするAWS Lambda関数を作成します。第2のリージョンで、CloudFormationテンプレートからアプリケーションを起動し、最新のスナップショットからデータベースを復元します。
この問題を見る →
-
Q86. ある企業が、1つのAWSアカウントを用いて1つのAWSリージョンで数百台のAmazon EC2インスタンスを実行しています。このアカウントでは、毎日多数の新しいEC2インスタンスが起動および終了しています。また、1週間以上継続して実行中の既存のEC2インスタンスも含まれています。
企業のセキュリティポリシーでは、実行中のすべてのEC2インスタンスがEC2インスタンスプロファイルを使用することを義務付けています。EC2インスタンスがインスタンスプロファイルをアタッチされていない場合、そのインスタンスは、未割り当てのIAM権限を持つデフォルトのインスタンスプロファイルを使用しなければなりません。
DevOpsエンジニアがアカウントをレビューしたところ、いくつかのEC2インスタンスがインスタンスプロファイルなしで実行されていることが確認されました。レビュー期間中、DevOpsエンジニアは、新しいEC2インスタンスがインスタンスプロファイルなしで起動していることも観測しました。
このリージョンで実行中の既存および今後起動するすべてのEC2インスタンスにインスタンスプロファイルを確実にアタッチするソリューションはどれですか?
- A. Amazon EventBridgeルールを設定し、EC2 RunInstances API呼び出しに応答します。このルールを設定して、AWS Lambda関数を呼び出し、EC2インスタンスにデフォルトのインスタンスプロファイルをアタッチします。
- B. AWS Configのマネージドルール「ec2-instance-profile-attached」を、構成変更をトリガーとするタイプで設定します。自動修復アクションを設定し、AWS Systems Manager Automationランブックを呼び出して、EC2インスタンスにデフォルトのインスタンスプロファイルをアタッチします。
- C. Amazon EventBridgeルールを設定し、EC2 StartInstances API呼び出しに応答します。このルールを設定して、AWS Systems Manager Automationランブックを呼び出し、EC2インスタンスにデフォルトのインスタンスプロファイルをアタッチします。
- D. AWS Configのマネージドルール「iam-role-managed-policy-check」を、構成変更をトリガーとするタイプで設定します。自動修復アクションを設定し、AWS Lambda関数を呼び出して、EC2インスタンスにデフォルトのインスタンスプロファイルをアタッチします。
この問題を見る →
-
Q87. ある企業が、12台のAmazon EC2インスタンスで実行されるアプリケーションを運用しています。これらのインスタンスは、3つの可用性ゾーンにまたがるAmazon EC2 Auto Scalingグループで実行されています。
典型的な1日のうち、各EC2インスタンスのCPU使用率は業務時間中は30%、業務時間後は10%です。CPU使用率は、業務時間開始直前の数分間で急激に上昇します。その他のCPU使用率の上昇は漸進的です。DevOpsエンジニアはコストを最適化しつつ、アプリケーションの可用性を維持または向上させる必要があります。
これらの要件を満たすソリューションはどれですか?
- A. Auto Scalingグループの平均CPU使用率に基づいてターゲット追跡スケーリングポリシーを設定し、ターゲットを75%に設定します。Auto Scalingグループに対してスケジュールアクションを作成し、業務時間開始前に必要容量を6台に調整します。
- B. Amazon EC2 Auto Scalingの2つのスケジュールアクションを用いてAuto Scalingグループを設定します。1つ目のアクションを業務時間開始時に9台のEC2インスタンスを起動するよう設定し、2つ目のアクションを業務時間終了時に9台のEC2インスタンスを停止するよう設定します。
- C. AWS Application Auto Scalingグループに変更します。Auto Scalingグループの平均CPU使用率に基づくターゲット追跡スケーリングポリシーを設定し、ターゲットを75%に設定します。Auto Scalingグループに対してスケジュールアクションを作成し、業務時間終了時に最小インスタンス数を3台に調整し、業務時間開始前に6台にリセットします。
- D. AWS Application Auto Scalingグループに変更します。Auto Scalingグループの平均CPU使用率に基づくターゲット追跡スケーリングポリシーを設定し、ターゲットを75%に設定します。毎晩の業務時間終了時に9台のインスタンスを終了するスケジュールアクションを作成します。
この問題を見る →
-
Q88. あるソフトウェア・アズ・ア・サービス(SaaS)企業が、AWS Elastic Beanstalkを用いて主要な.NETアプリケーションをデプロイしています。
Elastic Beanstalk環境は、基盤となるAmazon EC2インスタンスに対してAmazon EC2 Auto ScalingおよびElastic Load Balancing(ELB)を使用するよう設定されています。
同社は、EC2インスタンスが不健康とマークされ、ELBのヘルスチェックに失敗した後にAuto Scalingグループによって終了される事象に遭遇しています。DevOpsチームは、Auto Scalingグループが実行中のアプリケーション環境のEC2インスタンスを終了する際に、運用チームに通知するソリューションを構築したいと考えています。
DevOpsチームは、この要件を満たすために何を行うべきですか?
- A. Amazon Simple Notification Service(Amazon SNS)トピックを作成します。すべての運用チームメンバーの電子メールアドレスをSNSトピックにサブスクライブします。すべての既存のAuto Scalingグループに、autoscaling:EC2_INSTANCE_LAUNCH通知タイプの通知を設定します。
- B. Amazon Simple Queue Service(Amazon SQS)キューを作成します。SQSキューにAWS Lambda関数のトリガーを追加します。すべての既存のAuto Scalingグループに、autoscaling:EC2_INSTANCE_LAUNCH通知タイプの通知を設定します。
- C. Amazon Simple Notification Service(Amazon SNS)トピックを作成します。すべての運用チームメンバーの電子メールアドレスをSNSトピックにサブスクライブします。すべての既存のAuto Scalingグループに、autoscaling:EC2_INSTANCE_TERMINATE通知タイプの通知を設定します。
- D. Amazon Simple Queue Service(Amazon SQS)キューを作成します。SQSキューにAWS Lambda関数のトリガーを追加します。すべての既存のAuto Scalingグループに、autoscaling:EC2_INSTANCE_TERMINATE通知タイプの通知を設定します。
この問題を見る →
-
Q89. ある企業が、Amazon EC2インスタンス上でアプリケーションをテストするために単一のAWSアカウントを使用しています。同社はAWSアカウントでAWS Configを有効化し、「restricted-ssh」AWS Configマネージドルールを有効化しています。
同社は、アカウント内の任意のセキュリティグループが「restricted-ssh」ルールに準拠していない場合に、自動的にカスタム通知を提供するモニタリングソリューションを必要としています。このカスタム通知には、非準拠のセキュリティグループの名前とIDを含める必要があります。
DevOpsエンジニアは、アカウント内にAmazon Simple Notification Service(Amazon SNS)トピックを作成し、適切な担当者をサブスクライブさせました。
DevOpsエンジニアは、これらの要件を満たすために次に何を行うべきですか?
- A. restricted-sshルールのNON_COMPLIANT AWS Config評価結果に一致するAmazon EventBridgeルールを作成します。EventBridgeルールにインプットトランスフォーマーを設定します。EventBridgeルールを設定して、SNSトピックに通知を発行します。
- B. AWS Configを設定し、「restricted-ssh」ルールのすべての評価結果をSNSトピックに送信します。SNSトピック上でフィルタリングポリシーを設定し、通知本文に「NON_COMPLIANT」テキストを含むもののみサブスクライバーに送信します。
- C. 「restricted-ssh」ルールのNON_COMPLIANT AWS Config評価結果に一致するAmazon EventBridgeルールを作成します。EventBridgeルールを設定して、SNSトピック上でAWS Systems Manager Run Commandを呼び出し、カスタム通知を作成してSNSトピックに通知を発行します。
- D. すべてのNON_COMPLIANT AWS Config評価結果に一致するAmazon EventBridgeルールを作成します。「restricted-ssh」ルール用にインプットトランスフォーマーを設定します。EventBridgeルールを設定して、SNSトピックに通知を発行します。
この問題を見る →
-
Q90. ある企業が、Application Load Balancer(ALB)の後ろでAmazon EC2インスタンス上で実行されるWebアプリケーションを管理しています。EC2インスタンスは、複数の可用性ゾーンにまたがるAuto Scalingグループ内で実行されています。アプリケーションは、データストレージとしてAmazon RDS for MySQL DBインスタンスを使用しています。同社は、ALBを指すRoute 53のホストエントリを既に構成済みです。
新しい企業ポリシーでは、地理的に分離されたディザスタリカバリ(DR)サイトについて、RTO(Recovery Time Objective)を4時間、RPO(Recovery Point Objective)を15分とすることが求められています。
これらの要件を満たし、アプリケーションスタックへの変更を最小限に抑えるDR戦略はどれですか?
- A. Amazon RDS以外のすべてのコンポーネントを異なる可用性ゾーンにデプロイしたコピー環境を起動します。新しい可用性ゾーンでRDSの読み取り専用レプリカを作成し、新しいスタックをローカルのRDS DBインスタンスを指すように設定します。ヘルスチェックを使用してRoute 53レコードセットに新しいスタックを追加し、フェイルオーバールーティングポリシーを構成します。
- B. Amazon RDS以外のすべてのコンポーネントを異なるAWSリージョンにデプロイしたコピー環境を起動します。新リージョンでRDSの読み取り専用レプリカを作成し、新しいスタックをローカルのRDS DBインスタンスを指すように設定します。ヘルスチェックを使用してRoute 53レコードセットに新しいスタックを追加し、レイテンシーベースのルーティングポリシーを構成します。
- C. Amazon RDS以外のすべてのコンポーネントを異なるAWSリージョンにデプロイしたコピー環境を起動します。障害発生時に、プライマリリージョンから最新のRDSスナップショットをDRリージョンへコピー・リストアします。Route 53レコードセットをDRリージョン内のALBを指すように調整します。
- D. Amazon RDS以外のすべてのコンポーネントを異なるAWSリージョンにデプロイしたコピー環境を起動します。新リージョンでRDSの読み取り専用レプリカを作成し、新しい環境をローカルのRDS DBインスタンスを指すように設定します。ヘルスチェックを使用してRoute 53レコードセットに新しいスタックを追加し、フェイルオーバールーティングポリシーを構成します。障害発生時に、読み取り専用レプリカをプライマリインスタンスへ昇格させます。
この問題を見る →
-
Q91. ある企業が、MySQL互換のAmazon Aurora Multi-AZ DBクラスターをデータベースとして使用するアプリケーションを運用しています。ディザスタリカバリの目的で、クロスリージョンの読み取り専用レプリカが作成されています。DevOpsエンジニアは、障害発生時にこのレプリカを自動的に昇格させ、プライマリデータベースインスタンスとして機能させるようにしたいと考えています。
- A. Amazon Route 53 CNAMEを、遅延に基づくヘルスチェックで構成し、プライマリエンドポイントとレプリカエンドポイントの両方を指すようにします。AWS CloudTrailからAmazon RDS障害通知をサブスクライブするAmazon SNSトピックを作成し、そのトピックからAWS Lambda関数を呼び出して、レプリカインスタンスをプライマリへ昇格させます。
- B. Auroraカスタムエンドポイントを作成し、これをプライマリDBインスタンスを指すように設定します。アプリケーションをこのエンドポイントを使用するように構成します。AWS CloudTrailを設定してAWS Lambda関数を実行し、レプリカインスタンスを昇格させ、カスタムエンドポイントを新しく昇格したインスタンスを指すように更新します。
- C. AWS Lambda関数を作成し、アプリケーションのAWS CloudFormationテンプレートを更新してレプリカを昇格させ、テンプレートを適用してスタックを更新し、アプリケーションを新しく昇格したインスタンスを指すように再構成します。Amazon CloudWatchアラームを作成し、障害イベント発生後にこのLambda関数を呼び出します。
- D. AuroraエンドポイントをAWS Systems Manager Parameter Storeに保存します。データベース障害を検知するAmazon EventBridgeイベントを作成し、これによりAWS Lambda関数を実行してレプリカインスタンスを昇格させ、AWS Systems Manager Parameter Storeに保存されているエンドポイントURLを更新します。アプリケーションを、データベース接続失敗時にParameter Storeからエンドポイントを再読み込みするようにコーディングします。
この問題を見る →
-
Q92. 開発チームは、アプリケーションのバージョン管理にAWS CodeCommitを使用しています。CI/CDインフラストラクチャとして、AWS CodePipeline、AWS CodeBuild、およびAWS CodeDeployを活用しています。CodeCommit内では、最近、長期間テストを実行する必要があるプルリクエストがマージされました。この結果、開発チームはコードベースのブランチへロールバックする必要があり、手動介入と人的リソースの浪費が発生しました。
DevOpsエンジニアは、CodeCommitにおけるプルリクエストに対して自動テストを実行し、レビュアーがコードレビューの一環として自動テスト結果を容易に確認できるようにしたいと考えています。
DevOpsエンジニアは、この要件を満たすために何を行うべきですか?
- A. pullRequestStatusChangedイベントに応答するAmazon EventBridgeルールを作成します。アプリケーションテストを実行するCodeBuildアクションを含むCodePipelineパイプラインを呼び出すAWS Lambda関数を作成します。Lambda関数を、CodeBuildバッジをプルリクエストへのコメントとして投稿するようにプログラムし、開発者がコードレビュー中にバッジを確認できるようにします。
- B. pullRequestCreatedイベントに応答するAmazon EventBridgeルールを作成します。アプリケーションテストを実行するCodeBuildアクションを含むCodePipelineパイプラインを呼び出すAWS Lambda関数を作成します。Lambda関数を、テスト結果完了後にCodeBuildテスト結果をプルリクエストへのコメントとして投稿するようにプログラムします。
- C. pullRequestCreatedおよびpullRequestSourceBranchUpdatedイベントに応答するAmazon EventBridgeルールを作成します。アプリケーションテストを実行するCodeBuildアクションを含むCodePipelineパイプラインを呼び出すAWS Lambda関数を作成します。Lambda関数を、CodeBuildバッジをプルリクエストへのコメントとして投稿するようにプログラムし、開発者がコードレビュー中にバッジを確認できるようにします。
- D. pullRequestStatusChangedイベントに応答するAmazon EventBridgeルールを作成します。アプリケーションテストを実行するCodeBuildアクションを含むCodePipelineパイプラインを呼び出すAWS Lambda関数を作成します。Lambda関数を、テスト結果完了後にCodeBuildテスト結果をプルリクエストへのコメントとして投稿するようにプログラムします。
この問題を見る →
-
Q93. 電子医療記録(EMR)を扱う企業が、Amazon Linuxオペレーティングシステムを実行するAmazon EC2インスタンスを運用しています。患者のプライバシー要件の一環として、EC2インスタンス上で実行されるOSおよびアプリケーションのパッチ適用状況を継続的にコンプライアンス準拠状態に保つ必要があります。
- A. AWS Systems Managerを使用して、カスタムリポジトリを含む新しいパッチベースラインを作成します。RunコマンドでAWS-RunPatchBaselineドキュメントを実行し、パッチの検証およびインストールを行います。
- B. AWS Direct Connectを用いて企業内リポジトリと統合し、Amazon CloudWatchのスケジュールイベントでパッチを展開し、CloudWatchダッシュボードでレポートを作成します。
- C. yum-config-managerを用いて/etc/yum.repos.d下にカスタムリポジトリを追加し、yum-config-manager-enableコマンドで該当リポジトリを有効化します。
- D. AWS Systems Managerを使用して、企業のリポジトリを含む新しいパッチベースラインを作成します。RunコマンドでAWS-AmazonLinuxDefaultPatchBaselineドキュメントを実行し、パッチの検証およびインストールを行います。
この問題を見る →
-
Q94. ある企業が、AWS CodePipelineを用いてリリースパイプラインを自動化しています。パイプライン内でAWS CodeDeployが使用され、Amazon ECSへのアプリケーションデプロイにブルー/グリーンデプロイメントモデルが採用されています。企業は、トラフィックをグリーン環境に移行する前に、グリーンバージョンのアプリケーションに対してスクリプトによるテストを実施したいと考えています。これらのスクリプトは5分以内に完了する必要があります。テスト期間中にエラーが検出された場合、アプリケーションのロールバックを実行する必要があります。
- A. CodePipelineパイプラインのソース段階とデプロイ段階の間に新しい段階を追加します。AWS CodeBuildを使用して実行環境を作成し、buildspecファイル内でテストスクリプトを呼び出すコマンドを定義します。エラーが検出された場合、aws deploy stop-deploymentコマンドでデプロイを停止します。
- B. CodePipelineパイプラインのソース段階とデプロイ段階の間に新しい段階を追加します。この段階で、テストスクリプトを実行するAWS Lambda関数を実行します。エラーが検出された場合、aws deploy stop-deploymentコマンドでデプロイを停止します。
- C. CodeDeploy AppSpecファイルにhooksセクションを追加します。AfterAllowTestTrafficライフサイクルイベントを使用して、テストスクリプトを実行するAWS Lambda関数を呼び出します。エラーが検出された場合、Lambda関数をエラーで終了させ、CodeDeployの自動ロールバックをトリガーします。
- D. CodeDeploy AppSpecファイルにhooksセクションを追加します。AfterAllowTrafficライフサイクルイベントを使用してテストスクリプトを呼び出します。エラーが検出された場合、aws deploy stop-deployment CLIコマンドでデプロイを停止します。
この問題を見る →
-
Q95. ある企業は、グローバル事業を展開する組織であり、以下の要件を満たすガバナンス戦略を実装したいと考えています:
・グローバルなAWSサービスリソースへのアクセスは、各アカウントと同じリージョン内に限定されます。
・グローバルなAWSサービスへのアクセスは、各アカウントで許可された特定のサービスに制限されます。
・認証は、オンプレミスのActive Directory(AD)を介して提供されます。
・アクセス権限は、ビジネス機能単位で管理され、各アカウントの権限は同一である必要があります。
- A. 管理アカウント内に、リージョンおよび許可されたサービスを制限するグループポリシーを持つ組織単位(OU)を設置します。各業務機能ごとにAWS IAMロールを設定し、各アカウント内のIAM IdP認証をサポートするIAM信頼ポリシーを含めます。
- B. 管理アカウント内で、リージョンおよび許可されたサービスを制限するパーミッション境界を設定します。各業務機能ごとにAWS IAMロールを設定し、各アカウント内のIAM IdP認証をサポートするIAM信頼ポリシーを含めます。
- C. 管理アカウント内で、リージョンおよび許可されたサービスを制限するサービスコントロールポリシー(SCP)を作成します。AWS Resource Access Manager(AWS RAM)を使用して管理アカウントのロールを共有し、各業務機能に権限を付与し、各アカウントで認証にAWS IAM Identity Center(旧AWS Single Sign-On)を使用します。
- D. 管理アカウント内で、リージョンおよび許可されたサービスを制限するサービスコントロールポリシー(SCP)を作成します。各業務機能ごとにAWS IAMロールを設定し、各アカウント内のIAM IdP認証をサポートするIAM信頼ポリシーを含めます。
この問題を見る →
-
Q96. セキュリティ監査の要件により、任意の手動ログインが行われたAmazon EC2インスタンスは24時間以内に終了しなければなりません。セキュリティ監査対象アカウント内のすべてのアプリケーションは、Amazon CloudWatch Logsエージェントが構成されたAuto Scalingグループで実行されています。
- A. AWS Step Functionsアプリケーションに対するCloudWatch Logsサブスクリプションを作成します。AWS Lambda関数を構成し、ログインイベントを生成したEC2インスタンスにタグを付与して無効化マークを付けます。Amazon EventBridgeルールを作成し、毎日1回、このタグが付与されたすべてのインスタンスを終了させる第2のLambda関数を呼び出します。
- B. ログインイベントをトリガーとするAmazon CloudWatchアラームを作成します。通知を運用チームが購読しているAmazon Simple Notification Service(Amazon SNS)トピックに送信し、24時間以内にEC2インスタンスを終了するよう依頼します。
- C. ログインイベントをトリガーとするAmazon CloudWatchアラームを作成します。アラームをAmazon Simple Queue Service(Amazon SQS)キューに送信します。ワーカーインスタンスのグループを使用してキューからのメッセージを処理し、その後Amazon EventBridgeルールをスケジュールします。
- D. AWS Lambda関数に対するCloudWatch Logsサブスクリプションを作成します。関数を構成し、ログインイベントを生成したEC2インスタンスにタグを付与して無効化マークを付けます。Amazon EventBridgeルールを作成し、毎日1回、このタグが付与されたすべてのインスタンスを終了させるLambda関数を呼び出します。
この問題を見る →
-
Q97. セキュリティ監査の要件により、任意の手動ログインが行われたAmazon EC2インスタンスは24時間以内に終了しなければなりません。セキュリティ監査対象アカウント内のすべてのアプリケーションは、Amazon CloudWatch Logsエージェントが構成されたAuto Scalingグループで実行されています。
- A. AWS Step Functionsアプリケーションに対するCloudWatch Logsサブスクリプションを作成します。関数を構成し、ログインイベントを生成したEC2インスタンスにタグを付与して無効化マークを付けます。その後、CloudWatch Eventsルールを作成し、毎日1回、このタグが付与されたすべてのインスタンスを終了させる第2のAWS Lambda関数をトリガーします。
- B. ログインイベントをトリガーとするCloudWatchアラームを作成します。通知を運用チームが購読しているAmazon SNSトピックに送信し、24時間以内にEC2インスタンスを終了するよう依頼します。
- C. ログインイベントをトリガーとするCloudWatchアラームを作成します。アラームをAmazon SQSキューに送信します。ワーカーインスタンスのグループを使用してキューからのメッセージを処理し、その後Amazon CloudWatch Eventsルールをスケジュールします。
- D. AWS Lambda関数内でCloudWatch Logsサブスクリプションを作成します。関数を構成し、ログインイベントを生成したEC2インスタンスにタグを付与して無効化マークを付けます。CloudWatch Eventsルールを作成し、毎日1回、このタグが付与されたすべてのインスタンスを終了させるLambda関数をトリガーします。
この問題を見る →
-
Q98. ある企業が、単一のAWSリージョンで実行されるアプリケーションを運用しています。このアプリケーションはAmazon Elastic Kubernetes Service(Amazon EKS)クラスター上で実行され、Amazon Aurora MySQLクラスターに接続されています。アプリケーションはAWS CodeBuildプロジェクトでビルドされ、コンテナイメージはAmazon Elastic Container Registry(Amazon ECR)にプッシュされます。企業は、コンテナイメージおよびデータベースの状態を2番目のリージョンにレプリケートする必要があります。これらの要件を最も効率的に満たすソリューションはどれですか?
- A. ECRコンテナイメージを保持するS3バケットに対してAmazon S3クロスリージョンレプリケーション(CRR)を有効化します。2番目のリージョンのEKSクラスターにアプリケーションをデプロイし、Kubernetesデプロイメントファイル内のコンテナイメージを新しいS3バケットのオブジェクトURLで参照します。2番目のリージョンでクロスリージョンAuroraレプリカを設定します。新しいアプリケーションデプロイメントを、クロスリージョンAuroraレプリカのエンドポイントを使用するように設定します。
- B. ECRリポジトリへのイメージプッシュイベントに応答するAmazon EventBridgeルールを作成します。このEventBridgeルールを、新しいECRリポジトリへイメージをコピーするAWS Lambda関数を呼び出すように設定します。Kubernetesデプロイメントファイル内で新しいECRリポジトリを参照して、2番目のリージョンのEKSクラスターにアプリケーションをデプロイします。2番目のリージョンでクロスリージョンAuroraレプリカを設定します。新しいアプリケーションデプロイメントを、クロスリージョンAuroraレプリカのエンドポイントを使用するように設定します。
- C. ECRリポジトリを2番目のリージョンへクロスリージョンレプリケーションするように設定します。Kubernetesデプロイメントファイル内で新しいECRリポジトリを参照して、2番目のリージョンのEKSクラスターにアプリケーションをデプロイします。初期リージョンと2番目のリージョンのクラスターを含むAuroraグローバルデータベースを設定します。新しいアプリケーションデプロイメントを、Auroraグローバルデータベースの2番目のリージョンクラスターのエンドポイントを使用するように設定します。
- D. CodeBuildプロジェクトを変更し、コンテナイメージを2番目のリージョンのECRリポジトリにもプッシュするようにします。Kubernetesデプロイメントファイル内で新しいECRリポジトリを参照して、2番目のリージョンのEKSクラスターにアプリケーションをデプロイします。2番目のリージョンでAurora MySQLクラスターを設定し、初期リージョンのAurora MySQLクラスターからバイナリログをレプリケートするターゲットとして使用します。新しいアプリケーションデプロイメントを、2番目のリージョンクラスターのエンドポイントを使用するように設定します。
この問題を見る →
-
Q99. ある企業がAmazon EC2インスタンスを主要なコンピューティングプラットフォームとして使用しています。開発者チームは、EC2インスタンス上で禁止されたアプリケーションがインストールされていないかを監査したいと考えています。
- A. 各インスタンスにAWS Systems Managerを設定します。Systems Manager Inventoryを使用します。Systems Manager Resource Data Syncを設定し、結果をAmazon S3バケットに同期・保存します。S3バケットに新規オブジェクトが追加されたときに実行されるAWS Lambda関数を作成します。Lambda関数を、禁止されたアプリケーションを特定するように設定します。
- B. 各インスタンスにAWS Systems Managerを設定します。Systems Manager Inventoryを使用して、Systems Manager Inventoryの変更を監視するAWS Configルールを作成し、禁止されたアプリケーションを特定します。
- C. 各インスタンスにAWS Systems Managerを設定します。Systems Manager Inventoryを使用します。AWS CloudTrailのトレースをSystems Manager Inventoryイベント向けにフィルタリングし、禁止されたアプリケーションを特定します。
- D. Amazon CloudWatch Logsをすべてのアプリケーションインスタンスのログ宛先として指定します。すべてのインスタンスで自動スクリプトを実行し、インストール済みアプリケーションのリストを作成します。スクリプトを、結果をCloudWatch Logsへ転送するように設定します。フィルターパターンを使用してログデータを検索し、禁止されたアプリケーションを特定するCloudWatchアラームを作成します。
この問題を見る →
-
Q100. ある企業の開発者がAmazon EC2インスタンスをリモートワークステーションとして使用しています。同社は、ユーザーが制限のないアクセスを許可するEC2セキュリティグループルールを作成または変更することを懸念しています。DevOpsエンジニアは、ユーザーが制限のないセキュリティグループルールを作成したことを検出するソリューションを開発する必要があります。このソリューションは、セキュリティグループルールの変更をほぼリアルタイムで検出し、制限のないルールを削除し、セキュリティチームへ電子メール通知を送信する必要があります。DevOpsエンジニアは、セキュリティグループIDを入力としてチェックし、制限のないアクセスを許可するルールを削除し、Amazon Simple Notification Service(Amazon SNS)を通じて通知を送信するAWS Lambda関数を作成しました。DevOpsエンジニアは、次のステップとして何を行うべきですか?
- A. SNSトピックによって呼び出されるLambda関数を設定します。SNSトピックに対してAWS CloudTrailサブスクリプションを作成します。セキュリティグループ変更イベント向けにサブスクリプションフィルターを設定します。
- B. Amazon EventBridgeの予約ルールを作成し、Lambda関数を呼び出します。Lambda関数を1時間ごとに実行するスケジュールモードを定義します。
- C. Amazon EventBridgeイベントルールを作成し、デフォルトイベントバスをソースとして使用します。EC2セキュリティグループの作成および変更イベントに一致するイベントパターンをルールに定義します。ルールをLambda関数を呼び出すように設定します。
- D. すべてのAWSサービスからのイベントをサブスクライブするAmazon EventBridgeカスタムイベントバスを作成します。Lambda関数をカスタムイベントバスによって呼び出されるように設定します。
この問題を見る →