프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

VPC Endpoint란?

 

VPC endpoint는 AWS의 서비스를 public internet을 통하지 않고, AWS 백본 네트워크인 Private Link를 통해 안전하고 빠르게 접근할 수 있는 서비스를 제공한다.

이를 위해서 VPC에는 목표 서비스의  Gateway endpoint 또는 interface endpoint를 배치해야 한다.

 

S3는 VPC Gateway endpoint를 지원하다가 interface endpoint 서비스가 생기면서  interface endpoint 까지 생성할 수 있게되었다.

 

 

일반적으로 DynamoDB와 S3는 Gateway endpoint를 사용하는 것이 권장되는데, 어떤 상황에서 어떤 것이 좋을지 확인하기 위해 두 서비스의 명확한 차이를 알아보자.

 

 

 

 

 

 

Gateway Endpoint

 

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

 

어디까지나 Gateway이기 때문에 Internet Gateway처럼 서브넷에 배치되지 않고, 서브넷의 라우팅 테이블이 Gateway endpoint를 가리키도록 배치해야 한다. 또한 SG도 별도로 적용할 수 없다.

S3와 DynamoDB만이 해당 서비스를 사용할 수 있다.

 

AWS는 Longest Prefix Match을 사용하므로, 라우팅 테이블에 0.0.0.0/0으로 Internet Gateway의 경로가 있더라도 Gateway endpoint의 경로가 우선적으로 선택된다. 만약 Gateway endpoint보다 더 정확한 IP 주소의 경로가 있다면 해당 경로가 더 우선시된다.

 

어디까지나 VPC 내부에서의 접근을 허용하는 용도로 사용된다.

Gateway endpoint의 가장 큰 장점은 배치와 사용 비용이 무료라는 점이다.

 

 

 

 

Interface Endpoint

 

https://docs.aws.amazon.com/ko_kr/vpc/latest/privatelink/privatelink-access-aws-services.html

 

Interface Endpoint는 AWS의 정말 다양한 서비스와의 Private link를 제공한다.

이름에서 알 수 있듯이 ENI가 VPC에 특정 Subnet에 배치되는 형태이다. (ENI에 대한 SG 적용이 필수)

 

Gateway와 달리 라우팅 테이블 세팅이 별도로 필요하지 않기 때문에, ENI가 배치된 서브넷으로의 접근만 할 수 있으면 된다. 즉 같은 VPC내라면 이용이 가능하다.

이는 AWS의 DNS 서비스 사용하기 때문에 가능한 것이므로, VPC의 DNS resolution 기능이 필수로 켜져있어야 한다.

 

 

ENI가 배치되기 때문에 시간당 + 트래픽당 비용이 발생하며, 가용성을 높이기 위해서는 AZ별로 배치해주어야 한다.

이때 명시적인 라우팅 테이블 세팅이 없다면 아래의 그림처럼, 인스턴스들이 라운드 로빈을 통해 Interface Endpoint에 접근한다.

 

https://docs.aws.amazon.com/ko_kr/vpc/latest/privatelink/privatelink-access-aws-services.html

 

이때 타 AZ의 ENI에 접근하면 Cross AZ에 의해 GB당 0.01GB의 비용이 발생한다.

이러한 비용을 감수하더라도 하나의 ENI의 장애 발생을 대비해 트래픽을 제한하지 않을 수 있다.

 

 

그렇지 않다면, 같은 AZ의 endpoint를 사용하도록 트래픽을 제한해주어야 한다.

https://docs.aws.amazon.com/ko_kr/vpc/latest/privatelink/privatelink-access-aws-services.html

 

 

이런 경우 가용성은 비교적 떨어질 수 있다.

단, AWS에서의 이중화 배치는 보통 AZ 장애에 대응하기 위함이므로 이러한 세팅이 비용을 절감할 수 있다.

(어차피 AZ-2가 장애가 난다면 AZ-2의 인스턴스들도 다운되므로 AZ-1으로의 접근은 발생하지 않는다.)

 

이를 위해서 각 AZ에서는 각자의 AZ에 배치된 Subnet만 사용할 수 있도록 라우팅 테이블을 세팅하면 된다.

특히 interface endpoint만 배치하는 subnet을 따로 두어 배치하면, 트래픽 세팅에 편의성을 가져갈 수 있다.

 

 

 

 

 

S3를 interface endpoint로 접근하는 경우

여기까지만 보면 관리적으로도 비용적으로도 우수한 Gateway endpoint로 S3를 접근하는 것이 당연히 좋아 보인다.

 

하지만 S3를 interface endpoint로 접근하는 이유는 따로 있다.

 

 

https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#accessing-s3-interface-endpoints

 

 

Onpremiss나 타 cloud와 VPC를 VPN으로 연결하면, Inteface Endpoint를 사용해서 PrivateLink로 S3에 접근할 수 있게 된다.

이때 Inteface Endpoint 자체가 진입점이 되어서, 자신의 private IP로 트래픽을 변경해서 S3로 전달해 줄 수 있다. (일종의 프록시의 역할을 한다.)

반면 Gateway endpoint는 자체에 별도의 라우팅 세팅을 해줄 수 없고, Gateway이기 때문에 타 네트워크의 트래픽을 중계해 줄 수 없다. (프록시를 제공하지 못 한다.)

 

따라서 하이브리드나 다중 VPC/리전 환경에서는 비용이 발생하더라도 Inteface Endpoint 통해 연결 제한 필요할 수 있다.

 

 

 

 

 

참조

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

https://docs.aws.amazon.com/ko_kr/vpc/latest/privatelink/privatelink-access-aws-services.html

https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#accessing-s3-interface-endpoints

https://blog.bespinglobal.com/post/aws-vpc-s3-endpoint-gateway-vs-interface-%EC%B0%A8%EC%9D%B4/

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함