블로그 릴레이 - EC2 인스턴스 복원(변경) 시에도 동일한 프라이빗 IP 사용하기
안녕하세요! 클라우드 사업본부의 임채정입니다.
본 블로그는 당사의 한국어 블로그 릴레이의 2025년 일곱 번째 블로그입니다.
이번 블로그의 주제는「EC2 인스턴스 변경 시에도 동일한 프라이빗 IP 사용하기」입니다.
프라이빗 IP란
EC2 인스턴스에 할당되는 IP는 퍼블릭 IP와 프라이빗 IP 두 종류로 나뉩니다.
프라이빗 IP는 인터넷과의 통신을 위한 퍼블릭 IP 와는 다르게 VPC 내부에서 사용되는 IP입니다.
프라이빗 IP는 주로 VPC 내부 리소스나 내부 애플리케이션 간의 통신, VPN이나 Direct Connect를 사용해 온프레미스와의 통신을 위해 사용됩니다.
또한, 인스턴스가 중지, 재기동을 해도 같은 IP로 유지됩니다.
인스턴스 중지, 재기동 시에 프라이빗 IP 유지되는 지 확인해보기
테스트에 사용하는 서버는 다음과 같습니다.(적혀있는 부분 외의 설정은 생략합니다.)
- 서버명 : restart-test
- 퍼블릭 IP : 57.180.34.130
- 프라이빗 IP : 10.11.0.108
<테스트에서 사용한 서버 정보>
먼저 인스턴스를 중지합니다.
중지하면 퍼블릭 IP가 지워지지만 프라이빗 IP는 그대로 유지됩니다.
재기동을 해보면 퍼블릭 IP는 새로운 주소로 할당되었지만 프라이빗 IP는 여전히 동일한 IP로 유지됩니다.
퍼블릭과 프라이빗 IP를 간단하게 비교해보면 다음과 같습니다.
비교 항목 | 퍼블릭 IP | 프라이빗 IP |
---|---|---|
용도 | 인터넷 연결이 필요한 서비스 (웹서버 등) | 내부 시스템 간 통신 (데이터베이스 서버 등), VPN・DX를 통한 통신 |
할당 방식 | 수동 할당, 서브넷의 설정에 따라 자동 할당 가능 | 인스턴스 생성 시 자동 할당 |
비용 | 유료 | 무료 |
지속성 | 인스턴스 중지, 재기동 시 변경 (고정을 위해 별도 EIP 필요) | 인스턴스 중지/시작 시에도 유지 |
표의 설명과 같이 프라이빗 IP는 인스턴스가 중지, 재기동할 때도 동일한 IP를 유지합니다.
하지만, 인스턴스에 문제가 발생해서 백업으로 인스턴스를 복원할 때 새로운 인스턴스로 변경되는 것이기 때문에 프라이빗 IP도 변경됩니다.
하지만, 인스턴스가 복원 후에도 계속 같은 프라이빗 IP를 유지하려면 어떻게 해야 할까요?
실제로 설정해보기
인스턴스를 복원해서 완전 새로운 인스턴스를 생성할 때도 이전과 동일한 프라이빗IP를 유지하기 위해서는 네트워크 인터페이스(ENI)를 이용하면 됩니다.
그럼, 지금부터 실제로 프라이빗 IP를 유지한 채 복원을 해보겠습니다.
테스트에 사용하는 서버는 다음과 같습니다. (적혀있는 부분 외의 설정은 생략합니다.)
- 서버명 : restart-test
- 퍼블릭 IP : 57.180.34.130
- 프라이빗 IP : 10.11.0.108
- 보안그룹 : launch-wizard-1
<테스트에 사용한 인스턴스 정보>
복원을 하기 위해서는 백업이 필요하기 때문에 임의로 AMI하나를 생성해줬습니다.
인스턴스 AMI 생성하기
AMI를 생성할 대상 인스턴스를 선택해준 후에 [작업] > [이미지 및 템플릿] > [이미지 생성] 을 클릭합니다.
이미지 이름을 임의로 입력합니다.
테스트를 위해 작성하기 때문에 다른 설정들은 기본 설정으로 두고 AMI를 생성합니다.
생성 후에 EC2 콘솔의 AMI 페이지로 이동하면 생성한 AMI를 확인할 수 있습나다.
네트워크 인터페이스(ENI) 확인 및 설정 변경
그럼 먼저 인스턴스와 연결된 네트워크 인터페이스(ENI)를 확인해보겠습니다.
ENI는 VPC 안에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소입니다.
동일한 가용 영역에 있는 인스턴스에 연결할 수 있고 ENI에는 다음 속성 등이 포함될 수 있습니다.
- 서브넷의 IPv4 주소 범위 중 기본 프라이빗 IPv4 주소
- 서브넷의 IPv4 주소 범위의 보조 프라이빗 IPv4 주소
- 프라이빗 IPv4 주소당 하나의 탄력적 IP 주소(IPv4)
- 한 개의 퍼블릭 IPv4 주소
- MAC 주소
- 등등
테스트에서 사용할 네트워크 인터페이스는 인스턴스를 생성할 때 디폴트로 생성한 기본 네트워크 인터페이스입니다.
기본 네트워크 인터페이스(주 네트워크 인터페이스)는 기본적으로 가지고 있어야 하는 분리할 수 없는 네트워크 인터페이스입니다.
기본 네트워크 인터페이스를 분리하면 어떤 에러가 발생할까?
인스턴스 상세페이지의 [네트워킹] 탭에서 네트워크 인터페이스를 살펴보면 연결되어 있는 ENI를 확인할 수 있습니다.
인터페이스ID 를 클릭하면 해당 ENI의 상세페이지에 이동할 수 있습니다.
네트워크 인터페이지의 상세 페이지에서 [작업] > [분리] 를 클릭합니다.
그러면 분리 버튼을 클릭해봅시다.
다음과 같은 에러가 발생합니다.
기본 네트워크 인터페이스는 분리할 수 없다는 메시지입니다.
다른 네트워크 인터페이스 개념에 대해서는 AWS 공식페이지를 참고해주세요.↓
실제로 네트워크 인터페이스를 확인해보면 다음과 같습니다.
사진을 보면 퍼블릭/프라이빗 IP 주소를 확인할 수 있고, 현재 연결된 인스턴스 ID를 확인할 수도 있습니다.
그리고 그 정보 밑에 「네트워크 인터페이스 연결」 부분을 살펴보면 종료 시 삭제가 활성화되어 있습니다.
이 항목이 활성화되어 있으면 인스턴스가 삭제되었을 때 연결된 네트워크 인터페이스도 같이 삭제한다는 의미입니다.
하지만, 이번 블로그에서는 해당 네트워크 인터페이스에 할당된 프라이빗IP를 사용하고 싶으므로 이 설정을 비활성화해서 인스턴스를 삭제해도 네트워크 인터페이스가 그대로 남아있도록 하겠습니다.
그러기 위해 해당 네트워크 인터페이스의 [작업] > [종료 동작 변경] 버튼을 클릭합니다.
활성화 되어있는 체크 버튼을 풀어주고 저장을 클릭합니다.
그럼 다음과 같이 종료 시 삭제가 '아니요(비활성화)' 로 변경되어 있는 걸 확인할 수 있습니다.
인스턴스 삭제
이제 인스턴스를 삭제해보겠습니다.
인스턴스 삭제 후에 다시 해당 네트워크 인터페이스를 확인해보면 삭제되지 않고 잘 남아있습니다.
하지만 연결되어 있던 인스턴스는 삭제되었기 때문에 연결 정보도 모두 삭제된 걸 확인할 수 있습니다.
인스턴스 복원
다음으로 새로운 인스턴스로의 복원을 해보겠습니다.
AMI 페이지로 이동해서 복원할 AMI를 선택하고 [AMI로 인스턴스 시작]을 클릭합니다.
이름은 임의(블로그에서는 restart-test2 로 입력)로 입력하고 네트워크 설정을 합니다.
중요한건 기존 ENI 를 설정할 때는 퍼블릭 IP, 보안 그룹에 아무것도 설정하면 안됩니다.
그 밑의 고급 네트워크 구성에서 아마 삭제하지 않은 네트워크 인터페이스를 선택합니다.
그러면 다른 항목들은 선택하지 못하면 회색 처리됩니다.
그대로 다른 설정 없이 인스턴스를 생성합니다. (인스턴스 타입, 키페어 등의 설정은 생략되어 있습니다.)
확인하기
인스턴스가 복원되었습니다.
프라이빗 IP는 이전 인스턴스와 동일하게 설정되어 있습니다.
인스턴스 상세페이지의 [네트워킹] 탭에서 연결되어 있는 인터페이스를 확인해보면 아까와 동일한 프라이빗IP 입니다.
또한, ENI에 보안 그룹 등의 정보도 이미 속성으로 포함되어 있었기 때문에 복원할 때 설정하지 않은 보안 그룹와 퍼블릭 IP도 설정되어 있습니다.
마무리
이상, 한국어 블로그 릴레이의 2025년 일곱 번째 번째 블로그「EC2 인스턴스 변경 시에도 동일한 프라이빗 IP 사용하기」편이었습니다. 다음 여덟 번째 블로그 릴레이는 3월 셋째 주에 공개됩니다.
끝까지 읽어주셔서 감사합니다! 이상, 클라우드 사업본부의 임채정이었습니다.