네트워크 인터페이스 분리 시 “The network interface at device index 0 and networkCard index 0 cannot be detached.” 에러 해결

네트워크 인터페이스를 분리 할 때 나타나는 “The network interface at device index 0 and networkCard index 0 cannot be detached.” 에러를 해결 하는 방법에 대해서 정리해 봤습니다.
2022.12.04

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 네트워크 인터페이스를 분리 할 때 나타나는 “The network interface at device index 0 and networkCard index 0 cannot be detached.” 에러를 해결 하는 방법에 대해서 정리해 봤습니다.

에러 발생

네트워크 인터페이스를 분리하지 못했습니다. API 오류: "The network interface at device index 0 and networkCard index 0 cannot be detached."

네트워크 인터페이스는「인스턴스 종료 시 삭제」가 활성화 되어 있기 때문에, EC2 인스턴스를 삭제하면 자동으로 네트워크 인터페이스가 삭제됩니다.

하지만, 네트워크 인터페이스 분리를 시도해 보면 다음과 같은 에러 메시지가 나타납니다.

문제 해결

AWS 공식문서에서「네트워크 인터페이스 구성 모범 사례」를 살펴보면 다음과 같습니다.

  • 실행 중 상태(핫 연결), 중지 상태(웜 연결) 또는 시작 중 상태(콜드 연결)의 인터페이스에 네트워크 인터페이스를 연결할 수 있습니다.
  • 인스턴스가 실행 중이거나 중지된 경우 보조 네트워크 인터페이스를 분리할 수 있습니다. 하지만 기본 네트워크 인터페이스는 분리할 수 없습니다.
  • 인스턴스가 동일한 가용 영역과 VPC에 있지만 서로 다른 서브넷에 있는 경우 네트워크 인터페이스를 한 인스턴스에서 다른 인스턴스로 이동할 수 있습니다.
  • CLI, API 또는 SDK에서 인스턴스를 시작할 때 기본 네트워크 인터페이스 및 추가 네트워크 인터페이스를 지정할 수 있습니다.
  • 여러 네트워크 인터페이스를 포함하는 Amazon Linux 또는 Windows Server 인스턴스를 시작하면 인스턴스의 운영 체제에서 인터페이스, 프라이빗 IPv4 주소 및 라우팅 테이블이 자동으로 구성됩니다.
  • 추가 네트워크 인터페이스의 웜 또는 핫 연결을 사용하려면 수동으로 두 번째 인터페이스를 열고 프라이빗 IPv4 주소를 구성하고 그에 따라 라우팅 테이블을 수정해야 할 수 있습니다. Amazon Linux 또는 Windows Server를 실행하는 인스턴스는 웜 또는 핫 연결을 자동으로 인식하여 자체적으로 구성됩니다.
  • 이중 홈 인스턴스로 송/수신되는 네트워크 대역폭을 높이거나 두 배로 늘리기 위해 인스턴스에 다른 네트워크 인터페이스를 연결(예: NIC 팀 구성)할 수는 없습니다.
  • 동일한 서브넷에서 2개 이상의 네트워크 인터페이스를 인스턴스에 연결하면 비대칭 라우팅과 같은 네트워킹 문제가 발생할 수 있습니다. 가능한 한 기본 네트워크 인터페이스에서 보조 프라이빗 IPv4 주소를 대신 사용하세요. 여러 개의 네트워크 인터페이스를 사용해야 하는 경우에는 네트워크 인터페이스를 정적 라우팅을 사용할 수 있도록 구성해야 합니다.

여기서 살펴봐야할 항목은 다음과 같습니다.

인스턴스가 실행 중이거나 중지된 경우 보조 네트워크 인터페이스를 분리할 수 있습니다. 하지만 기본 네트워크 인터페이스는 분리할 수 없습니다.

즉 보조 네트워크 인터페이스의 경우 EC2 인스턴스의 상태와 관계없이 분리할 수 있지만, 기본 네트워크 인터페이스의 경우 EC2 인스턴스를 삭제하지 않고서는 분리가 불가능합니다.

네트워크 인터페이스에서 종료 동작을 변경합니다.

  • 해당 네트워크 인터페이스를 선택합니다.
  • 「작업」을 클릭합니다.
  • 「종료 동작 변경」을 클릭합니다.

활성화 체크를 푼 상태로 저장합니다.

이제 대상 EC2 인스턴스를 삭제합니다.

  • 대상 EC2 인스턴스를 선택합니다.
  • 「인스턴스 상태」를 클릭합니다.
  • 「인스턴스 종료」를 클릭합니다.

다시 네트워크 인터페이스로 돌아가서 확인해 보면「인스턴스 ID」가 비어있는 것을 확인할 수 있습니다.

즉 EC2 인스턴스가 삭제 되면서, 자동으로 분리 된 것입니다.

결과적으로 네트워크 인터페이스를 분리하고 싶다면, 기본 네트워크 인터페이스의 경우「종료 동작 변경」을 시행하고, EC2 인스턴스를 삭제해야합니다.

반면, 보조 네트워크 인터페이스의 경우 EC2 인스턴스의 상태에 관계 없이 분리할 수 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !