【小ネタ】Lambda から VPC 関連付けを解除した際に、ネットワークインターフェイスが残った時の対応

記事タイトルとURLをコピーする

カスタマーサクセス部の山本です。😺
あけましておめでうございます。今年もよろしくお願いします。
小ネタです。
以下の事象について、調査依頼を受けまして、私の環境で再現調査をしました。

事象

Lambda から VPC との関連付けを外したものの、Lambda が使用していたネットワークインターフェイスが残ってしまっている。

先に結論だけ

Lambda のバージョンごとに VPC との関連付け設定があるため、該当のバージョンを削除する必要がある。

再現調査の前提

Lambda を作成し、VPC 内の 2 つのサブネットと関連づけています。

EC2 のサービス画面にある「ネットワークインターフェイス」画面で lambda と検索すると、対象の ENI が 2 つ見つかります。他にも VPC と関連づけた Lambda がある場合は、その分あると思います。

ENI の「インターフェイスのタイプ」は lambda となっており、「説明」に関数名が入っています。以下の例では、test2 が関数名です。

なお、これらの ENI は手動で削除できません。セキュリティグループの変更もできません。

再現調査

Lambda を編集し、 VPC との関連付けを外す

Lambda を編集し、 VPC との関連付けを外します。
VPC は「なし」を選びます。

「正常に更新されました。」と出ました。

「VPC 設定がありません。」となり、関連づけが解除されました。

削除対象となるネットワークインターフェイスの確認

EC2 のサービス画面にある「ネットワークインターフェイス」画面で lambda 関数名 と検索すると、対象の ENI が 2 つ見つかります。 「ネットワークインターフェイス ID」をメモします。

念のため、「説明」列に関数名が入っていることを確認します。以下の例では、test2 が関数名です。

紐づいている Lambda 関数は、 ENI の削除画面で確認することもできます。

対象ネットワークインターフェイスの状態確認

CloudShell で以下を実行します。

git clone https://github.com/awslabs/aws-support-tools.git
cd aws-support-tools/Lambda/FindEniMappings
./findEniAssociations --eni <ネットワークインターフェイス ID> --region ap-northeast-1

該当の ENI を Lambda 関数のバージョン 3 で使っているようです。

バージョン 3 の削除

Lambda の画面から、バージョン 3 を消します。

削除できました。

ネットワークインターフェイスが消えたことの確認

バージョン 3 を削除してすぐに、ネットワークインターフェイスが消えました。

まとめ

本記事の検証では、AWS Lambda から VPC との関連付けを解除した際に、ネットワークインターフェイス(ENI)が残るという問題に対処しました。
LambdaのバージョンごとにVPCとの関連付け設定があるため、関連づいている不要なバージョンを削除する必要があります。
同様の問題に直面した際は、今回の手順を参考にしてみてください。

関連リンク

余談

富士山に沈む夕陽が綺麗でした。
都留アルプスの展望台より。

山本 哲也 (記事一覧)

カスタマーサクセス部のインフラエンジニア。

山を走るのが趣味です。