サーバーレス構成におけるDB接続プーリングと接続枯渇防止

RDS Proxyは接続をプール・再利用してDBへ張る接続数を抑える。長いトランザクションやセッション状態による接続の固定化があり、下流DBの容量が無制限になるわけではない。 実行できる関数数は増やせるが、DBへ作る接続も増える。接続をプールして再利用する対策とは逆に上限超過を悪化させる可能性がある。 上限調整が有効な場合はあるが、接続ごとのDBリソース負荷は残る。大量の短い接続をマネージドで再利用する目的にはRDS Proxyが適する。 単一スタンバイは読取り用ではない。読取りレプリカや読取り可能なMulti-AZ DBクラスターと区別する。

Lambdaの急増でRDS for PostgreSQLへの短時間のDB接続が大量発生する。SQL処理自体の負荷は十分に処理できるが、接続上限を超過する。関数ごとの新規接続をマネージドなプールで再利用してDB側の接続数を抑える対策を1つ選択してください。

出典AWS非公式・オリジナル問題
ア
Lambdaの予約済み同時実行数を増やす
イ
RDSのmax_connectionsを引き上げる
ウ
Amazon RDS Proxyを導入し、Lambda関数からのデータベース接続をプーリングして共有・再利用させる
エ
単一スタンバイのMulti-AZ DBインスタンスのスタンバイへ読み取りクエリを分散する