2026. 5. 29. 08:57ㆍCloud/AWS
Private Subnet의 리소스가 AWS 서비스에 접근할 때, NAT Gateway를 거쳐 인터넷으로 나갈 것인지, VPC Endpoint를 통해 AWS 내부 네트워크로 직접 연결할 것인지는 비용과 보안 모두에 영향을 주는 설계 결정입니다.
핵심 요약
| 기준 | NAT Gateway | VPC Endpoint |
|---|---|---|
| 목적 | Private Subnet → 인터넷 아웃바운드 | Private Subnet → AWS 서비스 직접 연결 |
| 트래픽 경로 | VPC → NAT GW → IGW → 인터넷 → AWS 서비스 | VPC → AWS 내부 네트워크 → AWS 서비스 |
| 비용 | 시간당 $0.045 + GB당 $0.045 (us-east-1) | Gateway Endpoint: 무료 / Interface Endpoint: 시간당 $0.01/AZ + GB당 $0.01 (us-east-1) |
| 보안 | 트래픽이 인터넷을 경유 | 트래픽이 AWS 내부에서만 이동 |
| 추천 상황 | 외부 API, 패키지 다운로드 등 인터넷 접근 필요 시 | S3, DynamoDB 등 AWS 서비스 접근이 주 목적일 때 |
1. 왜 이 비교가 필요한가
Private Subnet에 EC2를 배치하면 외부 인터넷 접근이 차단됩니다. 이 상태에서 S3에 파일을 업로드하거나, CloudWatch에 로그를 보내거나, Systems Manager로 패치를 적용하려면 외부 통신 경로가 필요합니다.
이때 선택지는 두 가지입니다.
- NAT Gateway: 인터넷을 경유해서 AWS 서비스의 퍼블릭 엔드포인트에 접근
- VPC Endpoint: 인터넷을 거치지 않고 AWS 내부 네트워크로 직접 접근
많은 환경에서 NAT Gateway만 설정해두고 모든 트래픽을 인터넷으로 보내는 경우가 있습니다. 이 구조는 동작하지만, S3 업로드가 매일 수백 GB라면 NAT Gateway 데이터 처리 비용만으로 월 수천 달러가 발생할 수 있습니다.
2. NAT Gateway란
NAT Gateway는 Private Subnet의 리소스가 인터넷으로 아웃바운드 통신을 할 수 있게 해주는 AWS 관리형 서비스입니다.
핵심 특성:
| 특성 | 설명 |
|---|---|
| 방향 | 아웃바운드만 허용 (외부에서 인바운드 불가) |
| 위치 | Public Subnet에 배치 |
| 확장성 | 최대 100 Gbps까지 자동 확장 |
| 가용성 | AZ 단위로 동작, Multi-AZ 구성 시 AZ별 1개씩 필요 |
| 비용 | 시간당 $0.045 + 처리 데이터 GB당 $0.045 (us-east-1 기준) |
트래픽 흐름:
EC2 (Private Subnet) → NAT Gateway (Public Subnet) → Internet Gateway → 인터넷 → AWS 서비스 퍼블릭 엔드포인트
NAT Gateway는 외부 인터넷의 모든 대상에 접근할 수 있으므로, AWS 서비스뿐 아니라 외부 API, 패키지 저장소, SaaS 서비스 등에도 사용할 수 있습니다.
3. VPC Endpoint란
VPC Endpoint는 VPC 내부에서 AWS 서비스로 직접 연결하는 프라이빗 경로입니다. 트래픽이 인터넷을 거치지 않고 AWS 내부 네트워크만 통과합니다.
VPC Endpoint는 두 가지 유형이 있습니다.
3.1 Gateway Endpoint
| 특성 | 설명 |
|---|---|
| 지원 서비스 | S3, DynamoDB만 지원 |
| 동작 방식 | Route Table에 경로를 추가하여 트래픽을 라우팅 |
| 비용 | 무료 (데이터 전송 비용도 없음) |
| 제한 | 같은 리전의 서비스만 접근 가능 |
# Gateway Endpoint 생성 예시
aws ec2 create-vpc-endpoint \
--vpc-id vpc-xxxxxxxx \
--service-name com.amazonaws.ap-northeast-2.s3 \
--route-table-ids rtb-xxxxxxxx
Gateway Endpoint를 생성하면 지정한 Route Table에 자동으로 경로가 추가됩니다. 해당 Route Table을 사용하는 Subnet의 S3/DynamoDB 트래픽은 인터넷을 거치지 않고 AWS 내부로 직접 라우팅됩니다.
3.2 Interface Endpoint (PrivateLink)
| 특성 | 설명 |
|---|---|
| 지원 서비스 | 130개 이상의 AWS 서비스 지원 |
| 동작 방식 | Subnet에 ENI(Elastic Network Interface)를 생성하여 프라이빗 IP로 접근 |
| 비용 | AZ당 시간당 $0.01 + 처리 데이터 GB당 $0.01 (us-east-1 기준) |
| DNS | Private DNS를 활성화하면 기존 서비스 엔드포인트 주소가 자동으로 프라이빗 IP로 해석 |
# Interface Endpoint 생성 예시
aws ec2 create-vpc-endpoint \
--vpc-id vpc-xxxxxxxx \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.ap-northeast-2.ssm \
--subnet-ids subnet-xxxxxxxx \
--security-group-ids sg-xxxxxxxx
Interface Endpoint는 Subnet 안에 ENI를 생성하므로 Security Group으로 접근을 제어할 수 있습니다.
4. 구조 차이

