見出し画像

AWS 認定ソリューションアーキテクトプロフェッショナル問題集2

はじめに

AWSソリューションアーキテクトプロフェッショナルの問題集になります。全部で30問あり設問が終わったあと30問分の回答があります。10問までは問題だけ無料で閲覧可能です。実際の試験は75問あり、文章が長く試験時間も180分と1問にかけられる時間が短いです。この問題で慣れておくと合格に近づくことができると思います。本問題集が対応しているテストのバージョンはSAP-C01です。新しいバージョンのテストが出たら公開を停止する予定です。SAP-C02が出たので無料公開にします。

問題1

機密情報を扱うアプリケーションがVPCのEC2インスタンスで稼働しています。このアプリケーションを管理する企業は潜在的脅威から守るためネットワークトラフィックをモニタリング、分析できるようにしたいです。ソリューションは、1.最低限の開発・変更にしなければいけません。2.大量のネットワークトラフィックに対応するように拡張します。3.クエリとデータの可視化を許可します。これらの要件を満たすソリューションはどれですか。

A. VPCフローログを作成し、DynamoDBのテーブルへロードする。AWS Lambda関数を使いDynamoDBストリームからデータを読み込み、Amazon Auroraのテーブルへログデータを書き込む。QuickSightからDBへ接続しデータを可視化する。

B. VPCフローログを作成し、S3バケットへ出力する。Amazon Athenaの外部テーブルを作成しログファイルに対しクエリを発行する。QuickSightからAthenaへ接続しデータを可視化する。

C. Amazon Kinesis Data Streamsを使用しAmazon CloudWatchのログファイルをキャプチャする。Kinesis Data Firehoseを使用しログファイルをS3へ出力する。Amazon Athenaの外部テーブルを作成しログファイルに対しクエリを発行する。QuickSightからAthenaへ接続しデータを可視化する。

D. VPCフローログを作成し、Amazon EMRで稼働するインメモリのSparkアプリケーションへロードする。QuickSightからクラスターへ接続しSpark SQLを使いデータを可視化する。

問題2

あなたはソフトウェアエンジニアで、AWSで新しいWebサービスを作成しています。このサービスでは、エンドユーザーが毎日のスケジュールを作成し閲覧することができます。このサービスはUserScheduleDataと呼ばれるDynamoDBのテーブルのデータを処理するAngularJsフロントエンドで動作しています。あなたはAPI GatewayとLambdaを使用してバックエンドサービスを処理する予定です。開発時には、APIエンドポイントに対してcurlを使用して頻繁に統合テストを行う必要もあります。Lambda自体のロールとしてScheduleRoleLambdaを作成しました。Lambdaに必要なアクセス許可が含まれていることを確認するには、以下のどのオプションを実行する必要がありますか?(3つ選択してください)

A. トラッキングおよびデバッグのために、関数の呼び出しと実行に関する詳細を含むセグメントレコードを保存するために、ScheduleRoleLambdaにAWSXrayWriteOnlyAccessポリシーを含める必要がある。

B. ScheduleRoleLambdaにCloudWatch Logsに必要なCreateLogGroup、CreateLogStream、PutLogEventsを含める必要がある。

C. API GatewayからLambda関数を呼び出す権限を付与するため、Lambda関数に関連付けられた権限ポリシーが必要である。

D. エラーハンドリングのため、ScheduleRoleLambdaにSNS:パブリッシュを許可するインラインポリシーを追加する必要がある。例えば、エラーが発生したときにメッセージをDead Letter QueueからSNSパブリッシュへ送信することができる。

E. ScheduleRoleLambdaにDynamoDBへアクセスできるようにインラインポリシーを含める必要がある。resourceは"*"にし、actionにdynamodb:FetchItem、dynamodb:PutItem、dynamodb:Queryを含める必要がある。

F. DynamoDBへアクセスを許可するインラインポリシーをScheduleRoleLambdaに含める必要がある。resourceにはUserScheduleDataのARNを設定し、actionにはdynamodb:GetItemとdynamodb:PutItemを含める必要がある。

問題3

あなたの部署では2つのAWSアカウントを保持しています。1つは開発環境用でもう一つは商用環境用です。それぞれのアカウントでWebサーバとして稼働しているEC2インスタンスとELBとRDSを持っています。セキュリティチームは、これらのAWSサービスとのすべてのやり取りをログに記録し、ユーザーがログを改ざんできないことを確認するように求めています。次の手順のうちどれを実行する必要がありますか? (3つ選択してください)

A. 新たにS3バケットを作成し、両方のアカウントのCloudTrailをこのバケットに出力する。
B. それぞれのアカウントの既存のS3バケットを使用し、各アカウントのCloudTrailをそれぞれのS3バケットに出力する。
C. S3バケットのアクセス制御用にIAMユーザ用のポリシーを作成する。
D. S3バケットのアクセス制御用に新しいIAMロールを作成する。
E. CloudTrailによるPUT操作を許可、GET操作を明示的に拒否、セキュリティチームによるGET操作を明示的に許可します。
F. CloudTrailによるPUT操作を許可、セキュリティチームによるGET操作を許可する
G. S3バケットのアクセス制御用にバケットポリシーを作成する

問題4

ある会社は写真やビデオを安全にS3バケットへアップロードするWEBアプリケーションを管理しています。その会社は認証されたユーザだけコンテンツをアップロードすることを許可しています。アプリケーションはブラウザでアップロードするときに使われる事前署名付き(pre-signed)URLを生成します。ほとんどのユーザはオブジェクトが100MBを超えたときにアップロード時間が遅くなると報告しています。ソリューションアーキテクトはどうやって、認証済みのユーザのみがアップロードできる、このアップロードのパフォーマンスを改善することができるでしょうか。

A. S3サービスプロキシになるエッジ最適化APIエンドポイントを使ったAmazon API Gatewayをセットアップする。このリソースのPUTメソッドを構成して、S3 PutObject操作を公開する。COGNITO_USER POOLSオーソライザーを使用してAPI Gatewayを保護します。ブラウザを使い、署名付き(pre-signed)URLではなくAPI Gatewayを使用してオブジェクトをアップロードする。

B. S3のプロキシになるリージョンタイプのAPIエンドポイントを使ったAmazon API Gatewayをセットアップします。このリソースのPUTメソッドを構成して、S3 PutObject操作を公開します。AWS Lambdaオーソライザーを使用してAPI Gatewayを保護します。ブラウザを使い、事前に署名されたURLではなくAPI Gatewayを使用してオブジェクトをアップロードします。

C. S3バケットのS3 Transfer Accelerationエンドポイントを有効にする。事前署名付きURL生成時にエンドポイントを使用する。S3マルチパートアップロードAPIを使ってブラウザでこのURLに対しファイルをアップロードする。

D. S3バケットを対象にCloudFrontディストリビューションを構成する。CloudFrontのCache BehaviorでPUTとPOSTメソッドを有効にする。CloudFrontのオリジンをOAI(Origin Access Identity)を使うようにする。バケットポリシーでOAIユーザにS3のPutObjectの許可権限を付与する。CloudFrontディストリビューションを使いブラウザでファイルをアップロードする

問題5

設計に関するチームミーティングで、CloudWatch Logsサブスクリプションを介して、ほぼリアルタイムに、Amazon Elasticsearch Service(Amazon ES)クラスターへデータをストリーミングするようにCloudWatch Logsのロググループを作成することが決まりました。
Amazon ESはまだ構築できていません。チームではCloudWatchで何をすればよいか理解していますが、Elasticsearchを使ったことはありません。あなたはElasticsearch側で最初に何をしますか。

A. CloudWatch LogsをElasticsearchへサブスクライブする。
B. ESドメインを作成する。
C. Elasticsearch用のロールを作成する。
D. CloudWatchが利用できるElasticsearch用のメトリックを作成する。

問題6

