[AWS] VPC 엔드포인트 정리feat. Gateway vs Interface)
EC2에서 S3 같은 AWS 서비스에 접근할 때, 굳이 외부 인터넷(IGW)을 거칠 필요가 없다. 보안과 효율을 위해 사용하는 VPC 엔드포인트의 개념을 정리하고, 헷갈리기 쉬운 NAT Gateway와의 차이점 및 보안 설정까지 다뤄본다.
1. VPC 엔드포인트란? (개념 잡기)
VPC 내부의 인스턴스가 인터넷 게이트웨이(IGW)를 거치지 않고, AWS의 다른 서비스(S3, DynamoDB 등)와 직접 통신할 수 있게 해주는 기술이다.
💡 왜 쓸까? (3가지 이점)
- 보안 (Security): 트래픽이 공용 인터넷(Public Internet)을 타지 않고 AWS 글로벌 네트워크 안에서만 움직인다. 해킹 위험이 줄어든다.
- 비용 (Cost): NAT Gateway를 통해 데이터를 많이 보내면 데이터 처리 비용이 꽤 나온다. S3 같은 대용량 전송은 엔드포인트가 훨씬 경제적일 수 있다.
- 성능 (Performance): 네트워크 경로가 단순해져서 지연 시간(Latency)이 줄어든다.
비유: 창고로 가는 전용 통로
- 기존: 집(VPC)에서 창고(S3)에 가려고 현관문(IGW)을 열고 동네 한 바퀴(인터넷)를 돌아서 창고로 들어감.
- 엔드포인트: 집 벽을 뚫어서 창고로 바로 이어지는 비밀 통로를 만듦.
2. 엔드포인트의 두 가지 유형
지원하는 서비스와 동작 방식에 따라 크게 두 가지로 나뉜다.
① Gateway Endpoint (게이트웨이 엔드포인트)
- 대상: S3, DynamoDB (딱 2개만 기억하자)
- 방식: 라우팅 테이블(Route Table)에 "S3로 가는 트래픽은 이쪽 문으로 가라" 고 표지판을 세우는 방식.
- 특징:
- VPC 내부에 별도의 IP주소(ENI)를 만들지 않는다.
- 무료다. (가장 큰 장점)
- OS단에서 별도 설정이 필요 없다.
② Interface Endpoint (인터페이스 엔드포인트)
- 대상: 그 외 대부분의 서비스 (SQS, SNS, Kinesis, CloudWatch 등)
- 방식: PrivateLink 기술을 사용한다. 서브넷 안에 ENI(랜카드)를 하나 생성하고, 그 IP로 트래픽을 보낸다.
- 특징:
- Private IP가 할당된다.
- 유료다. (시간당 요금 + 데이터 처리 요금)
- 보안 그룹(Security Group)을 적용할 수 있다.
3. 헷갈리기 쉬운 개념 비교: NAT Gateway vs VPC Endpoint
AWS를 처음 배우면 이 둘의 차이가 헷갈린다. 둘 다 "Private Subnet에서 밖으로 나갈 때" 쓴다는 점이 비슷하기 때문이다.
| 구분 | NAT Gateway | VPC Endpoint |
|---|
| 목적 | 외부 인터넷 전체 (네이버, 구글, yum update 등) 접속 | AWS 서비스 (S3, DynamoDB 등) 접속 |
| 트래픽 경로 | 인터넷 게이트웨이(IGW)를 통함 | AWS 내부 네트워크 전용 |
| 비용 | 비쌈 (시간당 + 데이터) | Gateway형(무료) / Interface형(유료) |
요약: 내 서버가 '구글'에 접속해야 하면 NAT Gateway가 필요하고, 'S3'에만 접속하면 되는데 굳이 비싼 NAT를 쓸 필요 없이 엔드포인트를 쓰면 된다.
4. 심화: 조금 더 디테일한 설정들
① VPC Endpoint Policy (문지기 설정)
엔드포인트를 뚫어놨다고 해서 아무나 다 지나가게 하면 위험하다. Endpoint Policy(JSON 정책)를 통해 제어할 수 있다.
- 예: "이 엔드포인트로는 내 회사 S3 버킷(My-Bucket)에만 접근 가능하고, 다른 사람의 S3 버킷에는 접근 금지!"
- IAM 권한과는 별개로, 네트워크 관문 자체에서의 제어가 가능하다.
② Private DNS (인터페이스 엔드포인트용)
Interface Endpoint를 생성하면 복잡한 전용 도메인 주소가 나온다. 하지만 개발할 때 코드를 바꾸기 귀찮다.
- Private DNS 기능을 켜면, AWS 기본 도메인(예:
sqs.ap-northeast-2.amazonaws.com)을 그대로 써도, 알아서 내부 엔드포인트 IP로 연결해준다.
- 즉, 애플리케이션 코드를 수정할 필요가 없다.
5. 정리
- AWS 서비스끼리 통신할 때는 VPC 엔드포인트를 쓰는 게 국룰이다.
- S3, DynamoDB는 무료인 Gateway 타입을 쓴다. (라우팅 테이블 건드림)
- 나머지는 유료인 Interface 타입을 쓴다. (ENI 생성, PrivateLink 기술)
- 인터넷 접속이 목적이라면 NAT Gateway, AWS 서비스 접속이 목적이라면 VPC Endpoint.