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
는 프라이빗 서브넷의 인스턴스와 인터넷과의 중간다리 역할을 하여 프라이빗 서브넷
이 인터넷에 접속할 수 있게 해준다.
참고 자료: