NAT 는 IP를 변환하는 것이며, 사용 이유는 사설 IP 와 인터넷(공인 IP)이 통신하거나, 드물지만 다른 대역의 사설 IP 간에도 통신하기 위해 사용한다. (다른 사설 대역간의 통신은 라우팅을 통해서도 통신이 가능하다.)
AWS 클라우드에서는 NAT GATEWAY, NAT INSTANCE 로 NAT 기능을 사용할 수 있다.
AWS 에서 NAT GATEWAY, NAT INSTANCE 기능을 사용하는 이유는, 클라우드 내부(공인 ip 가 없는 사설 대역 인스턴스)에서 외부 인터넷에 접근하기 위해서다.
그럼 NAT GATEWAY, NAT INSTANCE 는 무엇일까 ?
VPC 밖의 트래픽을 사설 대역으로 전달하는 역할을 EC2 INSTANCE 가 하면 NAT INSTANCE
이고, GATEWAY(AWS 서비스) 가 하면 NAT GATEWAY 인 것이다.
NAT gateway, NAT instance 차이점은 ?
| NAT instance | NAT gateway |
|---|---|
| 무료 | 유료 |
| EC2 인스턴스 | Gateway(서비스) |
| 인스턴스 장애 시 NAT 기능 중단 | 장애와 연관 없음 |
| EC2 보안 그룹 설정 필요 | 보안그룹 기능 없음 |
| 트래픽 과부하 시 장애 발생 가능 | 트래픽 과부하 시 요금 증가 |
트래픽 용량이 크거나 가용성이 중요한 경우 NAT gateway 사용을 권장한다.
그리고 NAT instance 에 대한 추가 지원이 2020년 말 이후로 없다고 하니 참고해야 한다.
NAT instance 가 클라우드의 베스천 호스트와 비슷한 역할을 한다고 볼 수 있으나, 베스천 호스트는 클라우드 외부에서 공인 ip 가 없는 사설 대역의 인스턴스를 접근할 때 사용하고, NAT gateway/NAT instance 는 클라우드 내부(사설대역)에서 외부(인터넷)으로 접근 할 때 사용
한다는 차이가 있다.
NAT instance 에 베스천 호스트 구성을 한다면 하나의 EC2 인스턴스로 두 기능을 모두 구현가능할 것이다.(클라우드 외부와 내부 사설대역 간 인바운드, 아웃바운드 통신 가능) 그러나 이렇게 하면 과부하가 걸릴 가능성이 크고, 해킹/장애 발생 시 사설대역으로의 인바운드 아웃바운드 트래픽이 모두 차단되기 때문에 좋은 방법은 아닌 듯 하다.
그렇다면 Internet gateway 도 외부의 인터넷 트래픽을 VPC 내부로 전달하는데, NAT GATEWAY/NAT INSTANCE 와의 차이점은 무엇일까 ?
Internet gateway는 외부 인터넷과 VPC 내 공인 IP를 가진 인스턴스의 통신을 매개하는 역할이고, NAT GATEWAY/NAT INSTANCE 는 클라우드 VPC 사설대역에서 외부 인터넷으로 통신할 수 있게 매개하는 역할이다.외부 인터넷을 VPC 내 공인 IP와 통신하게 할지, VPC 내 사설 IP와 통신하게 할지가 차이점인 것이다.