
💡 NAT 설정 및 NAT 에 대해서 자세히 알고 싶은 분은 이전글을 확인 해주세요.
[AWS 시리즈] 배스천 호스트 구성 실습 + NAT - Private Subnet, Public Subnet, bastion host (2)
NAT Gateway는 AWS에서 제공하는 관리형 네트워크 주소 변환(Network Address Translation, NAT) 서비스 입니다.
프라이빗 서브넷(인터넷 접근이 차단된 내부 네트워크)에 있는 인스턴스들이 인터넷에 아웃바운드(Outbound)로 접속할 수 있도록 해 줍니다.
왜 NAT가 필요한가요?
프라이빗 서브넷 인스턴스에서 나가는 패킷이 NAT Gateway로 전달 됩니다.
NAT 비용은 크게 2개로 나눠져 있습니다.  시간 당 사용 요금 과 데이터 전달 요금을 통해 비용이 나갑니다. 

여기서, 데이터 처리 요금이 만약 많이 나가게 된다면, AWS 서비스를 이용 하는것을 의심 해봐야 합니다. 보통 AWS를 쓰고 있으면, 크기가 큰 파일의 경우 AWS S3 (Simple Storage Service) 를 통해 업로드 및 다운로드를 하실 겁니다.

위의 이미지를 보시면, NAT Gateway는 Internet Gateway 와 연결 되며, 트래픽에 따른 비용을 내고 있습니다.
하지만, 같은 AWS 를 사용 하는데, AWS 내에서 다시 밖으로 나갔다가 AWS로 다시 들어가는 비용을 내고 있는게 조금 이상하다고 생각 하실 수 있습니다.

따라서, VPC Endpoint Gateway 라는 것을 사용 하면, Internet Gateway로 트래픽이 나가는 것이 아니라, VPC Endpoint Gateway를 통해 AWS 서비스 리소스에 트래픽 들어오고 나가게 됩니다.
또한, AWS 서비스 리소스 대상 VPC Endpoint Gateway는 트래픽 이용료 가 무료 입니다. 따라서, 비용을 줄이기 위해서는 VPC Endpoint 를 무조건 설정해서, NAT 트래픽 비용을 0원으로 만들어 버리는 것이 중요 합니다.


서브넷은 인터넷 게이트웨이가 있는 Public Subnet 에 NAT Gateway를 위치 시켜야 합니다.
인터넷 게이트웨이가 없는 Private Subnet 에 0.0.0.0/0 대상인 트래픽을 NAT Gateway로 가도록 라우팅 테이블을 편집 해줍시다.
이렇게 함으로써, Private Zone 에서 나가는 트래픽을 NAT 를 통해 나갈 수 있도록 하여 통신 할 수 있게 만들 수 있습니다.


s3 를 입력해 줍니다.
s3 를 검색 하면, 유형이 Gateway 인 서비스가 나오는데, 해당 서비스를 입력하고, 설정할 Routing Table 을 Private Subnet에 연결된 Routing Table 로 선택 해 줍니다.
pl-78a54011(엔트포인트 게이트웨이) 로 되어 있는 라우팅 정책 이 설정 되어 있음 을 확인 할 수 있습니다.
AWS 비용 금액을 산출해보면, 10,000GB 사용시 $590 정도 사용 되는 것을 볼 수 있습니다. 서비스를 하다보면, S3에 파일 저장 하는 경우가 많은데 NAT를 통해 파일 업로드를 하게 되면 돈이 흐르니,
꼭! VPC Endpoint를 설정하여 S3로 향하는 트래픽이 NAT가 아닌 VPC Endpoint로 설정 하는 것이 바람직 하다고 생각 합니다.