Introduction

VPC 내 프라이빗 리소스가 Amazon S3와 DynamoDB에 접근할 때, 게이트웨이 엔드포인트(Gateway Endpoint)는 인터넷을 거치지 않으면서도 완전히 무료로 사용할 수 있는 최적의 솔루션입니다. 라우팅 테이블의 경로 추가를 통해 동작하는 이 메커니즘은 NAT Gateway 비용 제거와 보안 향상을 동시에 달성합니다. 이 글에서는 게이트웨이 엔드포인트의 동작 원리, 비용 구조, 최적화 패턴을 살펴봅니다.

VPC Endpoint의 필요성

VPC 내 프라이빗 서브넷의 인스턴스가 S3에 데이터를 업로드하는 시나리오를 생각해 보자. VPC 엔드포인트가 없다면 트래픽은 다음 경로를 따른다.

EC2 → NAT Gateway → IGW → 인터넷 → S3 퍼블릭 엔드포인트

이 경로의 문제점은 두 가지다. 첫째, NAT Gateway의 데이터 처리 비용(0.045/GB)이발생한다.10TB를전송하면NAT비용만0.045/GB)이 발생한다. 월 10TB를 전송하면 NAT 비용만 450이다. 둘째, 트래픽이 인터넷을 경유하므로, 보안 감사 시 이 경로가 컴플라이언스 위반으로 지적될 수 있다.

VPC 엔드포인트를 사용하면 트래픽 경로가 다음과 같이 바뀐다.

EC2 → VPC Endpoint → AWS 백본 네트워크 → S3

인터넷을 전혀 거치지 않고, AWS 내부 네트워크만 통과한다. NAT 게이트웨이도 경유하지 않으므로 데이터 처리 비용이 제거되거나 크게 줄어든다.

Gateway Endpoint

지원 서비스와 동작 원리

게이트웨이 엔드포인트(Gateway Endpoint)는 Amazon S3와 DynamoDB 두 서비스에 대해서만 지원된다. 라우팅 테이블에 해당 서비스의 프리픽스 목록prefix list을 타겟으로 하는 경로를 추가하는 방식으로 동작한다.

게이트웨이 엔드포인트를 생성하면 지정한 서브넷의 라우팅 테이블에 다음과 같은 경로가 자동으로 추가된다.

목적지타겟
pl-xxxxxxxx (S3 프리픽스 목록)vpce-xxxxxxxx (Gateway Endpoint)

프리픽스 목록1은 해당 AWS 서비스가 사용하는 IP 주소 범위의 집합이다. S3의 경우 리전별로 수십 개의 IP 대역이 포함되어 있으며, AWS가 IP를 추가하거나 변경하면 프리픽스 목록이 자동으로 업데이트된다.

비용과 제약

게이트웨이 엔드포인트의 가장 큰 장점은 완전 무료라는 것이다. 생성 비용, 시간당 요금, 데이터 처리 비용이 모두 없다. 따라서 S3나 DynamoDB를 사용하는 워크로드에서는 NAT Gateway를 대신 반드시 게이트웨이 엔드포인트를 사용해야 한다.

제약은 몇 가지 있다. 첫째, 동일 리전의 S3/DynamoDB에만 접근할 수 있다. 다른 리전의 S3 버킷에 접근하려면 여전히 인터넷 경로가 필요하다. 둘째, 온프레미스에서 VPN이나 Direct Connect를 통해 게이트웨이 엔드포인트를 사용할 수 없다. 온프레미스에서 VPC를 경유하여 S3에 프라이빗하게 접근해야 하는 경우에는 인터페이스 엔드포인트를 사용해야 한다. 셋째, VPC당 서비스별로 하나의 게이트웨이 엔드포인트만 생성할 수 있지만, 라우팅 테이블을 통해 여러 서브넷에서 공유할 수 있다.

Endpoint 정책

게이트웨이 엔드포인트에는 IAM 정책과 유사한 형태의 엔드포인트 정책을 연결하여 접근 범위를 제한할 수 있다.

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::my-secure-bucket",
        "arn:aws:s3:::my-secure-bucket/*"
      ]
    }
  ]
}

이 정책은 VPC 엔드포인트를 통한 S3 접근을 my-secure-bucket 버킷으로만 제한한다. 이를 통해 프라이빗 서브넷의 인스턴스가 허용된 버킷에만 접근하도록 네트워크 수준에서 강제할 수 있다.

Gateway Endpoint vs Interface Endpoint

항목Gateway EndpointInterface Endpoint
지원 서비스S3, DynamoDB만대부분의 AWS 서비스 + SaaS
동작 방식라우팅 테이블에 경로 추가서브넷에 ENI 생성
비용무료시간 요금 + 데이터 처리
Security Group적용 불가적용 가능
온프레미스 접근불가가능 (VPN/DX 경유)
DNS변경 없음프라이빗 DNS 자동 설정
사용 사례S3/DynamoDB 대량 트래픽다양한 AWS 서비스 프라이빗 접근

S3의 경우 게이트웨이 엔드포인트와 인터페이스 엔드포인트를 모두 사용할 수 있다. 대량의 데이터 전송에는 무료인 게이트웨이 엔드포인트가 유리하고, 온프레미스에서의 프라이빗한 접근이나 보안 그룹 적용이 필요한 경우에는 인터페이스 엔드포인트를 선택한다.

비용 최적화 패턴

많은 조직이 모든 아웃바운드 트래픽을 NAT Gateway로 보내는 실수를 범한다. 트래픽의 목적지를 분석하고 적절한 엔드포인트를 배치하면 비용을 크게 절감할 수 있다. 예를 들어, 프라이빗 서브넷에서 월 5TB를 S3로, 500GB를 SNS/SQS로, 500GB를 인터넷으로 전송하는 서비스를 운영하는 데 들어가는 비용은 매월 아래와 같다.

구성월 비용
모든 트래픽 → NAT GW32.4(시간)+32.4(시간) + 270(6TB × 0.045)=0.045) = **302.4**
S3 → GW Endpoint + 나머지 → NAT GW32.4(시간)+32.4(시간) + 45(1TB × 0.045)+0.045) + 0(S3) = $77.4
S3 → GW Endpoint + SNS/SQS → Interface Endpoint + 인터넷 → NAT GW32.4(NAT시간)+32.4(NAT 시간) + 22.5(0.5TB NAT) + 14.4(Interface)+14.4(Interface) + 5(0.5TB Interface) + 0(S3)=0(S3) = **74.3**

게이트웨이 엔드포인트만 추가해도 비용이 75% 절감된다. 트래픽 대부분이 S3로 향하는 데이터 파이프라인이나 로그 수집 워크로드에서 이 패턴은 필수적이다.


출처

Footnotes

  1. 프리픽스 목록(Prefix List) — 하나 이상의 CIDR 블록을 그룹화한 논리적 객체다. AWS 관리형 프리픽스 목록은 AWS 서비스의 IP 범위를 자동으로 관리하고, 사용자 관리형 프리픽스 목록은 자주 사용하는 IP 대역을 하나로 묶어 보안 그룹이나 라우팅 테이블에서 참조할 수 있다.