

# AWS 분석 서비스와 Amazon S3 Tables 통합
<a name="s3-tables-integrating-aws"></a>

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

**참고**  
이 통합은 AWS Glue Data Catalog를 사용하며 요청 및 스토리지 비용이 발생할 수 있습니다. 자세한 내용은 [AWS Glue요금](https://aws.amazon.com/glue/pricing/)을 참조하세요.  
S3 Tables에서 쿼리를 실행하는 경우 추가 요금이 적용됩니다. 자세한 내용은 사용 중인 쿼리 엔진의 요금 정보를 참조하세요.

## 통합 조건
<a name="table-integration-prerequisites"></a>

테이블 버킷을 AWS 분석 서비스와 통합하려면 다음 사전 조건을 충족해야 합니다.
+ [테이블 버킷을 생성합니다.](s3-tables-buckets-create.md)
+ AWS Identity and Access Management(IAM) 위탁자에 다음 AWS Glue 권한을 추가합니다.
  + Data Catalog에서 `s3tablescatalog` 페더레이션 카탈로그를 생성하는 데 필요한 `glue:CreateCatalog`
  + `glue:PassConnection`은 직접 호출 위탁자에게 Amazon S3 서비스에 `aws:s3tables` 연결 생성 권한을 위임할 수 있는 권한을 부여합니다.
+ [()의 최신 버전으로 업데이트합니다.AWS Command Line InterfaceAWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions)

**중요**  
테이블을 만들 때 테이블 이름 및 테이블 정의에 모두 소문자를 사용해야 합니다. 예를 들어 열 이름이 모두 소문자인지 확인합니다. 테이블 이름 또는 테이블 정의에 대문자가 포함된 경우 테이블은 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 분석 서비스와 통합
<a name="table-integration-procedures"></a>

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

IAM 액세스 제어를 사용하여 통합하는 경우 Amazon S3 테이블 버킷 및 테이블, Data Catalog 객체, 사용 중인 쿼리 엔진에 액세스하려면 IAM 권한이 필요합니다. Lake Formation을 사용하여 통합하기로 선택한 경우 IAM 액세스 제어 및 Lake Formation 권한 부여 모두에 따라 Data Catalog 리소스에 대한 액세스가 결정됩니다. Lake Formation 통합에 대한 자세한 내용은 [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html)를 참조하세요.

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

### S3 콘솔 사용
<a name="integrate-console"></a>

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

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

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

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

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

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

### AWS CLI 사용
<a name="integrate-cli"></a>

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

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

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

   ```
   aws s3tables create-table-bucket \
   --region {{us-east-1}} \
   --name {{amzn-s3-demo-table-bucket}}
   ```

1. 다음 카탈로그를 포함하는 `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}}
   ```

1. 다음 명령을 사용하여 `s3tablescatalog` 카탈로그가 AWS Glue에 추가되었는지 확인합니다.

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

### 업데이트된 통합 프로세스로 마이그레이션
<a name="migrate-integrate-console"></a>

기본적으로 IAM 권한을 사용하도록 AWS 분석 서비스 통합 프로세스가 업데이트되었습니다. 이미 연동을 설정한 경우 현재 연동 방식을 계속 사용할 수 있습니다. 그러나 IAM 권한을 대신 사용하도록 기존 통합을 변경하려면 [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html)를 참조하세요. 또한 통합을 다시 실행하여 AWS Glue Data Catalog 및 AWS Lake Formation에서 기존 설정을 삭제하고 통합을 다시 실행할 수 있습니다. 그러면 `s3tablescatalog`에 대한 모든 기존 Lake Formation 권한 부여 및 관련 액세스 권한이 제거됩니다.

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)에서 AWS Lake Formation 콘솔을 열고 데이터 레이크 관리자로 로그인합니다. 데이터 레이크 관리자 생성 방법에 대한 자세한 내용은 *AWS Lake Formation 개발자 안내서*의 [데이터 레이크 관리자 생성](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin)을 참조하세요.

1. 다음을 수행하여 `s3tablescatalog` 카탈로그를 삭제합니다.
   + 왼쪽 탐색 창에서 **카탈로그**를 선택합니다.
   + **카탈로그** 목록의 `s3tablescatalog` 카탈로그 옆에 있는 옵션 버튼을 선택합니다. [**Actions**] 메뉴에서 [**Delete**]를 선택합니다.

1. 다음을 수행하여 `s3tablescatalog` 카탈로그의 데이터 위치를 등록 취소합니다.
   + 왼쪽 탐색 창에서 **관리** 섹션으로 이동하고 **데이터 레이크 위치**를 선택합니다.
   + `s3tablescatalog` 데이터 레이크 위치 옆의 옵션 버튼을 선택합니다. 예를 들어, `s3://tables:{{region}}:{{account-id}}:bucket/*`입니다.
   + **작업** 메뉴에서 **제거**를 선택합니다.
   + 나타나는 대화 상자에서 **제거**를 선택합니다.

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

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

**다음 단계**
+ [ 네임스페이스 생성](s3-tables-namespace-create.md).
+ [테이블 생성](s3-tables-create.md).