[AWS] VPC EndPoint
VPC Endpoint
인터넷을 거치지 않고 AWS 서비스와 대화하는 방법. Endpoint의 일반 개념부터 Interface·Gateway·Gateway Load Balancer 세 유형, PrivateLink, DNS·Private DNS 동작 원리, IP 유형까지 전부 다룬다.
| Category | Level | Reads | Status |
|---|---|---|---|
| Cloud Computing · Networking | 중급 ~ 고급 | 약 18분 | VERIFIED |
Endpoint(엔드포인트)란?
네트워크에서 엔드포인트는 통신이 시작되거나 끝나는 지점을 뜻한다. API를 호출할 때 두드리는 URL도 엔드포인트고, 서버에 연결하는 IP·포트도 엔드포인트다.
일반적으로 AWS 서비스(S3, DynamoDB 등)를 호출하면, 요청은 인터넷을 거쳐 그 서비스의 퍼블릭 엔드포인트(예: s3.ap-northeast-2.amazonaws.com)로 향한다. VPC 안의 EC2가 이 요청을 보내려면 인터넷 게이트웨이(IGW)나 NAT Gateway를 거쳐 인터넷으로 나갔다가 다시 AWS로 들어와야 한다 — 같은 AWS 안에서 통신하는데도 굳이 밖으로 나갔다 들어오는 셈이다.
VPC Endpoint란?
VPC Endpoint는 VPC 내부에서 AWS 서비스(또는 다른 VPC의 서비스)로 인터넷을 거치지 않고 AWS 백본 네트워크 안에서 직접 연결할 수 있게 해주는 가상 디바이스다.
EC2 → NAT Gateway/IGW → 인터넷 → S3. NAT Gateway 비용과 인터넷 구간 레이턴시가 발생하고, 퍼블릭 인터넷에 노출된다.
EC2 → VPC Endpoint → S3. AWS 백본 네트워크 안에서 끝난다. 인터넷 노출이 없고, 대부분 더 저렴하며 지연도 낮다.
보안 관점에서도 중요하다 — 프라이빗 서브넷(인터넷 라우팅이 아예 없는 서브넷)에 있는 EC2도 VPC Endpoint만 있으면 인터넷 없이 S3나 DynamoDB에 접근할 수 있다. 규제 환경에서 "이 서버는 인터넷에 절대 나갈 수 없다"는 요건을 지키면서도 AWS 서비스는 정상적으로 써야 할 때, VPC Endpoint가 그 해답이다.
NAT Gateway는 프라이빗 서브넷이 "인터넷"으로 나가는 통로다. VPC Endpoint는 "AWS 서비스"로 가는 전용 통로라 인터넷을 아예 거치지 않는다. S3·DynamoDB처럼 VPC Endpoint를 지원하는 서비스는 NAT Gateway 없이도 접근 가능해진다.
VPC Endpoint의 3가지 유형
| 구분 | Interface Endpoint | Gateway Endpoint | Gateway Load Balancer Endpoint |
|---|---|---|---|
| 기반 기술 | ENI (PrivateLink) | 라우팅 테이블 | ENI (트래픽 투명 전달) |
| 지원 대상 | 대부분의 AWS 서비스 + 사설 서비스 | S3, DynamoDB 전용 | 서드파티/자체 어플라이언스 |
| 주소 방식 | 프라이빗 IP + DNS 이름 | 프리픽스 리스트 기반 라우팅 | ENI로 트래픽 리다이렉트 |
| 비용 | 시간당 요금 + 데이터 처리 요금 | 무료 | 시간당 요금 + 데이터 처리 요금 |
| 보안 제어 | 보안 그룹 + 엔드포인트 정책 | 엔드포인트 정책 + 라우팅 테이블 | 보안 그룹(어플라이언스 측) |
Interface Endpoint — 동작 방식
Interface Endpoint는 서브넷 안에 ENI(Elastic Network Interface)를 생성하고, 여기에 서브넷 대역의 프라이빗 IP를 할당한다. 이 기술의 기반이 AWS PrivateLink다.
- 대부분의 AWS 서비스(EC2 API, SSM, KMS, Secrets Manager, ECR, CloudWatch Logs, SQS, SNS 등)와 다른 계정이 노출한 사설 서비스(SaaS 등)에도 사용할 수 있다.
- AZ별로 서브넷에 ENI를 만들 수 있어, 여러 AZ에 걸쳐 고가용성 구성이 가능하다.
- 보안 그룹으로 "누가 이 엔드포인트에 접근할 수 있는지"를, 엔드포인트 정책으로 "이 엔드포인트로 어떤 API 호출까지 허용할지"를 이중으로 통제한다.
서비스 제공자(AWS 또는 제3자)와 소비자 VPC를 인터넷 노출 없이 연결해주는 기반 기술. Interface Endpoint는 이 PrivateLink 위에서 동작하는 소비자 측 접속점이다.
Gateway Endpoint — 동작 방식
Gateway Endpoint는 ENI를 만들지 않는다. 대신 라우팅 테이블에 항목을 추가해서, S3나 DynamoDB로 향하는 트래픽을 인터넷이 아니라 엔드포인트로 보내도록 경로 자체를 바꾼다.
특정 AWS 서비스가 사용하는 IP 대역을 하나의 이름으로 묶어놓은 것. 라우팅 테이블에서 "S3로 가는 모든 트래픽"을 이 프리픽스 리스트 하나로 지정할 수 있어 개별 IP를 관리할 필요가 없다.
Gateway Load Balancer Endpoint
세 번째 유형은 방화벽, 침입 탐지(IDS/IPS) 같은 서드파티 네트워크 어플라이언스를 트래픽 경로에 투명하게 끼워 넣기 위한 것이다. VPC 안의 트래픽이 Gateway Load Balancer Endpoint를 거쳐 다른 VPC(보통 보안 전용 VPC)의 Gateway Load Balancer 뒤에 있는 어플라이언스로 전달되고, 검사가 끝나면 다시 원래 경로로 돌아온다.
GENEVE 프로토콜로 트래픽을 캡슐화해 어플라이언스로 전달하고, 어플라이언스가 검사·필터링 후 그대로 돌려보낸다. 애플리케이션 입장에서는 이 과정이 완전히 투명하다.
중앙집중형 방화벽 아키텍처. 여러 VPC의 트래픽을 하나의 보안 VPC로 모아 일괄 검사하고 싶을 때 표준적으로 쓰이는 패턴이다.
PrivateLink와 서비스 네트워크
Interface Endpoint가 "소비자가 서비스에 연결하는 방법"이라면, VPC Endpoint Service는 "서비스 제공자가 자신의 서비스를 다른 VPC·계정에 안전하게 노출하는 방법"이다. Network Load Balancer(NLB) 뒤에 서비스를 두고 이를 Endpoint Service로 등록하면, 다른 계정의 VPC가 Interface Endpoint로 여기에 연결할 수 있다 — 자체 SaaS를 고객 VPC에 프라이빗하게 제공하는 대표적인 패턴이다.
NLB 뒤에 서비스를 두고 VPC Endpoint Service로 등록, 승인된 계정만 연결을 허용(수동/자동 승인 설정 가능).
자신의 VPC에 Interface Endpoint를 만들어 해당 서비스 이름으로 연결. 상대 VPC의 내부 구조는 전혀 알 필요가 없다.
개별 Endpoint를 하나씩 잇는 대신, 여러 VPC·계정·서비스를 하나의 논리적 애플리케이션 네트워크로 묶어 인증·라우팅·관측을 통합 관리하는 상위 개념. 대규모 MSA 환경에서 개별 PrivateLink 연결의 운영 부담을 줄이기 위해 등장했다.
Interface/Gateway Endpoint를 통해 "어떤 리소스에 어떤 작업까지" 허용할지 정의하는 IAM 기반 정책. 보안 그룹이 "누가 접근 가능한가"를 다룬다면, Endpoint Policy는 "그 접근으로 무엇을 할 수 있는가"를 다룬다.
DNS와 Private DNS 동작 원리
Interface Endpoint를 만들 때 Private DNS 활성화 옵션이 핵심이다. 이걸 켜면, 애플리케이션 코드를 전혀 바꾸지 않고도 기존 퍼블릭 DNS 이름(예: secretsmanager.ap-northeast-2.amazonaws.com)이 VPC 안에서는 자동으로 엔드포인트의 프라이빗 IP로 해석되도록 오버라이드된다.
내부적으로 이 동작은 Private Hosted Zone(Route 53)을 통해 이뤄진다. Interface Endpoint 생성 시 AWS가 해당 서비스 도메인에 대한 프라이빗 호스팅 영역을 VPC에 자동으로 연결해서, 그 VPC 안에서만 도메인 이름이 엔드포인트 IP로 풀리게 만든다. VPC 밖에서 같은 도메인을 조회하면 여전히 퍼블릭 IP가 나온다 — 철저히 VPC 스코프 안에서만 동작하는 오버라이드다.
특정 VPC(들) 안에서만 조회되는 프라이빗 Route 53 호스팅 영역. Interface Endpoint의 Private DNS 기능이 내부적으로 이 메커니즘을 사용한다.
DNS 레코드 IP 유형
Interface Endpoint는 ENI에 할당되는 DNS 레코드의 IP 체계를 선택할 수 있다. 어떤 클라이언트가 어떤 프로토콜로 접속하느냐에 따라 고른다.
| 유형 | 반환되는 레코드 | 적합한 경우 |
|---|---|---|
| IPv4 | A 레코드만 | 대부분의 기존 워크로드, IPv6 미지원 환경 |
| Dual-stack | A + AAAA 레코드 모두 | IPv4·IPv6 클라이언트가 혼재하는 전환기 환경 |
| IPv6 | AAAA 레코드만 | IPv6 전용으로 표준화된 신규 환경 |
여러 AZ에 서브넷을 지정하면 각 AZ의 ENI가 각각의 IP를 갖고, DNS 이름은 이 IP들을 라운드로빈으로 반환한다 — 별도의 로드밸런서 없이도 AZ 간 기본적인 분산과 장애 시 다른 AZ IP로의 자연스러운 페일오버 효과를 얻는다.
유용한 엔드포인트 서비스 & 사용 사례
| 서비스 | 엔드포인트 유형 | 대표 사용 사례 |
|---|---|---|
| S3 | Gateway (Interface도 지원) | 프라이빗 서브넷에서 NAT 없이 객체 저장소 접근 |
| DynamoDB | Gateway | NAT Gateway 비용 없이 테이블 조회/쓰기 |
| Secrets Manager / SSM Parameter Store | Interface | 인터넷 노출 없이 자격증명·설정값 조회 |
| KMS | Interface | 암복호화 API 호출을 프라이빗하게 |
| ECR | Interface | 프라이빗 서브넷의 ECS/EKS가 컨테이너 이미지 풀(pull) |
| CloudWatch Logs | Interface | 로그 전송을 인터넷 경유 없이 처리 |
| SQS / SNS | Interface | 메시징 트래픽을 AWS 백본 내부로 한정 |
대표 시나리오 — 금융권처럼 인터넷 아웃바운드 자체가 금지된 환경, 대용량 S3 트래픽으로 NAT 비용이 큰 서비스, 여러 계정에 걸쳐 사내 API를 프라이빗하게 제공해야 하는 조직, 트래픽을 반드시 중앙 방화벽으로 검사해야 하는 보안 요건.
장단점과 비용 구조
- 트래픽이 인터넷에 노출되지 않아 공격 표면이 줄어듦
- NAT Gateway 데이터 처리 비용 절감(특히 Gateway Endpoint)
- AWS 백본 내부 통신이라 지연시간이 낮고 안정적
- 프라이빗 서브넷만으로도 완결된 아키텍처 구성 가능
- Interface Endpoint는 서비스·AZ 수만큼 시간당 비용이 누적됨
- 모든 서비스가 VPC Endpoint를 지원하는 건 아님
- Private DNS 설정 실수 시 다른 서비스의 이름 해석과 충돌 가능
- 보안 그룹·엔드포인트 정책·라우팅을 함께 설계해야 해 초기 구성 복잡도가 있음