Q13 — AWS SAA-C03 第4章
第 13/105 問 | ← 第4章
Q208. 電子商取引企業が、AWS上で「1日1品セール」のウェブサイトを立ち上げようとしています。毎日、厳密に1つの商品のみを24時間限定で販売します。ピーク時において、1時間あたり数百万件のリクエストをミリ秒単位のレイテンシで処理できるようにしたいと考えています。これらの要件を満たすとともに、運用オーバーヘッドが最も少ないソリューションはどれですか?
- A. Amazon S3 を使用して、複数のS3バケットにウェブサイト全体をホストします。Amazon CloudFront のディストリビューションを追加し、各S3バケットをそのオリジンとして設定します。注文データは Amazon S3 に保存します。
- B. ウェブサイト全体を、複数の可用性ゾーンにまたがる Auto Scaling グループで実行される Amazon EC2 インスタンス上にデプロイします。アプリケーションロードバランサー(ALB)を追加してウェブサイトのトラフィックを分散させ、別途ALBをバックエンドAPI用に追加します。データは Amazon RDS for MySQL に保存します。
- C. アプリケーション全体をコンテナ化し、Amazon Elastic Kubernetes Service(Amazon EKS)上でコンテナをホストします。Kubernetes Cluster Autoscaler を使用して、トラフィックの急増に対応するためのポッド数を自動的に増減させます。データは Amazon RDS for MySQL に保存します。
- D. ウェブサイトの静的コンテンツを Amazon S3 バケットでホストします。Amazon CloudFront のディストリビューションをデプロイし、S3バケットをそのオリジンとして設定します。バックエンドAPIには Amazon API Gateway と AWS Lambda 関数を使用します。データは Amazon DynamoDB に保存します。 ✓
正解: D. ウェブサイトの静的コンテンツを Amazon S3 バケットでホストします。Amazon CloudFront のディストリビューションをデプロイし、S3バケットをそのオリジンとして設定します。バックエンドAPIには Amazon API Gateway と AWS Lambda 関数を使用します。データは Amazon DynamoDB に保存します。
解説
この要件では、高スケーラビリティ(1時間あたり数百万リクエスト)、低レイテンシ(ミリ秒単位)、および最小限の運用オーバーヘッドが求められています。「1日1品」のシンプルな構造は、静的コンテンツ中心のアーキテクチャに適しており、サーバーレス設計が最適です。選択肢Dは、静的コンテンツをS3+CloudFrontで配信し、動的処理(例:在庫確認・注文処理)をAPI Gateway+Lambdaで実現、データ永続化をDynamoDB(高スループット・低レイテンシ・フルマネージド)で行う、完全にマネージドかつスケーラブルなサーバーレスアーキテクチャです。これにより、インフラ管理・OSパッチ適用・スケーリング設定などの運用負荷がほぼゼロになります。一方、AはS3+CloudFrontは適切ですが、注文データをS3に保存するのは不適切(S3は非構造化オブジェクトストレージであり、トランザクションや即時クエリに向かず、一貫性保証も弱い)。BとCはEC2またはEKSによるサーバー管理が必要で、Auto Scalingやクラスタ管理など運用オーバーヘッドが大きい上、RDSも手動でのパフォーマンスチューニングやスケーリングが発生しやすいため、Dより運用負荷が高いです。したがって、最も運用オーバーヘッドが少なく、要件を満たすのは選択肢Dです。