VPC Endpoints: Interface vs Gateway, 어떤 걸 선택할까?
Gateway Endpoint는 S3/DynamoDB 전용으로 무료, Interface Endpoint는 대부분 AWS 서비스를 지원하지만 유료입니다. 차이점과 선택 기준을 SAA-C03 시험 관점에서 정리합니다.
관련 시험 도메인
- Domain 1: Design Secure Architectures
핵심 요약 (BLUF)
Gateway Endpoint는 S3와 DynamoDB 전용으로 무료이며, Interface Endpoint는 대부분의 AWS 서비스를 지원하지만 유료입니다. S3/DynamoDB는 Gateway Endpoint를 기본으로 사용하고, 온프레미스 연결이나 VPC 피어링이 필요하면 Interface Endpoint를 고려하세요.
시험 팁
시험 핵심: Gateway = S3/DynamoDB 전용 + 무료 + 라우팅 테이블, Interface = 대부분 서비스 + 유료 + ENI + Security Group
VPC Endpoint란?
VPC Endpoint는 인터넷 게이트웨이나 NAT 없이 VPC에서 AWS 서비스에 프라이빗하게 연결하는 기능입니다. 트래픽이 AWS 네트워크 내에서만 이동하므로 보안이 향상됩니다.
인터넷 게이트웨이 사용 (기존):
EC2 → 인터넷 게이트웨이 → 인터넷 → AWS 서비스
VPC Endpoint 사용 (권장):
EC2 → VPC Endpoint → AWS 서비스
(인터넷 통과 없음, AWS 네트워크 내부)
Gateway vs Interface Endpoint: 핵심 차이
한눈에 비교
| 비교 항목 | Gateway Endpoint | Interface Endpoint |
|---|---|---|
| 지원 서비스 | S3, DynamoDB만 | 대부분 AWS 서비스 (200개+) |
| 비용 | 무료 | 유료 (시간당 + 데이터) |
| 기술 | 라우팅 테이블 | AWS PrivateLink (ENI) |
| 고가용성 | 기본 제공 | AZ별 ENI 생성 필요 |
| Security Group | 미지원 | 지원 |
| 온프레미스 접근 | 불가 | 가능 |
| VPC 피어링 접근 | 불가 | 가능 |
| Private DNS | 미지원 | 지원 |
비용 비교 (서울 리전 기준)
| 항목 | Gateway Endpoint | Interface Endpoint |
|---|---|---|
| 생성/사용 | $0 | ~$0.013/시간/AZ |
| 데이터 처리 | $0 | ~$0.01/GB |
| 월 비용 (2AZ) | $0 | ~$19 + 데이터 비용 |
시험 팁
비용 최적화: S3/DynamoDB 접근에는 **Gateway Endpoint(무료)**를 기본으로 사용하세요. 모든 VPC에 생성하는 것이 AWS 권장 사항입니다.
Gateway Endpoint: S3/DynamoDB 전용
작동 방식
Gateway Endpoint는 라우팅 테이블에 경로를 추가하여 트래픽을 AWS 서비스로 전송합니다.
라우팅 테이블 (Gateway Endpoint 생성 후):
Destination | Target
---------------------|----------------------
10.0.0.0/16 | local
pl-63a5400a (S3) | vpce-xxxxx (Gateway)
0.0.0.0/0 | igw-xxxxx
pl-xxxxx는 Prefix List ID로, AWS 서비스의 IP 범위를 나타냅니다.
특징
- 지원 서비스: Amazon S3, Amazon DynamoDB
- 비용: 완전 무료
- 고가용성: 리전 내 모든 AZ에서 자동으로 고가용성 제공
- 라우팅: 자동으로 추가되며 수정/삭제 불가
- 보안: VPC Endpoint 정책으로 접근 제어
Gateway Endpoint 생성 시 변경사항
1. 라우팅 테이블에 Prefix List 경로 자동 추가
2. S3/DynamoDB로 향하는 트래픽이 VPC Endpoint 통과
3. 인터넷 게이트웨이/NAT 불필요
VPC Endpoint 정책 예시
특정 S3 버킷만 접근 허용:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}
Interface Endpoint: AWS PrivateLink 기반
작동 방식
Interface Endpoint는 **서브넷에 ENI(Elastic Network Interface)**를 생성하여 프라이빗 IP로 AWS 서비스에 접근합니다.
Interface Endpoint 구조:
VPC (10.0.0.0/16)
├── AZ-a (10.0.1.0/24)
│ └── ENI: 10.0.1.50 → CloudWatch
├── AZ-b (10.0.2.0/24)
│ └── ENI: 10.0.2.50 → CloudWatch
└── Private DNS: monitoring.ap-northeast-2.amazonaws.com
→ 10.0.1.50 / 10.0.2.50
특징
- 지원 서비스: API Gateway, CloudWatch, SQS, SNS, Kinesis, EC2 API 등 200개+
- 비용: 시간당 요금 + 데이터 처리 요금
- 고가용성: 직접 구성 필요 (각 AZ에 ENI 생성)
- 보안: Security Group으로 트래픽 제어
- Private DNS: 기존 엔드포인트 URL을 프라이빗 IP로 해석
Private DNS의 장점
Private DNS를 활성화하면 애플리케이션 코드 수정 없이 프라이빗 연결을 사용할 수 있습니다.
Private DNS 비활성화:
- 애플리케이션에서 VPC Endpoint DNS 이름 직접 사용
- vpce-xxxxx.monitoring.us-east-2.vpce.amazonaws.com
Private DNS 활성화 (권장):
- 기존 서비스 DNS 이름 그대로 사용
- monitoring.us-east-2.amazonaws.com → 프라이빗 IP로 해석
Interface Endpoint Security Group
Interface Endpoint의 ENI에 Security Group을 연결하여 트래픽을 제어합니다.
인바운드 규칙:
Type | Protocol | Port | Source
------------|----------|------|----------------
HTTPS | TCP | 443 | 10.0.0.0/16 (VPC CIDR)
S3: Gateway vs Interface 선택 기준
S3는 두 가지 Endpoint 유형을 모두 지원합니다. 상황에 따라 선택하세요.
| 상황 | 권장 Endpoint | 이유 |
|---|---|---|
| 일반적인 S3 접근 | Gateway | 무료, 고가용성 기본 제공 |
| 온프레미스에서 S3 접근 | Interface | Gateway는 VPC 외부 접근 불가 |
| VPC 피어링으로 S3 접근 | Interface | Gateway는 피어링된 VPC에서 접근 불가 |
| Transit Gateway로 S3 접근 | Interface | Gateway는 TGW 경유 접근 불가 |
| 비용 최적화 | Gateway | 무료 |
시험 팁
시험 문제 패턴: "온프레미스에서 Direct Connect로 S3에 프라이빗하게 접근하려면?" → Interface Endpoint (Gateway는 VPC 외부 접근 불가)
온프레미스에서 VPC Endpoint 사용하기
Interface Endpoint는 Direct Connect나 VPN을 통해 온프레미스에서도 접근 가능합니다.
온프레미스 → Direct Connect → VPC → Interface Endpoint → AWS 서비스
필요 구성:
1. Route 53 Resolver Inbound Endpoint
2. 온프레미스 DNS가 VPC Resolver로 쿼리 전달
3. Private DNS 활성화
Gateway Endpoint는 VPC 내부에서만 사용 가능하므로 온프레미스 접근에 적합하지 않습니다.
VPC Endpoint 사용 시나리오
시나리오 1: 프라이빗 서브넷에서 S3 접근
문제: 프라이빗 서브넷의 EC2가 S3에 접근해야 함
NAT Gateway를 사용하면 데이터 전송 비용 발생
해결: S3 Gateway Endpoint 생성
- 비용: 무료
- 보안: 트래픽이 AWS 네트워크 내부
- 성능: NAT 병목 없음
시나리오 2: Lambda에서 DynamoDB 접근
문제: VPC Lambda가 DynamoDB에 접근해야 함
인터넷 경로 없이 접근하고 싶음
해결: DynamoDB Gateway Endpoint 생성
Lambda 서브넷의 라우팅 테이블에 연결
시나리오 3: 프라이빗 서브넷에서 CloudWatch 로그 전송
문제: 프라이빗 서브넷의 EC2가 CloudWatch Logs에 로그 전송
인터넷 없이 로그를 전송하고 싶음
해결: CloudWatch Logs Interface Endpoint 생성
- com.amazonaws.{region}.logs
- Private DNS 활성화로 코드 수정 불필요
시나리오 4: 온프레미스에서 S3 프라이빗 접근
문제: 온프레미스 서버가 Direct Connect로 S3에 접근
인터넷을 거치지 않고 접근하고 싶음
해결: S3 Interface Endpoint 생성
- Gateway Endpoint는 VPC 외부 접근 불가
- Route 53 Resolver로 DNS 해석
SAA-C03 시험 출제 포인트
- ✅ Gateway vs Interface: Gateway = S3/DynamoDB + 무료, Interface = PrivateLink + 유료
- ✅ Gateway Endpoint 제한: VPC 내부에서만 사용 가능 (피어링/온프레미스 X)
- ✅ 비용 최적화: S3/DynamoDB는 Gateway Endpoint로 NAT 비용 절감
- ✅ 온프레미스 접근: Interface Endpoint + Route 53 Resolver 필요
- ✅ 고가용성: Gateway = 기본 제공, Interface = AZ별 ENI 필요
시험 팁
시험 문제 예시: "프라이빗 서브넷의 EC2가 S3에 접근해야 합니다. NAT Gateway 없이 비용 효율적으로 구성하려면?" → 정답: S3 Gateway Endpoint (무료, NAT 불필요)
자주 묻는 질문 (FAQ)
Q: Gateway Endpoint와 Interface Endpoint를 동시에 사용할 수 있나요?
네. S3와 DynamoDB는 두 유형을 모두 지원합니다. VPC 내부 트래픽은 Gateway Endpoint로, 온프레미스 트래픽은 Interface Endpoint로 분리할 수 있습니다.
Q: Gateway Endpoint는 왜 VPC 피어링에서 작동하지 않나요?
Gateway Endpoint는 라우팅 테이블 기반으로 동작합니다. Prefix List 경로는 해당 VPC의 라우팅 테이블에만 추가되며, 피어링된 VPC로 전파되지 않습니다. 피어링 접근이 필요하면 Interface Endpoint를 사용하세요.
Q: Interface Endpoint의 비용을 줄이는 방법은?
- 필요한 AZ에만 ENI 생성: 모든 AZ에 생성할 필요 없음
- 사용량 분석: 실제 필요한 서비스만 Endpoint 생성
- Gateway Endpoint 활용: S3/DynamoDB는 무료 Gateway 사용
Q: Private DNS를 활성화하면 무엇이 좋은가요?
기존 애플리케이션 코드를 수정하지 않고 VPC Endpoint를 사용할 수 있습니다. sqs.ap-northeast-2.amazonaws.com 같은 기존 URL이 자동으로 프라이빗 IP로 해석됩니다.
Q: VPC Endpoint 정책과 IAM 정책의 관계는?
둘 다 만족해야 접근이 허용됩니다. VPC Endpoint 정책에서 허용되더라도 IAM 정책에서 거부되면 접근이 차단됩니다. 역으로 IAM에서 허용되어도 Endpoint 정책에서 거부되면 차단됩니다.
Q: 어떤 AWS 서비스가 Interface Endpoint를 지원하나요?
200개 이상의 AWS 서비스가 지원됩니다. 주요 서비스:
- API Gateway, CloudWatch, CloudWatch Logs
- EC2, ECS, EKS, Lambda
- SQS, SNS, Kinesis, EventBridge
- Secrets Manager, Systems Manager
- S3 (Interface도 지원), DynamoDB (Interface도 지원)