[AWS] 퍼블릭IPv4 유료화에 따른 대체 구성 방법

 

누리클라우드입니다. AWS는 2024년 2월 1일부터 무료로 제공하던 퍼블릭 IPv4 주소에 대한 요금을 부과할 예정입니다. 무료로 사용하던 주소에 비용이 발생하게 되는 상황으로, 다소 당황스러울 수 있습니다.
이번 글에서는 내 계정에서 퍼블릭 IPv4 주소 사용 현황을 확인하는 방법, 유료화 이후 예상되는 비용, 그리고 비용 절감 대안을 알아보겠습니다.

들어가기 전에

퍼블릭 IPv4 주소의 비용은 월 3.65 USD로 한화로 약 5천원 수준입니다. 이 비용이 퍼블릭 IPv4 주소를 꼭 사용해야 한다면 어쩔 수 없지만, 불필요하게 발생하고 있다면 비용 절약을 위해 대체 구성을 고려해 볼 수 있습니다.

기본 개념

AWS에서 유료화 되는 퍼블릭 IPv4와 관련된 서비스 목록은 여기에서 확인할 수 있듯이 외부 통신이 필요한 거의 모든 서비스에 걸쳐 있습니다.
여기에는 기본적인 구성 범주인 EC2, 로드밸런서, 그리고 NAT 게이트웨이가 포함되어서 거의 대부분의 사용자에게 비용 상승의 영향을 줍니다. 그렇다면 먼저 내가 얼마나 많은 퍼블릭 IPv4 주소를 사용하고 있는지 파악해야 하는데, AWS 에서는 한눈에 사용 현황을 볼 수 있도록 서비스를 제공하고 있습니다.

퍼블릭 IPv4 사용 현황 보기

'퍼블릭 IP 인사이트' 메뉴에서 사용 현황을 볼 수 있습니다. 먼저 Amazon VPC IPAM을 생성해야 합니다. 서비스 검색에서 'IPAM'을 검색하여 'Amazon VPC IP Address Manager'를 클릭합니다. 처음 접근하면 IPAM을 생성하라는 버튼만 보입니다. IPAM 생성 페이지에서 다음 단계를 따릅니다.

* 데이터 복제 허용을 체크합니다.
* IPAM 티어는 프리티어를 선택합니다.
* 운영 리전에 서울 리전을 포함하여 리소스가 구성된 리전을 추가합니다.

 

IPAM 생성 버튼을 클릭하면 완료됩니다. 프리티어 레벨에서는 다른 메뉴는 진입할 수 없고 '퍼블릭 IP 인사이트' 메뉴만 접근할 수 있습니다.
퍼블릭 IP 인사이트는 정보를 수집하는 데 시간이 걸리므로, 수 분 후 다시 확인합니다.
퍼블릭 IP 유형별 현황에서 BYOIP, 서비스 관리형 BYOIP를 제외하고 보이는 숫자가 비용이 발생하는 IP입니다..

페이지 하단으로 내려가면 아래와 같이 각 IP별 상태와 세부정보를 볼 수 있습니다.

위 예에서는, 2개의 로드 밸런서에서 4개의 IP가, RDS에서 1개의 IP가, 사용 중인 EIP에서 1개의 IP가, 미사용 EIP에서 1개의 IP가, 그리고 EC2에서 사용 중인 2개의 IP가 확인됩니다. 이전에는 비용이 발생하는 IP는 미사용 EIP 1개뿐이었지만, 이제는 이 9개의 모든 IP에 대해 비용이 청구됩니다.

비용 감수 vs 대체 구성

대체 구성을 생각하기 전에 먼저 비용 효율성을 따져볼 필요가 있습니다. 아래는 퍼블릭 IPv4, ALB 그리고 NAT게이트웨이의 월비용입니다.(서울리전)

퍼블릭 IPv4 = 3.65 USD/월
ALB + IP 2개 = 16.43 + 3.65 * 2 = 23.73 USD/월
NAT 게이트웨이 + IP = 43.07 + 3.65 = 46.72 USD/월

위와 같이 퍼블릭 아이피를 대체할 수 있는 리소스의 비용은 아이피 비용에 비해 꽤 비쌉니다. 더구나, ALB는 필수적으로 Multi-AZ로 구성해야 하므로 2개의 퍼블릭 아이피 비용이 추가되고, NAT게이트웨이 또한 하나의 퍼블릭 아이피가 필요합니다. 결국 아이피 비용 몇 개 줄이자고 복잡한 구성을 더 큰 비용을 들여서 하게 되는 상황입니다.

그럼에도 불구하고, 대체 구성을 고려해보는 게 좋습니다. 대체 구성의 경우, 비용이 좀 더 들 수 있지만, 장기적으로 보면 훨씬 안정적인 서비스 제공이 가능합니다. 예를 들어, ALB를 사용하면, 고가용성과 스케일링 기능을 활용할 수 있는 토대가 됩니다. 이는 시스템의 안정성과 확장성을 보장해줄 수 있어서 장기적인 관점에서 봤을 때 투자할 가치가 충분하다고 할 수 있습니다.

