私は現在、より伝統的なREST APIの代わりにNode.jsを実行する300以上のAWS Lambda関数をデプロイすることの影響を扱っているグループの一部です。最近実行するアプリケーションを実装しましたプライベートサブネット上のVPC内のEC2インスタンス。したがって、このアプリケーションと頻繁に通信するLambda自体も同じVPC内のプライベートサブネットに配置されます。EC2インスタンスは6つのプライベート/ 24サブネットで実行されます(各1つにつき1つ)私たちのリージョンのアベイラビリティーゾーン。ラムダには、実行するように構成された6/20のプライベートサブネットがあります。私が理解しているように、ラムダを呼び出すたびに、これらのサブネットの1つにIPアドレスが割り当てられ、約24,564のIP枯渇する前にアドレス。
私の質問は:
1)Lambdaが実際に実行されている期間のみIPアドレスを占有し、その後IPアドレスが解放されますか?もっと簡潔に言えば、すぐに呼び出しの増加が見込まれるため、IPアドレスをすぐに使い果たしてしまうのでしょうか。 VPCのアドレススペースの多くをラムダに割り当てることができることはわかっていますが、これは継続的に追跡している問題でしょうか?
2)AWSコンソールまたは他の場所で、ラムダが占有しているIPアドレスの数を確認するにはどうすればよいですか?
注:私はジュニアのDevOpsエンジニアなので、不明な点があれば許してください。
このページ は、VPC内でLambdaを使用する場合に必要なENIの数を示しています-これは、サブネットごとにです
Lambda関数がVPCにアクセスする場合、VPCにLambda関数のスケール要件をサポートするのに十分なENI容量があることを確認する必要があります。次の式を使用して、ENI要件をおおよそ決定できます。
予測される最大同時実行数*(メモリ(GB/3GB))
1 GBが割り当てられたラムダを10回同時に実行するとします。つまり、サブネットごとに10 x 1/3 = 3.33または4 ENI /プライベートIPです。 2GBが割り当てられた100の同時実行がある場合、サブネットごとに80のENI /プライベートIPです。 ENIが作成および削除される頻度についての説明はないと思います。その実装の詳細は時間とともに変化する可能性があります。
コンソールまたは ENI API でENIを確認できます。
Lambdaは この質問 に従ってENIを作成および削除する権限を持っている必要があります。