S3 Tables의 VPC 연결
S3 Tables의 모든 테이블은 Apache Iceberg 형식이며 두 가지 유형의 S3 객체로 구성됩니다. 이러한 두 가지 유형의 객체는 데이터를 저장하는 데이터 파일, 그리고 서로 다른 시점의 데이터 파일에 대한 정보를 추적하는 메타데이터 파일입니다. 모든 테이블 버킷, 네임스페이스 및 테이블 작업(예: CreateNamespace
, CreateTable
등)은 S3 Tables 엔드포인트(s3tables.region.amazonaws.com
)를 통해 라우팅되며 데이터 및 메타데이터 파일을 읽거나 쓰는 모든 객체 수준 작업은 S3 서비스 엔드포인트(s3.region.amazonaws.com
)를 통해 계속 라우팅됩니다.
S3 Tables에 액세스하기 위해 Amazon S3는 AWS PrivateLink를 사용하여 두 가지 유형의 VPC 엔드포인트, 즉 게이트웨이 엔드포인트와 인터페이스 엔드포인트를 지원합니다. 게이트웨이 엔드포인트는 AWS 네트워크를 통해 VPC에서 S3에 액세스하기 위해 라우팅 테이블에 지정하는 게이트웨이입니다. 인터페이스 엔드포인트는 프라이빗 IP 주소를 통해 VPC 내에서, 온프레미스에서 또는 VPC 피어링이나 AWS Transit Gateway를 사용하여 다른 AWS 리전의 VPC에서 Amazon S3로 요청을 라우팅함으로써 게이트웨이 엔드포인트의 기능을 확장합니다.
VPC에서 S3 Tables에 액세스하려면 두 개의 VPC 엔드포인트(S3용 엔드포인트와 S3 Tables용 엔드포인트)를 생성하는 것이 좋습니다. 게이트웨이 또는 인터페이스 엔드포인트를 생성하여 파일(객체) 수준 작업을 S3로 라우팅하고 인터페이스 엔드포인트를 생성하여 버킷 및 테이블 수준 작업을 S3 Tables로 라우팅할 수 있습니다. S3를 사용하여 파일 수준 요청에 VPC 엔드포인트를 생성하고 사용할 수 있습니다. 자세한 내용은 AWS PrivateLink 사용 설명서의 Gateway endpoints를 참조하세요.
AWS PrivateLink를 사용하여 S3 Tables용 엔드포인트를 생성하고 작업하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요. VPC 인터페이스 엔드포인트를 생성하려면 AWS PrivateLink 설명서의 VPC 엔드포인트 생성을 참조하십시오.
주제
S3 Tables용 VPC 엔드포인트 생성
VPC 엔드포인트를 생성할 때 S3 Tables에서는 두 가지 유형의 엔드포인트별 DNS 이름, 즉 리전용과 영역용 DNS 이름을 생성합니다.
-
리전 DNS 이름은
VPCendpointID.s3tables.AWSregion.vpce.amazonaws.com
형식입니다. 예를 들어, VPC 엔드포인트 IDvpce-1a2b3c4d
의 경우, 생성된 DNS 이름은vpce-1a2b3c4d-5e6f.s3tables.us-east-1.vpce.amazonaws.com
과 비슷합니다. -
영역 DNS 이름은
VPCendpointID-AvailabilityZone.s3tables.AWSregion.vpce.amazonaws.com
형식입니다. 예를 들어, VPC 엔드포인트 IDvpce-1a2b3c4d-5e6f.
의 경우, 생성된 DNS 이름은vpce-1a2b3c4d-5e6f-us-east-1a.s3tables.us-east-1.vpce.amazonaws.com
과 비슷합니다.영역 DNS 이름에는 가용 영역이 포함됩니다. 아키텍처가 가용 영역을 분리하는 경우 영역 DNS 이름을 사용할 수 있습니다. 엔드포인트별 S3 DNS 이름은 S3 퍼블릭 DNS 도메인에서 확인할 수 있습니다.
프라이빗 DNS 옵션을 사용하여 VPC 엔드포인트를 통한 S3 트래픽 라우팅을 단순화하고 애플리케이션에서 사용할 수 있는 가장 저렴한 네트워크 경로를 활용할 수도 있습니다. 프라이빗 DNS는 S3 Tables의 퍼블릭 엔드포인트, 예를 들어 s3tables.region.amazonaws.com
을 VPC의 프라이빗 IP에 매핑합니다. 프라이빗 DNS 옵션을 사용하면 인터페이스 엔드포인트의 엔드포인트별 DNS 이름을 사용하도록 S3 클라이언트를 업데이트하지 않고도 리전 S3 트래픽을 라우팅할 수 있습니다.
참고
AWS PrivateLink for Amazon S3는 Amazon S3 듀얼 스택 엔드포인트 사용을 지원하지 않습니다. 자세한 내용은 Amazon S3 API 참조의 Amazon S3 듀얼 스택 엔드포인트 사용을 참조하세요.
AWS CLI를 사용하여 엔드포인트를 통해 테이블 버킷 및 테이블에 액세스
AWS Command Line Interface(AWS CLI)를 사용하여 인터페이스 엔드포인트를 통해 테이블 버킷 및 테이블에 액세스할 수 있습니다. AWS CLI를 사용하면 aws s3
명령이 Amazon S3 엔드포인트를 통해 트래픽을 라우팅합니다. aws s3tables
AWS CLI 명령은 Amazon S3 Tables 엔드포인트를 사용합니다.
s3tables
VPC 엔드포인트의 예는 vpce-0123456afghjipljw-nmopsqea.s3tables.region.vpce.amazonaws.com
입니다.
s3tables
VPC 엔드포인트에는 버킷 이름이 포함되지 않습니다. aws s3tables
AWS CLI 명령을 사용하여 s3tables
VPC 엔드포인트에 액세스할 수 있습니다.
s3
VPC 엔드포인트의 예는 amzn-s3-demo-bucket.vpce-0123456afghjipljw-nmopsqea.s3.region.vpce.amazonaws.com
입니다.
aws s3
AWS CLI 명령을 사용하여 s3
VPC 엔드포인트에 액세스할 수 있습니다.
AWS CLI를 사용하여 인터페이스 엔드포인트를 통해 테이블 버킷 및 테이블에 액세스하려면 -region
및 --endpoint-url
파라미터를 사용합니다. 테이블 버킷 및 테이블 수준 작업을 수행하려면 S3 Tables 엔드포인트 URL을 사용합니다. 객체 수준 작업을 수행하려면 Amazon S3 엔드포인트 URL을 사용합니다.
다음 예시에서 사용자 입력 자리 표시자
를 실제 정보로 바꾸세요.
예 1: 엔드포인트 URL을 사용하여 계정의 테이블 버킷 나열
aws s3tables list-table-buckets --endpoint https://
vpce-0123456afghjipljb-aac
.s3tables.us-east-1
.vpce.amazonaws.com —regionus-east-1
예 2: 엔드포인트 URL을 사용하여 버킷의 테이블 나열
aws s3tables list-tables --table-bucket-arn arn:aws:s3tables:
us-east-1
:123456789301
:bucket/amzn-s3-demo-bucket
--endpoint https://vpce-0123456afghjipljb-aac
.s3tables.us-east-1
.vpce.amazonaws.com --regionus-east-1
쿼리 엔진을 사용할 때 VPC 네트워크 구성
쿼리 엔진을 사용할 때 다음 단계에 따라 VPC 네트워크를 구성합니다.
-
시작하려면 VPC를 생성하거나 업데이트하면 됩니다. 자세한 내용은 VPC 생성을 참조하세요.
-
S3 Tables로 라우팅되는 테이블 및 테이블 버킷 수준 작업의 경우 새 인터페이스 엔드포인트를 생성합니다. 자세한 내용은 인터페이스 VPC 엔드포인트를 사용하여 AWS 서비스에 액세스를 참조하세요.
-
Amazon S3로 라우팅되는 모든 객체 수준 작업의 경우 게이트웨이 엔드포인트 또는 인터페이스 엔드포인트를 생성합니다. 자세한 내용은 Create a gateway endpoint를 참조하세요.
-
다음으로, 데이터 리소스를 구성하고 Amazon EMR 클러스터를 시작합니다. 자세한 내용은 Getting started with Amazon EMR을 참조하세요.
-
그런 다음 VPC 엔드포인트에서 DNS 이름을 선택하여 추가 구성으로 Spark 애플리케이션을 제출할 수 있습니다. 예를 들어
spark.sql.catalog.ice_catalog.s3tables.endpoint
및https://interface-endpoint.s3tables.
입니다. 자세한 내용은 Submit work to your Amazon EMR cluster를 참조하세요.us-east-1
.vpce.amazonaws.com
VPC 네트워크 내에서 S3 Tables에 대한 액세스 제한
리소스 기반 정책과 마찬가지로 테이블 및 테이블 버킷에 대한 액세스를 제어하는 엔드포인트 정책을 VPC 엔드포인트에 연결할 수 있습니다. 다음 예시에서 인터페이스 엔드포인트 정책은 특정 테이블 버킷으로만 액세스를 제한합니다.
{ "Version": "2012-10-17", "Id": "Policy141511512309", "Statement": [{ "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": "s3tables:*", "Effect": "Allow", "Resource": [ "arn:aws:s3tables:
region
:account_id
:bucket/amzn-s3-demo-bucket
", "arn:aws:s3tables:region
:account_id
:bucket/amzn-s3-demo-bucket
/*" ] }] }