Qraft(クラフト) 資格・学習クイズアプリ

AWS Certified Solutions Architect Associate(SAA-C03) 練習問題 69:データベース:接続管理

📊 Qraftユーザーの成績

  • 難易度 Cランク(レーティング1159)
  • 難易度 1856位/2795問中
  • 正答率 100%(1/1回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

AWS Lambda関数を使用してAmazon RDSデータベースに頻繁にアクセスするアプリケーションを構築しています。トラフィックの急増時にLambda関数が大量にスケールし、RDSの最大同時接続数を超過してエラーが発生しています。この問題を最も効果的に解決するアーキテクチャはどれか。

  1. RDS Proxyを配置し、データベース接続をプーリングおよび共有して負荷を軽減する。
  2. RDSのインスタンスサイズをスケールアップし、最大同時接続数の上限を大幅に引き上げる。
  3. Lambda関数の同時実行数を無制限に設定し、データベースへの接続を常に維持させる。
  4. DynamoDB AcceleratorをRDSの前に配置して、クエリ結果をキャッシュする。
  5. SQSキューをRDSの前に配置し、データベースへのクエリ要求を非同期でバッチ処理する。
正解と解説を見る
正解:RDS Proxyを配置し、データベース接続をプーリングおよび共有して負荷を軽減する。

大量のLambda関数からリレーショナルデータベースへの接続が集中する場合、Amazon RDS Proxyを配置することでデータベース接続をプーリング(維持・再利用)し、負荷を軽減することが正解です。

【正解の理由】
AWS Lambdaはリクエストに応じて急速にスケールアップするため、直接RDSに接続すると多数の接続(コネクション)が同時に発生し、データベースのメモリを枯渇させたり接続超過エラーを引き起こしたりします。Amazon RDS Proxyはこれらの接続をプーリングし、限られた数のデータベース接続を複数のLambda関数で共有することで、データベースを過負荷から保護します。

【不正解の理由】
• 「RDSのインスタンスサイズをスケールアップし、最大同時接続数の上限を大幅に引き上げる」は根本的な解決になりません。Lambdaは数千単位でスケールし得るため、インスタンスサイズを上げても限界に達しやすく、コストも無駄にかかります。
• 「Lambda関数の同時実行数を無制限に設定し、データベースへの接続を常に維持させる」は誤りです。同時実行数が増えれば接続数も増えるため、データベース側のエラーを悪化させます。
• 「DynamoDB AcceleratorをRDSの前に配置して、クエリ結果をキャッシュする」は誤りです。DynamoDB Accelerator (DAX) はDynamoDB専用のキャッシュであり、RDSの前には配置できません。
• 「SQSキューをRDSの前に配置し、データベースへのクエリ要求を非同期でバッチ処理する」は誤りです。SQSはメッセージングサービスであり、同期的なSQLクエリの応答を返す用途には適していません。

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)