データベース ・
Amazon RDS Proxy とは?Lambda 大量接続と高速フェイルオーバー
RDS Proxy は RDS / Aurora への接続をプールし、効率的に管理するマネージドプロキシ。Lambda が大量に DB に接続する時の接続枯渇問題 を解決し、フェイルオーバー時間も短縮(66% 削減)する。サーバーレス + RDB の組み合わせで必須のサービ...
RDS / Aurora の前段に置く接続プールマネージャ。Lambda 大量接続・フェイルオーバー高速化に必須。
1. 概要(端的に)
RDS Proxy は RDS / Aurora への接続をプールし、効率的に管理するマネージドプロキシ。Lambda が大量に DB に接続する時の接続枯渇問題 を解決し、フェイルオーバー時間も短縮(66% 削減)する。サーバーレス + RDB の組み合わせで必須のサービス。
2. 何ができるか
- 接続プーリング:DB 接続を共有・再利用
- 接続枯渇防止:Lambda の大量呼び出しに対応
- フェイルオーバー高速化:従来 30 秒 → 約 10 秒
- 自動再接続:DB 障害時の透過的な接続復旧
- IAM 認証統合:DB パスワードを使わずに認証可
- 暗号化:TLS 強制
3. 特徴
| 観点 | 特徴 |
|---|---|
| 追加料金 | プロビジョンド時間課金(vCPU 単位) |
| 対応 DB | RDS(MySQL / PostgreSQL / MariaDB / SQL Server)/ Aurora |
| 接続プール上限 | DB の max_connections に従う |
| VPC 内配置 | 必須 |
| TLS | 強制 |
主要効果
- 接続オーバーヘッド削減:Lambda の同時実行で接続枯渇を防ぐ
- フェイルオーバー時間短縮:66% 削減(30 秒 → 10 秒)
- アプリ側の接続管理簡素化
4. 仕組み
RDS Proxy は アプリと RDS の間に置かれるプロキシ。アプリは Proxy エンドポイントに接続し、Proxy が裏で DB 接続を効率管理する。
動作の流れ
- アプリが Proxy エンドポイントへ接続
- Proxy が既存プール接続を再利用 or 新規確保
- クエリを DB に転送
- 結果を返却
- 接続を再利用のためプールに戻す
Lambda + RDS Proxy の必要性
[従来]
Lambda 1,000 並列 → 各 Lambda が DB 接続作成 → DB max_connections 超過 → エラー
[Proxy 経由]
Lambda 1,000 並列 → Proxy 接続(プール内)→ DB 接続を効率共有 → 安定稼働
5. ユースケース
ユースケース 1:Lambda + RDS の組み合わせ
サーバーレス API + RDB の 必須コンポーネント。
ユースケース 2:接続多数のアプリ
ECS / EKS で多コンテナが DB アクセス。
ユースケース 3:高速フェイルオーバー要件
Multi-AZ + Proxy で切替時間最小化。
ユースケース 4:パスワードレス DB アクセス
IAM 認証で DB パスワード管理を不要に。
6. 関連用語
- RDS / Aurora — Proxy の対象
- Lambda / Lambda-Concurrency — Proxy が必須となる理由
- IAM — 認証連携
- Secrets-Manager — パスワード管理
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 低 | 出題稀 |
| SAA | 中 | サーバーレス + RDS シナリオ |
| DVA | 高 | Lambda + RDS の最適構成(頻出) |
| SOA | 中 | 接続管理運用 |