본문 바로가기
[AWS-DR]/VPC&Subnet

[중요2] AWS VPC S3 endpoint gateway vs interface 차이 !!

by METAVERSE STORY 2024. 5. 24.
반응형
728x170

 

 

 

1. AWS VPC endpoint 란?

VPC 엔드포인트를 통해 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결이 필요 없이 Virtual Private Cloud(VPC)와 지원 서비스 간에 연결을 설정할 수 있습니다. 따라서 VPC에서 연결할 수 있는 특정 API 엔드포인트, 사이트 및 서비스를 제어합니다.

2. S3 에서 지원 가능한 VPC endpoint 유형

Gateway endpoint 와 Interface endpoint 라는 두 가지 유형의 VPC 엔드포인트를 사용하여 Amazon S3에 접근할 수 있습니다. Gateway endpoint 는 AWS 네트워크를 통해 VPC에서 Amazon S3에 접근하기 위해 route table 에 지정하는 Gateway 입니다. Interface endpoint 는 Private IP 주소를 사용하여 VPC 피어링 또는 AWS Transit Gateway를 사용하여 VPC 내, 온프레미스 또는 다른 AWS 리전의 VPC에서 Amazon S3로 요청을 라우팅함으로써 게이트웨이 엔드포인트의 기능 확장할 수 있습니다.

2.1 interface vs gateway 차이

 

※ Interface Endpoint 사용 시 PirvateLink 에 대한 요금이 발생합니다.

https://aws.amazon.com/ko/privatelink/pricing/#Interface_Endpoint_pricing

 

2.2 Gateway Endpoint

Gateway Endpoint 는 S3 리전별로 지정된 IP 접두사 목록을 기반으로 라우팅 테이블의 경로 대상에 적용하여 사용합니다. 

Gateway Endpoint 속성 및 제한

  • 엔드포인트에는 Amazon S3 리소스에 액세스하기 위한 엔드포인트 사용을 제어하는 정책이 있습니다. 기본 정책은 VPC 내의 모든 사용자 또는 서비스가 자격 증명을 사용하여 아무 AWS 계정에서 아무 Amazon S3 리소스에 액세스할 수 있도록 허용합니다. VPC가 연결된 계정이 아닌 다른 AWS 계정에 대한 Amazon S3 리소스도 마찬가지입니다.
  • Amazon S3가 수신한 해당 서브넷에 있는 인스턴스의 원본 IPv4 주소는 VPC의 퍼블릭 IPv4 주소에서 프라이빗 IPv4 주소로 변경됩니다. 엔드포인트는 네트워크 라우팅을 스위칭하고 열린 TCP 연결을 끊습니다. 퍼블릭 IPv4 주소를 사용한 이전 연결이 다시 시작되지 않습니다. 따라서 엔드포인트를 만들거나 수정할 때는 중요한 작업을 실행하지 않는 것이 좋으며 연결이 끊어진 후에는 소프트웨어가 자동으로 Amazon S3에 다시 연결할 수 있는지 테스트해야 합니다.
  • IAM 정책 또는 버킷 정책을 사용하여 VPC IPv4 CIDR 범위(프라이빗 IPv4 주소 범위)로부터의 액세스를 허용할 수 없습니다. VPC CIDR 블록이 중첩되거나 동일할 수 있고 이로 인해 예기치 않은 결과가 발생할 수 있습니다. 따라서 VPC 엔드포인트를 통해 Amazon S3에 요청할 때는 IAM 정책에 aws:SourceIp 조건을 사용할 수 없습니다. 사용자 및 역할의 IAM 정책과 모든 버킷 정책에도 같은 사항이 적용됩니다. 문에 aws:SourceIp 조건이 포함되어 있는 경우, 값이 제공된 IP 주소 또는 범위와 일치하지 않습니다. 대신에 다음 작업을 할 수 있습니다.
    • 라우팅 테이블을 사용하여 엔드포인트를 통해 Amazon S3의 리소스에 액세스할 수 있는 인스턴스를 제어할 수 있습니다.
    • 버킷 정책의 경우 특정 엔드포인트 또는 특정 VPC에 대한 액세스를 제한할 수 있습니다.
  • 엔드포인트는 교차 리전 요청을 지원하지 않습니다. 
  • 엔드포인트는 현재 IPv4 트래픽에 대해서만 지원됩니다.

 

2.3 Interface Endpoint

 

Interface Endpoint  는 서브넷의 IP 주소 범위에서 프라이빗 IP 주소를 사용하는 탄력적 네트워크 인터페이스이며, AWS가 소유하거나 AWS 고객 또는 파트너가 소유한 서비스로 전달되는 트래픽에 대한 진입점 역할을 합니다.

Interface Endpoint 속성 및 제한

  • 각 인터페이스 엔드포인트에서 가용 영역당 1개의 서브넷만 선택할 수 있습니다.
  • 인터페이스 엔드포인트를 생성할 때 계정에 매핑된 가용 영역에 엔드포인트가 생성됩니다. 이 가용 영역은 다른 계정과는 별도입니다.
  • 서비스 공급자와 소비자의 계정이 서로 다르며 여러 가용 영역을 사용하고 소비자가 VPC 엔드포인트 서비스 정보를 보는 경우 응답에는 공통 가용 영역만 포함됩니다. 예를 들어 서비스 공급자 계정에서 us-east-1a 및 us-east-1c를 사용하고 소비자가 us-east-1a 및 us-east-1b를 사용하는 경우 응답에는 공통 가용 영역 us-east-1a의 VPC 엔드포인트 서비스가 포함됩니다.
  • 기본적으로 각 인터페이스 엔드포인트는 가용 영역당 최대 10Gbps의 대역폭을 지원하고 최대 40Gbps까지 자동으로 조정되며, 변경을 위해 AWS Support 를 
  • 서브넷에 대한 네트워크 ACL이 트래픽을 제한하는 경우 엔드포인트 네트워크 인터페이스를 통해 트래픽을 보내지 못할 수 있습니다. 서브넷의 CIDR 블록에서 주고 받는 트래픽을 허용하는 적절한 규칙을 추가해야 합니다.
  • 엔드포인트 네트워크 인터페이스와 연결된 보안 그룹이 서비스와 통신하는 VPC의 리소스와 엔드포인트 네트워크 인터페이스 간의 통신을 허용하는지 확인합니다. AWS CLI 같은 명령줄 도구가 HTTPS를 통해 VPC의 리소스에서 AWS 서비스로 요청하려면 보안 그룹에서 인바운드 HTTPS(포트 443) 트래픽을 허용해야 합니다.
  • 인터페이스 엔드포인트는 TCP 트래픽만을 지원합니다.
  • 엔드포인트를 만들 경우, 연결하려는 서비스에 대한 액세스를 제어하는 엔드포인트에 엔드포인트 정책을 연결할 수 있습니다.
  • 참가자는 자신이 소유하지 않은 VPC에서 Amazon Route53 Resolver 엔드포인트를 생성할 수 없습니다. VPC 소유자만 인바운드 엔드포인트와 같은 VPC 수준 리소스를 생성할 수 있습니다.
  • 엔드포인트는 동일한 리전에서만 지원됩니다. VPC와 다른 리전의 서비스 간에 엔드포인트를 생성할 수 없습니다.
  • 엔드포인트는 IPv4 트래픽만 지원합니다.
  • VPC 간에 또는 서비스 간에 엔드포인트를 전송할 수 없습니다.
  • VPC당 생성할 수 있는 엔드포인트에 대한 할당량이 존재합니다.

 

3. VPC Peering 구성을 통한 내부 통신

Gateway Endpoint 는 Route table 끝점에 지역별 S3 Prefix List 를 지정하여 통신하는 반면에

Interface Endpoint 로 구성하면 Region 또는 VPC Peering 구성을 통해 내부 통신으로 타 VPC (리전) S3 에 접근할 수 있습니다.

[ A(Seoul) Region 의 Route table ] 

NAT / IGW 를 사용하지 않고 VPC Peering CIDR 대역만 허용합니다.

[ B (Virginia) Region 의 Route table ]

Endpoint 를 허용하는 B Region 도 NAT / IGW 를 사용하지 않고 VPC Peering CIDR 만 허합니다.

[ B (Virginia Region) 의 S3 Endpoint ]

[ Virginia Region 의 S3 ]

[ 외부 통신 없이 s3 를 통해 Seoul region 에서 upload ]

AWS CLI TEST

 

4. 결론

두 가지 S3 VPC Endpoint 연결 방식에 대해 알아보았습니다.

단일 VPC 환경의 경우 AWS S3 Gateway endpoint 방식의 구성이 적합하며, 다중 VPC 환경/계정/리전의 경우 접근 용도에 따라 Interface endpoint 구성이 적합합니다. 

고객의 아키텍처 및 요구 사항에 따라 특성을 확인 하시어, `구성을 하시길 바랍니다.

참고 자료

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

 

 

 

 

 

 

## 생성시 주의

 

 

## 복사 성공 (URL 앞에 bucket 넣을 것!!)

15  aws s3 ls oky-dev-test --endpoint-url https://bucket.vpce-073be157ab9b2801d-xxxxxx.s3.ap-northeast-2.vpce.amazonaws.com
16  aws s3 ls oky-dev-test

20  touch 777.txt

24  aws s3 cp 777.txt s3://oky-dev-test/ --endpoint-url https://bucket.vpce-073be157ab9b2801d-xxxxx.s3.ap-northeast-2.vpce.amazonaws.com

31  aws s3 cp 777.txt s3://oky-dev-test/ --endpoint-url https://bucket.vpce-073be157ab9b2801d-xxxxx.s3.ap-northeast-2.vpce.amazonaws.com --region ap-northeast-2

35  aws configure

 

## Interface Endpoint 인바운드 보안그룹 ==> 소스의 443 포트 오픈 필요
## 소스의 보안그룹 아웃바운드도 443 포트 오픈 필요

 

 

 

 

 

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

반응형
그리드형

댓글