cloudwithbass

[AWS] VPC endpoint란? (Interface Endpoint와 Gateway Endpoint) 본문

AWS

[AWS] VPC endpoint란? (Interface Endpoint와 Gateway Endpoint)

여영클 2024. 6. 17. 22:15

VPC의 리소스들에 접근하는 방법에는 여러가지가 있습니다. 인터넷을 이용하거나, VPC endpoint를 이용하는 방법 등이 그 예시입니다. 이번 포스팅에서는 VPC Endpoint에 대해 정리하겠습니다.

 

VPC Endpoint란?

VPC Endpoint는 사용자를 AWS 서비스들에 private하게 연결할 수 있도록 해주는 가상 디바이스입니다.
이는 AWS Private Link에 의해 구동됩니다.

 

(A VPC endpoint enables customers to privately connect to supported AWS services and VPC endpoint services powered

by AWS PrivateLink.

VPC endpoints are virtual devices.)

 

AWS Private Link란 VPC 내 리소스에 대한 private connect를 도와주는 기술입니다.

(AWS PrivateLink is a highly available, scalable technology that you can use to privately connect your VPC to services as if they were in your VPC.)

 

 

이해를 돕기 위해 다음 그림을 보겠습니다.

사진 출처: https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html

이 그림은 Consumer VPC에서 VPC endpoint를 이용해 Provider VPC의 서비스에 연결하는 예시를 보여줍니다.

 

AWS의 리소스들과 통신할 때 Pulbic IP는 필요하지 않으므로 보안에 뛰어납니다.

또한 Public IP를 사용하지 않으므로 비용도 절감됩니다. 


VPC Endpoint의 종류

VPC endpoint에는 두 가지 유형이 있습니다.

1.  Interface Endpoint

2.  Gateway Endpoint

 

이제 VPC endpoint의 개념을 알았으니, 본격적으로 각각에 대해 차근차근 살펴보겠습니다.


1. Interface Endpoint

Interface Ednpoint는 Elastic Network Interface(ENI)와 Private IP address를 사용해 트래픽을 전송합니다.

AWS documentation에는 다음과 같이 설명되어 있습니다.

"An interface endpoint is a collection of one or more elastic network interfaces with a private IP address that serves as an entry point for traffic destined to a supported service.

 

ENI는 가상의 네트워크 카드의 역할을 합니다. 인스턴스에는 ENI가 있어야 다른 AWS 서비스 등과 통신할 수 있습니다.


2. Gateway Endpoint

Gateway Ednpoint는 S3와 DynamoDB에 대한 연결을 제공합니다.

마찬가지로 AWS documentation을 확인하면 다음과 같이 설명되어 있습니다.

Gateway VPC endpoints provide reliable connectivity to Amazon S3 and DynamoDB without requiring an internet gateway or a NAT device for your VPC

 

인터넷 게이트웨이나 NAT device 없이도 S3와 DynamoDB에 연결할 수 있게 도와줍니다.

이 경우 Interface Endpoint와 다른 점은 AWS PrivateLink를 활성화하지 않는다는 점입니다.

 

Gateway Endpoint는 PrivateLink 대신 VPC의 라우팅 테이블을 이용합니다.

 

 

출처:   https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html

 

즉, VPC에서 S3나 DynamoDB로 가는 트래픽은, NAT나 Internet Gateway가 아닌 Gateway Endpoint로 라우팅됩니다.

이때 라우팅은 VPC의 로컬 IP 주소를 이용하므로 인터넷이 필요하지 않습니다.

 

여기서 알아둬야 할 점은 인스턴스가 gateway endpoint를 통해 S3나 DynamoDB에 접근할 경우 public endpoint를 사용한다고 합니다.

따라서 다음과 같이 인스턴스의 보안그룹과, 인스턴스의 서브넷 outbound에 목적지로 가는 443 포트를 허용해야 합니다. 

사진 출처: https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html#gateway-endpoint-security

 

인터넷을 쓰지 않는다고 했는데 public endpoint를 사용한다니..? 조금 혼란스럽네요.

관련 내용을 찾아봤지만 나오지 않아서 ChatGPT-4o에게 물었더니 다음과 같이 답했습니다.

아하~~

 


다음은 S3에 접근할 때 Gateway endpoint를 이용할 때와 Interface endpoint를 이용할 때의 차이점을 정리한 표입니다.

사진 출처: https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3

 

밑은 SAA 시험에 나오는 주요 차이점들입니다.

  1. Gateway endpoint는 S3의 public IP를 사용하지만, Interface endpoint는 VPC의 private IP를 사용한다.
  2. Gateway endpoint는 같은 리전 내에서만 가능하지만, Interface endpoint는 다른 리전에서도 사용 가능하다.
  3. Gateway endpoint는 추가적인 비용이 발생하지 않지만, Interface endpoint는 그렇지 않다.
  4. Gateway endpoint는 온프레미스의 접근을 허용하지 않지만, Interface endpoint는 온프레미스의 접근을 허용한다.

    후자의 경우 시간 당 0.01USD의 비용이 발생합니다. https://aws.amazon.com/ko/privatelink/pricing/#Interface_Endpoint_pricing

 

AWS PrivateLink 요금 - AWS

AWS PrivateLink 엔드포인트를 생성하여 AWS에서 소유하거나 AWS 고객 또는 파트너가 소용한 서비스에 비공개 연결을 지원할 수 있습니다. VPC 엔드포인트가 서비스와 연결된 상태와 관계없이 각 가용

aws.amazon.com

 

 

 

 

제가 정리한 글이 도움이 되셨길 바랍니다.

최대한 공식 문서를 토대로 작성했으나, 만약 잘못된 정보가 있을 경우 댓글로 알려주시면 감사드리겠습니다.


 

 

참고 문서

  • Gateway endpoints for Amazon S3

https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html

https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3

  • What are VPC endpoints?

https://docs.aws.amazon.com/whitepapers/latest/aws-privatelink/what-are-vpc-endpoints.html

  • What is AWS private Link?

https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html

  • AWS Private Link Concept

https://docs.aws.amazon.com/vpc/latest/privatelink/concepts.html

  • Share your services through AWS Private Link

https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html

  • Stack Overflow

https://stackoverflow.com/questions/66726225/aws-private-link-vs-vpc-endpoint

  • NDS 기술 블로그

https://tech.cloud.nongshim.co.kr/2023/03/16/%EC%86%8C%EA%B0%9C-vpc-endpoint