あなたのチームはAWSが使用できるようになり、プログラム可能なインフラストラクチャにアクセスできるようになり興奮しています。あなたはアプリケーションのソースコードを管理する方法と同様の方法でAWSインフラストラクチャを管理するように求められました。インフラストラクチャのさまざまなバージョンの正確なコピーをデプロイし、変更をさまざまな環境に展開し、以前のバージョンに戻し、特定の時間(開発、テスト、QA、本番)で実行されているバージョンを特定できるようにしたい場合、この要件に対処するアプローチはどれですか?

A. インフラのデプロイと管理のためにコスト配分レポートとAWS OpsWorksを利用する。

B. インフラのデプロイと管理のために、CloudWatchメトリクスとリソースのタグ付けに紐付いたアラートを使用する。

C. インフラのデプロイと管理のためにAWS BeanstalkとGitのようなバージョン管理システムを使用する。

D. インフラのデプロイと管理のためにAWS CloudFormationとGitのようなバージョン管理システムを使用する。

問題7

最近、あなたは都市部の街路騒音と大気の質を測定するセンサーを構築しているスタートアップ企業に参加しました。同社は3か月間で、約100個のセンサーのパイロット展開を実行しています。各センサーは、1分ごとに1 KBのセンサーデータをAWSでホストされているバックエンドサーバにアップロードします。パイロット中に、DBではピークの10 IOPSを測定し、月あたり平均3GBのセンサーデータを保存しました。現在は、EC2インスタンスを使用した負荷分散されたAuto Scalingの取り込みレイヤーと、500GBの標準ストレージを備えたPostgreSQL RDSデータベースで構成されています。パイロットは成功し、スタートアップ企業のCEOは数名の投資家からの注目を集めることができました。このビジネスプランでは、少なくとも10万個のセンサーの展開が必要であり、それに対応するバックエンドサーバも必要となります。また、1年ごとの改善を比較できるように、少なくとも2年間センサーデータを保存する必要があります。資金を確保するには、プラットフォームがこれらの要件を満たし、さらにスケーリングする余地があることを確認する必要があります。どのセットアップが要件を満たしますか?

A. RDSの書き込みのバッファとして取り込みレイヤーにSQSを入れる。
B. データをDynamoDBのテーブルへ取り込み、古いデータをRedshiftクラスターに移動する。
C. RDSインスタンスを96TBのストレージを備えた6ノードのRedshiftクラスターに変更する。
D. RDSを3TBのストレージ、10KプロビジョンドIOPSへ変更し、現在のアーキテクチャを維持する。

問題8

ある企業がAWSで3層のアプリケーションを実行しています。ユーザーは、アプリケーションのパフォーマンスは、時刻やアクセスする機能によって大きく異なる可能性があると報告しています。アプリケーションには、次のコンポーネントが含まれています。静的コンテンツとAP層の動的コンテンツのプロキシを提供する8つのt2.largeフロントエンドWEBサーバー。4つのt2.largeアプリケーションサーバー。 1つのdb.m4.large Amazon RDS MySQLマルチAZ構成のDBインスタンス。
運用の中で、WEBおよびAP層のネットワークに制限がかかっていると判断されました。次のうち、費用対効果の高いアプリケーションのパフォーマンスを改善する必要があるのはどれですか? (2つ選択してください。)

A. WEBとAP層をt2.xlargeインスタンスに置き換える。
B. WEBとAP層をm4.largeインスタンスによるAuto Scalingを使用する
C. MySQLインスタンスをEC2のセルフマネージのMySQLクラスターに置き換える。
D. コンテンツのキャッシュのため、CloudFrontディストリビューションを作成する。
E. RDSインスタンスをdb.m4.xlargeに変更する。

問題9

あなたはAmazon Elastic Map Reduce(EMR)を使用してAmazon S3に保存されている大量のデータを分析する機能が必要としています。cc2.8xlargeインスタンスタイプを使用していますが、処理中のほとんどはCPUがアイドル状態です。ジョブの実行時間を短縮する最もコスト効率の良い方法は次のうちどれですか?

A. S3のファイルをサイズの小さいファイルにする。
B. タスクグループを導入するため、cc2.8xlargeインスタンスを追加する。
C. より高いI/O性能をもつ小さなインスタンスに変更する。
D. S3のファイルを少数でサイズが大きいファイルにする。

問題10

クラスターコンピューティングアプリケーションには、可能な限り最高のネットワークパフォーマンスが必要です。 10Gbit拡張ネットワーキングをサポートする同種のインスタンスタイプを既に選択し、ワークロードがネットワークに接続されていることを確認して、インスタンスをプレイスメントグループに配置しました。最後にできる最適化は何ですか?

A. MTUに1500の代わりに9001 MTUのジャンボフレームを使用して、パケットオーバーヘッドに対するパケットボディの割合を高める。

B. すべてのインスタンスをプレイスメントグループに配置しながら、インスタンスを異なるピアVPCに分離し、各インスタンスがそれぞれインターネットゲートウェイを持つようにする。

C. プレイスメントグループ内のインスタンスを新しくし、ノイジーなホストが同居しないようにするために、AMIを作成しインスタンスを再作成する。

D. スループットを上げるために、TCPスタックのSYN/ACKをオフにするか、UDPを使用する。

問題11

ある企業は、靴の内側に取り付け、日々の歩数をカウントするセンサーを開発しました。 この企業は毎分数千のセンサーレポートを期待しており、年末までに数百万に拡大することを望んでいます。プロジェクトの要件は、データを取り込み、ETLを実行してデータウェアハウスに保管し、Amazon Glacierにアーカイブし、後日センサーデータ用のリアルタイムダッシュボードを追加できる余地があることです。 要件を考慮して、このアプリケーションを設計する最良の方法は何ですか?

A. ユーザがセンサーをスマートフォンにペアリングし、Amazon Cognitoを使用してそのデータを受け付ける。その後CognitoからDynamoDBへデータを送信する。Data Pipelineを使って、DynamoDBのテーブルデータを取得しETL様にEMRクラスターへ送信するジョブを作成し、RedshiftとS3に出力する。S3のライフサイクルポリシーでGlacierにアーカイブする。

B. センサーデータを直接、拡張性の高いDynamoDBへ書き込む。DynamoDBのデータを使ったEMRクラスターを開始し、データをS3とRedshiftに送信するData Pipelineを作成する。

C. センサーデータをGlacierへアーカイブするライフサイクルポリシーを設定したS3に書き込む。バケットのデータを使用するEMRクラスターを作成し、ETLを通してEMRを起動する。処理結果をRedshiftのデータウェアハウスにデータを出力する。

D. センサーデータを直接Amazon Kinesisに書き込み、Glacierへアーカイブするライフサイクルポリシーを設定したS3に出力する。また、EMRでデータ処理をしRedshiftデータウェアハウスに転送する並行処理を作成する。

問題12

あなたの会社には既存のアプリケーションがオンプレミス環境で稼働しており、現在は非リレーショナルデータベースを使用しています。チームは、スケーリングやデータストリーミングなどの機能の一部を使用するために、データベースをDynamoDBに移行することを決定しました。移行後は、アプリケーションとDynamoDB間のすべての通信は、近い将来負荷が増加するため、セキュアでスケーラブルでなければなりません。移行の設計に最適な組み合わせは何ですか? (2つ選択してください)

A. オンプレミスのアプリケーションをEC2インスタンスに移行する。

B. すべての通信をセキュアにするために、DynamoDBのHTTPSエンドポイントを使用する。

C. オンプレミスとAWSをVPNで接続しVPCエンドポイントでDynamoDBにアクセスする。

D. アプリケーションにAuto Scalingを使い、DynamoDBのテーブルは高いRCUとWCUをプロビジョンする。

E. ゲートウェイVPCエンドポイントを使用してDynamoDBに接続し、エンドポイントをアプリケーション構成に提供します。

F. DynamoDBのすべてのデータをセキュアにするために保管時の暗号化オプションを有効にする。

問題13

