본문 바로가기
Server&Infra/Network

AWS VPC NAT Gateway 구성하기

by Deoking 2023. 4. 20.
반응형

Overview

VPC에서 private 서브넷은 public 서브넷과 반대로 외부 인터넷과 격리어 내부적으로만 사용하기 위한 서브넷입니다. 하지만 경우에 따라 외무와 통신이 필요한 경우가 존재하는데, 이때 NAT Gateway와 Bastion Host가  격리된 사설망 안에서 외부 인터넷에 접근할 수 있도록 도와줍니다.
NAT Gateway를 설정하는 방법에 대해서 알아보겠습니다.

Bastion Host 를 구성하는 방법은 아래글을 참고하세요.

 

AWS VPC Bastion Host로 SSH 접속하기

Overview VPC에서 private 서브넷은 public 서브넷과 반대로 외부 인터넷과 격리어 내부적으로만 사용하기 위한 서브넷입니다. 하지만 경우에 따라 외무와 통신이 필요한 경우가 존재하는데, 이때 NAT Ga

deoking.tistory.com


NAT 게이트웨이 (Network Address Translation Gateway) 란?

네트워크 주소 변환(Network Address Translation, NAT)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말합니다.

NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함입니다.
인터넷 접속이 가능한 Public 서브넷에 NAT Gateway를 생성해두고, public 서브넷과 private 서브넷이 같은 VPC안에 있으면 서로 통신할 수 있다는 점을 이용하여 Private 서브넷은 외부 인터넷에 접근이 가능해집니다.

NAT Gateway의 큰 특징은 내부에서 외부로의 접속만 가능하며 외부에서 NAT Gateway를 이용하여 접속하는 것은 불가능합니다. 때문에 외부 인터넷은 VPC 내부로 접근이 불가능합니다.

 

NAT 게이트웨이 요금

기본적으로 VPC의 구성요소는 Subnet, Security Group, NACL, Internet Gateway에 대해서는 요금을 부과하지 않지만, NAT Gateway에 대해서는 요금이 발생합니다.
기본적으로 트래픽이 발생할 때 데이터 처리 요금이 발생하며, 켜져 있기만 해도 시간당 요금이 청구되기 때문에 비용 발생에 유의해야합니다. 

요금을 절약할 수 있는 방법이 존재하는데 NAT 게이트웨이 대신 EC2 인스턴스를 NAT로 활용하는 방법입니다. 설정 방법은 더 복잡하지만 비용을 크게 줄일 수도 있습니다. (아래글 참고)

 

AWS VPC NAT Instance 구성하기

 

deoking.tistory.com

 

NAT 게이트웨이 구성하기

콘솔에 접속하여 VPC 서비스에서 NAT 게이트웨이를 선택 -> NAT 게이트웨이 생성 클릭.

 

NAT 게이트웨이는 외부에 접근할 수 있어야 하기 때문에 Public 서브넷으로 할당합니다. 즉 Internet Gateway가 있는 Public 서브넷에 생성해야 합니다. 그리고 Elastic IP(탄력적 IP 주소)를 NAT Gateway에 할당합니다.

 

NAT 게이트웨이 생성이 완료되면 아래와 같은 화면을 볼수 있습니다.

 

이제, private 서브넷의 라우팅 테이블의 설정을 변경해야합니다.
기존 Private 서브넷의 라우팅 테이블은 내부 트래픽에 대해서만 local로 보내라는 설정만 되어 있습니다. 여기에 0.0.0.0/0 즉 모든 패킷을 NAT로 보내는 설정을 추가합니다.

외부 인터넷(0.0.0.0)에 대해서는 NAT Gateway가 있는 Public 서브넷을 통하여 Elastic IP(공인 IP)로 주소를 변환한 후 Internet Gateway를 통해 외부 인터넷으로 나아가게 됩니다.

이상으로 설정이 완료되었습니다.

 


Conclusion

지금까지 NAT 게이트웨이 개념과 설정 방법에 대해 알아보았습니다. 비교적 간다히 설정 할 수 있지만 생성만 해도 비용이 나가기 때문에 트래픽이 많이 발생되지 않는 시점에서는 NAT 인스턴스를 활용하는 방법도 고민해 볼 만합니다.
-
본 글은 개인적 기록을 목적으로 작성하였습니다.
작게나마 도움 되셨기를 바라며, 더 좋은 의견이나 잘못된 부분이 있다면 댓글을 남겨주세요~

 

반응형

댓글