NAT 게이트웨이는 퍼블릭 아이피가 제거된 인스턴스가 외부 인터넷과 통신할 수 있는 대체 구성인데요, 외부로부터의 접근이 구조적으로 차단되므로 보안성이 특히 향상되는 구성입니다.

결론적으로, AWS의 이번 IPv4 주소 유료화 결정에 따라 당장은 비용이 증가할 수도 있지만, 이를 기회로 삼아 시스템의 안정성과 확장성, 보안성을 강화하는 방향으로 전환하는 것도 좋은 전략이 될 수 있겠습니다. 물론, 이러한 전환은 각 기업의 상황과 요구에 맞게 조정되어야 하겠지만, 장기적인 관점에서 비용과 효율성을 모두 고려해야 할 것 같습니다.

 

대체 구성하기

아래는 대체 구성을 하기 전과 후의 기본 구성도 예시입니다.

대체 구성 전

대체 구성 후

이제, 대체 구성을 할 때 추가 또는 변경해야 하는 리소스들에 대해 간단히 알아보겠습니다.

1. VPC, 서브넷 변경

기존 구성이 퍼블릭 서브넷들로만 되어 있다면, 대체구성에서는 로드밸런서가 배치될 퍼블릭 서브넷과 EC2 Instance Connect Endpoint가 배치될 매니지먼트 서브넷 그리고 NAT게이트웨이를 배치할 NAT서브넷이 추가로 필요합니다.

2. 로드밸런서 구성 변경

인스턴스를 퍼블릭 서브넷에 생성하고 할당된 퍼블릭IP를 통해 직접 인터넷에 개방하고 있었다면, 이제는 안전한 프라이빗 서브넷에 퍼블릭IP 없이 배치하고 로드밸런서를 통해 외부에 서비스를 하도록 재구성하는 것이 좋습니다. 만약 기존에도 로드밸런서를 통해 외부서비스 구성은 하고 있으나 인스턴스가 여전히 할당 받은 퍼블릭 IP를 사용하고 있다면, 대체구성에서는 퍼블릭 IP를 더 이상 사용하지 않도록 변경합니다.

3. EC2 Instance Connect Endpoint 생성

퍼블릭IP가 제거된 인스턴스에 ssh, rdp 등의 관리적인 접근을 하기 위해서 전통적인 방법인 베스천호스트나 VPN구성이 있지만, EICE(이하 EC2 Instance Connect Endpoint)를 활용하면 보다 간편하고 비용 효율적으로 구성할 수 있습니다. EICE에 대한 자세한 설명은 아래 누리클라우드 블로그에 포스팅 되어 있으니 참고하여 보시기 바랍니다.
https://blog.nuricloud.com/aws-with-no-eip-ssh-connect-using-ec2-instance-connect-endpoint/

4. NAT 게이트웨이 생성

퍼블릭 IP가 없는 EC2 인스턴스가 보안 업데이트 등을 위해 외부와 인터넷 통신을 하기 위해서는 NAT게이트웨이가 필요합니다. NAT게이트웨이는 Mult-AZ로 AZ마다 배치하면 좋지만, 비용 효용성 측면에서 한 개의 AZ에만 배치하여도 좋습니다. 왜냐하면, 다른 AZ에 있는 인스턴스도 한 개의 NAT게이트웨이쪽으로 라우팅이 가능하고 보통 NAT게이트웨이를 통한 통신은 고가용성(HA)의 요구가 다소 덜하기 때문입니다.

5. 인스턴스 구성 변경

기존 인스턴스가 퍼블릭 IP를 사용하고 있다면, 대체구성에서는 퍼블릭 IP를 제거해야 합니다. 이를 위해, 인스턴스의 네트워크 구성에서 퍼블릭 IP를 없음으로 설정하면 됩니다. 그런데, 이미 퍼블릭IP를 할당하여 사용중이라면 현재까지는 해당 인스턴스를 복제하여 다시 생성하는 방법 외에 제거하는 방법이 없습니다. 그러니 앞으로 새로 생성할 인스턴스는 기본적으로 퍼블릭IP 할당을 방지하기 위해서 서브넷의 "퍼블릭 IPv4 주소 자동 할당 활성화" 옵션을 언체크해 두는 것이 좋습니다.

맺음말

AWS의 이번 IPv4 주소 유료화 결정은 많은 AWS 사용자에게 고민이 됩니다. 퍼블릭IP 비용을 줄이다가 오히려 전체 비용이 상승하게 되는 경우가 많을 것입니다. 이번 기회에 현재 구성을 살펴보고 비용과 안전 사이에서 보다 합리적인 선택을 할 수 있기를 바랍니다.

관련링크

Amazon Web Services 한국 블로그 – AWS Public IPv4 주소 요금 변경 및 Public IP Insights 기능 출시
Amazon Web Services 한국 블로그 – Identify and optimize public IPv4 address usage on AWS