ある会社は、パブリックサブネットとプライベートサブネットに分割したVPCを構築しています。 WEBアプリケーションはVPCで実行され、各サブネットにそれぞれNACLがあります。パブリックサブネットのCIDRは10.0.0.0/24です。 ALBはパブリックサブネットに展開されます。プライベートサブネットのCIDRは10.0.1.0/24です。80番ポートでWEBサーバーを実行するEC2インスタンスはプライベートサブネットに起動されます。ALBがWEBアプリケーションにアクセスするために必要なネットワークトラフィックのみがパブリックサブネットとプライベートサブネットの間を移動できます。プライベートサブネットのNACLが要件を満たすためには、どのようなルールセットを作成する必要がありますか? (2つ選択してください)

A. 0.0.0.0/0からのポート80のインバウンドアクセス
B. 10.0.0.0/24からのポート80のインバウンドアクセス
C. 0.0.0.0/0向けのポート80のアウトバウンドアクセス
D. 10.0.0.0/24向けのポート80のアウトバウンドアクセス
E. 10.0.0.0/24向けのポート1024~65535のアウトバウンドアクセス

問題14

ERPアプリケーションが単一リージョンでマルチAZに展開されています。障害の際には、目標復旧時間(RTO)は3時間以内にする必要があり、目標復旧時点(RPO)は15分にしなければなりません。おおよそ1.5時間前に利用者がデータの破損に気づきました。このような障害が発生した場合でも、このRTOとRPOを達成するには、どのようなDR戦略にする必要があるでしょうか。

A. 5分ごとにトランザクションログをS3に保管し、1時間毎にDBバックアップをS3に取得する。

B. 2つのAZ間でマスタースレーブレプリケーションをしデータベースを同期させる。

C. 5分ごとにトランザクションログをS3に保管し、1時間毎にDBバックアップをEC2インスタンスのボリュームに取得する。

D. 5分ごとにトランザクションログをS3に保管し、15分毎にDBバックアップをGlacierに取得する。

問題15

AWSの利用者が、EC2インスタンスのAuto Scalingグループで構成されるアプリケーションをデプロイしています。利用者のセキュリティポリシーでは、これらのインスタンスから利用者のVPC内の他のサービスへのすべてのアウトバウンド接続は、インスタンスIDを含む一意のX.509証明書を使用して認証する必要があります。さらに、X.509証明書は、信頼された認証になるために、利用者の鍵管理サービスによって設計されている必要があります。これらの要件をサポートする構成は次のうちどれですか?

A. 署名済み証明書を含むAmazon S3オブジェクトへのアクセスを許可するIAMロールを設定し、このロールでインスタンスを起動するようにAuto Scalingグループを設定する。インスタンスのブートストラップで、初回起動時にAmazon S3から証明書を取得する。

B. Auto Scalingグループが使用するAMIに証明書を埋め込む。起動されたインスタンスに、署名用の鍵管理サービスにインスタンスの割り当てられたインスタンスIDを含む証明書署名リクエストを生成させる。

C. Auto Scalingグループを構成して、新しいインスタンスの起動をSNSで信頼された鍵管理サービスに通知する。鍵管理サービスで署名済み証明書を生成させ、新しく起動したインスタンスに直接送信する。

D. 起動したインスタンスを、初回起動時に新しい証明書を生成するように設定する。インスタンスに紐付いたAuto Scalingグループを鍵管理サービスにポーリングさせ、インスタンスIDを含む証明書署名を新しいインスタンスに送信します。

問題16

あなたは顧客の口座の取引データに対するすべての変更の監査ログを作成する必要があります。 DynamoDBを使用して、この顧客の取引データを保存します。サーバーの障害によって情報が失われないようにすることが重要です。これを達成するよい方法は何ですか?

A. Dynamodb StreamSpecificationを使用し、すべての変更をAWS Lambdaへストリームする。機密情報の削除をして変更情報をCloudWatch Logsへロギングする。

B. DynamoDBへ書き込みされる前に、アプリケーションサーバで機密情報の削除をした上で、ディスクへの事前書き込み確認をする。定期的にこれらのログファイルをS3へローテーションする。

C. Dynamodb StreamSpecificationを使用し、定期的にEC2インスタンスストアにフラッシュして、オブジェクトを配置する前に機密情報を削除する。

D. DynamoDBへ書き込みされる前に、アプリケーションサーバで機密情報の削除をした上で、ディスクへの事前書き込み確認をする。定期的にこれらのファイルをCloudWatch Logsへ連携する。

問題17

ある企業では200以上のインターネットフェイシングなアプリケーションを管理しています。すべてのアプリケーションはAWSの単一のリージョンへデプロイされます。アプリケーションのすべてのFQDNはALBを使ったHTTPS経由で利用可能になります。ALBはパブリックなSSL/TLS証明書を使って設定されています。ソリューションアーキテクトはこれらのWEBアプリケーションをマルチリージョンのアーキテクチャへ移行する必要があります。すべてのHTTPSサービスを停止させずに稼働させたままにする必要があります。どのアプローチがこれらの要件をみたしますか?

A. それぞれのFQDN用にKMSを使った証明書をリクエストする。証明書をAWSのプライマリリージョンのALBへ関連付ける。KMSのクロスリージョン設定を有効にし、セカンダリリージョンのALBに証明書を関連付ける。

B. キーペアを作成しKMSを使いそれぞれのFQDNごとに証明書をリクエストする。プライマリとセカンダリリージョン両方のALBに証明書を関連付ける。

C. AWS Certificate Manamagerを使いそれぞれのFQDN用に証明書をリクエストする。プライマリとセカンダリリージョン両方のALBに証明書を関連付ける。

D. それぞれのFQDN用にプライマリとセカンダリリージョン両方のAWS Certificate Manamagerに証明書をリクエストする。証明書を各AWSリージョンの対応するALBに関連付ける。

問題18

ある企業では、WEBアプリケーションをAWSに移行したいと考えています。アプリケーションはセッション情報を各WEBサーバのローカルに保存しているため、Auto Scalingが困難になります。移行の一環として、アプリケーションを書き換えて、セッションデータをWEBサーバから切り離すことになります。この会社では、低レイテンシ、スケーラビリティ、可用性が求められています。最も費用対効果の高い方法でセッション情報を保存するための要件を満たすサービスはどれでしょうか?

A. Amazon ElastiCache Memcached エンジン
B. Amazon S3
C. Amazon RDS MySQL
D. Amazon ElastiCache Redis エンジン

問題19

ある企業では、複数のAWSリージョンでメールアプリケーションを運用しています。この企業では、プライマリリージョンとしてオハイオ(us-east-2)を、ディザスターリカバリー(DR)リージョンとしてバージニア北部(us-east-1)を利用しています。データは、両方のリージョンのパブリックサブネット上の単一のインスタンスによって、プライマリリージョンからDRリージョンに継続的にレプリケートされています。リージョン間のレプリケーション・メッセージには、一日の特定の時間帯に大きなバックログがあります。このバックログは短時間で解消されますが、アプリケーションのRPOに影響を与えます。次のうち、このパフォーマンスの問題を修正するのに役立つのはどれですか?(2つ選択してください)

A. インスタンスサイズを上げる。

B. プライマリリージョンのインスタンスは、代わりにプライマリリージョンのSQSのキューにデータを書き込み、DRリージョンのインスタンスはこのキューからポーリングするようにします。

C. プライマリリージョンとDRリージョンのインスタンスを複数使用し、レプリケーションデータの送受信を行う。

D. 現在のDRリージョンの代わりに、オレゴン(us-west-2)をDRリージョンに変更する。

E. 追加のENIを両方のリージョンのそれぞれのインスタンスにアタッチし、ネットワークインターフェース間のロードバランシングを設定する。

問題20

