VPC内リソースへのアクセス要件
LambdaがRDSやElastiCache、Amazon Redshift、Neptune DB clusterなど、VPC内部に配置されたリソースにアクセスする必要がある場合、Lambdaも同じVPCに配置する必要があります。(RDS Proxyなどほかの手段を取らない前提)
これにより、Lambdaはプライベートなサブネットにアクセスできるようになります。
セキュリティ要件
セキュリティが重視されるシステムや、外部からのアクセスを防ぎたい場合には、LambdaをVPC内に配置することが推奨されます。
これにより、Lambdaの実行環境はパブリックインターネットから隔離され、アクセスコントロールが強化されます。
インターネットへのアクセス要件
LambdaをVPCに配置すると、インターネットアクセスがデフォルトで無効になります。
VPCに配置されていないLambda関数は、インターネットに直接アクセスできるため、外部APIやWebサービスへの接続が容易です。
もしLambdaがインターネット経由で外部APIなどにアクセスする必要がある場合、NATゲートウェイやインターフェイスVPCエンドポイントの設定が必要です。
インターネットアクセスが不要な場合は、VPC内にLambdaを配置して、完全にインターネットから切り離すことも可能です。
コストやパフォーマンス要件
LambdaをVPC内に配置すると、パフォーマンスが多少影響を受ける場合があります。
Lambdaが起動するたびにENI(Elastic Network Interface)を割り当てるため、起動時間が長くなることもあります。
また、NATゲートウェイを用意する場合、追加のコストがかかることも考慮に入れる必要があります。
参考サイト