private subnet 에 존재하는 자원(EC2 등) 이 VPC 외부에 존재하는 리소스에 통신을 요청하려고 한다고 가정해보자. 가능할까? 기본적으로 불가능하다. 왜냐하면 private subnet 은 VPC 외부로의 접근이 차단되어 있기 때문이다. 그럼에도 접근할 수 있는 방법이 있는데, 그 중 하나로 NAT Gateway 가 있다. 이번 글에서는, NAT Gateway 가 어떠한 방법을 통해 private subnet 에 존재하는 자원(EC2 등) 이 VPC 외부로 접근할 수 있도록 할 수 있는 지를 공유하려 한다.
퍼블릭 서브넷 의 라우팅 테이블 을 보면 인터넷 게이트웨이 (igw-id)가 등록되어 있다. 인터넷 게이트웨이 는 일종의 VPC 외부와의 연결통로이다. 따라서 퍼블릭 서브넷 안에 있는 EC2 의 경우 외부와 통신하고자 할 때에 인터넷 게이트웨이 (igw-id) 를 통해 외부와 통신할 수 있다.
반대로, 프라이빗 서브넷 의 경우 라우팅 테이블 에 인터넷 게이트웨이 이 존재하지 않는다. 따라서 외부와의 통신이 기본적으로 불가능하다.

그렇다면 프라이빗 서브넷 하에 있는 자원 이 VPC 외부에 접근하려면 어떻게 해야될까? 간단히 말하자면 NAT Gateway 를 사용하면 된다.

위와 같이 NAT Gateway 를 퍼블릭 서브넷 에 두어 NAT Gateway 가 인터넷 게이트웨이를 거치게 만든 뒤, 프라이빗 서브넷 의 라우팅테이블에 NAT-gateway 를 연결하면 NAT-Gateway 는 프라이빗 서브넷의 인스턴스와 인터넷과의 중간다리 역할을 하여 프라이빗 서브넷 이 인터넷에 접속할 수 있게 해준다.
참고 자료: