AWS용어 쉽게 이해하기: Internet gateway(igw)와 NAT gateway (ngw)
AWS에서 인터넷 게이트웨이(Internet Gateway, IGW)와 NAT 게이트웨이(NAT Gateway, NGT)는 VPC 내에서 네트워크 트래픽을 관리하는 데 사용되는 중요한 구성 요소입니다. 각각의 역할과 차이점을 아래에서 간단히 설명하겠습니다.
인터넷 게이트웨이 (Internet Gateway)
인터넷 게이트웨이는 VPC와 인터넷 간의 양방향 통신을 가능하게 하는 AWS 관리형 서비스입니다. 주로 Public Subnet에 있는 리소스가 인터넷에 직접 연결되도록 설정할 때 사용됩니다. 인터넷 게이트웨이는 VPC와 인터넷 간의 라우팅을 담당하는 논리적 구성 요소로, 자체적으로 IP 주소를 가지지 않습니다. 대신, 인터넷 게이트웨이를 통해 인터넷과 통신하려는 VPC 내 리소스(예: EC2 인스턴스)에 공용 IP 주소 또는 Elastic IP(EIP)가 필요합니다.
- 주요 기능:
- VPC 내의 리소스가 인터넷과 직접 통신할 수 있도록 합니다(예: EC2 인스턴스가 외부 요청을 처리하거나 업데이트를 다운로드).
- 양방향 통신을 지원하므로, 외부에서 VPC로 들어오는 트래픽과 VPC에서 외부로 나가는 트래픽 모두 처리 가능.
- VPC에 연결된 인터넷 게이트웨이는 공용 IP 또는 EIP를 가진 리소스와 인터넷 간 연결을 제공.
- 사용 사례:
- 웹 서버, API 서버 등 외부 인터넷과 직접 통신해야 하는 애플리케이션.
- Public Subnet에서 실행 중인 EC2 인스턴스가 인터넷에서 접근 가능해야 할 때.
- 설정 방법:
- VPC에 인터넷 게이트웨이를 생성하고 연결.
- Public subnet의 라우팅 테이블에 인터넷 게이트웨이로 가는 경로(0.0.0.0/0 -> igw-xxxx)를 추가.
- EC2 등 리소스에 공용 IP 또는 EIP를 할당.
- 특징:
- AWS에서 관리하며, 고가용성과 확장성을 제공.
- 별도의 비용 없이 사용 가능(데이터 전송 요금은 발생할 수 있음).
- 공용 IP가 없으면 인터넷 게이트웨이를 통해 외부와 통신 불가.
NAT 게이트웨이 (NAT Gateway)
NAT 게이트웨이는 Private Subnet에 있는 리소스가 인터넷으로 나가는 단방향 트래픽을 처리할 수 있도록 하는 관리형 서비스입니다. 외부에서 Private Subnet으로 직접 접근할 수 없도록 보안을 유지하면서, Public Subnet에 배치되어 인터넷으로의 아웃바운드 연결을 제공합니다. NAT 게이트웨이가 인터넷과 통신하려면 공용 IP가 필요하며, 이를 위해 EIP를 생성해 NAT 게이트웨이에 연결해야 합니다.
- 주요 기능:
- Private subnet의 리소스가 인터넷으로 나가는 요청(예: 소프트웨어 업데이트, API 호출)을 처리.
- 외부에서 Private subnet으로 들어오는 트래픽은 차단하여 보안 강화.
- NAT(Network Address Translation)을 통해 사설 IP 주소를 공용 IP 또는 EIP로 변환.
- 사용 사례:
- Private Subnet의 EC2 인스턴스가 인터넷에서 데이터를 가져와야 하지만, 외부에서 접근할 필요는 없을 때.
- 데이터베이스 서버, 백엔드 애플리케이션 등 보안이 중요한 환경에서 사용.
- 설정 방법:
- Public subnet에 NAT 게이트웨이를 생성하고 EIP를 할당.
- Private Subnet의 라우팅 테이블에 NAT 게이트웨이로 가는 경로(0.0.0.0/0 -> nat-xxxx)를 추가.
- Private Subnet의 리소스는 공용 IP 없이도 인터넷으로 나가는 트래픽을 처리 가능.
- 특징:
- AWS에서 완전 관리형으로 제공되며, 고가용성과 자동 확장 지원.
- NAT 게이트웨이 자체는 Public Subnet에 배치되며, EIP가 필요.
- 사용 시간과 처리된 데이터량에 따라 요금 부과.
NAT 게이트웨이와 인터넷 게이트웨이의 동작 과정을 정리해보면
- Private Subnet의 리소스(예: EC2 인스턴스)가 인터넷으로 요청을 보냅니다(예: 소프트웨어 업데이트 다운로드).
- 이 요청은 Private Subnet의 라우팅 테이블에 설정된 경로(예: 0.0.0.0/0 -> nat-xxxx)를 따라 Public Subnet에 있는 NAT 게이트웨이로 전달됩니다.
- Public Subnet은 인터넷 게이트웨이로 가는 경로(0.0.0.0/0 -> igw-xxxx)가 라우팅 테이블에 설정되어 있으므로, NAT 게이트웨이는 요청을 받아 자신의 EIP를 사용해 인터넷으로 트래픽을 보냅니다. 이때 NAT(Network Address Translation)을 통해 사설 IP주소를 EIP로 변환됩니다.
- 이 트래픽은 VPC에 연결된 인터넷 게이트웨이를 통해 외부 인터넷으로 나가고, 응답도 같은 경로를 통해 돌아옵니다.
- NAT 게이트웨이는 응답을 Private Subnet의 원래 리소스로 전달하지만, 외부에서 직접 Private Subnet으로 접근할 수는 없습니다(단방향 통신).