3편. 인터넷 게이트웨이 & 라우팅 테이블 — 인터넷에 연결하기

시리즈: AWS로 웹 서버 + DB 직접 구축하기 (VPC 완전 정복) | 3편 / 15편

지금까지 VPC와 서브넷을 만들었어요. 그런데 퍼블릭 서브넷이라고 이름 붙였을 뿐, 아직 인터넷이 전혀 안 돼요.

이번 편에서는 실제로 인터넷에 연결하는 작업 을 할 거예요. 필요한 건 두 가지 — 인터넷 게이트웨이 와 라우팅 테이블 이에요.


인터넷 게이트웨이(IGW)란?

인터넷 게이트웨이(Internet Gateway, IGW)는 VPC와 인터넷을 연결하는 문 이에요.

아파트 비유로 계속 이야기하면:

VPC = 아파트 한 동 IGW = 그 동의 정문 (외부 도로와 연결된 출입구)

IGW가 없으면 아파트 안에서 외부로 나갈 방법이 없어요. 반대로 외부에서 안으로 들어올 수도 없고요.

IGW의 특징:

  • VPC 하나에 IGW 하나만 연결 가능해요
  • 생성 자체는 무료 예요 (데이터 전송량에 따른 비용만 발생)
  • 트래픽이 아무리 많아도 IGW 자체는 성능 제한이 없어요

라우팅 테이블이란?

라우팅 테이블(Route Table)은 “이 목적지로 가는 트래픽은 어디로 보낼까?” 를 정의한 표예요.

내비게이션에 비유하면, “강남역으로 가려면 어떤 도로를 타야 하는지” 알려주는 것과 같아요.

라우팅 테이블의 예시를 보면 이해가 쉬워요.

목적지(Destination)    경로(Target)
10.0.0.0/16          local        ← VPC 내부 IP끼리 통신할 때
0.0.0.0/0            igw-xxxxx   ← 그 외 모든 곳(인터넷)으로 나갈 때
  • 10.0.0.0/16 → local : 같은 VPC 안의 서버끼리 통신할 때는 내부에서 처리
  • 0.0.0.0/0 → IGW : 인터넷으로 나가는 모든 트래픽은 IGW를 통해서

여기서 0.0.0.0/0 이 핵심이에요. 이 표기는 “인터넷 전체” 를 의미해요.

💡 퍼블릭 서브넷과 프라이빗 서브넷의 차이 사실 서브넷 자체가 퍼블릭/프라이빗으로 나뉘는 게 아니에요. 서브넷에 연결된 라우팅 테이블에 0.0.0.0/0 → IGW 경로가 있느냐 없느냐 가 차이예요.

  • 있으면 → 퍼블릭 서브넷 (인터넷 연결됨)
  • 없으면 → 프라이빗 서브넷 (인터넷 차단됨)

이번 편에서 할 것

1. IGW 생성
2. IGW를 my-vpc에 연결
3. 퍼블릭 라우팅 테이블 생성
4. 라우팅 테이블에 인터넷 경로 추가 (0.0.0.0/0 → IGW)
5. 퍼블릭 서브넷 2개를 이 라우팅 테이블에 연결

1단계 — 인터넷 게이트웨이 생성

왼쪽 사이드바에서 Internet Gateways 클릭.

기존에 있는 IGW가 하나 있을 수 있어요. 기본 VPC에 연결된 거니까 건드리지 마세요.

오른쪽 상단 Create internet gateway 클릭!

Name tag : my-igw

이름만 입력하면 돼요. 다른 설정은 없어요.

오른쪽 하단 Create internet gateway 클릭!


2단계 — VPC에 연결 (Attach)

IGW를 만들었지만 아직 VPC에 붙어있지 않아요. 생성 직후 화면 상단에 노란 배너가 나타나요.

⚠ You don't have any VPCs attached to this internet gateway.
  [Attach to a VPC]   ← 이 버튼 클릭!

버튼을 클릭하면 VPC 선택 화면이 나와요.

Available VPCs : my-vpc (vpc-xxxxxxxxxxxxxxxxx)

my-vpc 를 선택하고 Attach internet gateway 클릭!

성공하면 IGW 상태가 바뀌어요.

State : detached  →  attached   ✅
VPC   : vpc-xxxxxxxxxxxxxxxxx (my-vpc)

3단계 — 퍼블릭 라우팅 테이블 생성

왼쪽 사이드바에서 Route Tables 클릭.

이미 라우팅 테이블이 몇 개 있을 거예요. 기본 VPC와 my-vpc에 자동으로 생성된 기본 라우팅 테이블들이에요.

💡 기본 라우팅 테이블은 어떻게 구분하나요? Main 컬럼이 Yes 로 표시된 게 기본 라우팅 테이블이에요. VPC를 만들면 기본 라우팅 테이블이 자동 생성되는데, 이 테이블은 나중에 프라이빗 서브넷용으로 사용할 거예요. 건드리지 말고 새로 만들게요.

오른쪽 상단 Create route table 클릭!

Name : public-route-table
VPC  : my-vpc

