VPC 핵심 구성요소 3가지 (서브넷, NAT 게이트웨이, 엔드포인트)
1. 서브넷 (Subnet): 네트워크의 "방" 나누기
VPC라는 거대한 "내 건물"을 통째로 쓰는 것이 아니라, 용도에 맞게 "층"이나 "방"을 나누는 것이 바로 서브넷입니다.
서브넷은 VPC의 IP 주소 범위를 더 작은 단위로 나눈 네트워크 공간입니다. SAA 시험에서 가장 중요한 개념은 이 서브넷을 Public과 Private으로 나누는 것입니다.
-
Public Subnet (공개 방)
- 특징: 인터넷 게이트웨이(IGW)로 향하는 라우팅 경로가 있습니다.
- 역할: 외부 인터넷에서 직접 접근해야 하는 리소스를 배치합니다. (예: 웹 서버, 로드 밸런서)
- 조건: 인스턴스에 공인(Public) IP가 할당되어야 합니다.
-
Private Subnet (개인 방)
- 특징: 인터넷 게이트웨이(IGW)로 향하는 라우팅 경로가 없습니다.
- 역할: 외부로부터 철저히 격리하고 보호해야 하는 리소스를 배치합니다. (예: 데이터베이스, 내부 API 서버)
- 조건: 인터넷에서 직접 접근이 불가능하며, 외부로 나갈 때도 특별한 방법이 필요합니다. (아래 NAT 게이트웨이 참고)
핵심 포인트
- 가용성: 서브넷은 하나의 가용 영역(AZ)에만 존재할 수 있습니다. 고가용성(HA) 아키텍처를 만들려면 여러 AZ에 걸쳐 Public 서브넷과 Private 서브넷을 각각 생성해야 합니다.
- 문제 유형: "애플리케이션은 3계층 아키텍처(Web/WAS/DB)를 가집니다. 보안을 위해 DB 서버는..."
- 정답: DB 서버는 Private Subnet에 배치한다.
2. NAT 게이트웨이 (NAT Gateway): "개인 방"의 외부 통신 창구
Private Subnet에 있는 DB 서버는 안전하지만, 가끔 소프트웨어 패치나 외부 API 호출을 위해 인터넷에 접속(Outbound)해야 할 때가 있습니다. 하지만 Private Subnet은 인터넷으로 나가는 길이 막혀있죠.
이때 사용하는 것이 NAT(Network Address Translation) 게이트웨이입니다.
- 역할: Private Subnet의 인스턴스가 인터넷으로 나갈 수 있게(Outbound) 해주고, 외부에서 들어오는(Inbound) 트래픽은 차단하는 AWS 관리형 서비스입니다.
- 비유: 보안이 철저한 "개인 방"(Private Subnet)에 있는 직원이 외부로 편지(Outbound 요청)를 보내야 할 때, "경비실"(NAT 게이트웨이)을 통해서만 보낼 수 있습니다. 외부 사람은 경비실 주소만 알 뿐, 직원에게 직접 편지를 보낼 수 없습니다.
핵심 포인트
- 배치: NAT 게이트웨이 자체는 Public Subnet에 배치되어야 합니다. (외부 인터넷과 통신해야 하므로)
- 라우팅: Private Subnet의 라우팅 테이블에서 인터넷으로 향하는 모든 트래픽(
0.0.0.0/0)의 대상을 NAT 게이트웨이로 지정해야 합니다.
- 고가용성: NAT 게이트웨이는 단일 AZ에서 동작합니다. 여러 AZ에 걸친 고가용성을 위해서는 각 AZ의 Public Subnet에 NAT 게이트웨이를 하나씩 생성하고, 해당 AZ의 Private Subnet이 자신의 AZ에 있는 NAT 게이트웨이를 사용하도록 라우팅을 설정해야 합니다.
참고: NAT 인스턴스라는 것도 있지만, 이는 EC2에 직접 NAT 설정을 하는 구식 방법입니다. SAA 문제에서는 가용성과 관리가 편한 NAT 게이트웨이 사용을 권장합니다.
3. VPC 엔드포인트 (VPC Endpoint): AWS 서비스로 가는 "비밀 통로"
Private Subnet의 DB 서버가 인터넷 패치가 아닌, AWS 내부 서비스(예: S3, DynamoDB)에 접근해야 한다면 어떨까요?
NAT 게이트웨이를 사용하면 트래픽이 Public 인터넷을 거쳐 다시 AWS S3로 돌아오는 비효율적인 경로를 타게 됩니다.
이때 사용하는 것이 VPC 엔드포인트입니다. 이는 인터넷을 거치지 않고 VPC와 AWS 서비스 간에 비공개(Private) 연결을 생성하는 "비밀 통로"입니다.
- 역할: VPC 내부 리소스가 인터넷/NAT 게이트웨이 없이 S3, DynamoDB, SQS 등 다른 AWS 서비스에 안전하고 빠르게 접근할 수 있도록 합니다.
핵심 포인트
-
보안 및 성능: 모든 트래픽이 AWS 네트워크 내부에서만 이동하므로 매우 안전하고(인터넷 노출 X) 빠릅니다.
-
비용: NAT 게이트웨이를 통과하지 않으므로 데이터 전송 비용을 절약할 수 있습니다.
-
두 가지 유형 (필수 암기!):
- 게이트웨이 엔드포인트 (Gateway Endpoint)
- 특징: 라우팅 테이블에 접두사 목록(S3/DynamoDB IP 대역)을 추가하는 방식.
- 지원 서비스: S3와 DynamoDB
- 인터페이스 엔드포인트 (Interface Endpoint - PrivateLink)
- 특징: 서브넷 내에 ENI(네트워크 인터페이스)를 생성하여 프라이빗 IP를 할당받는 방식.
- 지원 서비스: S3/DynamoDB를 제외한 대부분의 AWS 서비스 (SQS, Kinesis, API Gateway 등)
-
문제 유형: "Private Subnet의 EC2 인스턴스가 인터넷 접근 없이 S3 버킷의 데이터를 처리해야 합니다."
- 정답: S3 게이트웨이 엔드포인트를 구성한다.
정리
- 서브넷: 네트워크를 Public(외부 공개)과 Private(내부 격리)으로 나눈다.
- NAT 게이트웨이: Private 서브넷이 "인터넷"으로 나갈 때(Outbound) 사용한다.
- VPC 엔드포인트: Private 서브넷이 "AWS 내부 서비스(S3 등)"로 비공개 접근할 때 사용한다.