AWS認定ソリューションアーキテクト アソシエイト(SAA-C03)「高性能アーキテクチャの設計」の練習問題10問です。コンピュート・ストレージ・データベース・ネットワークの最適な選択、ElastiCache によるキャッシュ、CloudFront(CDN)、用途に応じた DB 選定(RDS/Aurora/DynamoDB)、リードレプリカによる読み取りスケールなどを、要件にあわせて考える形式で確認できます。解けなかった問題は、各問の解説末尾のリンクから対応する解説記事に進んでください。
Q1. データベースへの読み取りアクセスが多く、同じ問い合わせが何度も繰り返されています。データベースの負荷を下げて応答を速くするには、どの構成がもっとも適切ですか?
回答
解説
正解は「C」です。
Amazon ElastiCacheは、Redis や Memcached を使ってデータをメモリ上に保持するインメモリキャッシュのサービスです。何度も繰り返される同じ読み取りをキャッシュから返すことで、データベース本体への問い合わせ回数を減らし、応答を速くできます。よく使う資料を手元に置いておくと、毎回書庫まで取りに行かずに済むのと同じ考え方です。
A のインスタンス拡大は限界があり繰り返し読み取りの根本対策になりにくく、B はオブジェクトストレージで低遅延の読み取りキャッシュには向かず、D は可用性を損ないます。
Q2. 世界中の利用者へ画像や動画を配信する Web サイトで、遠隔地からのアクセスでも表示を速くしたいと考えています。もっとも適切なサービスはどれですか?
回答
解説
正解は「A」です。
Amazon CloudFrontは、世界各地のエッジロケーション(配信拠点)にコンテンツをキャッシュし、利用者にいちばん近い拠点から届けるCDN(コンテンツ配信ネットワーク)です。遠くの本拠地まで取りに行かずに近所の拠点から受け取れるため、表示が速くなり、本体サーバーの負担も減らせます。
B はサーバー1台の強化で距離による遅延は解消できず、C はデータベースの読み取り対策で静的コンテンツ配信には向かず、D は集約するほど遠隔地の利用者の遅延が大きくなります。
Q3. リレーショナルデータベースで、書き込みは1か所にまとめたまま、増え続ける読み取りアクセスだけを分散して処理したいです。もっとも適切な方法はどれですか?
回答
解説
正解は「D」です。
リードレプリカは、書き込み用のデータベース(プライマリ)の内容を複製した、読み取り専用のコピーです。アプリの読み取りアクセスをレプリカ側へ振り分けることで、プライマリの負荷を上げずに読み取りをスケールできます。Amazon RDS や Aurora で利用でき、必要に応じてレプリカを増やせます。
A のバックアップは障害対策、B の容量追加は読み取りの分散にならず、C はデータを失うため、いずれも目的に合いません。
Q4. アクセス数の予測が難しく、1秒間に数万件の読み書きが必要になることもある大規模アプリ向けに、自動でスケールする key-value 型のマネージドデータベースを探しています。もっとも適切なものはどれですか?
回答
解説
正解は「B」です。
Amazon DynamoDBは、AWS が管理するNoSQL(key-value 型)のデータベースです。1桁ミリ秒の応答を保ちながら、アクセス量に合わせて自動でスケールするため、急なトラフィックの増減があるアプリやサーバーレス構成に向いています。サーバーの台数やストレージ容量を意識せずに使えるのが特長です。
A の RDS は関係データベースで急激な水平スケールには DynamoDB ほど向かず、C のオブジェクトストレージは低遅延の key-value アクセス用途とは異なり、D は運用やスケールを自分で抱えることになります。
Q5. 既存の MySQL/PostgreSQL 互換を保ちつつ、より高い性能と可用性を求めるリレーショナルデータベースを選びたいです。AWS のクラウド向けに設計されたものはどれですか?
回答
解説
正解は「A」です。
Amazon Auroraは、MySQL/PostgreSQL と互換性を持ちながら、クラウド向けに設計されたリレーショナルデータベースです。データを複数のアベイラビリティゾーンに分散して保持し、標準的な構成に比べて高い性能と可用性を狙えます。RDS の一種として管理され、運用の手間を抑えられます。
B は NoSQL、C はキャッシュ、D は分析向けのデータウェアハウスで、MySQL/PostgreSQL 互換の高性能なリレーショナルデータベースという要件には合いません。
Q6. ログ解析のバッチ処理で、大量データを順番に読み書きする際に高いスループットが必要です。EC2 にアタッチするブロックストレージとして適した EBS ボリュームタイプはどれですか?
回答
解説
正解は「C」です。
スループット最適化 HDD(st1)は、大きなデータを連続して読み書きする処理に向いた EBS のボリュームタイプです。ログ解析やビッグデータ処理のように、まとまったデータを順番に流す用途では、ランダムアクセス向けの SSD より、まとまった転送量(スループット)を重視した HDD が適します。用途に合わせて gp3・io2・st1 などから選べます。
A はオブジェクトストレージで EBS ではなく、B は共有ファイル用途、D はアーカイブ用で、EC2 にアタッチして連続処理するブロックストレージという条件には合いません。
Q7. 複数の EC2 インスタンスから、同じファイル群へ同時に読み書きできる共有ストレージが必要です。もっとも適切なサービスはどれですか?
回答
解説
正解は「B」です。
Amazon EFS(Elastic File System)は、複数の EC2 インスタンスから同時にマウントして使える共有ファイルストレージです。容量は自動で伸び縮みし、Linux のファイルシステムとして扱えます。複数台で1つのフォルダを共有したいときに向いています。
A の EBS は基本的に1つのインスタンスにアタッチする方式で多数同時共有には適さず、C はデータベース、D は DNS サービスで、共有ファイルストレージの用途には合いません。
Q8. アクセスが時間帯によって大きく変動する Web アプリで、混雑時には台数を増やし、落ち着いたら減らして高性能を保ちたいです。もっとも適切な構成はどれですか?
回答
解説
正解は「D」です。
ELB(Elastic Load Balancing)でアクセスを複数のインスタンスへ振り分けつつ、Auto Scalingで負荷に応じて台数を自動で増減させると、混雑時の性能と、暇な時間帯の効率を両立できます。受付係が窓口へ案内し、混んだら窓口を増やし、空いたら閉じるイメージです。
A は1台では混雑時にさばききれず、B は常時最大台数で無駄が多く、C は手作業のため急な変動に追いつきにくいため、自動でスケールする構成が適します。
Q9. オンプレミスのデータセンターと AWS の間を、インターネットを経由せずに安定した広帯域でつなぎ、高性能な通信を実現したいです。もっとも適切なサービスはどれですか?
回答
解説
正解は「A」です。
AWS Direct Connectは、オンプレミスのデータセンターと AWS を、インターネットを通さずに結ぶ専用線接続のサービスです。通信が混み合うインターネット経由に比べて、帯域と遅延が安定しやすく、大容量データの定常的なやり取りに向いています。
B はコンテンツ配信、C はストレージ、D はキャッシュで、オンプレミスと AWS をつなぐ専用のネットワーク接続という要件には合いません。
Q10. 「高性能なアーキテクチャを設計する」という考え方の説明として、もっとも適切なものはどれですか?
回答
解説
正解は「B」です。
高性能なアーキテクチャの基本は、要件にいちばん合うサービスを選ぶことです。コンピュート(EC2・Lambda など)、ストレージ(EBS・EFS・S3 など)、データベース(RDS・Aurora・DynamoDB など)、ネットワーク(CloudFront・Direct Connect など)を用途に応じて使い分け、ElastiCache のキャッシュや Auto Scaling のスケールを組み合わせます。料理で食材ごとに調理法を変えるように、適材適所で選ぶのがコツです。
A は高価でも用途に合わなければ性能は出ず、C は単一障害点になりやすく拡張に限界があり、D は設計とは言えません。
AWS の主要サービスをおさらいしたい時は Amazon EC2 とは や Amazon S3 とは が役立ちます。試験全体の流れを俯瞰したい時は、AWS SAA 試験全体概要 に戻れます。
学習の全体像と次に進む分野は、AWS SAA 学習ロードマップ で確認できます。