【解説つき】2020年3月新試験版AWS 認定ソリューションアーキテクト - アソシエイト資格のサンプル問題を解いてみよう
こんにちはラーニングサービス本部 テクニカルトレーニング第1部でAWS認定トレーニングコースを担当しております山下です。
さて、今回は2020年3月23日に更新される「AWS 認定ソリューションアーキテクト - アソシエイト」SAA-C02試験のサンプル問題の解説を書いてみます。
今回は公式解説もサンプル問題に記載がありますので、それをベースに図解します。
※情報は2020年3月11日時点のものです。
試験ガイドもアップデートされましたので、改めてAWS認定ソリューションアーキテクトアソシエイトについて記載します。
「AWS 認定ソリューションアーキテクト - アソシエイト」とは
AWS認定のアソシエイトレベルには、役割別に3つの試験があります。オペレーションや管理を担当する方向けの「SysOpsアドミニストレーター」、開発担当者向けの「デベロッパー」、そしてこの「ソリューションアーキテクト」は、設計や提案をされる方向けの認定です。AWS上で要件や課題に基づいてベストプラクティスに沿った設計構築を行えることを証明できます。
たびたび「人気の認定資格」や「稼げる認定資格」として取り上げられている認定資格です。
2020年3月に試験問題の改訂が行われました。これから受験を予定している方は、試験ガイドを見直しておきましょう。
受験者に推奨されるAWS関連知識
- AWS上で使用可能な、コスト効率が高く、フォールトトレランスでスケーラブルな分散システムを設計する1年間の実務経験。
- コンピューティング、ネットワーキング、ストレージ、およびデータベース関連のAWSのサービスを使用した実務経験。
- AWSのデプロイメントおよび管理サービスの実務経験。
- AWSベースのアプリケーションの技術要件を特定して定義する能力。
- 特定の技術要件を満たすAWSのサービスを特定する能力。
- AWSプラットフォーム上に安全で信頼性の高いアプリケーションを構築するために推奨されているベストプラクティスに関する知識。
- AWSクラウドで構築される基本的なアーキテクチャ原則の理解。
- AWSグローバルインフラストラクチャの理解。
- AWSに関連するネットワークテクノロジーの理解。
- AWSが提供するセキュリティ機能とツール、およびそれらが従来のサービスとどのように関連しているかの理解。
出題範囲
- レジリエントアーキテクチャの設計 30%
- 高パフォーマンスアーキテクチャの設計 28%
- セキュアなアプリケーションとアーキテクチャの設計 24%
- コスト最適化アーキテクチャの設計 18%
サンプル問題
Amazon Web Services, Inc.のサイトからPDFをダウンロードできます。
【解答と解説】AWS 認定ソリューションアーキテクト - アソシエイト (2020年 3 月開始) SAA-C02サンプル問題
1) カスタマーリレーションシップマネジメント (CRM) アプリケーションは、アプリケーションロードバランサーの背 後にある複数のアベイラビリティーゾーンの Amazon EC2 インスタンスで実行されます。
これらのインスタンスのいずれかに障害が発生した場合、どうなりますか。
A. ロードバランサーが、障害が発生したインスタンスへのリクエスト送信を停止する。
B. ロードバランサーが、障害が発生したインスタンスを終了する。
C. ロードバランサーが、障害が発生したインスタンスを自動的に置換する。
D. ロードバランサーが、インスタンスが置換されるまで 504 ゲートウェイタイムアウトエラーを返す。
解答: A
【解説】
Application Load Balancerは、ヘルスチェックに合格(Healthy)した正常なインスタンスのみにリクエストを送信します。
ヘルスチェックで不合格となった(Unhealthy)インスタンスにはリクエストは送信しなくなります。
合格、不合格とも指定回数の連続成功、連続失敗によりステータスが変わります。
ALBのターゲットがAuto Scaling Groupで、かつ、ヘルスチェックのタイプがELBの場合、B,Cの選択肢のように、Auto Scaling Groupが異常なインスタンスを終了し、希望するインスタンス数に満たなくなった場合は、起動設定(起動テンプレート)を使用して新しいインスタンスを自動起動します。
選択肢の主語が「ロードバランサーが」ですので、回答から除外できます。
Application Load Barancerで504: Gateway Timeoutが発生するケースはターゲット全体に対して次の原因が考えられます。
- ロードバランサーは、接続タイムアウトが期限切れになる (10 秒) 前にターゲットへの接続の確立に失敗した。
- ロードバランサーはターゲットへの接続を確立したが、アイドルタイムアウト期間が経過する前にターゲットが応答しなかった。
- サブネットのネットワーク ACL で、ターゲットから一時ポート (1024-65535) のロードバランサーノードへのトラフィックが許可されなかった。
- ターゲットがエンティティ本文より大きな Content-Length ヘッダーを返した。ロードバランサーが欠落しているバイトを待機してタイムアウトした。
- ターゲットは Lambda 関数であり、接続タイムアウトが期限切れになる前に Lambda サービスが応答しませんでした。
この問題では、「インスタンスのいずれかに」ですので、Dは回答から除外できます。
2) 企業は非同期処理を実行する必要があり、分離されたアーキテクチャの一部として Amazon SQS を持っています。同 社は、ポーリングリクエストからの空の応答件数を最小限に抑えることを望んでいます。
空の応答を減らすために、ソリューションアーキテクトはどのような措置を取るべきでしょうか。
A. キューの最大メッセージ保持期間を増やす。
B. キューのリドライブポリシーの最大受信数を増やす。
C. キューの既定の表示タイムアウトを増やす。
D. キューの受信メッセージ待ち時間を増やす。
解答: D
【解説】
ディカップルド→Decoupled→疎結合です。
疎結合で非同期なアーキテクチャにはSQSが使用されることが多くあります。
SQSキューに格納されたメッセージを、コンシューマとして構成されたEC2インスタンス上のプログラムなどが、メッセージを受け取りにいきます(受信)。
これをポーリングリクエストと呼びます。
このときメッセージがなければ応答は空になります。
受信リクエストはメッセージがあっても空でも請求対象です。
空の受信応答を減らすこと = 無駄なコストの排除、です。
メッセージがないとき待機時間を設定できます。
これをロングポーリングと呼びます。
具体的にはReceiveMessageWaitTimeSecondsプロパティに1~20秒で指定します。
このプロパティは、「受信メッセージ待ち時間」や「メッセージ受信待機時間」と表記されることもあります。
Aの「最大メッセージ保持期間」は「メッセージ保持期間」で1分~14日の間で設定できます。
Bの「リドライブポリシーの最大受信数」は「デッドレターキュー再処理ポリシーの最大受信数」です。1~1000の間で設定できます。
Cの「既定の表示タイムアウト」は「デフォルトの可視性タイムアウト」で0秒~12時間の間で設定できます。
3) 企業は現在、オンプレミスアプリケーションのデータをローカルドライブに格納しています。最高技術責任者は、 データを Amazon S3 に保存してハードウェアコストを削減したいのですが、アプリケーションに変更を加えたくないと 考えています。レイテンシーを最小限に抑えるには、頻繁にアクセスするデータをローカルで使用できるようにする必要があります。
ローカルストレージのコストを削減するために、ソリューションアーキテクトが実装できる信頼性と耐久性の高いソリューションはどのようなものですか?
A. ローカルサーバーに SFTP クライアントをデプロイし、AWS Transfer for SFTP を使って Amazon S3 にデータを転送する。
B. キャッシュ型モードに設定された AWS Storage Gateway のボリュームゲートウェイをデプロイする。
C. ローカルサーバーに AWS DataSync エージェントをデプロイし、S3 バケットを送信先として設定する。
D. 保管型モードで設定された AWS Storage Gateway のボリュームゲートウェイをデプロイする。
解答: B
【解説】
AのAWS Transfer for SFTPはSFTPプロトコルを使用して、S3にデータ転送できるようにする機能です。
CのAWS DataSync エージェントはS3やEFSとNFSプロトコル間などのデータ転送する機能です。
いずれの機能も、ローカルデータをS3に保存することはできますが、そのままでは「ローカルストレージのコスト削減」と「頻繁にアクセスするデータのローカル利用」の2つの要件を満たすことはできません。
AWS Storage Gateway ボリュームゲートウェイには、キャッシュボリュームと、保管型ボリュームがあります。
「ローカルストレージのコスト削減」と「頻繁にアクセスするデータのローカル利用」を満たすのはキャッシュボリュームです。
プライマリデータがS3に保存され、アクセス頻度の高いデータがキャッシュとしてローカルに保持されます。
4) 企業は、複数のアベイラビリティーゾーン全体にわたる VPC で、公開されている 3 層 Web アプリケーションを実 行します。プライベートサブネットで実行されているアプリケーション層の Amazon EC2 インスタンスでは、インター ネットからソフトウェアパッチをダウンロードする必要があります。ただし、インターネットから直接インスタンスに アクセスすることはできません。
必要なパッチをインスタンスがダウンロードできるようにするには、どのアクションを実行する必要がありますか。(2 つ選択してください)
A. パブリックサブネットで NAT ゲートウェイを構成する。
B. インターネットトラフィックの NAT ゲートウェイへのルートを持つカスタムルートテーブルを定義し、アプリケーション層のプライベートサブネットに関連付ける。
C. アプリケーションインスタンスに Elastic IP アドレスを割り当てる。
D. インターネットトラフィック用のインターネットゲートウェイへのルートを持つカスタムルートテーブルを定義し、アプリケーション層のプライベートサブネットに関連付ける。
E. プライベートサブネットで NAT インスタンスを構成する。
解答: A, B
【解説】
VPCのパブリックサブネット、プライベートサブネット、ルートテーブル、NATゲートウェイの配置の問題です。
NATゲートウェイはインターネットへの通信が必要ですので、パブリックサブネットで構成します。
NATゲートウェイをターゲットとしたルートテーブルは、プライベートサブネットに関連付けます。
CはElastic IPアドレスという固定のパブリックIPアドレスを確保する機能ですので関係ありません。
Dはインターネットゲートウェイをターゲットとするルートテーブルをサブネットに関連付けてしまうと、そのサブネットのインスタンスは「インターネットから直接インスタンスにアクセスすることはできません」が満たせません。
EのNATインスタンスはNATゲートウェイの機能をEC2インスタンスで実現する方法です。
プライベートサブネットに配置しては「インターネットからソフトウェアパッチをダウンロード」できません。
5) ソリューションアーキテクトは、2 週間の会社のシャットダウン中に実行不要の Amazon EC2 インスタンスのコスト を節約するためのソリューションを設計したいと考えています。インスタンスで実行されているアプリケーションは、 インスタンスが動作を再開するときに必要なデータをインスタンスメモリ (RAM) に格納します。
インスタンスをシャットダウンして再開するためにソリューションアーキテクトが推奨すべきアプローチはどれですか。
A. アプリケーションを変更して、インスタンスストアボリュームにデータを保管する。ボリュームの再起動中にボリュームをアタッチしなおす。
B. インスタンスを停止する前に、インスタンスのスナップショットを作成する。インスタンスを再起動した後、スナップショットを復元する。
C. 休止状態が有効になっているインスタンスでアプリケーションを実行する。シャットダウン前にインスタンスを休止状態にする。
D. 各インスタンスを停止する前に、それらのアベイラビリティーゾーンを記録する。シャットダウン後、同じアベイラビリティーゾーン内でインスタンスを再起動する。
解答: C
【解説】
「不可欠なデータをインスタンスメモリ(RAM)」とありますので、RAMの内容をEBSに保存することのできる、休止を有効にしたEC2インスタンスを使用します。
Aのインスタンスストアのデータは、EC2インスタンスを停止した際に削除されます。
BのスナップショットにはRAMの内容は保存されません。
Dの停止時にはRAMの内容は保存されません。
6) 企業は、VPC で Amazon EC2 インスタンスでモニタリングアプリケーションを実行する予定です。インスタンスへの 接続は、そのプライベート IPv4 アドレスを使用して行われます。ソリューションアーキテクトは、アプリケーション に障害が発生して到達不能になった場合に、トラフィックをスタンバイインスタンスに迅速に送信できるソリューショ ンを設計する必要があります。
これらの要件を満たすアプローチはどれですか。
A. プライベート IP アドレスのリスナーが構成された Application Load Balancer をデプロイし、プライマリインスタンスをロードバランサーに登録する。障害が発生した時点で、インスタンスの登録を解除し、セカンダリインスタンスを登録する。
B. カスタム DHCP オプションセットを構成する。プライマリインスタンスに障害が発生した時点で、同じプライベート IP アドレスをセカンダリインスタンスに割り当てるように DHCP を構成する。
C. プライベート IP アドレスが構成されたインスタンスにセカンダリ Elastic Network Interface (ENI) をアタッチする。プライマリ インスタンスにアクセスできない場合、ENI をスタンバイインスタンスに移動する。
D. Elastic IP アドレスをプライマリインスタンスのネットワークインターフェイスに関連付ける。障害発生時に Elastic IP をプライマリインスタンスの関連付けから解除し、セカンダリインスタンスに関連付ける。
解答: C
【解説】
EC2インスタンスには2つ目のENI(セカンダリENI)をアタッチすることができ、デタッチ、アタッチができます。
ENIにはプライベートIPアドレスが紐付いてるので、同じAMIから新規インスタンスを起動してアタッチすれば短時間で復旧できます。
AのApplication Load Balancerには静的なプライベートIPアドレスの固定ができません。
BのDHCPオプションセットによる任意のDNSサーバーを使用するケースでは、DNSのレコード変更の影響を受けますので、ENIのデタッチアタッチの方が短時間での復旧となります。
DのElastic IPアドレスはパブリックIPアドレスです。
7) 分析会社は、ユーザーにサイト分析サービスを提供する予定です。このサービスでは、ユーザーの Web ページに、 同社の Amazon S3 バケットに対して認証済み GET リクエストを行う JavaScript スクリプトが含まれている必要があ ります。
スクリプトが正常に実行されるようにするために、ソリューションアーキテクトが行うべきことは何ですか。
A. S3 バケットでCross-Origin Resource Sharing (CORS) を有効にする。
B. S3 バケットで S3 バージョン管理を有効にする。
C. スクリプトの署名付き URL をユーザーに提供する。
D. パブリック実行特権を許可するバケットポリシーを構成する。
解答: A
【解説】
Webブラウザに異なるドメインのスクリプト実行をブロックされないように、S3バケットでCORSの設定を追加します。
Bのバージョン管理は更新、削除時にオブジェクトのバージョンを保管します。
Cの署名付きURLはGET, POSTメソッドに対して期限付きの一時認証URLを提供します。
Dのバケットポリシーはバケット、オブジェクトへのAPIアクションを許可します。
もちろんホストしているJavaScriptへのアクセス権限は必要ですが、A以外の選択肢は、Webブラウザによるブロックを制御する機能ではありませんのでAがまず必須の設定として必要です。
8) 企業のセキュリティチームは、クラウドに保存されているすべてのデータを、オンプレミスに保存された暗号化キー を使用して保管時に必ず暗号化する必要があります。
これらの要件を満たす暗号化オプションはどれですか。(2 つ選択してください。)
A. Amazon S3で管理された暗号化キー (SSE-S3) にサーバー側の暗号化を使用する。
B. AWS KMSで管理されたキー (SSE-KMS) にサーバー側の暗号化を使用する。
C. 顧客提供の暗号化キー (SSE-C) を使用して、サーバー側の暗号化を使用する。
D. クライアント側の暗号化を使用して、保存時の暗号化を行う。
E. Amazon S3 イベントによってトリガーされる AWS Lambda 関数を使用し、顧客のキーを使ってデータを暗号化する。
解答: C, D
【解説】
SSEはサーバーサイド暗号化(Server Side Encryption)の略です。
AのSSE-S3はS3で管理されたキーを使用します。
BのSSE-KMSはKMS(Key Management Service)で管理されているキーを使用します。
A, Bは「オンプレミスに保管されている暗号化キー」ではありません。
CのSSE-CはS3にPUT Objectする際にオンプレミス側で管理しているキーを使ってオブジェクトのサーバーサイドの暗号化が行えます。
Dはオンプレミスのキーを使ってクライアントサイドで暗号化済みのオブジェクトをPUTする方法を示しています。
EのS3をトリガーとしたLambdaの実行はPUTされた後の処理ですので、「保存状態では常時暗号化」が満たせません。
9) 規制要件により、企業はアクセスログを最低 5 年間維持する必要があります。一度保存された後のデータにアクセス することはほとんどありませんが、必要に応じて 1 日前に通知することでアクセスできなければなりません。
これらの要件を満たす最もコスト効率の高いデータストレージソリューションはどのようなものですか。
A. Amazon S3 Glacier Deep Archive ストレージにデータを保管し、ライフサイクルルールを使用して 5 年後にオブジェクトを削除する。
B. データを Amazon S3 標準ストレージに保管し、ライフサイクルルールを使用して 30 日後に Amazon S3 Glacier に移行する。
C. Amazon CloudWatch ログを使用してデータをログに保存し、保持期間を 5 年に設定する。
D. Amazon S3標準 - 低頻度アクセス (S3標準 - IA) ストレージにデータを保存し、ライフサイクルルールを使用して 5 年後にオブジェクトを削除する。
解答: A
【解説】
「最もコスト効率に高い」S3ストレージクラスの問題です。
CのCloudWatch Logsへの保存はS3よりもコストが上で、ただ保持しておくためには適していません。
B,D のS3標準の2つのクラスはリアルタイムなオンラインアクセスができますが、AのDeepArchiveよりもコストは上です。
最もコスト効率がよいのは、AのDeepArchiveです。
データにアクセスする際は取り出す必要がありますが、12時間以内の復元が可能ですので、「1日前の事前通知」でまにあいます。
10) 企業は、データ処理ワークロードを実行するためにリザーブドインスタンスを使用しています。夜間のジョブは通 常、実行に 7 時間かかり、10 時間以内に完了する必要があります。同社は、毎月末に需要が一時的に増加するため、 現在のリソースの容量ではジョブが制限時間以内に終わらないと予想しています。いったん開始された処理ジョブは、 完了する前に中断できません。同社は、できる限りコスト効率の高い容量を提供できるソリューションを実装したいと 考えています。
このためにソリューション アーキテクトはどのような措置を取るべきでしょうか。
A. 需要が高い期間にオンデマンドインスタンスをデプロイする。
B. 追加のインスタンスに対して 2 つ目の Amazon EC2 予約を作成する。
C.需要が高まる期間中にスポットインスタンスを展開する。
D. ワークロードの増加をサポートするために、Amazon EC2 予約のインスタンスのインスタンスサイズを増やす。
解答: A
【解説】
「毎月末に需要が一時的に増加」ですので、Dのリザーブドインスタンスの追加は適していません。
また、どれぐらい増加するかが明確ではないので、Bの予約も適していません。
Cのスポットインスタンスは「完了するまで中断できません」という要件を満たさないので、Aの実行した分だけ課金されるオンデマンドインスタンスが正解です。
「コスト効率の高い」とあるので、リザーブドインスタンスやスポットインスタンスを選択したくなりますが、要件が満たせるかを判断して選択します。
おすすめコース
・
Architecting on AWS
AWSクラウド環境でのインフラ、アプリケーションの設計の基本を体系的に学習できるコースです。実機演習や、グループディスカッションを通じて実践的な知識とスキルを身につけます。
「AWS認定ソリューションアーキテクト - アソシエイト」資格取得を目指す方にもおすすめです。
トレノケートのAWS研修(AWS認定トレーニング)
トレノケートのAWS認定トレーニングでは、AWS社の厳格なテクニカルスキル及びティーチングスキルチェックに合格した認定トレーナーがコースを担当します。AWS初心者向けの研修や、AWS認定資格を目指す人向けの研修をご提供し、皆様のAWS知識修得のサポートをいたします。
・トレノケートのAWS研修(AWS認定トレーニング)はこちら
▼AWS初心者の方は、
AWS Cloud Practitioner Essentialsから!
座学中心の研修で、AWSを初めて学ぶ方や、営業などで提案に関わる方におすすめです。
「AWS Certified Cloud Practitioner」資格取得を目指す方の基礎知識修得にも最適です。
→ AWS Cloud Practitioner Essentials 詳細・日程はこちらから
【無料】AWSをもっと詳しく 資料3点セット
これからAWSを初めて使う方から、AWSのスキルをもっと高めたい経験者の方まで、AWSをもっと詳しく知りたい皆さまに役立つ資料をダウンロードいただけます。詳細はこちらよりご確認ください。