VPC는 반드시 my-vpc 를 선택하세요. 다른 VPC의 라우팅 테이블은 내 서브넷에 연결이 안 돼요.

Create route table 클릭!


4단계 — 인터넷 경로 추가

방금 만든 public-route-table 의 상세 화면이 자동으로 열려요.

하단 탭 중 Routes 탭을 클릭하면 현재 경로 목록이 보여요.

Destination     Target    Status
10.0.0.0/16    local     Active

지금은 VPC 내부 통신 경로(local)만 있어요. 여기에 인터넷 경로를 추가할게요.

Edit routes 클릭!

Add route 클릭하면 새 행이 생겨요.

Destination : 0.0.0.0/0
Target      : Internet Gateway 선택 → my-igw 선택

Target 드롭다운에서 Internet Gateway 를 선택하면 내 VPC에 연결된 IGW 목록이 나와요. my-igw 를 선택하세요.

Save changes 클릭!

경로 목록이 이렇게 바뀌면 성공이에요.

Destination     Target          Status
10.0.0.0/16    local           Active
0.0.0.0/0      igw-xxxxxxxx    Active   ← 인터넷 연결!

5단계 — 퍼블릭 서브넷에 연결

라우팅 테이블을 만들었지만 아직 어떤 서브넷에도 연결되지 않았어요.

같은 public-route-table 화면에서 Subnet associations 탭 클릭.

Edit subnet associations 클릭!

서브넷 목록이 나와요. my-vpc의 서브넷들만 보일 거예요.

□ public-subnet-2a    10.0.1.0/24    ap-northeast-2a
□ public-subnet-2c    10.0.2.0/24    ap-northeast-2c
□ private-subnet-2a   10.0.3.0/24    ap-northeast-2a
□ private-subnet-2c   10.0.4.0/24    ap-northeast-2c

퍼블릭 서브넷 두 개만 체크하세요.

✅ public-subnet-2a
✅ public-subnet-2c
□  private-subnet-2a   (체크 안 함)
□  private-subnet-2c   (체크 안 함)

Save associations 클릭!


프라이빗 서브넷은 어떻게 되나요?

프라이빗 서브넷은 따로 설정하지 않아도 돼요.

VPC를 만들 때 자동으로 생성된 기본(main) 라우팅 테이블 에 기본적으로 연결돼 있어요. 이 기본 라우팅 테이블에는 local 경로만 있어서, VPC 내부 통신만 가능하고 인터넷은 차단돼요.

기본 라우팅 테이블 (Main: Yes)
  Destination     Target
  10.0.0.0/16    local    ← 내부 통신만 가능

이게 바로 프라이빗 서브넷이에요. 따로 설정하지 않아도 자동으로 프라이빗 상태예요.

💡 나중에 9편에서 프라이빗 서브넷에서 인터넷으로 나가는 트래픽 이 필요할 때 NAT 게이트웨이를 추가하게 돼요. 지금은 이대로 두세요.


현재 아키텍처 상태

인터넷 🌐
  ↕
IGW (my-igw) ← VPC에 연결됨 ✅
  ↕ (0.0.0.0/0)
public-route-table
  ├ public-subnet-2a  ✅ 인터넷 연결됨
  └ public-subnet-2c  ✅ 인터넷 연결됨

기본 라우팅 테이블 (local만)
  ├ private-subnet-2a  🔒 인터넷 차단
  └ private-subnet-2c  🔒 인터넷 차단

퍼블릭 서브넷은 이제 진짜 퍼블릭이 됐어요! 다음 편에서는 이 서브넷에 뭔가를 올리기 전에 방화벽(보안 그룹) 을 먼저 설계할 거예요.


이번 편 정리

개념설명
IGWVPC와 인터넷을 연결하는 문, VPC당 1개
라우팅 테이블트래픽을 어디로 보낼지 정의하는 표
0.0.0.0/0인터넷 전체를 의미하는 목적지
localVPC 내부 통신을 의미하는 경로

이번 편에서 만든 것:

  • ✅ my-igw (VPC에 연결 완료)
  • ✅ public-route-table (0.0.0.0/0 → IGW 경로 추가)
  • ✅ 퍼블릭 서브넷 2개에 라우팅 테이블 연결

다음 편 👉 4편. 보안 그룹 설계 — 웹 서버와 DB 방화벽 만들기

시리즈 전체 구성

주제만드는 것
1편전체 설계도 & VPC 만들기 my-vpc
2편서브넷 설계 퍼블릭/프라이빗 서브넷 4개
3편인터넷 게이트웨이 & 라우팅 테이블 ← 지금 여기IGW, 라우팅 테이블
4편보안 그룹 설계web-sg, rds-sg
5편EC2 웹 서버 배포web-server-1
6편Nginx로 웹 서버 구성웹 페이지
7편RDS 생성my-database
8편EC2 → RDS 연결DB 연결 확인
9편NAT 게이트웨이my-nat-gateway
10편Bastion Hostbastion-host
11편ALB 로드밸런서my-alb
12편Auto Scalingmy-asg
13편ACM + HTTPSSSL 인증서
14편CloudWatch 모니터링알람, 대시보드
15편완성 아키텍처 & 비용 최적화전체 정리