View a markdown version of this page

AWS 분석 서비스와 Amazon S3 Tables 통합 - Amazon Simple Storage Service

AWS 분석 서비스와 Amazon S3 Tables 통합

이 주제에서는 Amazon S3 Tables 버킷을 AWS 분석 서비스와 통합하는 데 필요한 사전 조건과 절차를 다룹니다. 통합 작동 방식에 대한 개요는 S3 Tables 통합 개요 섹션을 참조하세요.

참고

이 통합은 AWS Glue Data Catalog를 사용하며 요청 및 스토리지 비용이 발생할 수 있습니다. 자세한 내용은 AWS Glue요금을 참조하세요.

S3 Tables에서 쿼리를 실행하는 경우 추가 요금이 적용됩니다. 자세한 내용은 사용 중인 쿼리 엔진의 요금 정보를 참조하세요.

통합 조건

테이블 버킷을 AWS 분석 서비스와 통합하려면 다음 사전 조건을 충족해야 합니다.

중요

테이블을 만들 때 테이블 이름 및 테이블 정의에 모두 소문자를 사용해야 합니다. 예를 들어 열 이름이 모두 소문자인지 확인합니다. 테이블 이름 또는 테이블 정의에 대문자가 포함된 경우 테이블은 AWS Lake Formation 또는 AWS Glue Data Catalog에서 지원되지 않습니다. 이 경우 테이블 버킷이 AWS 분석 서비스와 통합되어 있더라도 Amazon Athena와 같은 AWS 분석 서비스에는 테이블이 표시되지 않습니다.

테이블 정의에 대문자가 포함된 경우 Athena에서 SELECT 쿼리를 실행할 때 "GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names."라는 오류 메시지가 표시됩니다.

테이블 버킷을 AWS 분석 서비스와 통합

기본적으로 IAM 액세스 제어를 사용하여 테이블 버킷을 Data Catalog 및 AWS 분석 서비스와 통합하거나 선택적으로 Lake Formation 액세스 제어를 사용할 수 있습니다.

IAM 액세스 제어를 사용하여 통합하는 경우 Amazon S3 테이블 버킷 및 테이블, Data Catalog 객체, 사용 중인 쿼리 엔진에 액세스하려면 IAM 권한이 필요합니다. Lake Formation을 사용하여 통합하기로 선택한 경우 IAM 액세스 제어 및 Lake Formation 권한 부여 모두에 따라 Data Catalog 리소스에 대한 액세스가 결정됩니다. Lake Formation 통합에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서를 참조하세요.

다음 섹션에서는 Amazon S3 관리 콘솔 또는 AWS CLI를 사용하여 IAM 액세스 제어와의 통합을 구성하는 방법을 설명합니다.

  1. https://console.aws.amazon.com/s3/에서 S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 테이블 버킷을 선택합니다.

  3. 테이블 버킷 생성을 선택합니다.

    테이블 버킷 생성 페이지가 열립니다.

  4. 테이블 버킷 이름을 입력하고 통합 활성화 확인란이 선택되어 있는지 확인합니다.

  5. 테이블 버킷 생성을 선택합니다. Amazon S3는 해당 리전에서 테이블 버킷을 자동으로 통합하려고 시도합니다.

AWS CLI를 사용하여 테이블 버킷을 IAM 액세스 제어와 통합하려면

다음 단계에서는 AWS CLI를 사용하여 테이블 버킷을 통합하는 방법을 보여줍니다. 이 단계를 사용하려면 user input placeholders를 실제 정보로 대체합니다.

  1. 테이블 버킷을 생성합니다.

    aws s3tables create-table-bucket \ --region us-east-1 \ --name amzn-s3-demo-table-bucket
  2. 다음 카탈로그를 포함하는 catalog.json이라는 파일을 생성합니다.

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": ["ALL"] } ], "CreateTableDefaultPermissions":[ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": ["ALL"] } ], "AllowFullTableExternalDataAccess": "True" } }

    다음 명령을 사용하여 s3tablescatalog 카탈로그를 생성합니다. 이 카탈로그를 생성하면 테이블 버킷, 네임스페이스 및 테이블에 해당하는 객체로 AWS Glue Data Catalog를 채웁니다.

    aws glue create-catalog \ --region us-east-1 \ --cli-input-json file://catalog.json
  3. 다음 명령을 사용하여 s3tablescatalog 카탈로그가 AWS Glue에 추가되었는지 확인합니다.

    aws glue get-catalog --catalog-id s3tablescatalog

기본적으로 IAM 권한을 사용하도록 AWS 분석 서비스 통합 프로세스가 업데이트되었습니다. 이미 연동을 설정한 경우 현재 연동 방식을 계속 사용할 수 있습니다. 그러나 IAM 권한을 대신 사용하도록 기존 통합을 변경하려면 AWS Lake Formation 개발자 안내서를 참조하세요. 또한 통합을 다시 실행하여 AWS Glue Data Catalog 및 AWS Lake Formation에서 기존 설정을 삭제하고 통합을 다시 실행할 수 있습니다. 그러면 s3tablescatalog에 대한 모든 기존 Lake Formation 권한 부여 및 관련 액세스 권한이 제거됩니다.

  1. https://console.aws.amazon.com/lakeformation/에서 AWS Lake Formation 콘솔을 열고 데이터 레이크 관리자로 로그인합니다. 데이터 레이크 관리자 생성 방법에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서데이터 레이크 관리자 생성을 참조하세요.

  2. 다음을 수행하여 s3tablescatalog 카탈로그를 삭제합니다.

    • 왼쪽 탐색 창에서 카탈로그를 선택합니다.

    • 카탈로그 목록의 s3tablescatalog 카탈로그 옆에 있는 옵션 버튼을 선택합니다. [Actions] 메뉴에서 [Delete]를 선택합니다.

  3. 다음을 수행하여 s3tablescatalog 카탈로그의 데이터 위치를 등록 취소합니다.

    • 왼쪽 탐색 창에서 관리 섹션으로 이동하고 데이터 레이크 위치를 선택합니다.

    • s3tablescatalog 데이터 레이크 위치 옆의 옵션 버튼을 선택합니다. 예를 들어, s3://tables:region:account-id:bucket/*입니다.

    • 작업 메뉴에서 제거를 선택합니다.

    • 나타나는 대화 상자에서 제거를 선택합니다.

  4. 이제 s3tablescatalog 카탈로그 및 데이터 레이크 위치를 삭제했으므로 업데이트된 통합 프로세스를 사용하여 테이블 버킷을 AWS 분석 서비스와 통합하는 단계를 수행할 수 있습니다.

참고

통합 AWS 분석 서비스에서 SSE-KMS로 암호화된 테이블에 대한 작업을 수행하려면 사용하는 역할이 암호화 작업에 AWS KMS 키를 사용할 수 있는 권한을 가져야 합니다. 자세한 내용은 IAM 위탁자에게 통합 AWS 분석 서비스에서 암호화된 테이블에 대한 작업을 수행할 수 있는 권한 부여 섹션을 참조하세요.