헤매어도 한 걸음씩

NAT Gateway가 Public Subnet에 위치하는 이유 본문

IT

NAT Gateway가 Public Subnet에 위치하는 이유

ritz 2022. 3. 17. 00:15

AWS에서 VPC와 Subnet을 생성하여 다음과 같은 인프라를 구축했다.

 

이때 NAT Gateway 관련 헷갈렸던 부분을 정리한다.

 


 

NAT Gateway에 대한 AWS의 설명은 다음과 같다.

NAT Gateway는 NAT(Network Address Translation; 네트워크 주소 변환) 서비스입니다. 프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 NAT Gateway를 사용할 수 있습니다.

 

잘 이해가 안 되어 추가로 정리한 바는 다음과 같다.

NAT Gateway는 Private Subnet이 인터넷과 통 신하기 위한 아웃바운드 인스턴스. 
Private Network가 외부에서 요청되는 인바운드는 필요없더라도 인스턴스의 펌웨어나 혹은 주기적인 업데이트가 필요하여 아웃바운드 트래픽만 허용되야할 경우가 있다.
이때 Public Subnet상에서 동작하는 NAT Gateway는 Private Subnet에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷 게이트웨이와 연결한다.

 

여기서 마지막 문장인 

Public Subnet상에서 동작하는 NAT Gateway는 Private Subnet에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷게이트웨이와 연결한다.

부분을 읽고, NAT Gateway가 Private Subnet이 아닌 Public Subnet에 위치하지? 라는 의문이 들었다.

해당 의문에 대한 답을 아래 링크에서 찾을 수 있었다.

 

AWS: NAT Gateway in public subnet. Why?

 

AWS: NAT Gateway in public subnet. Why?

As I understand it, a public subnet is one that can route traffic to the internet via an Internet Gateway, and a private subnet is one that cannot (can't reach the internet nor it can be reached fr...

serverfault.com

 

정리하자면 이렇다.

  1. Public Subnet만 Public IP 주소를 사용할 수 있기 때문에 NAT Gateway는 Public Subnet에 있어야 한다.
    • Public Subnet의 정의는 연결된 VPC routing table에 인터넷 게이트웨이를 가리키는 하나 이상의 경로가 있는 서브넷이다.
    • 반대로 Private Subnet은 이러한 경로가 없는 서브넷이다.
  2. NAT Gateway가 Public Subnet에 없으면 변환된 트래픽이 인터넷에 도달할 수 있는 경로가 없다.
  3. 따라서 NAT Gateway가 있는 Subnet은 Public Subnet이어야 한다.

 

+ 어떤 상황에서도 들어오는 연결 시도가 허용되지 않기 때문에, Public SubnetNAT Gateway를 배치하는 것은 보안에 영향을 미치지 않는다.

 

 

 


참고 자료