Q51 — AWS SAA-C03 第1章

第 51/65 問 | ← 第1章

Q51. ある企業が、ユーザーのリクエストを非同期で受信し、リクエストの種類に応じて適切なマイクロサービスへ処理を委譲するAPIを所有しています。この企業は、APIのフロントエンドとしてAmazon API Gatewayを、またユーザーのリクエストをAmazon DynamoDBに保存した後、処理用マイクロサービスへ送信するためのロジックとしてAWS Lambda関数を採用しています。予算の許す限りDynamoDBのスループットをプロビジョニングしましたが、依然として可用性の問題が発生しており、ユーザーのリクエストが失われています。ソリューションアーキテクトは、既存のユーザーに影響を与えることなく、この問題を解決するために何を行うべきでしょうか?

正解: D. Amazon Simple Queue Service(Amazon SQS)キューとLambdaを活用して、DynamoDBへの書き込みをバッファリングする

解説

本シナリオにおける可用性の問題およびユーザーのリクエスト喪失を解消するには、選択肢D「Amazon Simple Queue Service(Amazon SQS)キューとLambdaを活用して、DynamoDBへの書き込みをバッファリングする」が最適です。 このソリューションがもたらす効果は以下の通りです: 1. Amazon Simple Queue Service(Amazon SQS):SQSは、完全マネージド型のメッセージキューイングサービスであり、ユーザーのリクエスト受信と処理用マイクロサービス間の結合を緩和(decouple)します。リクエストを処理前に一時的に格納するバッファとして機能し、信頼性とスケーラビリティに優れたメッセージキューイングを提供します。 2. AWS Lambda:SQSキューからメッセージを取得・処理するLambda関数を構成します。キューに新しいメッセージが到着すると自動的に起動されるため、既存のアーキテクチャとのシームレスな統合が可能です。 このソリューションを導入することで、以下のようなメリットが得られます: ・可用性の向上:SQSによる書き込みのバッファリングにより、トラフィックの急増(バースト)に対応でき、リクエスト率のピークを平滑化できます。これにより、可用性の問題が軽減され、ユーザーのリクエストが失われるリスクが低減されます。 ・スケーラビリティ:SQSは自動スケーリングと高い信頼性を備えており、ピーク時においてもリクエストを確実に保存・処理できます。また、受信コンポーネントと処理コンポーネントの分離により、それぞれを独立してスケール可能になります。 ・フォールトトレランス:処理用マイクロサービスが一時的に利用不可となった場合でも、リクエストはSQSキュー内に安全に保持され、復旧後に順次処理されます。これにより、リクエストの喪失を防ぎ、到着順での処理を保証します。 選択肢A(API Gatewayへのスロットリング追加)は、リクエストレートを制御する効果はありますが、可用性の低下やリクエスト喪失という根本的な課題には対応できません。 選択肢B(DAXとLambdaによる書き込みバッファリング)は、DAXはDynamoDBの読み取りパフォーマンス向上に特化しており、書き込みの可用性確保やリクエスト喪失防止には寄与しません。 選択肢C(DynamoDBへのセカンダリインデックス作成)は、クエリ性能の改善には有効ですが、可用性の問題やリクエスト喪失の防止には直接関係ありません。