NAT?
외부 인터넷에서 Private Subnet으로의 통신은 막고, Private Subnet에 있는 객체가 외부 인터넷 통신이 필요한 경우 인터넷 게이트웨이와 private subnet과의 연결을 담당하는 객체
보안을 위해 인스턴스를 내부로 놓는 것 까지는 좋았으나, 이 내부 인스턴스에서 인터넷이 필요한 경우가 있다.
(ex. apt install, SES 이메일 전송 등)
AWS에서는 이러한 상황에 대해 자체적 서비스인 NAT Gateway를 지원한다.
(이 서비스가 있기 전에는 NAT instance를 두어 사용했다고 함)
구축 환경도 이전 글과 동일하게 가져간다.
VPC > NAT 게이트웨이 > NAT 게이트웨이 생성
생성할 서브넷은 퍼블릭, 연결 유형도 퍼블릭으로 준다 (Private Subnet과 외부 인터넷 통신이므로)
그리고 외부 인터넷으로 나가기위한 Public IP를 할당해준다.
게이트웨이를 생성하면 Pending 상태가 된다. 이제 이 게이트웨이를 Private Subnet과 연결해주자
기존에 설정한 Private Subnet 라우팅 테이블을 보면 내부 트래픽만 local로 가도록 설정되어있다.
여기서 모든 패킷을 NAT 게이트웨이로 쏴주면 NAT 게이트웨이의 Public IP로 주소가 변환된 뒤 인터넷 게이트웨이를 통해 나가게 된다.
Private Instance에서도 문제없이 인터넷이 됨을 볼 수 있다.
이 NAT Gateway는 사용시 과금이 나오는데, 서울 리전 기준 시간당 $0.059가 켜놓기만 해도 나간다.
(오고간 트래픽에 따라 또 과금이 붙는다...)
NAT Gateway의 비용이 부담되거나 포트포워딩이 필요한 경우 NAT instance를 구축하는 방법도 존재한다.
다만 이 경우 NAT instance가 꺼지지 않도록 하는 등 관리의 부담이 존재한다.
(실제로 NAT Gateway는 t2.micro 대비 4배 높은 가격을 자랑한다.)
이렇게 NAT Gateway를 통해 내부 인스턴스의 인터넷까지 뚫어보았다.
이제 도메인을 구매해서 붙여보자