Public Cloud/AWS
VPC 엔드포인트 (게이트웨이, 인터페이스)
TTOII
2024. 3. 28. 08:22
728x90
VPC 엔드포인트란 ?
엔드포인트 유형 중 하나로 VPC의 사설 대역에서 인터넷 연결없이 퍼블릭 서비스에 연결하기 위해 사용하는 것
VPC 엔드포인트 종류로는 3가지가 있다.
- 게이트웨이 엔드포인트(Gateway Endpoint)
- 인터페이스 엔드포인트(Interface Endpoint)
- 로드밸런서 엔드포인트(Loadbalancer Endpoint)
게이트웨이 엔드포인트(Gateway Endpoint)
- NATGW 없이 VPC에 연결된 라우팅 테이블을 참조해 트래픽을 전달하기 위해 사용한다.
- 단, S3와 DynamoDB에만 한정적으로 사용할 수 있다.
- 다른 유형의 엔드포인트와는 다르게 AWS PrivateLink를 사용하지 않는다.
VPC에서 S3 또는 DynamoDB로의 트래픽은 게이트웨이 엔드포인트로 라우팅된다.
각 서브넷 라우팅 테이블에는 서비스로 전송되는 트래픽을 서비스의 접두사 목록을 사용하여 게이트웨이 엔드포인트로 보내는 라우팅이 있어야 한다.
AWS Service | Prefix list name | Weight |
Amazon DynamoDB | com.amazonaws.region.dynamodb | 1 |
Amazon S3 | com.amazonaws.region.s3 | 1 |
게이트웨이 엔드포인트를 생성할 때 활성화할 서브넷의 VPC 라우팅 테이블을 선택한다.
다음과 같은 라우팅이 자동으로 추가되며 대상 주소는 AWS에서 소유한 서비스의 접두사 목록이고 대상은 게이트웨이 엔드포인트이다.
대상 주소 | 대상 |
prefix_list_id | gateway_endpoint_id |
Prefix List Id란 ?
하나 이상의 CIDR 대역의 IP 그룹으로, S3 Prefix List에는 AWS에서 관리하는 S3 서비스의 IP 주소 범위가 포함된다. 이를 통해 특정 서브넷에서 S3 서비스에 대한 액세스를 제어할 수 있고 VPC 엔드포인트나 DX 연결에서 S3 서비스에 대한 허용되는 트래픽을 구체적으로 지정할 수 있다.
인터페이스 엔드포인트(Interface Endpoint)
- AWS PrivateLink 기술을 사용해 구성되며, VPC 내부에 전용 라우팅 테이블이 생성된다.
- 인터페이스 엔드포인트를 생성하면 AWS 서비스에 대한 ENI가 한개 생성되며, ENI는 VPC 내부에서 전용 IP 주소를 사용하여 AWS 서비스와 통신하는 인터페이스이다.
- VPC A에서 VPC B에 있는 NLB로 Private 통신할 수 있도록 인터페이스 엔드포인트를 생성한다.
- 해당 엔드포인트에 대한 ENI가 생성되며 보안 그룹을 설정할 수 있다.
- VPC A 내부에 있는 EC2 Instance는 ENI와 연결된 PrivateLink를 통해 NLB에 도달할 수 있다.
게이트웨이 엔드포인트 VS 인터페이스 엔드포인트
항목 | Gateway Endpoint | Interface Endpoint |
Access | Amazon S3 공개 IP 주소 사용 | VPC의 프라이빗 IP 주소를 사용해 엑세스 |
DNS | 동일한 DNS 이름 사용 | 엔드포인트별 DNS 이름 필요 |
온프레미스 | 온프레미스에서 액세스를 허용하지 않는다. | 온프레미스에서 액세스 허용 |
리전 간 통신 | 다른 AWS 리전에서 액세스를 허용하지 않음 | VPC 피어링 또는 AWS Transit Gateway를 사용하여 다른 AWS 리전의 VPC에서 액세스 허용 |
비용 | 미발생 | 발생 (PrivateLink에 대한 요금 발생) |
최근에는 SaaS 서비스의 경우도 PrivateLink 엔드포인트를 만들 수 있도록 지원한다.
게이트웨이 엔드포인트는 라우팅 테이블을 건드려야 한다는 단점(?)이 있지만, 인터페이스 엔드포인트에서는 대부분 DNS로 쿼리해서 접근하게 된다. (DNS Binding은 AWS 영역)
참고
728x90