サーバーレス設計で頻出なのがこのテーマ:

「Lambda から RDS に接続するときの最適構成」

これは 実務でも事故が多いポイント です。

📝 先に問題の要点

  • Lambda を使ったサーバレスアプリ
  • RDS に対してデータ処理を実行
  • コネクション接続を最適化する必要がある

【問題】

あなたはソリューションアーキテクトとしてRDSのデータに対して、Lambdaを連携したデータ処理を実行するサーバレスアプリケーションを開発しています。RDSのコネクション接続を最適にする必要があります。

この要件を満たす最適なソリューションを選択してください。

選択肢

  1. Lambda関数をSQSによるポーリング処理と連携してRDSへのデータ処理を分散化する。
  2. LambdaをRDSに連携して、データ処理を実施する関数を作成する。
  3. RDSのスティッキーセッションを有効化する。
  4. RDSプロキシを利用する。

ここから先は正解と解説があるのでまずは考えてみてください。



✅ 正解:RDS Proxy を利用する


なぜ問題になるのか?

Lambda には特徴があります。

↓Lambdaの特性↓

  • 同時実行数が急増する
  • スケールが一瞬で拡大する
  • 実行ごとに新規接続を張る可能性がある

❌ 問題のある構成(Proxyなし)

構成図

         Lambda (1000同時実行)
          │  │  │  │  │
          ▼  ▼  ▼  ▼  ▼
        RDS(最大接続数200)

発生する問題

・Lambdaが1000同時実行
・RDS最大接続数200
・→ 接続枯渇
・→ DBダウン
・→ システム障害

🔥 実際の現場でよく起きる事故です

✅ 【正解】:RDS Proxy

構成図

         Lambda(大量同時実行)
                  │
                  ▼
             RDS Proxy
                  │
          コネクションプール
                  │
                  ▼
                 RDS

RDS Proxy の役割

  • コネクションプールを管理
    ※データベース接続を使い回す仕組み。
  • Lambdaの接続をまとめる
  • 再利用可能な接続を保持
  • RDSへの同時接続数を抑制

具体イメージ

❌ Proxyなし

Lambda 1 → 新規接続
Lambda 2 → 新規接続
Lambda 3 → 新規接続
...

✅ Proxyあり

Lambda 1 → Proxy → 既存接続A
Lambda 2 → Proxy → 既存接続B
Lambda 3 → Proxy → 既存接続A(再利用)

👉 接続数が爆発しない

他の選択肢が間違いな理由

❌ ① SQSで分散

Lambda → SQS → Lambda → RDS

・処理を分散しても
・DB接続問題は解決しない
・本質はコネクション管理

👉 論点がズレている

❌ ② LambdaをRDSに直接接続

・同時実行で接続爆増
・接続数上限に到達
・DB負荷増大

👉 一番危険な構成

❌ ③ RDSのスティッキーセッション

そもそもその機能は存在しない

👉 試験のひっかけ

試験での見抜き方

問題文にこれがあれば即反応:

キーワード正解候補
Lambda + RDSRDS Proxy
コネクション最適化RDS Proxy
同時実行RDS Proxy
接続数制限RDS Proxy

実務レベルの補足知識

RDS Proxy が向いているケース

  • Lambda連携
  • Fargate連携
  • コネクション数が多いアプリ
  • Aurora利用時

RDS Proxy のメリット

  • 接続再利用
  • 認証統合(IAM)
  • フェイルオーバー耐性
  • DB負荷軽減

RDS Proxy の特性まとめ

① コネクションプーリング

  • 接続を保持
  • 再利用
  • 接続数制御
  • DB負荷削減

② フェイルオーバー耐性

AuroraやRDS Multi-AZで:

  • DBフェイルオーバー時
  • 接続再確立を自動処理

アプリ側変更不要

③ IAM認証対応

IAMロールで接続可能

  • パスワード管理不要
  • Secrets Manager連携可能

④ 接続の多重化制御

Proxyが:

  • 同時接続数制限
  • タイムアウト管理
  • アイドル接続削除

を自動管理

⑤ 高可用性

Proxy自体もマルチAZ配置

まとめ

今回の問題の正解は:

RDS Proxy

理由は:

  • Lambdaはスケール爆発する
  • RDSは接続上限がある
  • Proxyが間に入ることで安定化

他にもAWS SAA 試験対策ブログを書いていますので、ぜひみてみてください。

ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。

  • 選考ではありません
  • 履歴書不要
  • 技術の話が中心
  • 所要時間30分程度
  • オンラインOK

エンジニアと話してみる