ある企業は、使用頻度は低いがビジネスに不可欠な20個のアプリケーションをAWSに移行することで、それに関連するコストを管理したいと考えています。アプリケーションはJavaとNode.jsが混在しており、異なるインスタンスに分散しています。この企業は単一のデプロイ手順に標準化することでコストを最小限にしたいと考えています。アプリケーションのほとんどは、同時実行ユーザ数が少ない月末処理ルーチンの一部であるが、それ以外の時間帯でも時々実行されます。アプリケーションの平均メモリ消費量は1GB未満ですが、ピーク時には2.5GBものメモリを使用するアプリケーションもあります。これらの中で最も重要なアプリケーションは、複数のデータソースにアクセスするJavaで書かれた請求書アプリケーションで、時々、処理の実行が数時間かかります。次のうちもっとも費用対効果が高いソリューションはどれですか?

A. それぞれのアプリケーション用にAWS Lambda関数を個別にデプロイする。CloudTrailのログとCloudWatch Alarmを使用しクリティカルなジョブの完了を通知します。

B. メモリの使用率75%でスケールするAuto Scalingを設定したEC2にAmazon ECSコンテナをデプロイする。移行するアプリケーションごとにECSタスクをスケーリングして配置する。CloudWatchを使いサービスとホストをモニタリングする。

C.
それぞれのアプリケーションをAuto Scalingを設定したElastic Beanstalkにデプロイし、すべてのリクエストに対し、十分なリソースがあるか確認する。CloudWatch Alarmを使いElastic Beanstalkのアプリケーションをモニタリングする。

D. すべてのアプリケーションが同居する、Auto ScalingとALBを使った新しいEC2インスタンスクをデプロイする。インスタンスのメモリ使用率を使ったカスタムメトリックに応じて、インスタンス数をスケーリングさせる。Auto ScalingグループのGroupMaxSizeパラメータに等しい3年契約のリザーブドインスタンスを購入する。

問題21

あなたの会社ではこれまでに、オンプレミスのデータセンターとAWS間で使用頻度の高い、動的にルーティングされたVPN接続を設定していました。最近Direct Connect接続をプロビジョニングし、この新しい接続を使用したいと考えています。AWSコンソールでDirect Connectの設定を行った後、次のオプションのうち、ユーザーにとって最もシームレスな移行を実現するのはどれでしょうか?

A. ルーティングループを避けるため、既存のVPN接続を削除し、Direct Connect用のルーターに適切な設定を投入し、ネットワークトラフィックがDirect Connectを利用していることを確認する。

B. VPN用のルーターよりも高いBGPプライオリティにDirect Connect用ルーターを設定し、ネットワークトラフィックがDirect Connectを利用していることを確認する。その後既存のVPNを削除する。

C. Direct Connect接続へ向くようにVPCのルートテーブルを更新し、Direct Connect用ルーターを適切な設定を投入し、ネットワークトラフィックがDirect Connectを利用していることを確認する。その後既存のVPNを削除する。

D. Direct Connectルーターを設定し、Direct Connect接続へ向くようにVPCのルートテーブルを更新し、VPN接続をより高いBGPプライオリティに設定する。その後ネットワークトラフィックがDirect Connect接続を使用していることを確認する。

問題22

あなたはニュース共有型モバイルアプリケーションのアーキテクトです。どこにいてもユーザは選択したトピックのローカルニュースを見ることができます。アプリケーション内から写真や動画を投稿することができます。携帯電話で利用しているため、コンテンツのアップロードには接続の安定性が求められ、素早く配信されることが求められます。コンテンツ は投稿されてから最初の数分で何度もアクセスがありますが 消える前にすぐに新しいコンテンツに入れ替わります。ニュースのローカル性とは、アップロードされたコンテンツの90%が地理的に近い場所で読まれているということです(投稿された場所から100キロ以内)。ユーザーがアップロードしコンテンツを閲覧する際の、ユーザーエクスペリエンス(ページのロード時間とアップロード時間を最小化すること)を最適化するソリューションはどれでしょうか?

A. マスタ用のS3バケットにコンテンツをアップロード、保存する。CloudFrontディストリビューションでコンテンツの配信をする。

B. ユーザに近いリージョンのS3バケットにコンテンツをアップロード、保存する。CloudFrontディストリビューションでコンテンツの配信をする。

C. ユーザに近いリージョンのEC2インスタンスにコンテンツをアップロードし、マスタ用のS3バケットへ格納する。CloudFrontディストリビューションでコンテンツの配信をする。

D. マスタ用のS3バケットへアップロードとコンテンツの配信にCloudFrontディストリビューションを使用する。

問題23

利用者の多いオンラインストアで使用されているDynamoDBのテーブルは現在3000RCUと1000WCUに設定されており、セール期間中にパフォーマンスの問題が発生しています。セール期間中の読み取りワークロードは50倍、書き込みワークロードは2倍に増加することがわかりました。セール期間は事業にとって重要で、月に2回実施されます。事業者は、この負荷の増加に対応するためのソリューションを求めており、彼らは余分な費用をかけても構わないと思っていますが、ソリューションは最も経済的であるべきとも考えています。あなたは何を提案しますか?(3つ選択してください)

A. セール期間中はRCUを150,000に上げ、セールが終わったら減らす。
B. オンラインストアのアプリケーションにDAXを導入する。
C. DyanmoDBのテーブルの読み込みのキャッシュとしてSQSを使用する。
D. 繁忙期はWCUを2,000に上げ、終わったら下げる。
E. DyanmoDBのテーブルの書き込みのキャッシュとしてSQSを使用する。

問題24

グローバル企業のお客様は、「AWSのベストプラクティスを活用する」ために、WEBサイトのポータルをリライトしたいと考えています。この大企業の他の情報は以下の通りです。ポータルの一部には従業員専用のセクションがあり、認証は企業のActive Directoryに対して行う必要があります。WEB解析用サイトを使用して、過去1年間の月平均訪問者数が140,000人、ピークは先月の187,000人、最低でも2ヶ月前の109,000人であることが確認できました。これらの訪問者のうち、ポータルにサインインした従業員の割合についての情報はありません。また、WEB解析用サイトでは、トラフィックの内訳が南米40%、北米50%、その他10%であることもわかりました。この顧客の主要データセンターはブラジルのサンパウロにあります。同社のCTOは、従業員が現在のウェブサイトが遅すぎると不満を持っているため、従業員ポータルにログインする際の応答時間が主要な指標であると考えています。提案されたアプリケーション・アーキテクチャを顧客に提示する際に、アーキテクチャの一部として提案すべきものは次のうちどれですか? (3つの回答を選択してください)

A. ポータルにログインする従業員のユニークな(プライベートの)セッション情報はCDNにキャッシュさせるべきではないので、CloudFrontは使わない。

B. 専用線を使い企業のデータセンターとus-eastリージョンのAWSとの接続を確立する。

C. Amazon CloudFrontを利用して、最も近いエッジの位置にいるユーザーのページをキャッシュする。

D. 3サブネットのVPCで、AWSリージョンにADコントローラーを設置する。AWSのADコントローラはプライマリADコントローラのフォレストの一部となり、企業のデータセンターへの専用線を介して企業のコントローラと同期します。

E. sa-eastとus-eastの両方のリージョンから企業のデータセンターへ専用線を使ってでAWSとの接続を確立する。

F. すべてのADへのコールを専用線経由で企業のデータセンターへルーティングする、3つのサブネットをもったVPCを構築する。

問題25

あなたはシステムを設計しており、サービスのトラフィックを管理するために最低でも8つのm4.largeインスタンスを動作させる必要があります。6つのアベイラビリティゾーンを持つus-east-1リージョンで高可用性を実現するシステムを設計する場合、どのアベイラビリティゾーンで障害が発生しても可用性を担保する必要があります。EC2ノードをすべてELBに適切に連携させた場合を想定して、できるだけコストを抑えるためには、どのようにサーバーを分散させるべきでしょうか?あなたのVPCアカウントは、us-east-1のAZのaからfまでを利用することができます。

