Q40 — AWS SAA-C03 第4章

第 40/105 問 | ← 第4章

Q235. ある企業がアプリケーションの設計を行っています。このアプリケーションでは、Amazon API Gatewayを介して情報を受信し、AWS Lambda関数で処理した後、Amazon Aurora PostgreSQLデータベースに保存します。プロトタイプ(概念実証)段階において、データベースへの大量データロードに対応するため、Lambdaのクォータを大幅に引き上げる必要がありました。ソリューションアーキテクトは、スケーラビリティを向上させ、設定作業を最小限に抑える新しい設計を提案しなければなりません。これらの要件を満たすソリューションはどれですか?

正解: D. 2つのLambda関数をセットアップします。1つ目の関数を情報の受信用に構成し、2つ目の関数をデータベースへの情報ロード用に構成します。これら2つのLambda関数をAmazon Simple Queue Service(Amazon SQS)キューで統合します。

解説

Lambda関数がAPI Gatewayから直接データを受信し、即座にAuroraに書き込む場合、高トラフィック時に同時実行数の制限(クォータ)やデータベース接続数のボトルネックにより、スケーラビリティが制約されます。これを解消するには、受信と永続化の処理を非同期かつ疎結合に分離することが有効です。Amazon SQSは、メッセージのバッファリング・耐障害性・スケーラブルな非同期処理を提供し、Lambda関数の同時実行数を平準化できます(例:SQSイベントソースマッピングによる自動スケーリング)。一方、Amazon SNSはプッシュ型のパブリッシュ/サブスクライブモデルであり、メッセージの順序保証・重複防止・耐久性の面でSQSより劣り、データベース書き込みのような正確性と信頼性が求められるワークロードには不適切です。オプションAはサーバーレスアーキテクチャを放棄し、運用負荷とスケーラビリティの柔軟性を損ないます。オプションBは、既存のRDBMSベースのアプリケーションをNoSQLに移行することを要求し、アプリケーションの再設計・テスト・保守コストが大きく、要件にある「設定作業の最小化」に反します。したがって、最も適切な選択肢はDです。