VPC LambdaからRDSの呼び出しはアンチパターンだったらしい
Lambdaを起動すると、VPCLambdaで起動する。
VPCLambdaは以下の点で、アンチパターンと言われていた
- 特定の状態において、遅延が発生(ENI作成に伴うコールドスタート)
- Lambdaの同時実行によりVPC内のプライベートIPを消費するため、アドレス管理が必要。
- RDSの最大同時接続数以上に、Lambdaが起動した場合は、接続エラー。
だが最近
Hyperplane ENI
RDS Proxy
のアップデートがあり、解消されつつある。
Lambdaコールドスタートとは?
Lambdaには、コールドスタートという概念が存在する。
コールドスタートとは、Lambdaの初回実行次に内部的に以下の処理が行われること(=コード実行までに、時間がかかる現象)
- ENIの作成(VPC Lambdaの場合のみ)
- コンテナの作成
- デプロイパッケージのロード
- デプロイパッケージの展開
- ランタイム起動・初期化
Lambdaコールドスタート回避策
- CloudWatch EventsからLambdaを定期実行する(同一Lambda関数の実行コンテナは一定時間再利用される性質を使って)
- Provisioned Concurrency