A. AZのaからdまで、各3つのサーバーを配置する。
B. AZのaとbに各8台のサーバーを配置する。
C. AZのaからeまで、各2つのサーバーを配置する。
D. AZのaからcまで、各4つのサーバーを配置する。

問題26

ある企業が市場のストリーミングデータを取り込み、処理します。データレートは一定です。集計および分析する計算のプロセスが毎晩実行され、各処理は約4時間で完了します。統計分析はビジネスにとってミッションクリティカルなものではなく、特定の実行が失敗した場合には、次の実行時に以前のデータポイントが取得されます。現在のアーキテクチャでは、フルタイムで稼働している1年契約のAmazon EC2リザーブドインスタンスのプールを使用しており、接続されたEBSボリュームにストリーミングデータを取り込み、保存します。オンデマンドEC2インスタンスは毎晩起動され、夜間処理を実行し、取り込み用サーバーのNFS共有から格納されたデータにアクセスし、完了時にこの夜間処理サーバーを終了します。リザーブドインスタンスの予約が期限切れになり、新たに予約を購入するか、新しい設計で実装するかを判断する必要があります。最も費用対効果の高い設計はどれでしょうか?

A. データをKinesis Data Firehoseを使ってS3へ保存するように取り込みプロセスを修正する。夜間にS3データのバッチ処理を実行するためにオンデマンドのEC2インスタンスを起動し、処理完了後、削除する。

B. データをKinesis Data Firehoseを使ってS3へ保存するように取り込みプロセスを修正する。夜間処理を実行するために、スポットインスタンスをオンデマンドの料金の50%で入札するようにAWS Batchを使用する。

C. NLBの後ろに3年契約のEC2リザーブドインスタンスを使用するように取り込みプロセスを修正する。夜間処理のために、スポットインスタンスの最大額がオンデマンドの料金の50%で入札するようにAWS Batchを使用する。

D. データをKinesis Data Firehoseを使ってRedshiftへ保存するように取り込みプロセスを修正する。日次の統計を作成するために、CloudWatch Eventsを使い夜間にスケジュールされた、Redshiftからデータを取得する処理をLambda関数を使用する。

問題27

レガシーソフトウェアがMACアドレスに関連付けられたライセンスを持つEC2インスタンスでホストされています。あなたのAWSの経験から、MACアドレスはインスタンスが再起動時されるたびににほぼ確実に変更されてしまうことを知っています。以下の選択肢でこれに対する可能なソリューションはどれですか?

A. デプロイするすべてのEC2インスタンスに、MACアドレスにマッピングする静的IPアドレスがあることを確認する。

B. ライセンス用のプライベートサブネットとEC2用のパブリックサブネットを持ったVPCを使う。

C. プライベートサブネットを持ったVPCを使用し、MACアドレスをそのサブネットに関連付けられるように構成する。

D. 固定MACアドレスを持つElastic Network InterfaceでVPCを使用する。

問題28

あなたの会社は大量の航空画像データをS3にアップロードしています。これまでは、オンプレミス環境では、このデータを処理するために専用のサーバーグループを使用しており、ジョブ情報をこれらのサーバーに送信するために、オープンソースのメッセージングシステムであるRabbitMQを使用しています。処理後のデータはテープに保存され、オフサイトに出荷されます。あなたのマネージャーは、現在の設計を維持し、コストを最小限に抑えるためにAWSのアーカイブストレージとメッセージングサービスを活用するように指示しました。どれが正しいでしょうか?

A. ジョブメッセージの受け渡しにSQSを使用し、EC2のワーカー用インスタンスがアイドル状態になったらCloud Watch Alarmsを使用して終了させます。データを処理したら、S3オブジェクトのストレージクラスをReduced Redundancy Storageに変更する。

B. SQSでメッセージを処理するために、スポットインスタンスを使用しキューの深さによってトリガーされるAuto Scalingのワーカーを設定する。データを処理したら、S3オブジェクトのストレージクラスをReduced Redundancy Storageに変更する。

C. SQSでメッセージを処理するために、スポットインスタンスを使用しキューの深さによってトリガーされるAuto Scalingのワーカーを設定する。データを処理したら、S3オブジェクトのストレージクラスをGlacierに変更する。

D. SNSを使用してジョブメッセージを渡し、Cloud Watch Alarmsを使用して、スポットワーカーのインスタンスがアイドルになったら終了させる データを処理したら、S3オブジェクトのストレージクラスをGlacierに変更する

問題29

ある企業はAWSにDBクラスターをデプロイすることを計画しています。DBクラスターはノード間でリアルタイムに近いレプリケーションが必要です。組み込みのクラスター製品には、以下の要件があります。
・ノード間のネットワーク遅延が最小であること
・ネットワークのスループットが最大であること
DBクラスターの性能要件を満たすソリューションはどれでしょうか。

A. Elastic Network Adapter(ENA)を使用して拡張ネットワーキングが有効になっているAmazon EC2インスタンスを起動する。スプレッドプレイスメントメントグループのすべてのインスタンスを起動する。

B. ジャンボフレームが有効になっているネットワーク最適化Amazon EC2インスタンスを起動する。同じアベイラビリティーゾーンでインスタンスを起動する。

C. Elastic Network Adapter(ENA)を使用して拡張ネットワーキングが有効になっているAmazon EC2インスタンスを起動する。クラスターのプレイスメントグループ内ですべてのインスタンスを起動し、ジャンボフレームのサポートを有効にする。

D. 複数のネットワークインターフェイスを持つAmazon EC2インスタンスを起動する。クラスターのプレイスメントグループ内のすべてのインスタンスを起動し、ジャンボフレームのサポートを有効にする。

問題30

あなたの会社は、ペットの健康的なライフスタイルを促進するために、生体情報を収集する次世代のペット用の首輪の開発を進めています。首輪は、2秒ごとに30KBの生体情報をJSON形式で収集プラットフォームにプッシュします。経営陣は、以下の要件が満たされていることを保証するために、あたなを収集プラットフォームのアーキテクトに任命しました。インバウンド生体認証データのリアルタイム分析機能を提供し、生体認証データの処理が高耐久性、弾力性、並列性を確保すること。分析処理の結果は、データマイニングのために永続化されなければなりません。収集プラットフォームの初期要件を満たすのは、以下のアーキテクチャの概要のうちどれか。

A. インバウンドのセンサーデータの収集にS3を利用し、このS3のデータを日次でスケジューリングしたData Pipelineで分析する。結果はRedshiftクラスターに保存する。

B.
インバウンドのセンサーデータの収集にKinesisを利用し、このデータをKinesis clientsで分析する。EMRを使い結果をRedshiftクラスターに保存する。

C.
インバウンドのセンサーデータの収集にSQSを利用し、このSQSのデータをAmazon Kinesisで分析する。結果をMicrosoft SQL RDSインスタンスに保存する。

D.
インバウンドのセンサーデータの収集にEMRを利用し、このデータをAmazon Kinesisで分析、結果をDynamoDBに保存する。

問題1回答

ネットワークトラフィックをモニタリングできるようにするということで、VPCフローログを作成します。VPCフローログの出力先はCloudWatch LogsとS3になります。選択肢BのS3に出力しログに対しAthenaでクエリを発行するアーキテクチャであれば、ネットワークトラフィックが増加した場合でもスケーラブルに対応できますし、開発も最小限になります。QuickSightはデータを可視化することができるBIサービスです。

A:Lambdaの開発の工数だけでなく、ネットワークトラフィックが増加した時のDynamoDBやAuroraのコスト増加も発生するため不適切です。
C:ネットワークトラフィックをどうキャプチャするかの記載がないため不適切です。
D:開発工数だけでなく、EMRのインメモリSparkアプリケーションの管理工数も発生します。

回答:B

問題2回答

API GatewayはLambdaを呼び出すのでAPI Gatewayに権限を付与します(C)。LambdaはDynamoDBの読み込み/書き込みを行いますので、UserScheduleDataに対象のDynamoDBのARNを指定してGetItemとPutItemの権限を付与します(F)。また、統合テストをするとあるのでログの出力は必須になるので、CloudWatch Logsに出力する権限も付与します(B)。

