[Infra] NAT Gateway란?

나른한 개발자·2026년 4월 13일

f-lab

목록 보기
46/46

NAT Gateway

Network Address Translation 의 약자로, 사설 네트워크와 공용 네트워크 사이에서 통신이 가능하도록 IP 주소를 변환하는 역할을 한다.

VPC 내부의 인스턴스들은 대부분 사설 ip를 할당받는다. 하지만 외부 API 호출 (결제, 로그인 API 등) 처럼 외부 인터넷과 통신하려면 공용 ip 주소를 사용해야하는데, 이때 NAT 게이트웨이가 필요하게 된다.

NAT Gateway가 하는 일

  • 주소 변환: VPC 내부의 리소스가 인터넷과 통신할 때, NAT 게이트웨이는 이들 리소스의 사설 IP 주소를 공용 IP 주소로 변환하여 인터넷과 통신할 수 있게 한다.
  • 응답 패킷 라우팅: 인터넷으로부터 온 응답 패킷이 VPC 내부의 올바른 리소스로 돌아갈 수 있도록, NAT 게이트웨이는 공용 IP 주소에서 해당 리소스의 사설 IP 주소로 다시 변환한다.
  • 보안: 외부에서 NAT Gateway로 들어오는 트래픽은 차단한다. 따라서 VPC 내부의 리소스에 직접 접근하는 것은 불가능하며, VPC 내부 리소스들은 보안 그룹 등 설정을 통해 외부와의 통신을 제어할 수 있다. 인바운드 트래픽을 처리하기 위해서는 로드 밸런서나 공인 ip 등 타 방법을 사용해야한다.

NAT Gateway 등장 배경

NAT Gateway는 본래 IPv4 주소 고갈 문제 때문에 등장했다. 전 세계 공인 ip는 약 43억개 뿐이라 모든 기기에 공인 ip를 부여할 수 없다. 그래서 사설 ip와 공인 ip로 나누어 하나의 공인 ip를 여러 기기가 공유하는 형태가 되었는데, 내부에서 시작한 연결의 응답이 내부의 어느 기기로 돌아가야하는지 추적하기 위해 NAT Gateway 가 등장한 것이다. 그러자 자연스럽게 인바운드 트래픽 차단 효과가 생겼고 외부에서 내부 서버 구조를 알 수 없는 은닉 효과까지 생겨 보안 상 이점을 얻게 되었다.

NAT Gateway가 필요한 이유

IP 패킷을 통과시켜주는 인터넷 게이트웨이라는 것이 있는데, 이건 내부-외부 양방향 통신이 가능하다. 그런데 여기서, 그럼 굳이 단방향 NAT Gateway를 쓰지 않고 인터넷 게이트웨이만 써도 되나? 하는 생각이 들었다.

하지만 그럼에도 인터넷 게이트웨이와 NAT 게이트웨이가 따로 필요한 이유가 있다. 인터넷 게이트웨이는 트래픽을 통과시켜주는 역할만 할뿐 트래픽을 분산하거나 서버 헬스체크를 할 수가 없다. 또한 공용ip가 없는 서버는 통과시켜주지 않아 공용 ip를 부여할 수 없는 DB서버에는 인터넷 게이트웨이를 사용할 수 없다. 따라서 NAT 게이트웨이가 대신 외부로 나가주는 역할을 해야한다. 그리고 트래픽 분산을 위해 로드밸런서가 인바운드 트래픽을 처리하는 것이다.

profile
Start fast to fail fast

0개의 댓글