Q46 — AWS SAP-C02 第2章
第 46/75 問 | ← 第2章
Q196. ある企業はAWSクラウド上で処理エンジンを実行しています。このエンジンは、物流センターから送信される環境データを処理し、持続可能性指数を算出します。同社はヨーロッパ全域の物流センターに数百万台のデバイスを保有しており、これらのデバイスはRESTful APIを介して処理エンジンに情報を送信します。 このAPIには予測不可能なトラフィックの急増が発生します。企業は、デバイスから処理エンジンに送信されるすべてのデータを確実に処理できるソリューションを実装する必要があります。データ損失は絶対に許容されません。 これらの要件を満たすソリューションはどれですか?
- A. RESTful API向けにApplication Load Balancer(ALB)を作成します。Amazon Simple Queue Service(Amazon SQS)キューを作成します。ALB向けにリスナーとターゲットグループを作成し、SQSキューをターゲットとして追加します。Amazon Elastic Container Service(Amazon ECS)上でFargate起動タイプで実行されるコンテナを使用して、キュー内のメッセージを処理します。
- B. RESTful APIを実装するAmazon API Gateway HTTP APIを作成します。Amazon Simple Queue Service(Amazon SQS)キューを作成します。API GatewayとSQSキュー間のサービス統合を設定します。SQSキュー内のメッセージを処理するAWS Lambda関数を作成します。 ✓
- C. RESTful APIを実装するAmazon API Gateway REST APIを作成します。Auto Scalingグループ内のAmazon EC2インスタンスのフリートを作成します。API GatewayのAuto Scalingグループプロキシ統合を設定します。EC2インスタンスを使用して受信データを処理します。
- D. RESTful API向けにAmazon CloudFrontディストリビューションを作成します。Amazon Kinesis Data Streamsにデータストリームを作成し、そのストリームをディストリビューションのオリジンとして設定します。AWS Lambda関数を作成して、データストリーム内のデータを消費・処理します。
正解: B. RESTful APIを実装するAmazon API Gateway HTTP APIを作成します。Amazon Simple Queue Service(Amazon SQS)キューを作成します。API GatewayとSQSキュー間のサービス統合を設定します。SQSキュー内のメッセージを処理するAWS Lambda関数を作成します。
解説
選択肢Aでは、RESTful API向けにALBを設定し、SQSキューをALBのターゲットとして指定していますが、キュー内のメッセージを自動的に処理する仕組みが提供されていません。代わりに、Amazon ECS(Fargate起動タイプ)上で実行されるコンテナを別途デプロイする必要があります。選択肢Cでは、API Gatewayのプロキシ統合を用いてAuto Scalingグループ内のEC2インスタンスでデータを処理する方法ですが、EC2インスタンスの管理には他のAWSマネージドサービスと比較してより多くの運用負荷がかかり、スケーラビリティおよびコスト効率の面で劣ります。選択肢Dでは、CloudFrontディストリビューションとKinesis Data Streams、さらにLambda関数を組み合わせるため、複数のAWSサービスの設定・管理が必要となり、構成が複雑かつ高コストになる可能性があります。 一方、選択肢Bでは、RESTful APIを実装するAPI Gateway HTTP APIとSQSキューを用い、API Gatewayのサービス統合機能によって受信データをSQSキューへ確実に送信します。その後、AWS Lambda関数がキュー内のメッセージを非同期かつ信頼性高く処理します。このアプローチは、予測不能なトラフィックの急増にも柔軟に対応でき、データ損失を防ぎながら、スケーラブルかつコスト効率の高いソリューションを実現します。