A:X-RayはAPI Gateway、Lambda、DynamoDBなどを使ったアーキテクチャの分析やトレースに使うサービスです。例えば各コンポーネント間のパフォーマンスのボトルネックを特定できます。設問にはそこまでの要件が書かれていないため不適切です。
D:LambdaのDead Letter Queueは関数が失敗したときにSQSかSNSへメッセージを送信することができます。例えばDynamoDBへ書き込むときに、障害などで書き込めなかったときに、失敗したことをSNSで通知したり、書き込む内容をSQSにキューイングするということができます。こちらは要件にないため不適切です。
E:FetchItemというActionはありません。また、resourceは「*」ではなくARNを指定すべきです。

回答:B、C、F

問題3回答

CloudTrail用のバケットは共通のものを作成し1つのバケットへ出力するようにします(A)。セキュリティチームのバケットへのアクセスはスイッチロールでアクセスできるようにするために、IAMロールを作成します(D)。また、CloudTrailからログ記録用のバケットに出力できるようにバケットポリシーを作成します(G)。

B:アクセス権もあるので既存のS3バケットは使うべきではありません。また、管理を一元化するために1つのバケットで管理するべきです。
C:スイッチロールでバケットのRead Onlyの権限を委任できるのでIAMロールで実現したほうがよいです。
E:以下の原則により明示的なDenyは明示的なAllowよりも強いです。そのためセキュリティチームはGET操作ができません。

明示的なDeny > 明示的なAllow > 暗黙のDeny

F:バケットポリシーだけでなくIAMと組み合わせてアクセス制御を考えたほうがよいです。セキュリティチームのメンバーの変更に伴いバケットポリシーの修正をするのは非効率です。

回答:A、D、G

問題4回答

API GatewayのREST APIでは、エッジ最適化、リージョナル、プライベートの3つのタイプを選択でき、エッジ最適化は利用者が地理的に分散している場合に有効です。APIへのリクエストは、最寄りのCloudFront POP(Point of Presence)にルーティングされます。これによるアップロードのパフォーマンスの改善が期待できます。また、API GatewayではIAM、Lambdaオーソライザー、Cognitoオーソライザーによる認証でエンドポイントを保護することができます。選択肢AではCognitoオーソライザーを使いCognitoのユーザープールで認証するようにしています。API Gatewayの種類を下表に示します。

画像2

B:S3へのアップロードのパフォーマンスを改善させるには、リージョンタイプのエンドポイントよりも、エッジ最適化のエンドポイントを使うほうが効果的です。
C:S3 Transfer AccelerationはCloudFrontのエッジロケーションを使ってアップロードをする仕組みで、エッジロケーションに到達したデータは最適なネットワークパスでS3にルーティングします。これによりパフォーマンスは改善しますが、認証したユーザのみがアクセスできる仕組みについて言及されていません。
D:こちらもアップロードのパフォーマンスは改善されますが、認証に関する要件を満たせません。

回答:A

問題5回答

最初にすることはESのドメインを作成することです。

開始する前に、Amazon ES ドメインを作成します。Amazon ES ドメインではパブリックアクセスまたは VPC アクセスが可能ですが、その場合はドメインの作成後にアクセスのタイプを変更することはできません。後で Amazon ES ドメイン設定を確認し、クラスターが処理するデータの量に基づいてクラスター設定を変更することができます。

参考URL:CloudWatch Logs データの Amazon Elasticsearch Service へのストリーミング

問題6回答

CloudFormationはAWSのリソースをコード化すること(IaC: Infrastructure as a Code)ができるサービスです。作成するリソースをテンプレートとして定義し、これを作成するとスタックと呼ばれるリソース集が作成されます。CloudFormationを使うことでインフラをコードとして管理することができるので、他の人がレビューをしたり、テンプレートをGitなどでバージョン管理ツールしたり、同じ構成の環境を複数作成したりすることができます。また、障害が発生した時にもまったく同じ環境を再作成することができます(何度実行しても同じ結果になることを冪等性(べきとうせい)といいます)。よって正解は選択肢Dです。

A:OpsWorkはインフラ構成をコード化することができますが、コスト配分レポートはインフラのデプロイやバージョン管理とはまったく関係ありません。
B:CloudWatchはモニタリングのためのサービスであり、タグ付けは識別のために付けるものでデプロイには関係ありません。
C:Elastic Beanstalkはアプリケーションを動かすためのインフラを提供するマネージドサービスです。インフラのデプロイや管理はできません。

回答:D

問題7回答

センサー数が1,000倍になり、2年分保持しておく必要があるということで、ざっくりと、、
 3GB × 1,000 × 24 = 72TB
必要になります。また、スケーリングできることを加味するとDynamoDBが適切です。また、後でRedshiftにデータを保存し分析することができるBが正解です。

A:SQSを使うことでRDSの書き込みのバッファにはなりますが、バッチ処理など特定の時間帯にスパイクする要件のときに採用するアーキテクチャで、常時データがアップロードされるアーキテクチャではキューを処理しきれません。また、RDS自体、スケールやパフォーマンスを満たすことができません。
C:Redshiftはデータウェアハウス用に設計されており、取り込みのスループットをサポートできません。
D:2年分のデータを保持するディスクが確保されていないため不適切です。

回答:B

問題8回答

時間によってアクセス数が変わる可能性があるということで、Auto Scalingを導入することで費用対効果を持たせつつパフォーマンスを改善することができます(B)。また、WEB層の静的コンテンツをCloudFrontのエッジロケーションから配信することもパフォーマンスを改善することができます(D)。

A:すべてのEC2インスタンスのインスタンスタイプを上げることは、パフォーマンスを改善させられますが、コスト効率が悪く、オーバースケールになる可能性もあります。
C、E:WEB層とAP層に問題があるのでDB層を変えてもパフォーマンスを改善することはできません。

回答:B、D

問題9回答

処理中の時間のほとんどはCPUがアイドル状態ということで、I/O側にボトルネックがあることがわかります。I/O性能が高く小さなインスタンスに変更することで費用対効果を高めジョブ処理時間を短くすることができます。

A、D:コストも処理時間も短くすることはできません。
B:処理時間を短くすることはできますが、費用対効果は悪くなります。

回答:C

問題10回答

VPC内、特にクラスタープレイスメントグループで最大のネットワークスループットを実現するためにはジャンボフレームを使用します。ジャンボフレームの説明は以下の通りです。

ジャンボフレームでは、パケットあたりのペイロードサイズを拡張し、パケットオーバーヘッド以外のパケットの割合を高めることによって、1500 バイトを超えるデータを送信できます。同じ量の使用可能なデータを少ないパケットで送信することができます。
(中略)
クラスタープレイスメントグループ内にコロケーションされたインスタンスでは、考えられる最大のネットワークスループットの実現するうえでジャンボフレームが役立ちます。

参考URL:ジャンボフレーム(9001 MTU)
よって正解はAです。

B:VPCピアリングを採用しても最大MTUは1500のままです。
C:AMIの再作成ではネットワークパフォーマンスを改善することはできません。
D:TCPスタックのSYN/ACKをオフや、UDPの使用はアプリケーションの要件を慎重に検討すべきです。

回答:A

問題11回答

要件では、リアルタイムにデータを取り込む必要があります。こういったストリーミングデータの取り込みのベストな選択肢はKinesisになります。データはS3に保存しEMRとRedshiftを使って分析します。S3に保存したデータはライフサイクルポリシーでGlacierにアーカイブすることができます。

A:Cognitoは認証に使うサービスですのでデータの取り込みに使うことはできません。
B:ストリーミングデータを直接DynamoDBに取り込むことは不適切です。
C:大量のデータを直接S3へ書き込むのはベストな選択肢ではありません。

回答:D

問題12回答

