Ch5. VPC — 나만의 가상 네트워크 구축
VPC란?
**Amazon VPC(Virtual Private Cloud)**는 AWS 내에 자신만의 격리된 가상 네트워크를 만드는 서비스입니다.
핵심 특성:
- 리전 단위로 생성
- CIDR 블록 지정: 예) 10.0.0.0/16 (65,536개 IP)
- 기본 VPC: AWS 계정 생성 시 각 리전에 자동 생성
서브넷
VPC의 IP 주소 범위를 더 작게 나눈 단위. AZ 단위로 생성됩니다.
퍼블릭 서브넷
인터넷과 직접 통신 가능. 인터넷 게이트웨이(IGW) + 라우팅 테이블 필요.
- 용도: 웹 서버, 로드 밸런서, NAT 게이트웨이
프라이빗 서브넷
인터넷에서 직접 접근 불가. 외부 인터넷 트래픽으로부터 보호.
- 용도: 데이터베이스, 애플리케이션 서버, 백엔드 서비스
3계층 아키텍처: 퍼블릭 서브넷(로드 밸런서) → 프라이빗 서브넷(앱 서버) → 프라이빗 서브넷(DB). 각 계층을 분리해 보안을 강화합니다.
게이트웨이
인터넷 게이트웨이(IGW)
VPC를 인터넷에 연결. VPC당 1개. 퍼블릭 서브넷의 인터넷 통신 필수.
NAT 게이트웨이
프라이빗 서브넷의 리소스가 인터넷에 아웃바운드 접속 가능. 인바운드는 차단.
- 퍼블릭 서브넷에 배치
- 고가용성: AZ별 NAT 게이트웨이 1개씩 권장
프라이빗 EC2 → NAT GW(퍼블릭 서브넷) → IGW → 인터넷
(소프트웨어 업데이트, API 호출 가능)
라우팅 테이블
트래픽을 어디로 보낼지 결정하는 규칙 집합.
퍼블릭 서브넷 라우팅 테이블:
대상: 10.0.0.0/16 → 로컬(VPC 내부)
대상: 0.0.0.0/0 → 인터넷 게이트웨이
프라이빗 서브넷 라우팅 테이블:
대상: 10.0.0.0/16 → 로컬
대상: 0.0.0.0/0 → NAT 게이트웨이
보안 그룹 vs NACL
| 구분 | 보안 그룹 | NACL |
|---|---|---|
| 레벨 | 인스턴스 | 서브넷 |
| 상태 | Stateful | Stateless |
| 규칙 | Allow만 | Allow + Deny |
| 적용 | 명시적 연결 | 서브넷 내 전체 자동 |
VPC 피어링과 Transit Gateway
VPC 피어링: 두 VPC를 직접 연결. 전이적 라우팅 불가(A-B, B-C 피어링 시 A→C 불가).
Transit Gateway: 여러 VPC를 허브로 연결. 전이적 라우팅 지원. 대규모 멀티VPC 환경 표준.
핵심 개념 카드
퍼블릭 vs 프라이빗 서브넷 ★★★★★ : 퍼블릭=IGW 연결(웹서버), 프라이빗=인터넷 직접 접근 불가(DB, 앱서버). 3계층 분리가 기본 패턴.
NAT 게이트웨이 ★★★★★ : 프라이빗 서브넷 → 인터넷 아웃바운드 허용, 인바운드 차단. 퍼블릭 서브넷에 배치.
보안 그룹(Stateful) vs NACL(Stateless) ★★★★★ : SG=인스턴스 레벨 Allow만, NACL=서브넷 레벨 Allow+Deny. 2중 방어선.
실전 퀴즈
Q1. 프라이빗 서브넷의 EC2가 소프트웨어 업데이트를 다운로드할 수 없다. 무엇이 필요한가?
NAT 게이트웨이(또는 NAT 인스턴스)가 필요합니다. 프라이빗 서브넷은 인터넷과 직접 통신할 수 없으므로, 퍼블릭 서브넷에 NAT 게이트웨이를 배치하고 프라이빗 서브넷의 라우팅 테이블에 0.0.0.0/0 → NAT GW 경로를 추가해야 합니다.
Q2. NACL에서 인바운드 HTTP(80)를 허용했지만 응답이 오지 않는다. 왜 그런가?
NACL은 Stateless이므로 아웃바운드 반환 트래픽도 명시적으로 허용해야 합니다. 에프메럴 포트(1024-65535) 범위에 아웃바운드 허용 규칙을 추가해야 합니다. 보안 그룹(Stateful)은 이 문제가 없습니다.
OIYO 편집부
편집부OIYO 편집부는 경제·법률·생활·자기이해 주제를 1차 자료와 공개 통계로 검증해 정리합니다. 모든 글은 출처 표기와 정기 점검을 거쳐 실용성과 정확성을 함께 유지합니다.