こんにちはラーニングサービス本部 テクニカルトレーニング第1部でAWS認定トレーニングコースを担当しております山下です。
さて、今回は2020年3月23日に更新される「AWS 認定ソリューションアーキテクト - アソシエイト」SAA-C02試験のサンプル問題の解説を書いてみます。
今回は公式解説もサンプル問題に記載がありますので、それをベースに図解します。
※情報は2020年3月11日時点のものです。
試験ガイドもアップデートされましたので、改めてAWS認定ソリューションアーキテクトアソシエイトについて記載します。
AWS認定のアソシエイトレベルには、役割別に3つの試験があります。オペレーションや管理を担当する方向けの「SysOpsアドミニストレーター」、開発担当者向けの「デベロッパー」、そしてこの「ソリューションアーキテクト」は、設計や提案をされる方向けの認定です。AWS上で要件や課題に基づいてベストプラクティスに沿った設計構築を行えることを証明できます。
たびたび「人気の認定資格」や「稼げる認定資格」として取り上げられている認定資格です。
2020年3月に試験問題の改訂が行われました。これから受験を予定している方は、試験ガイドを見直しておきましょう。
Amazon Web Services, Inc.のサイトからPDFをダウンロードできます。
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が発生するケースはターゲット全体に対して次の原因が考えられます。
この問題では、「インスタンスのいずれかに」ですので、Dは回答から除外できます。
A. キューの最大メッセージ保持期間を増やす。
B. キューのリドライブポリシーの最大受信数を増やす。
C. キューの既定の表示タイムアウトを増やす。
D. キューの受信メッセージ待ち時間を増やす。
解答: D
【解説】
ディカップルド→Decoupled→疎結合です。
疎結合で非同期なアーキテクチャにはSQSが使用されることが多くあります。
SQSキューに格納されたメッセージを、コンシューマとして構成されたEC2インスタンス上のプログラムなどが、メッセージを受け取りにいきます(受信)。
これをポーリングリクエストと呼びます。
このときメッセージがなければ応答は空になります。
受信リクエストはメッセージがあっても空でも請求対象です。
空の受信応答を減らすこと = 無駄なコストの排除、です。
メッセージがないとき待機時間を設定できます。
これをロングポーリングと呼びます。
具体的にはReceiveMessageWaitTimeSecondsプロパティに1~20秒で指定します。
このプロパティは、「受信メッセージ待ち時間」や「メッセージ受信待機時間」と表記されることもあります。
Aの「最大メッセージ保持期間」は「メッセージ保持期間」で1分~14日の間で設定できます。
Bの「リドライブポリシーの最大受信数」は「デッドレターキュー再処理ポリシーの最大受信数」です。1~1000の間で設定できます。
Cの「既定の表示タイムアウト」は「デフォルトの可視性タイムアウト」で0秒~12時間の間で設定できます。
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に保存され、アクセス頻度の高いデータがキャッシュとしてローカルに保持されます。
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インスタンスで実現する方法です。
プライベートサブネットに配置しては「インターネットからソフトウェアパッチをダウンロード」できません。
A. アプリケーションを変更して、インスタンスストアボリュームにデータを保管する。ボリュームの再起動中にボリュームをアタッチしなおす。
B. インスタンスを停止する前に、インスタンスのスナップショットを作成する。インスタンスを再起動した後、スナップショットを復元する。
C. 休止状態が有効になっているインスタンスでアプリケーションを実行する。シャットダウン前にインスタンスを休止状態にする。
D. 各インスタンスを停止する前に、それらのアベイラビリティーゾーンを記録する。シャットダウン後、同じアベイラビリティーゾーン内でインスタンスを再起動する。
解答: C
【解説】
「不可欠なデータをインスタンスメモリ(RAM)」とありますので、RAMの内容をEBSに保存することのできる、休止を有効にしたEC2インスタンスを使用します。
Aのインスタンスストアのデータは、EC2インスタンスを停止した際に削除されます。
BのスナップショットにはRAMの内容は保存されません。
Dの停止時にはRAMの内容は保存されません。
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アドレスです。
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がまず必須の設定として必要です。
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された後の処理ですので、「保存状態では常時暗号化」が満たせません。
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日前の事前通知」でまにあいます。
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 Cloud Practitioner Essentialsから!
座学中心の研修で、AWSを初めて学ぶ方や、営業などで提案に関わる方におすすめです。
「AWS Certified Cloud Practitioner」資格取得を目指す方の基礎知識修得にも最適です。
→ AWS Cloud Practitioner Essentials 詳細・日程はこちらから
これからAWSを初めて使う方から、AWSのスキルをもっと高めたい経験者の方まで、AWSをもっと詳しく知りたい皆さまに役立つ資料をダウンロードいただけます。詳細はこちらよりご確認ください。