それぞれの選択肢はどれも正しそうに見えますが、スケーラビリティとセキュリティの要件を満たす組み合わせを考えると正解が見えてきます。
オンプレミス環境で稼働しているアプリケーションではスケーラビリティが確保されていないと思われるので、アプリケーションはEC2インスタンスへ移行します(A)。VPCに作成したEC2インスタンスとDynamoDB間の通信はゲートウェイVPCエンドポイントを使うことでインターナル通信にすることができるのでセキュリティの担保もできます(E)。
なお、VPCエンドポイントにはゲートウェイ型とインターフェース型があります。ゲートウェイ型で使えるのはS3とDynamoDBだけであとのサービス(もちろん使えないサービスもあります)はインターフェース型になります。あと試験には関係ないですが、、運用面ではVPCエンドポイントは意外と高いので利用数を絞るように設計するようにしましょう。

B:HTTPSエンドポイントを使うよりもVPCエンドポイントを使ったインターナル通信にすべきです。
C:オンプレミスとVPN接続をするということで、アプリケーションがオンプレミスにある想定ですが、スケーラビリティが確保されないため不適切です。
D:高いRCUとWCUを使うとコストがかかります。プロビジョニングは需要を予測してリソースを確保することなので、漠然と高いリソースを設定することは不適切です。
F:保管データの暗号化はアプリケーションとDynamoDB間のセキュリティには影響ないです。

回答:A、E

問題13回答

アソシエイトの試験では必須のセキュリティグループとネットワークACLの違いですが、プロフェッショナルの試験ではNACLの戻りの通信の設定が問われることがあります。
ALBがWEBサーバの通信をプロキシするので、10.0.0.0/24から80番ポートを設定します(B)。戻りの通信は一時ポート(ephemeral port)が使われるので10.0.0.0/24向けのポート1024~65535のアウトバウンドのルールを設定します(E)。

参考URL:ネットワークACL(一時ポート)

回答:B、E

問題14回答

1時間毎のDBのバックアップと、5分ごとにトランザクションログを取得することで障害発生時の最大5分前に戻すことができます。また、それぞれS3に取ることでAZ障害でもリカバリすることができます(A)。
一般的なDBの復旧方法ですが、定期的に取得しているバックアップデータを元にDBをリストアしたあと、トランザクションログ(INSERTやUPDATEなどの操作ログ)を適用することでリカバリします。このトランザクションログを適用することをロールフォワードといいます。トランザクションログが多いとロールフォワードに時間がかかるため、RTOによってDBのバックアップ取得間隔を決めます(RTOが短ければバックアップ取得間隔を短くする)。

B:レプリケーションはハードウェアの物理障害に対しては有効ですが、論理障害に対しては有効ではありません。例えば、誤ってデータを削除してしまった場合には、データ削除がスレーブDBにも反映されてしまいます。
C:EBSはAZ障害に対して有効ではありません。
D:Glacierから取り出すのには時間がかかるのでRTOを満たせません。

回答:A

問題15回答

鍵管理サービスで一意になる証明書を生成し、新しいEC2インスタンスで使えるようにするのはCだけです。

A:S3で鍵を管理していますが、S3は鍵管理サービスではありません。また、S3から取得される証明書を一意にする必要があります。
B:AMIに証明書を埋め込むと証明書を一意にすることができません。
D:EC2インスタンスで証明書を生成することはできますが、鍵管理サービスで生成されたことになりません。

回答:C

問題16回答

DynamoDB Streamはitemの追加や変更、削除をイベントとして検出できる機能です。このイベントをトリガーにLambdaを起動し、変更処理ログから機密情報を削除しCloudWatch Logsに保存することで要件を満たせます。なお、StreamSpecificationはDynamoDBのテーブル作成や変更時のオプションです。

参考URL:DynamoDB ストリーム を使用したテーブルアクティビティのキャプチャ

B、D:監査ログが一時的にアプリケーションサーバのディスクに保管されるため、障害時にログが消失する可能性があります。
C:DynamoDB Streamを使うことでDynamoDBへの書き込み処理と監査ログ作成処理は並列で実行されますが、一時的にインスタンスストアへ保管するので耐久性が保証されず、ログが消失する可能性があります。

回答:A

問題17回答

HTTPS通信で使われるSSL/TLS証明書を発行・管理やCAになるサービスはAWS Certificate Manager(ACM)です。ELBやEC2インスタンスで使用すれば、無料で使えたり、証明書の自動更新があったりと神サービスですね。。
ACMはリージョナルサービスですので、あるリージョンのALBで証明書を使用するのであればそのリージョンのACMにリクエストする必要があります(D)。

A、B:KMSはデータの暗号化で使われる暗号鍵の生成、管理をするためのマネージドサービスで、HTTPS通信で使われるSSL/TLS証明書には対応していません(非対称鍵暗号には対応していない)
C:ACMはリージョナルサービスなので、あるリージョンで作成した証明書を他のリージョンで使用することはできません。

回答:D

問題18回答

ステートフルなアプリケーションに対しインスタン上にセッションなどの情報を持たせないためには、ElastiCacheを使うのがベストプラクティスです。この内容は、アソシエイトの試験でも出てきますがプロフェッショナルではMemcachedエンジンとRedisエンジンの違いについて問われることがあります。一般的にRedisのほうが高性能でフェイルオーバーなど高可用性な機能があります。設問では可用性が求められているのでRedisエンジンが適切です。
Redisのほうが高性能と覚えておきましょう。MemcachedとRedisの比較は以下の通りです。

画像2

参考URL:Redis と Memcached の比較

A:MemcachedはRedisと比較して高可用性ではありません。
B:S3はレイテンシーが高いため、セッションデータの保管場所として適切ではありません。
C:RDSはコスト効果が悪いです。

回答:D

問題19回答

この問題はレプリケーションの仕組みについて考えてみます。レプリケーションとは、二つのDBやストレージ間でデータを同期させることで、できるだけレイテンシなしに同じデータになっていることが望ましいです。データをコピーするときに全量コピーしていたのでは時間がかかるので、差分更新するのが望ましいです。差分レプリケーションするには前回レプリケーションしたところから元のデータに更新があったところを知る必要があり、それを設問ではレプリケーション・メッセージと言っています。
レプリケーション・メッセージをSQSに入れ、SQSのキューをポーリングするインスタンスを増やせばレプリケーション・メッセージのバックログを減らすことができます(SQSのキューの深さをもとにインスタンスをスケーリングすることもできます)。

A:垂直スケーリングよりも水平スケーリングのほうが適切です。
D:リージョンを変えても大きな変化は期待できないと思われます。また、物理的に距離が遠くなるので悪化する可能性もあります。
E:ENIを追加してもインスタンスの性能は向上しません。

回答:B、C

問題20回答

アプリケーションをコンテナ化しECSでAuto Scalingを設定したEC2にデプロイするアーキテクチャがもっともコスト効率が高いです。

A:数時間かかる処理があると記載されておりますが、Lambdaは長時間の実行はできませんので不適切です。
C:それぞれのアプリケーションにElastic Beanstalkを使うのはコスト効率がよくないです。
D:バッチ処理は常時稼働しているわけではないので、リザーブドインスタンスを使ったEC2インスタンスのAuto Scalingはコスト効率がよくないです。

回答:B

問題21回答

VPCにVPN接続とDirect Connect接続がある場合、Direct Connect接続が優先されます。具体的なルーティングの優先度は以下のとおりです。

VPC に仮想プライベートゲートウェイ(VGW)をアタッチし、ルートテーブルでルート伝達(propagation)を有効にしている場合、VPN 接続のルートは、ルートテーブルに伝達されたルートとして自動的に表示されます。

・VPN接続やAWS Direct Connect接続からの伝達ルートがVPCのローカルルートと重複している場合、伝達ルートがより具体的であってもローカルルートが最も優先されます。

