Lambda에서 만든 탄력적 네트워크 인터페이스를 분리하거나 삭제할 수 없는 이유는 무엇입니까?
AWS Lambda에서 만든 탄력적 네트워크 인터페이스를 분리하거나 삭제하려고 하면 오류 메시지가 표시됩니다.
간략한 설명
Lambda를 통해서만 네트워크 인터페이스를 삭제할 수 있습니다. 네트워크 인터페이스가 나타내는 리소스를 삭제하면 Lambda가 네트워크 인터페이스를 분리하고 삭제합니다. 사용하지 않는 네트워크 인터페이스를 삭제하기 위해 Lambda는 네트워크 인터페이스를 만든 함수의 실행 역할을 사용합니다. 하지만 함수 또는 함수 버전에서 사용하는 네트워크 인터페이스는 삭제할 수 없습니다.
Lambda는 동일한 Amazon Virtual Private Cloud(Amazon VPC) 구성을 가진 여러 함수와 이벤트 소스 매핑 간에 네트워크 인터페이스를 공유합니다. AWS 계정에서 사용되는 네트워크 인터페이스의 수를 줄이려면 네트워크 인터페이스를 공유하면 됩니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
네트워크 인터페이스를 사용하는 함수와 함수 버전 식별
참고: 다음 명령은 Linux 및 Unix 운영 체제에만 해당합니다.
네트워크 인터페이스를 사용하는 함수 또는 함수 버전을 확인하려면 GitHub 웹 사이트의 Lambda ENI Finder를 사용하십시오.
다음 단계를 완료하십시오.
-
Lambda 및 네트워크 인터페이스를 쿼리할 권한이 있는 AWS Identity and Access Management(IAM) 역할로 AWS CLI를 구성합니다.
중요: Lambda는 함수 실행 역할의 권한을 사용하여 하이퍼플레인 탄력적 네트워크 인터페이스를 삭제합니다. Lambda가 하이퍼플레인 엘라스틱 네트워크 인터페이스를 삭제한 후에만 실행 역할을 삭제하십시오. -
jq 명령줄 JSON 프로세서를 설치하려면 다음 명령을 실행합니다.
sudo yum install jq -y참고: 자세한 내용은 jq 웹 사이트의 jq를 참조하십시오.
-
Git를 설치하려면 다음 명령을 실행합니다.
sudo yum install git -y참고: 자세한 내용은 Git 웹 사이트의 Getting started - installing Git를 참조하십시오.
-
aws-support-tools GitHub 리포지토리를 복제하려면 다음 명령을 실행합니다.
git clone https://github.com/awslabs/aws-support-tools.git참고: 자세한 내용은 GitHub 웹 사이트의 aws-support-tools를 참조하십시오.
-
디렉터리를 Lambda ENI Finder 위치로 변경하려면 다음 명령을 실행합니다.
cd aws-support-tools cd Lambda cd FindEniMappings -
삭제하려는 네트워크 인터페이스에 대해 Lambda ENI Finder를 실행하려면 다음 명령을 실행합니다.
./findEniAssociations --eni eni-0123456789abcef01 --region us-east-1참고: eni-0123456789abcef01을 네트워크 인터페이스 ID로 바꾸고 us-east-1을 네트워크 인터페이스가 있는 AWS 리전으로 바꾸십시오. 자세한 내용은 요청자 관리형 네트워크 인터페이스를 참조하십시오.
출력은 계정 및 리전에서 네트워크 인터페이스를 사용하는 Lambda 함수 및 함수 버전 목록을 반환합니다. 함수 또는 함수 버전이 필요한 경우 네트워크 인터페이스를 삭제하지 마십시오.
출력에 함수 또는 함수 버전이 나열되지 않는 경우 계정의 다음 서비스가 네트워크 인터페이스를 사용하는지 확인하십시오.
- Amazon Managed Streaming for Apache Kafka(Amazon MSK)
- 자체 관리형 Apache Kafka
- Amazon MQ for ActiveMQ
- Amazon MQ for RabbitMQ
- Amazon DocumentDB(MongoDB 호환)
네트워크 인터페이스를 사용하는 이벤트 소스 매핑 식별
AWS CLI 사용
다음 단계를 완료하십시오.
-
Lambda, Amazon MSK, Amazon MQ 및 Amazon DocumentDB를 쿼리할 권한이 있는 IAM 역할로 AWS CLI를 구성합니다.
참고: Lambda는 이벤트 소스 매핑과 연결된 함수의 실행 역할 권한을 사용하여 하이퍼플레인 탄력적 네트워크 인터페이스를 삭제합니다. Lambda가 하이퍼플레인 엘라스틱 네트워크 인터페이스를 삭제한 후에만 실행 역할을 삭제하십시오. -
이벤트 소스 매핑을 나열하려면 다음 list-event-source-mappings 명령을 실행합니다.
aws lambda list-event-source-mappings --query 'EventSourceMappings[?State != Disabled]' -
각 이벤트 소스 매핑의 EventSourceArn 필드 또는 SelfManagedEventSource 필드를 확인합니다.
EventSourceArn 필드에 MSK 클러스터, Amazon MQ 브로커 또는 Amazon DocumentDB 클러스터에 대한 Amazon 리소스 이름(ARN)이 포함되어 있는 경우 ARN을 기록해 둡니다.
클러스터 또는 브로커 세부 정보를 보려면 이벤트 소스에 따라 다음 명령 중 하나를 실행합니다.
Amazon MSK의 경우 다음 describe-cluster-v2 명령을 실행합니다.aws kafka describe-cluster-v2 --cluster-arn MSK_CLUSTER_ARN참고: MSK_CLUSTER_ARN을 해당 MSK 클러스터 ARN으로 바꾸십시오.
Amazon MQ의 경우 다음 describe-broker 명령을 실행합니다.aws mq describe-broker --broker-id MQ_BROKER_ID참고: MQ_BROKER_ID를 해당 Amazon MQ 브로커 ID로 바꾸십시오.
Amazon DocumentDB의 경우 다음 describe-db-clusters 명령을 실행합니다.aws docdb describe-db-clusters --db-cluster-identifier DOCDB_CLUSTER_ID참고: DOCDB_CLUSTER_ID를 Amazon DocumentDB 클러스터 ID로 바꾸십시오.
-
명령 출력에서 클러스터 또는 브로커가 네트워크 인터페이스와 동일한 서브넷 및 보안 그룹 ID를 사용하는지 확인합니다.
-
SelfManagedEventSource 필드가 있는 경우 네트워크 인터페이스의 서브넷 및 보안 그룹 ID가 이벤트 소스 매핑의 SourceAccessConfigurations 아래에 나열되어 있는지 확인합니다.
Lambda 콘솔 사용
참고: 자체 관리형 Apache Kafka의 이벤트 소스 매핑을 확인하려면 Lambda 콘솔을 사용해야 합니다.
다음 단계를 완료하십시오.
- Lambda 콘솔을 엽니다.
- 탐색 창에서 이벤트 소스 매핑을 선택합니다.
- apache kafka, docdb, msk 또는 mq에 대한 이벤트 소스 매핑을 찾으려면 이벤트 소스 서비스 열을 확인합니다.
- docdb, msk 또는 mq의 경우 이벤트 소스 리소스 아래의 클러스터 또는 브로커 이름을 기록해 둡니다. apache kafka의 경우 이벤트 소스 매핑의 UUID를 선택한 다음 8단계로 진행합니다.
- Amazon MSK, Amazon MQ 또는 Amazon DocumentDB 콘솔을 사용하여 클러스터 또는 브로커 이름을 검색합니다.
- 세부 정보를 보려면 클러스터 또는 브로커 이름을 선택합니다.
- 네트워크 설정에서 클러스터 또는 브로커가 네트워크 인터페이스와 동일한 서브넷 및 보안 그룹 ID를 사용하도록 구성되어 있는지 확인합니다.
- 서비스의 이벤트 소스 ARN을 선택하여 이벤트 소스 및 서비스 구성을 확인합니다.
- 소스 액세스 구성에서 네트워크 인터페이스의 서브넷 및 보안 그룹 ID가 나열되어 있는지 확인합니다.
Lambda가 생성한 네트워크 인터페이스 삭제
다음 단계를 완료하십시오.
- Lambda ENI Finder를 실행합니다.
- 나열된 게시되지 않은 각 Lambda 함수 버전($LATEST)에 대해 다음 단계 중 하나를 완료합니다.
다른 서브넷 및 보안 그룹을 사용하도록 Amazon VPC 구성을 변경합니다.
-또는-
Amazon VPC에서 함수 연결을 끊습니다. - 게시된 Lambda 함수 버전의 경우 각 버전을 삭제합니다.
참고: 게시된 함수 버전은 편집할 수 없으므로 Amazon VPC 구성을 변경할 수 없습니다. - 네트워크 인터페이스를 사용하는 각 Lambda 이벤트 소스 매핑에 대해 이벤트 소스 매핑을 비활성화하거나 삭제합니다.
- 네트워크 인터페이스가 더 이상 사용되지 않는지 확인하려면 Lambda ENI Finder를 다시 실행하십시오.
Lambda는 다음 두 가지 설정에 모두 해당하는 경우 네트워크 인터페이스를 자동으로 삭제합니다.
- 출력에 다른 함수나 함수 버전이 나열되지 않습니다.
- 이벤트 소스 매핑이 네트워크 인터페이스를 사용하지 않습니다.
중요: Amazon Managed Service for Prometheus 스크레이퍼를 Lambda 네트워크 인터페이스와 연결한 경우 스크레이퍼를 찾아 삭제해야 합니다.
관련 정보
관련 콘텐츠
- 질문됨 일 년 전
- 질문됨 일 년 전

