ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

VPCに接続しているLambdaは定期実行しよう

この記事を共有する

目次

皆さんこんにちは、サービスGの山内です。
先日久しぶりに呼び出したAWS Lambdaの起動に失敗しました。
原因を調査したところ、知らなかったAWS Lambdaの仕様があったため、紹介したいと思います。

起動に失敗した原因

AWS Lambdaに付与されているENIが削除されてしまい、起動に失敗したようです。

Amazon VPCに接続しているAWS Lambdaには、ENIが付与されています。
このENIを経由して、Amazon VPC内のリソースなどにアクセスすることができます。

01.png

ENIにはライフサイクルルールが存在し、AWS Lambdaが14日間呼び出されなかった場合にENIを削除するようです。

公式ガイドからの引用

Lambda 関数が 14 日間アイドル状態のままである場合、Lambda は未使用の Hyperplane ENI を回収し、関数の状態をInactiveに設定します 次の呼び出しの試行は失敗し、Lambda が Hyperplane ENI の作成または割り当てを完了するまで、関数は再び保留状態になります。設計が ENI の永続性に依存しないことをお勧めします。

ENI削除の回避策

ENIが再作成されるまでの間、最初の呼び出しはエラーとなりますが、ENI再作成後の呼び出しは正常に成功します。
最初の呼び出しの失敗を許容できない場合は、Amazon EventBridgeで定期実行させ、ENIの削除を回避することが有効です。

業務で、ENIの削除が原因のAWS Lambdaの起動失敗に遭遇し、AWSサポートに最適な実行間隔を問い合わせたところ、
14日よりも短い間隔でENIが削除されてしまうケースがあり、7日間隔の定期実行が推奨される、と回答をいただきました。 そのため、Amazon EventBridgeでの定期実行を行う際は、7日間隔での実行とするのがいいでしょう。

おわりに

今回の事象でAWS Lambdaへの理解が深まりました。
Amazon VPCに接続するAWS Lambdaを設計する際に、ENIの削除について考慮を忘れないようにします。
Amazon VPCに接続するAWS Lambdaを運用されている方は、ぜひ定期実行の設定を検討してみてください。

この記事は私が書きました

山内 宏紀

記事一覧

CloudFormationが好きです。 使っているギターはSGです。

山内 宏紀

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。