NAT Gateway 경로
EC2 → NAT Gateway → Internet Gateway → 인터넷 → S3 퍼블릭 엔드포인트
(s3.amazonaws.com)
- 트래픽이 VPC 밖으로 나가서 인터넷을 경유합니다.
- AWS 서비스의 퍼블릭 엔드포인트에 도달합니다.
- 데이터는 암호화(TLS)되지만, 경로 자체는 퍼블릭 인터넷을 통과합니다.
VPC Endpoint 경로 (Gateway)
EC2 → Route Table → S3 Gateway Endpoint → S3
(AWS 내부 네트워크)
- 트래픽이 VPC 밖으로 나가지 않습니다.
- Route Table 기반으로 동작하므로 애플리케이션 코드 변경이 필요 없습니다.
VPC Endpoint 경로 (Interface)
EC2 → ENI (프라이빗 IP) → AWS 내부 네트워크 → CloudWatch/SSM/etc.
- Subnet 안의 ENI를 통해 프라이빗 IP로 접근합니다.
- Private DNS를 활성화하면 기존 엔드포인트 주소가 자동으로 프라이빗 IP로 해석됩니다.
5. 비용 차이
아래 가격은 us-east-1 기준이며, 리전별로 상이할 수 있습니다. 최신 가격은 AWS 공식 Pricing 페이지를 확인해야 합니다.
5.1 월간 비용 시뮬레이션
시나리오: Private Subnet의 EC2가 매일 S3에 50GB를 업로드하는 환경 (월 1,500GB)
| 항목 | NAT Gateway | Gateway Endpoint |
|---|---|---|
| 시간 비용 | $0.045 × 730시간 = $32.85 | $0 |
| 데이터 처리 비용 | $0.045 × 1,500GB = $67.50 | $0 |
| 월 합계 | $100.35 | $0 |
S3와 DynamoDB 접근이 주 트래픽이라면 Gateway Endpoint로 전환하는 것만으로 NAT Gateway 비용을 크게 줄일 수 있습니다.
5.2 Interface Endpoint vs NAT Gateway 비용 비교
시나리오: CloudWatch Logs로 월 100GB를 전송하는 환경 (2 AZ 구성)
| 항목 | NAT Gateway | Interface Endpoint (2 AZ) |
|---|---|---|
| 시간 비용 | $0.045 × 730 = $32.85 | $0.01 × 730 × 2 = $14.60 |
| 데이터 처리 비용 | $0.045 × 100GB = $4.50 | $0.01 × 100GB = $1.00 |
| 월 합계 | $37.35 | $15.60 |
Interface Endpoint도 NAT Gateway보다 비용이 낮은 경우가 많습니다. 다만 접근하는 서비스 수가 많아지면 서비스별로 Endpoint를 생성해야 하므로 시간 비용이 누적될 수 있습니다.
5.3 비용 판단 기준
| 상황 | 권장 선택 |
|---|---|
| S3/DynamoDB 대량 데이터 전송 | Gateway Endpoint (무료) |
| 특정 AWS 서비스 1~3개만 접근 | Interface Endpoint |
| 다수의 AWS 서비스 + 외부 인터넷 모두 필요 | NAT Gateway + Gateway Endpoint 병행 |
| 데이터 전송량이 매우 적음 (월 수 GB 이하) | NAT Gateway 단독으로도 비용 부담 적음 |
6. 보안 차이
6.1 트래픽 경로 관점
| 기준 | NAT Gateway | VPC Endpoint |
|---|---|---|
| 트래픽 경로 | 인터넷 경유 | AWS 내부 네트워크만 사용 |
| 데이터 노출 위험 | TLS로 암호화되지만 퍼블릭 인터넷 통과 | AWS 백본 네트워크 내에서만 이동 |
| 접근 제어 | NACL, Security Group | Endpoint Policy + Security Group (Interface) |
6.2 Endpoint Policy
VPC Endpoint에는 Endpoint Policy를 설정할 수 있습니다. 이를 통해 특정 S3 버킷이나 특정 작업만 허용하도록 제한할 수 있습니다.
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-app-bucket/*"
}
]
}
이 정책은 해당 VPC Endpoint를 통해 my-app-bucket에만 접근할 수 있도록 제한합니다. NAT Gateway에는 이런 세밀한 트래픽 제어가 불가능합니다.
6.3 컴플라이언스 관점
금융, 의료 등 규제 환경에서는 데이터가 인터넷을 경유하지 않아야 하는 요구사항이 있을 수 있습니다. 이 경우 VPC Endpoint는 컴플라이언스 요구사항을 충족하는 데 도움이 됩니다.
보안 관점에서 VPC Endpoint는 "트래픽이 인터넷을 거치지 않는다"는 점 외에도, Endpoint Policy로 접근 가능한 리소스를 제한할 수 있다는 점이 중요합니다. 데이터 유출 방지(Data Exfiltration Prevention) 전략에서 핵심 역할을 합니다.
7. 운영 복잡도 차이
| 기준 | NAT Gateway | VPC Endpoint |
|---|---|---|
| 설정 복잡도 | 낮음 (1개로 모든 아웃바운드 처리) | 서비스별로 개별 생성 필요 |
| Route Table 변경 | Private Subnet에 0.0.0.0/0 → NAT GW 경로 추가 | Gateway: Route Table에 자동 추가 / Interface: 불필요 |
| DNS 설정 | 불필요 | Interface: Private DNS 활성화 권장 |
| Security Group | NAT Gateway 자체에는 SG 없음 | Interface Endpoint에 SG 적용 가능 |
| 모니터링 | CloudWatch Metrics (BytesOut, PacketsOut 등) | CloudWatch Metrics + VPC Flow Logs |
| 장애 영향 | AZ 단위 장애 시 해당 AZ의 모든 아웃바운드 차단 | Endpoint 장애 시 해당 서비스 접근만 영향 |
NAT Gateway는 하나만 설정하면 모든 아웃바운드 트래픽을 처리할 수 있어 운영이 단순합니다. 반면 VPC Endpoint는 서비스별로 생성해야 하므로 접근하는 서비스가 많을수록 관리 대상이 늘어납니다.
8. 선택 기준

8.1 의사결정 플로우
Private Subnet에서 접근하려는 대상이 무엇인가?
│
├── AWS 서비스 (S3, DynamoDB)
│ └── Gateway Endpoint 사용 (무료, 설정 간단)
│
├── AWS 서비스 (CloudWatch, SSM, ECR 등)
│ ├── 트래픽량이 많거나 보안 요구사항이 높음
│ │ └── Interface Endpoint 사용
│ └── 트래픽량이 적고 이미 NAT Gateway가 있음
│ └── NAT Gateway로 처리 (추가 비용 미미)
│
└── 외부 인터넷 (API, 패키지 저장소, SaaS)
└── NAT Gateway 필요 (VPC Endpoint로 대체 불가)
8.2 실무 권장 조합
대부분의 운영 환경에서는 NAT Gateway와 VPC Endpoint를 병행합니다.
| 대상 | 경로 |
|---|---|
| S3 | Gateway Endpoint (무료) |
| DynamoDB | Gateway Endpoint (무료) |
| CloudWatch Logs | Interface Endpoint 또는 NAT Gateway |
| ECR (컨테이너 이미지 Pull) | Interface Endpoint 권장 |
| Systems Manager | Interface Endpoint 권장 |
| 외부 API / 패키지 저장소 | NAT Gateway |
S3 Gateway Endpoint는 무료이므로 NAT Gateway를 사용하는 환경이라도 반드시 함께 설정하는 것이 좋습니다. Route Table에 S3 경로가 추가되면 S3 트래픽은 자동으로 Gateway Endpoint를 통하게 되어 NAT Gateway 비용이 줄어듭니다.
9. 실무 예시
사례 1: EKS 클러스터에서 ECR 이미지 Pull
EKS Worker Node가 Private Subnet에 있고, 컨테이너 이미지를 ECR에서 Pull하는 상황입니다.
NAT Gateway만 사용하는 경우: - 이미지 Pull 트래픽이 NAT Gateway를 경유합니다. - 이미지 크기가 크고 노드가 많으면 NAT Gateway 데이터 처리 비용이 급증합니다. - 예: 500MB 이미지 × 10개 노드 × 하루 3회 배포 = 일 15GB → 월 450GB × $0.045 = $20.25 (데이터 처리만)
Interface Endpoint를 추가한 경우: - ECR 관련 Endpoint 3개 필요: ecr.api, ecr.dkr, s3 (이미지 레이어 저장소) - S3는 Gateway Endpoint(무료), ECR은 Interface Endpoint 사용 - Interface Endpoint 비용: $0.01 × 730시간 × 2AZ × 2개 = $29.20/월 - 데이터 처리: $0.01 × 450GB = $4.50/월 - 합계: $33.70/월 (NAT Gateway 대비 비용 차이는 크지 않지만, 트래픽이 인터넷을 거치지 않음)
이 경우 비용보다는 보안과 안정성이 Interface Endpoint를 선택하는 주된 이유입니다. NAT Gateway 장애 시 이미지 Pull이 실패하면 배포 전체가 중단될 수 있습니다.
사례 2: 데이터 파이프라인에서 S3 대량 전송
Glue Job이나 EMR에서 S3로 대량 데이터를 읽고 쓰는 환경입니다.
- 일 500GB의 S3 I/O가 발생한다면, NAT Gateway 데이터 처리 비용만 월 $675 (500GB × 30일 × $0.045)
- S3 Gateway Endpoint를 설정하면 이 비용이 $0이 됩니다.
- 설정에 걸리는 시간: 5분 미만
이 시나리오에서 Gateway Endpoint를 사용하지 않을 이유가 없습니다.
10. 자주 하는 실수
- S3 Gateway Endpoint를 설정하지 않는 것: 무료임에도 설정하지 않아 NAT Gateway로 S3 트래픽이 흐르는 경우가 많습니다. VPC 생성 시 기본으로 설정하는 것을 권장합니다.
- Interface Endpoint의 Private DNS를 비활성화하는 것: Private DNS를 활성화하지 않으면 애플리케이션에서 VPC Endpoint 전용 DNS 이름을 사용해야 합니다. 기존 코드 변경이 필요해집니다.
- 모든 서비스에 Interface Endpoint를 만드는 것: 서비스별로 Endpoint를 생성하면 시간 비용이 누적됩니다. 트래픽량이 적은 서비스는 NAT Gateway로 처리하는 것이 비용 효율적일 수 있습니다.
- NAT Gateway를 단일 AZ에만 배치하는 것: 해당 AZ 장애 시 다른 AZ의 Private Subnet도 인터넷 접근이 차단됩니다. 운영 환경에서는 AZ별로 NAT Gateway를 배치해야 합니다.
- Endpoint Policy를 설정하지 않는 것: 기본 정책은 모든 접근을 허용합니다. 데이터 유출 방지를 위해 접근 가능한 리소스를 제한하는 정책을 설정해야 합니다.
11. 정리
- NAT Gateway는 인터넷 아웃바운드 경로이고, VPC Endpoint는 AWS 서비스로의 프라이빗 직접 경로입니다.
- S3와 DynamoDB는 Gateway Endpoint(무료)를 사용하는 것이 비용과 보안 모두에서 유리합니다.
- 외부 인터넷 접근이 필요한 경우에는 NAT Gateway가 필수이며, VPC Endpoint로 대체할 수 없습니다.
- 대부분의 운영 환경에서는 NAT Gateway + Gateway Endpoint + 필요한 Interface Endpoint를 병행합니다.
- 비용 최적화의 첫 단계는 S3 Gateway Endpoint 설정입니다.
관련 글
참고 문서
'Cloud > AWS' 카테고리의 다른 글
| ALB와 NLB 차이: 언제 어떤 Load Balancer를 선택할까 (0) | 2026.06.01 |
|---|---|
| AWS 3-Tier 아키텍처 설계 예시: Web, App, DB 계층 분리와 운영 전략 (0) | 2026.06.01 |
| Security Group과 NACL 차이: Stateful vs Stateless, 적용 범위, 운영 전략 (0) | 2026.05.31 |
| Public Subnet과 Private Subnet 차이: Route Table, 보안, 비용 기준으로 정리 (0) | 2026.05.29 |
| AWS VPC란 무엇인가: Subnet, Route Table, Internet Gateway 개념 정리 (0) | 2026.05.28 |