AWS용어 쉽게 이해하기: 엔드포인트와 엔드포인트 서비스
AWS의 VPC 엔드포인트와 VPC 엔드포인트 서비스는 서로 다른 역할을 수행하는 별개의 개념입니다. VPC 엔드포인트는 AWS 서비스에 비공개로 접속하기 위해 사용하는 클라이언트 측 리소스(Consumer)이고, VPC 엔드포인트 서비스는 사용자가 자신의 서비스를 다른 VPC에 노출하기 위해 사용하는 서버 측 서비스(Provider)입니다.
- 엔드포인트(Endpoint)
- 엔드포인트 서비스(Endpoint Service)
1. 엔드포인트(Endpoint)
VPC 엔드포인트는 사용자가 자신의 VPC에서 AWS 서비스(예: S3, DynamoDB) 또는 다른 VPC 엔드포인트 서비스에 안전하고 비공개로 연결하는 데 사용하는 리소스입니다. 인터넷 게이트웨이, NAT 게이트웨이 또는 VPN 연결 없이 AWS 네트워크 백본을 통해 트래픽이 라우팅됩니다.
- 역할: 소비자가 AWS 서비스나 다른 사용자의 서비스에 접속하기 위한 ‘접근점’입니다.
- 유형: 게이트웨이 엔드포인트(S3, DynamoDB)와 인터페이스 엔드포인트(다른 모든 서비스 및 엔드포인트 서비스)가 있습니다.
- 예시: 내 VPC의 EC2 인스턴스가 인터넷을 거치지 않고 S3 버킷에 접속하려면 VPC 엔드포인트를 사용합니다.
2. 엔드포인트 서비스(Endpoint Service)
VPC 엔드포인트 서비스는 사용자가 자신의 서비스(예: NLB 뒤의 EC2 인스턴스)를 다른 AWS 계정이나 VPC에 안전하게 제공하는 데 사용되는 서비스입니다. 서비스 제공자는 엔드포인트 서비스를 생성하여 자신의 서비스를 다른 사용자가 프라이빗하게 사용할 수 있도록 허용합니다.
- 역할: 서비스 제공자가 자신의 서비스를 다른 사용자에게 제공하기 위한 ‘게시점’입니다.
- 구성: Load Balancer(LB) 뒤에 서비스(예: EC2)를 배치하고, LB를 기반으로 VPC 엔드포인트 서비스를 생성합니다. 엔드포인트 서비스를 생성하려면 먼저 LB가 필요합니다.사용할 수 있는 LB 유형은 NLB와 GWLB가 있습니다.
- 예시: 한 회사가 개발한 내부 API 서비스를 파트너 회사의 VPC에서 사용하게 하려면, 해당 API를 VPC 엔드포인트 서비스로 게시합니다. 파트너 회사는 이 엔드포인트 서비스에 연결하기 위해 자신의 VPC에서 VPC 엔드포인트를 생성합니다.
아래와 같은 절차로 엔드포인트와 엔드포인트 서비스가 연결됩니다.
- 서비스 Provider는 자신의 애플리케이션(예: EC2 인스턴스)을 대상 그룹(EC2 > 대상 그룹)으로 묶은 다음 NLB 뒤에 배치합니다. NLB는 애플리케이션의 트래픽을 분산하는 역할을 합니다.
- 서비스 Provider는 이 NLB를 기반으로 VPC 엔드포인트 서비스를 생성합니다. 이 서비스는 NLB를 가리키는 별칭(alias) 역할을 하여 다른 사용자가 NLB의 고정 IP 주소에 직접 접근하지 않아도 되게 합니다.
- 서비스 Consumer는 자신의 VPC에서 이 엔드포인트 서비스에 연결하기 위한 VPC 엔드포인트를 생성합니다.
- 서비스 Consumer의 VPC에서 발생한 트래픽은 생성된 VPC 엔드포인트를 통해 AWS 네트워크 백본을 거쳐 서비스 Provider의 NLB로 안전하게 전달됩니다. NLB는 이 트래픽을 백엔드 서비스(EC2 인스턴스)로 분산합니다.