
[network] 인터넷 게이트웨이 (IGW)
VPC는 기본적으로 바깥과 단절된 섬입니다. 그 섬을 인터넷과 잇는 유일한 다리가 인터넷 게이트웨이예요.
One-Line Summary
Internet Gateway(IGW)는 VPC와 인터넷 사이의 통신을 가능하게 하는 관문이다. VPC는 기본적으로 외부와 단절된 격리 네트워크인데, VPC에 IGW를 붙이고 서브넷의 라우트 테이블이 IGW를 가리키게 하면 그 서브넷(=public subnet)의 리소스가 인터넷과 주고받을 수 있다. AWS가 관리하는 수평 확장·이중화된 고가용 구성이라 성능·가용성 걱정이 없다.
Why It Exists
VPC는 보안을 위해 태어날 때부터 완전히 격리되어 있다. 그런데 웹 서버처럼 인터넷에서 요청을 받아야 하는 리소스도 있다. 이 "격리된 사설망을 필요한 지점에서만 인터넷에 연결"하는 장치가 필요하다.
IGW가 그 역할을 한다.
IGW 없는 VPC
-> 외부와 완전 단절. 인터넷에서 접근도, 인터넷으로 나가지도 못함
VPC에 IGW 부착 + 라우트 테이블이 IGW 지정
-> 해당 서브넷(public)의 리소스가 인터넷과 양방향 통신 가능
시험 감각:
"VPC 리소스를 인터넷과 통신하게 하라" = IGW 부착 + 라우트 테이블에
0.0.0.0/0 → igw추가.
Abbreviations
| 약어 | 풀네임 | 의미 |
|---|---|---|
IGW | Internet Gateway | VPC를 인터넷에 연결하는 관문 |
VPC | Virtual Private Cloud | AWS 안의 격리된 가상 사설 네트워크 |
NAT | Network Address Translation | 사설 IP ↔ 공인 IP 변환 |
EIP | Elastic IP | 고정 공인 IPv4 주소 |
Egress-only IGW | Egress-only Internet Gateway | IPv6 전용, 아웃바운드만 허용하는 IGW |
Route Table | Route Table | 트래픽 경로 규칙표 |
IGW란 무엇인가 (상세)
IGW는 VPC 레벨에 붙는 완전관리형 네트워크 관문이다. 사용자가 서버를 띄우거나 크기를 조정할 필요가 없다.
| 항목 | 내용 |
|---|---|
| 역할 | VPC ↔ 인터넷 양방향 통신의 진입/진출 지점 |
| 부착 대상 | VPC (서브넷이 아님) |
| 관계 | VPC ↔ IGW는 1:1 (한 VPC에 IGW 하나, 한 IGW는 한 VPC에만) |
| 가용성 | AWS가 수평 확장·이중화로 관리 → 단일 장애점(SPOF) 없음 |
| 대역폭 | 별도 제한/병목 없음(관리형) |
| 비용 | IGW 자체는 무료. 인터넷으로 나가는 데이터 전송 요금은 별도 |
| 지원 | IPv4, IPv6 모두 지원 |
어디에 붙나 — 서브넷이 아니라 VPC (중요 정정)
흔히 "서브넷에 IGW를 붙인다"고 오해하지만, 정확히는 다음과 같다.
Internet
│
┌───┴───┐
│ IGW │ attach 1개/VPC
└───┬───┘
┌─ VPC ────────────────────────────────────────────────────────┐
│ ┌─────────────────────────┐ ┌────────────────────────────┐ │
│ │ public subnet │ │ private subnet │ │
│ │ Route: 0.0.0.0/0 ─► IGW │ │ Route: 0.0.0.0/0 ─► (none) │ │
│ │ EC2 (public IP) │ │ EC2 (no public IP) │ │
│ └─────────────────────────┘ └────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
▲ IGW 경로가 있는 서브넷만 public이 된다(이름이 아니라 라우트가 결정)
| 오해 | 사실 |
|---|---|
| "IGW를 특정 서브넷에 붙인다" | IGW는 VPC에 부착된다. 서브넷엔 직접 붙지 않는다 |
| "IGW만 붙이면 모든 서브넷이 인터넷 연결" | IGW 부착만으론 부족. 각 서브넷의 라우트 테이블이 IGW를 가리켜야 함 |
| "public subnet은 태그/설정 스위치로 정해진다" | 라우트 테이블에 0.0.0.0/0 → igw 경로가 있으면 public, 없으면 private |
즉 Public Subnet의 정의 = 연결된 라우트 테이블이 IGW로 가는 기본 경로(
0.0.0.0/0 → igw)를 가진 서브넷. IGW는 VPC 전체에 한 번 붙이고, 어떤 서브넷을 public으로 만들지는 라우트 테이블로 고른다.
인터넷 통신이 되려면 — 4가지 조건 (빈출)
인스턴스가 인터넷과 통신하려면 아래 네 가지가 모두 충족돼야 한다. 시험에서 "인터넷이 안 된다" 문제는 대개 이 중 하나가 빠진 경우다.
| # | 조건 | 확인 포인트 |
|---|---|---|
| 1 | VPC에 IGW 부착 | IGW가 생성·attach 되어 있는가 |
| 2 | 서브넷 라우트 테이블에 0.0.0.0/0 → igw | 해당 서브넷이 이 라우트를 가진 테이블에 연결됐는가 |
| 3 | 인스턴스에 공인 IP(또는 EIP) | 퍼블릭 IPv4나 Elastic IP가 있는가 |
| 4 | 보안 그룹 + NACL이 트래픽 허용 | SG(인바운드/아웃바운드), NACL(양방향)이 막지 않는가 |
안 되는 흔한 원인
- IGW는 붙였는데 라우트 테이블에 0.0.0.0/0 -> igw 가 없음 (2번 누락)
- 라우트는 있는데 인스턴스에 공인 IP가 없음 (3번 누락)
- 다 됐는데 보안 그룹/NACL이 차단 (4번 누락)
IGW의 숨은 역할 — 1:1 NAT
인스턴스 OS 내부는 사설 IP만 알고 있다. 공인 IP는 실제로 인터페이스에 설정되지 않는다. IGW가 나갈 때 사설→공인, 들어올 때 공인→사설로 주소를 바꿔준다(1:1 NAT).
인스턴스(사설 10.0.1.10) --나감--> IGW가 출발지를 공인 IP로 치환 --> 인터넷
인터넷 --들어옴--> IGW가 목적지 공인 IP를 사설 10.0.1.10으로 치환 --> 인스턴스
그래서 인스턴스 안에서
ifconfig/ip addr를 봐도 사설 IP만 보이고, 외부에서는 공인 IP로 보인다. 이 매핑을 IGW가 담당한다.
IGW vs NAT Gateway (헷갈리기 쉬움)
| 구분 | Internet Gateway | NAT Gateway |
|---|---|---|
| 목적 | public 서브넷의 양방향 인터넷 통신 | private 서브넷의 아웃바운드 전용 인터넷 |
| 인바운드(외부→내부) | 가능(공인 IP 있으면) | 불가(응답 트래픽만 돌아옴) |
| 붙는 위치 | VPC | public 서브넷 안에 배치 |
| 대상 | public 서브넷 리소스 | private 서브넷 리소스가 나갈 때 경유 |
| 비용 | 무료(데이터 전송료만) | 시간당 + 데이터 처리 요금 발생 |
"private 서버가 외부에서 접근은 막되 패치 등으로 나가야 한다" = NAT Gateway. "인터넷에서 직접 받아야 한다" = IGW + public 서브넷.
IPv6와 Egress-only IGW
| 상황 | 장치 |
|---|---|
| IPv4/IPv6 양방향 인터넷 통신(public) | IGW |
| IPv6 리소스가 아웃바운드만 하고 인바운드는 막고 싶을 때 | Egress-only Internet Gateway |
IPv6에는 사설/공인 개념이 없어 NAT Gateway 대신 Egress-only IGW가 "아웃바운드 전용" 역할을 한다. (IPv4의 NAT Gateway에 대응)
Common Wrong Directions
| 오답 방향 | 왜 부족한가 |
|---|---|
| IGW를 서브넷에 붙인다고 이해 | IGW는 VPC에 부착, public 여부는 라우트 테이블이 결정 |
| IGW만 붙이면 인터넷 된다고 생각 | 라우트(0.0.0.0/0→igw) + 공인 IP + SG/NACL 허용까지 필요 |
| private 서브넷 아웃바운드에 IGW 라우트 추가 | 그러면 public이 됨. 아웃바운드 전용은 NAT Gateway |
| 인스턴스에 공인 IP 없이 인터넷 기대 | public IP 또는 EIP가 있어야 IGW가 NAT 매핑 |
| IGW가 이중화 필요하다고 직접 여러 개 구성 | AWS가 이미 고가용·수평 확장 관리 → 하나로 충분 |
| IPv6 아웃바운드 전용에 NAT Gateway | IPv6는 Egress-only IGW 사용 |
Exam Triggers
| 문제에서 이런 표현이 나오면 | 떠올릴 것 |
|---|---|
| "allow VPC resources to communicate with the internet" | IGW 부착 + 라우트 |
| "instance in public subnet can't reach internet" | 라우트/공인 IP/SG·NACL 점검(4조건) |
| "web/ALB must receive inbound internet traffic" | IGW + public subnet |
| "private instances need outbound only" | NAT Gateway (IGW 아님) |
| "IPv6 outbound-only, block inbound" | Egress-only Internet Gateway |
| "make IGW highly available" | 이미 AWS 관리형 HA, 추가 구성 불필요 |
Memory Sentence
IGW는 VPC에 1개 붙는 관리형 인터넷 관문(고가용·무료, 데이터 전송료만). 서브넷이 아니라 VPC에 부착되고, 라우트 테이블에
0.0.0.0/0 → igw가 있는 서브넷이 public이 된다. 인터넷 통신엔 IGW+라우트+공인 IP+SG/NACL 4박자가 모두 필요. 아웃바운드 전용은 NAT Gateway(IPv6는 Egress-only IGW).
References
댓글
아직 댓글이 없습니다.