NAT 게이트웨이는 NAT(네트워크 주소 변환) 서비스입니다. 프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 NAT 게이트웨이를 사용할 수 있습니다.
-AWS 공식문서-
NAT 게이트웨이는 VPC 내의 Private 서브넷의 인스턴스는 외부 서비스로 접근할 수 있게 해주고 외부 서비스에서의 Priavate 인스턴스로의 접근은 차단해주는 서비스입니다.
만약 Public 서브넷에 웹 서버를 위치시키고 Private 서브넷에 MySQL 서버를 띄우는 경우 MySQL 를 설치하기 위해서는 외부와의 통신이 가능해야 합니다. 이런 경우 NAT 게이트웨이를 통해서 MySQL 을 설치한 뒤 외부에서의 접근을 차단하여 보안을 강화할 수 있습니다.
NAT 게이트웨이는 외부와의 통신을 위해 Public 서브넷에 위치해야 합니다.
Private 서브넷의 라우팅 테이블은 내부 트래픽에 대해서만 local 로 테이블이 설정되어 있습니다. 여기에 0.0.0.0/0 모든 패킷을 NAT 게이트웨이로 보내는 테이블을 추가합니다.
이렇게되면 외부에서의 접근은 Private 서브넷 내의 인스턴스까지 도달하지 못하고, 외부로 향한 통신은 NAT 게이트웨이로 향하게 됩니다. NAT 게이트웨이는 이러한 내부에서의 요청을 외부 서비스로 보냅니다.