はじめに
VPC設定を有効にしたLambdaを削除した際、ENI(Elastic Network Interface)が削除できない・消えない現象に遭遇しました。
さらに、VPCやサブネット、セキュリティグループなどの関連リソースを削除しようとしても、依存関係エラーで削除できず、削除作業に行き詰ってしまいました。
この記事では、この現象の原因と現実的な対処方法をまとめていきます。
問題の概要
VPC設定のあるLambda関数、VPC周りの関連リソースを削除していこうとした際、VPC、サブネット、セキュリティグループ、等のリソースが削除できなかった。
原因がENIが残存していることだと判明したが、ENIを消すことが出来なかった。
ネットワークインターフェイスを削除できません。現在使用中であり、そのタイプは Lambda です。
画像にあるように原因はENI、Lambda関数にあることが分かるが、Lambda関数は削除済みでした。
なぜENIが消せないのか
LambdaがVPCアクセスを有効にすると、VPC内通信のために専用のENIを自動作成される。このENIはLambdaサービスが管理、削除時もAWS内部のクリーンアップ処理を経て段階的に解放される。
内部的には、次のような流れで削除が行われていた:
Lambda削除 → 実行環境停止 → ENI解放確認 → ENI削除
この間、Lambdaサービスは誤削除を防ぐために次のようなチェックを行うことが分かった:
- 他のLambda関数が同じENIを利用していないか
- ネットワーク接続が完全に切断されているか
- セキュリティグループやサブネットとの依存関係がないか
これらのチェックが完了するまでENIは「in use」状態のままとなり、ユーザーが削除できないようにロックされます。
実際の観察結果
私の環境では、Lambda関数削除後すぐにENIを削除しようとしても「使用中」と表示され削除できませんでした。しかし、約15分後に自動的にENIが消え、その後はVPCやサブネットなども問題なく削除できました。
つまり、この遅延はバグではなく、AWS内部の正常な挙動であることが分かりました。
対処法
1. 削除順序を守る
確実な方法は、削除の順序を意識することです。
- Lambda関数を削除する
- 10〜20分待機(ENIの自動削除を待つ)
- ENIが削除されたことを確認してからVPC関連のリソースを削除する
これにより、ENIの即時削除はできませんが、自動削除が完了します。
2. VPC Lambdaの接続を切る
Lambda関数を削除からVPCの即時削除をしたい場合、VPC接続を外すのも一つの方法です。
VPC接続の削除手順
- Lambdaコンソールを開く
- 対象の関数の選択
- 設定 > VPC > 編集 をクリック
- VPCの選択 → なし を選択し、保存
まとめ
| 観点 | 内容 |
|---|---|
| 現象 | VPC設定付きLambda削除後、ENIがしばらく残る(削除できない) |
| 原因 | Lambda内部のENI解放・削除処理が非同期で行われるため |
| 影響 | VPCやサブネット、セキュリティグループ削除がブロックされる |
| 対処 | Lambda削除→待機→VPC削除、またはVPC設定を外す |
| 補足 | 約15分でAWS側により自動削除される |
VPC LambdaのENI削除遅延は、AWSの設計上の仕様でした。
焦って強制削除せず、内部のクリーンアップ完了を待つことが安全で確実とのこと。
こちら、AWS公式ドキュメントより、
ENI削除についてのURLです。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/delete_eni.html
ENIの削除記事の情報量が少ないので、今回の記事を作成いたしました。