・VPN接続やAWS Direct Connect接続から伝搬された経路が、既存の静的ルートと同じ宛先CIDRブロックを持つ場合(最長プレフィックスマッチが適用できない場合)、IGW、VGW、ネットワークインターフェース、インスタンスID、VPCピアリング接続、NATゲートウェイ、VPCエンドポイントをターゲットとした静的経路を優先的に使用します。VPN 接続内で経路が重複しており、最長プレフィックス一致が適用できない場合は、VPN 接続内で以下の優先順位で、最も優先される経路から最も優先されない経路まで優先します。
 ・Direct Connect接続からのBGP伝達ルート
 ・VPN接続用の手動で設定した静的ルート
 ・VPN接続からのBGP伝達ルート

参考URL:ルーティング優先度

回答:C

問題22回答

CloudFrontではPOSTをサポートしているので、利用者がコンテンツをCloudFrontディストリビューションにアップロードすると、CloudFrontは最適なネットワークパスを通って、リクエストをオリジンサーバ(S3バケット、EC2インスタンスやELB)へプロキシします。DではCloudFrontのディストリビューションを使用してアップロードのリクエストを処理するとあるのでこちらが正解です。

A、B、C:どれもアップロード時間の改善にはつながりません。

回答:D

問題23回答

DynamoDBのスケーリングを検討するときに、RCUとWCUを増やすことで解決することはできますが、コストも同様に増えるので、大幅にスケールする必要があるときには別の構成にすることを検討したほうが効果的です。
Amazon DynamoDB Accelerator(DAX)はDynamoDBのインメモリキャッシュで、導入することでRCUを減らすことができます(B)。
DynamoDBの書き込みのキャシュとしてSQSを導入することでWCUを抑えることもできます(E)。アプリケーションから直接DynamoDBへ書き込むのではなく、まずはSQSへ書き込み、WCUに応じてSQSからDynamoDBへ書き込むようにします。ただし、この方法はアプリケーションの改修が必要になり、オンラインストアの注文結果を即座にDynamoDBから取得できない、書き込み内容が常時1000WCUを上回る場合にSQSのキューが滞留してしまう可能性もあるため、単純にWCUを上げることも検討すべきです(D)。

A:RCUを150,000に上げるとコストが大幅に上がります。DAXを使いRCUを調整すべきです。
C:SQSは書き込みのキャッシュにはなりますが、読み込みのキャッシュにはなりません。

回答:B、D、E

問題24回答

AWSと企業のデータセンター間で専用線接続を構築します。AWSにADコントローラを構築し、企業のデータセンターにあるADのフォレストに参加させデータを同期させます。これによりAWS上のポータルでADを使い認証することで、認証にかかるレイテンシを減らすことができます。また、CloudFrontを使いユーザのページをキャッシングすることでウェブサイトの表示を早くすることができます。

A:CloudFrontは静的コンテンツだけでなく、動的コンテンツも適切なTTLを設定することでキャッシングすることができるので不適切です。
E:Direct ConnectはActive Directoryの同期のために必要になりますが、複数のDirect Connectを敷設するのではなく、コスト抑制のため1回線を有効活用すべきです。
F:すべてのADコールを企業のコールセンターで処理するのはレイテンシが増加します。

回答:B、C、D

問題25回答

1つのAZで障害が発生しても8台以上のサーバーを維持でき、その中で一番台数を少なくできる(コストを抑えることができる)のは、Cです。

A:障害発生時でもサーバを8台以上維持できますが、合計12台必要です。
B:障害発生時でもサーバを8台以上維持できますが、合計16台必要です。
D:障害発生時でもサーバを8台以上維持できますが、合計12台必要です。

問題26回答

ストリーミングデータはKinesis Data Firehoseを使いS3へ格納することができます。統計処理は夜間実行のバッチ処理ですのでその間だけの稼働でよく、また、ミッションクリティカルではないのでスポットインスタンスで実行するのがよいです。一定時間だけスポットインスタンスを使用するのはコスト効果が高いです。

A:オンデマンドインスタンスよりもスポットインスタンスを使うようにしたほうがコスト効果が高いです。
C:リザーブドインスタンスとNLBによるデータ取り込みは、コスト効果は高くなく、スケーラブルではありません。また、データ保管についての記載もありません。
D:Redshiftは常時稼働させる必要があるのでコスト効果が低いです。

問題27回答

ENIは、VPC内のインスタンスにアタッチできる仮想ネットワークインターフェースで、MACアドレスを含むいくつかの属性を持っています。ENIを別のインスタンスに付け替えてもMACアドレスは維持されます。

たとえば、データベースインスタンスや NAT インスタンスなどの重要なサービスに対するプライマリまたはセカンダリのネットワークインターフェイスとしてネットワークインターフェイスを使用することができます。そのインスタンスが機能しなくなった場合、お客様 (通常はお客様に代わって実行されるコード) がネットワークインターフェイスをホットスタンバイ用のインスタンスにアタッチすることができます。インターフェイスでは、プライベート IP アドレス、Elastic IP アドレス、および MAC アドレスがそのまま維持されるため、交換用のインスタンスにネットワークインターフェイスを接続するとすぐに、ネットワークトラフィックはスタンバイ用のインスタンスに流れ始めます。

参考URL:Elastic Network Interface

回答:D

問題28回答

メッセージングシステムのリプレイス候補としてSQSが挙げられるでしょう。SQSのキュー量(深さ)によってワーカーを増やすようにAutoScalingを設定し、また、コストを抑えるためにスポットインスタンスを使うことで効率的に画像データを処理できます。データのアーカイブとして処理後はGlacierにストレージクラスを変更します。

A:S3のReduced Redundancy Storage(RRS)クラスはアーカイブに不適です。また、RRSクラスは古いストレージクラスでAWSも新規利用は非推奨なので、SAPの試験でも不正解の場合が多いです。また、EC2インスタンスを終了させるためにはAuto Scalingを使う必要があります。
B:RRSクラスは不適切です。
D:SNSはPush型でメッセージを配信する機能で、メッセージのキューイングはできません。S3のデータと処理側のつなぎとしてはメッセージをキューイングできる必要があるので不適切です。

回答:C

問題29回答

クラスタープレイスメントグループとENAを使った拡張ネットワーキングによって低レイテンシーとスループットの最大化が見込まれます。

クラスタープレイスメントグループは、単一のアベイラビリティーゾーン内のインスタンスを論理的にグループ化したものです。クラスタープレイスメントグループは、同じリージョン内の複数のピア VPC にまたがることができます。同じクラスタープレイスメントグループ内のインスタンスは、TCP/IP トラフィックの 10 Gbps を上限とするフローごとのスループット制限が高くなり、ネットワークの同じ高バイセクションバンド幅セグメントに配置されます。
(中略)
低いネットワークレイテンシー、高いネットワークスループット、またはその両方からメリットを受けるアプリケーションの場合は、クラスタープレイスメントグループの使用をお勧めします。また、ネットワークトラフィックの大部分がグループ内のインスタンス間で発生している場合にもお勧めします。プレイスメントグループで、最も低いレイテンシーと最も高いネットワークパフォーマンス (1 秒あたりパケット数) を実現するためには、拡張ネットワーキングをサポートするインスタンスタイプを選択します。詳細については、「拡張ネットワーキング」を参照してください。

参考URL:クラスタープレイスメント拡張ネットワーキング

回答:C

問題30回答

ストリームデータを収集するためのサービスとして高耐久性、弾力性、で並列に処理ができるKinesisが適しております。Kinesis clientで分析し結果をRedshiftに保管し、EMRなどでデータマイニングをすることができます。

A:ストリームデータを直接S3に収集するのは不適切です。また、日時のジョブはリアルタイムの分析を提供できません。
C:ストリームデータを収集するのにSQSは不適切です。また、SQL Serverはスケーラブルではありません。
D:EMR単体ではデータの収集には向いていません。Kafkaなどのフレームワークが必要になります。

回答:B

この記事が気に入ったらサポートをしてみませんか?