테마
AWS VPC 아키텍처
VPC 개요
VPC(Virtual Private Cloud)는 AWS에서 제공하는 가상 사설 네트워크입니다. 온프레미스의 사설망과 개념적으로 닮아 있지만, 실제 구현은 SDN(Software Defined Networking) 기반의 관리형 가상 네트워크라는 점이 다릅니다.
이 문서는 앞에서 본 IP, 서브넷, NAT, 방화벽 개념을 AWS VPC 한 장의 아키텍처로 다시 묶어 보는 문서입니다. "퍼블릭/프라이빗 서브넷이 왜 나뉘는지", "NAT Gateway와 VPC Endpoint를 언제 쓰는지", "Security Group과 NACL을 어떻게 구분하는지"를 한 흐름으로 연결해 이해하는 것이 목표입니다.
VPC의 핵심 특징:
- 사설 네트워크: 명시적으로 인터넷 경로를 열지 않으면 기본적으로 외부에서 직접 접근할 수 없음
- CIDR로 정의: 예)
10.0.0.0/16(65,536개 IP) - L2 세부사항이 대부분 추상화: MAC 주소, VLAN 같은 세부 L2 운영을 직접 다룰 일이 적음
- L3(IP)부터 설정 시작: 서브넷과 라우팅 테이블이 핵심
서브넷(Subnet)
VPC 내부를 더 작은 네트워크로 분할한 것입니다. 가용 영역(AZ)별로 서브넷을 배치하여 고가용성을 확보합니다.
퍼블릭 서브넷 vs 프라이빗 서브넷
| 구분 | 퍼블릭 서브넷 | 프라이빗 서브넷 |
|---|---|---|
| 인터넷 접근 | IGW 경로 + 공인 IP/EIP가 있으면 가능 | NAT Gateway를 통한 아웃바운드만 가능하거나, 아예 인터넷 경로 없이 고립 가능 |
| 외부 접근 | 가능 | 직접 불가 |
| 배치 대상 | ALB, NAT GW, Bastion | EC2, RDS, 내부 서비스 |
| 라우팅 | 보통 0.0.0.0/0 -> IGW | 보통 0.0.0.0/0 -> NAT GW 또는 기본 경로 없음 |
엄밀히 말하면 "프라이빗 서브넷 = NAT GW 라우트가 있는 서브넷"으로만 고정되지는 않는다. 인터넷 기본 경로가 전혀 없는 isolated subnet도 프라이빗 서브넷 범주로 이해할 수 있다.
Internet Gateway (IGW)
VPC와 인터넷을 연결하는 관문입니다. 물리 환경에서 건물 1층의 출입구, 즉 게이트웨이에 해당합니다.
NAT Gateway
프라이빗 서브넷의 인스턴스가 인터넷으로 아웃바운드 접속할 수 있도록 주소 변환을 수행합니다. 개념상 공유기와 비슷하지만, AWS에서 고가용성으로 제공되는 관리형 egress NAT라고 보는 편이 정확합니다.
NAT Gateway는 유료 서비스입니다. 시간당 비용과 데이터 처리 비용이 발생합니다. 인터넷으로 나가야 하는 일반 아웃바운드에는 적합하지만, S3나 DynamoDB처럼 AWS 내부 서비스에 접근하는 트래픽까지 모두 NAT Gateway로 보내면 비용이 커질 수 있습니다.
S3 Endpoint (VPC Endpoint)
S3는 기본적으로 공개 엔드포인트(public endpoint) 를 통해 접근하는 서비스다. 프라이빗 서브넷의 EC2가 S3에 접근할 때 VPC Endpoint가 없다면, 보통 NAT Gateway를 통해 S3의 공개 엔드포인트로 나가는 경로를 사용하게 된다. 흔히 "인터넷으로 나간다"라고 표현하지만, 핵심은 프라이빗 서브넷 입장에서 NAT를 거쳐 퍼블릭 서비스 엔드포인트로 접근한다는 점이다.
VPC Endpoint를 설정하면:
- S3 트래픽이 인터넷을 거치지 않고 AWS 내부 네트워크를 통해 직접 연결
- NAT Gateway 데이터 처리 비용 절감
- 보안 강화: 트래픽이 AWS 네트워크 밖으로 나가지 않음
- Gateway Endpoint(S3, DynamoDB)는 무료
참고로 S3와 DynamoDB는 Gateway Endpoint, 많은 AWS API 서비스는 Interface Endpoint(PrivateLink) 형태를 사용한다. 학습 초반에는 "자주 가는 AWS 서비스라면 NAT 대신 전용 엔드포인트를 붙일 수 있다" 정도로 이해해도 충분하다.
Security Group과 NACL
Security Group (보안 그룹) - 인스턴스 방화벽
NACL (Network ACL) - 서브넷 방화벽
전체 아키텍처 조합
실제 AWS 서비스 운영 환경의 전체 구조입니다.
각 컴포넌트의 역할 요약
| 컴포넌트 | 역할 | 비유 |
|---|---|---|
| VPC | 가상 사설 네트워크 | 건물 전체 |
| 서브넷 | 네트워크 분할 | 건물 내 각 구역 |
| IGW | VPC-인터넷 연결 | 건물 정문 |
| NAT Gateway | 프라이빗 -> 인터넷 | 공유기 |
| ALB | L7 부하 분산 | 안내 데스크 |
| Security Group | 인스턴스 방화벽 | 각 방의 잠금장치 |
| NACL | 서브넷 방화벽 | 구역 출입 통제 |
| CloudFront | CDN | 전국 지점 |
| WAF | 웹 방화벽 | 보안 검색대 |
| S3 Endpoint | S3 직접 연결 | 내부 전용 통로 |
| Route 53 | DNS 서비스 | 전화번호부 |
핵심 정리
AWS VPC 아키텍처를 이해하는 데 필요한 네트워크 지식의 핵심을 정리합니다.
- VPC는 가상 사설 네트워크: 온프레미스 사설망과 닮았지만, SDN 기반의 관리형 환경이다
- 서브넷으로 분리: 퍼블릭/프라이빗으로 보안 경계 설정
- IGW로 인터넷 연결: 퍼블릭 서브넷은 IGW 경로와 공인 IP가 있어야 실제 인터넷 통신 가능
- NAT Gateway로 아웃바운드: 프라이빗 인스턴스의 인터넷 접근
- VPC Endpoint로 비용 절감: AWS 서비스 접근 시 NAT 사용량과 경로를 줄일 수 있다
- Security Group + NACL: 이중 방화벽으로 보안 강화
- ALB + WAF: 웹 서비스 보호와 부하 분산
- CloudFront/Amplify: CDN으로 글로벌 서비스 속도 향상
이 모든 것은 앞서 학습한 네트워크 기초 위에 세워진 것입니다. IP 주소, 서브넷 마스크, NAT, 방화벽, 로드 밸런싱의 원리를 알면 AWS 아키텍처는 그 원리의 가상화된 구현에 불과합니다.