메타데이터 테이블 구성 생성
완전관리형 Apache Iceberg 메타데이터 테이블에 Amazon S3 Metadata를 생성하고 저장하려면 범용 버킷에 대한 메타데이터 테이블 구성을 만듭니다. Amazon S3는 버킷에서 구성이 활성 상태인 한 메타데이터 테이블을 지속적으로 업데이트하여 데이터에 대한 최신 변경 사항을 반영하도록 설계되었습니다. 또한 Amazon S3는 메타데이터 테이블을 지속적으로 최적화하여 스토리지 비용을 줄이고 분석 쿼리 성능을 개선하는 데 도움을 줍니다.
각 범용 버킷에 대해 두 개의 보완적 메타데이터 테이블이 포함된 메타데이터 테이블 구성을 만들 수 있습니다.
-
저널 테이블 - 기본적으로 메타데이터 테이블 구성에는 버킷의 객체에 대해 발생하는 이벤트를 캡처하는 저널 테이블이 포함되어 있습니다. 저널 테이블은 거의 실시간으로 데이터에 대한 변경 사항을 기록하므로 버킷에 업로드된 새 데이터를 식별하고, 최근에 삭제된 객체를 추적하고, 수명 주기 전환을 모니터링하는 등의 작업을 수행할 수 있습니다. 저널 테이블은 새 객체를 기록하고 객체 및 해당 메타데이터를 업데이트합니다(
PUT
또는DELETE
작업이 필요한 업데이트).저널 테이블은 메타데이터 테이블 구성을 만든 후에 발생하는 변경 이벤트(예: 업로드, 업데이트 및 삭제)에 대한 메타데이터만 캡처합니다. 이 테이블은 쿼리가 가능하므로 간단한 SQL 쿼리를 통해 버킷의 변경 사항을 감사할 수 있습니다.
저널 테이블은 각 메타데이터 테이블 구성에 필요합니다. (S3 Metadata의 최초 릴리스에서는 저널 테이블을 "메타데이터 테이블"이라고 했습니다.)
저널 테이블에 저장되는 데이터에 대한 자세한 내용은 S3 Metadata 저널 테이블 스키마 섹션을 참조하세요.
스토리지 비용을 최소화하려면 저널 테이블 레코드 만료를 활성화하도록 선택할 수 있습니다. 자세한 내용은 저널 테이블 레코드 만료시키기 섹션을 참조하세요.
-
라이브 인벤토리 테이블 - 선택적으로 메타데이터 테이블 구성에 라이브 인벤토리 테이블을 추가할 수 있습니다. 라이브 인벤토리 테이블은 버킷의 모든 객체와 해당 버전에 대한 간단하고 쿼리 가능한 인벤토리를 제공하므로 데이터의 최신 상태를 확인할 수 있습니다.
라이브 인벤토리 테이블을 사용하면 다양한 워크로드에 대해 처리하려는 객체를 식별하여 비즈니스 워크플로와 빅 데이터 작업을 간소화하고 속도를 높일 수 있습니다. 예를 들어 라이브 인벤토리 테이블을 쿼리하여 특정 스토리지 클래스에 저장된 모든 객체, 특정 태그가 있는 모든 객체, AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 암호화되지 않은 모든 객체 등을 찾을 수 있습니다.
메타데이터 테이블 구성에 대해 라이브 인벤토리 테이블을 활성화하면 테이블은 채우기라는 프로세스를 거치며, 이 과정에서 Amazon S3는 범용 버킷을 스캔하여 버킷에 있는 모든 객체의 초기 메타데이터를 검색합니다. 버킷의 객체 수에 따라 이 프로세스는 몇 분(최소 15분)에서 몇 시간이 걸릴 수 있습니다. 채우기 프로세스가 완료되면 라이브 인벤토리 테이블의 상태가 채우기에서 활성으로 변경됩니다. 채우기가 완료되면 객체에 대한 업데이트는 일반적으로 1시간 이내에 라이브 인벤토리 테이블에 반영됩니다.
라이브 인벤토리 테이블 채우기에 대한 요금이 부과됩니다. 범용 버킷에 10억 개 이상의 객체가 있는 경우 라이브 인벤토리 테이블에 대한 월별 요금도 부과됩니다. 자세한 내용은 Amazon S3 요금
을 참조하세요. 라이브 인벤토리 테이블에 저장되는 데이터에 대한 자세한 내용은 S3 Metadata 라이브 인벤토리 테이블 스키마 섹션을 참조하세요.
메타데이터 테이블의 Amazon 리소스 이름(ARN) 형식은 다음과 같습니다.
arn:aws:s3tables:
region-code
:account-id
:bucket/aws-s3/table/metadata_table_name
저널 테이블의 이름은 journal
이고 라이브 인벤토리 테이블의 이름은 inventory
입니다.
메타데이터 테이블 구성을 만들 때 메타데이터 테이블이 AWS 관리형 테이블 버킷에 저장됩니다. 계정 및 동일한 리전의 모든 메타데이터 테이블 구성은 단일 AWS 관리형 테이블 버킷에 저장됩니다. 이러한 AWS 관리형 테이블 버킷의 이름은 aws-s3
이며 다음 Amazon 리소스 이름(ARN) 형식을 갖습니다.
arn:aws:s3tables:
region
:account_id
:bucket/aws-s3
예를 들어 계정 ID가 123456789012이고 범용 버킷이 미국 동부(버지니아 북부)(us-east-1
)에 있는 경우 AWS 관리형 테이블 버킷도 미국 동부(버지니아 북부)(us-east-1
)에서 만들어지며 ARN은 다음과 같습니다.
arn:aws:s3tables:
us-east-1
:123456789012:bucket/aws-s3
기본적으로 AWS 관리형 테이블 버킷은 Amazon S3 관리형 암호화 키를 사용한 서버 측 암호화(SSE-S3)를 사용하여 암호화됩니다. 첫 번째 메타데이터 구성을 만든 후 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)를 사용하도록 AWS 관리형 테이블 버킷의 기본 암호화 설정을 지정할 수 있습니다. 자세한 내용은 Encryption for AWS managed table buckets 및 테이블 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 지정 섹션을 참조하세요.
AWS 관리형 테이블 버킷 내에서 구성의 메타데이터 테이블은 일반적으로 다음 이름 지정 형식의 네임스페이스에 저장됩니다.
b_
general-purpose-bucket-name
메타데이터 테이블 네임스페이스에 대한 자세한 내용은 메타데이터 테이블 작동 방식 섹션을 참조하세요.
메타데이터 테이블 구성을 만들 때 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 사용한 서버 측 암호화로 AWS 관리형 메타데이터 테이블을 암호화하도록 선택할 수 있습니다. SSE-KMS를 사용하기로 선택한 경우 범용 버킷과 동일한 리전에 고객 관리형 KMS 키를 제공해야 합니다. 테이블을 만드는 중에만 테이블에 대한 암호화 유형을 설정할 수 있습니다. AWS 관리형 테이블이 만들어진 후에는 암호화 설정을 변경할 수 없습니다. 메타데이터 테이블에 SSE-KMS를 지정하려면 특정 권한이 있어야 합니다. 자세한 내용은 Permissions for SSE-KMS를 참조하세요.
메타데이터 테이블의 암호화 설정이 기본 버킷 수준 암호화 설정보다 우선합니다. 테이블에 암호화 설정을 지정하지 않으면 버킷의 기본 암호화 설정을 상속합니다.
AWS 관리형 테이블 버킷은 S3 Tables 할당량에 포함되지 않습니다. AWS 관리형 테이블 버킷 및 AWS 관리형 테이블 작업에 대한 자세한 내용은 Working with AWS managed table buckets를 참조하세요.
Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK 또는 Amazon S3 REST API를 사용하여 메타데이터 테이블 구성을 생성할 수 있습니다.
참고
-
2025년 7월 15일 이전에 S3 Metadata 구성을 만든 경우 저널 테이블 레코드를 만료시키고 인벤토리 테이블을 만들 수 있도록 구성을 삭제하고 다시 만드는 것이 좋습니다. 자세한 내용은 2025년 7월 15일 이전에 만들어진 메타데이터 구성에 대한 인벤토리 테이블 활성화 섹션을 참조하세요.
-
메타데이터 테이블 구성을 삭제하고 동일한 범용 버킷에 대한 구성을 다시 만들려면 먼저 AWS 관리형 테이블 버킷에서 이전 저널 및 인벤토리 테이블을 수동으로 삭제해야 합니다. 그러지 않으면 새 메타데이터 테이블 구성 만들기에 실패합니다. 해당 테이블이 이미 존재하기 때문입니다. 메타데이터 테이블을 삭제하려면 메타데이터 테이블 삭제 섹션을 참조하세요.
메타데이터 테이블 구성을 삭제하면 구성만 삭제됩니다. 메타데이터 테이블 구성을 삭제하더라도 AWS 관리형 테이블 버킷과 메타데이터 테이블은 여전히 존재합니다.
사전 조건
메타데이터 테이블 구성을 만들기 전에 다음 사전 조건을 충족하는지 확인합니다.
-
메타데이터 테이블 구성을 만들려면 메타데이터 테이블을 만들고 관리하는 데 필요한 AWS Identity and Access Management(IAM) 권한이 있는지 확인하세요. 자세한 내용은 메타데이터 테이블 구성에 대한 권한 설정 섹션을 참조하세요.
-
Amazon Athena 또는 다른 AWS 쿼리 엔진을 사용하여 메타데이터 테이블을 쿼리하려는 경우 AWS 관리형 테이블 버킷을 AWS 분석 서비스와 통합해야 합니다. 자세한 내용은 AWS 분석 서비스와 Amazon S3 Tables 통합 섹션을 참조하세요.
이 리전에 기존 테이블 버킷을 이미 통합한 경우, AWS 관리형 테이블 버킷도 자동으로 통합됩니다. 이 리전의 테이블 버킷에 대한 통합 상태를 확인하려면 Amazon S3 콘솔을 열고 왼쪽 탐색 창에서 테이블 버킷을 선택합니다. AWS 분석 서비스와의 통합에서 리전을 확인하고 통합 상태가 활성화됨인지 확인합니다.
메타데이터 테이블 구성 생성
메타데이터 테이블 구성을 생성하는 방법
메타데이터 테이블 구성을 생성하기 전에 사전 조건을 검토하고 충족했는지 확인하고 메타데이터 테이블의 한계 및 제한 섹션을 검토합니다.
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 S3 콘솔을 엽니다. -
왼쪽 탐색 창에서 범용 버킷을 선택합니다.
-
메타데이터 테이블 구성을 생성할 범용 버킷을 선택합니다.
참고
이 범용 버킷이 테이블 버킷을 사용할 수 있는 AWS 리전인지 확인합니다. 테이블 버킷은 미국 동부(버지니아 북부), 미국 동부(오하이오) 및 미국 서부(오리건) 리전에서만 사용할 수 있습니다.
-
버킷의 세부 정보 페이지에서 메타데이터 탭을 선택합니다.
-
메타데이터 탭에서 메타데이터 구성 생성을 선택합니다.
-
메타데이터 구성 생성 페이지의 저널 테이블에서 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 테이블을 암호화할지 여부를 선택할 수 있습니다. 기본적으로 저널 테이블은 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 사용하여 암호화됩니다.
SSE-KMS를 사용하기로 선택한 경우 범용 버킷과 동일한 리전에 고객 관리형 KMS 키를 제공해야 합니다.
중요
테이블을 만드는 중에만 메타데이터 테이블에 대한 암호화 유형을 설정할 수 있습니다. AWS 관리형 테이블이 만들어진 후에는 암호화 설정을 변경할 수 없습니다.
-
SSE-S3(기본값)로 저널 테이블을 암호화하려면 암호화 유형을 지정하지 않음을 선택합니다.
-
SSE-KMS로 저널 테이블을 암호화하려면 암호화 유형 지정을 선택합니다. 암호화 유형에서 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)를 선택합니다. AWS KMS 키에서 기존 KMS 키 중에 선택하거나 KMS 키 ARN을 입력합니다. 아직 KMS 키가 없는 경우 KMS 키 ARN 입력을 선택한 다음 KMS 키 생성을 선택합니다.
SSE-KMS에 필요한 권한을 설정했는지 확인합니다. 자세한 내용은 Permissions for SSE-KMS를 참조하세요.
-
-
(선택 사항) 기본적으로 저널 테이블의 레코드는 만료되지 않습니다. 저널 테이블의 스토리지 비용을 최소화하려면 레코드 만료에서 활성화를 선택합니다.
저널 테이블 레코드 만료를 활성화하면 저널 테이블 레코드를 보존할 일수를 설정할 수 있습니다. 레코드가 만료되는 일수 값을 설정하려면
7
~2147483647
사이의 정수를 지정할 수 있습니다. 예를 들어 저널 테이블 레코드를 1년 동안 유지하려면 이 값을365
로 설정합니다.레코드는 만료 대상이 된 후 24~48시간 이내에 만료됩니다.
중요
저널 테이블 레코드가 만료된 후에는 복구할 수 없습니다.
저널 테이블 레코드가 지정된 일수 후에 만료됨에서 확인란을 선택합니다.
-
(선택 사항) 메타데이터 테이블 구성에 인벤토리 테이블을 추가하려면 라이브 인벤토리 테이블에서 구성 상태에 대해 활성화됨을 선택합니다.
AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 테이블을 암호화할지 여부를 선택할 수 있습니다. 기본적으로 인벤토리 테이블은 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 사용하여 암호화됩니다.
SSE-KMS를 사용하기로 선택한 경우 범용 버킷과 동일한 리전에 고객 관리형 KMS 키를 제공해야 합니다.
중요
테이블을 만드는 중에만 메타데이터 테이블에 대한 암호화 유형을 설정할 수 있습니다. AWS 관리형 테이블이 만들어진 후에는 암호화 설정을 변경할 수 없습니다.
-
SSE-S3(기본값)로 인벤토리 테이블을 암호화하려면 암호화 유형을 지정하지 않음을 선택합니다.
-
SSE-KMS로 인벤토리 테이블을 암호화하려면 암호화 유형 지정을 선택합니다. 암호화 유형에서 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)를 선택합니다. AWS KMS 키에서 기존 KMS 키 중에 선택하거나 KMS 키 ARN을 입력합니다. 아직 KMS 키가 없는 경우 KMS 키 ARN 입력을 선택한 다음 KMS 키 생성을 선택합니다.
SSE-KMS에 필요한 권한을 설정했는지 확인합니다. 자세한 내용은 Permissions for SSE-KMS를 참조하세요.
-
-
메타데이터 테이블 구성 생성을 선택합니다.
메타데이터 테이블 구성이 성공하면 메타데이터 테이블의 이름과 ARN이 AWS 관리형 테이블 버킷 및 네임스페이스의 이름과 함께 메타데이터 탭에 표시됩니다.
메타데이터 테이블 구성에 인벤토리 테이블을 활성화하도록 선택한 경우 테이블은 채우기라는 프로세스를 거치며,이 과정에서 Amazon S3는 범용 버킷을 스캔하여 버킷에 있는 모든 객체의 초기 메타데이터를 검색합니다. 버킷의 객체 수에 따라 이 프로세스는 몇 분(최소 15분)에서 몇 시간이 걸릴 수 있습니다. 채우기 프로세스가 완료되면 인벤토리 테이블의 상태가 채우기에서 활성으로 변경됩니다. 채우기가 완료되면 객체에 대한 업데이트는 일반적으로 1시간 이내에 인벤토리 테이블에 반영됩니다.
메타데이터 테이블 구성에 대한 업데이트를 모니터링하려면 AWS CloudTrail을 사용할 수 있습니다. 자세한 내용은 CloudTrail 로깅을 통해 추적되는 Amazon S3 버킷 수준 작업 섹션을 참조하세요.
다음 명령을 실행하려면 AWS CLI를 설치하고 구성해야 합니다. AWS CLI를 설치하지 않은 경우 AWS Command Line Interface 사용 설명서에서 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.
또는 AWS CloudShell을 사용하여 콘솔에서 AWS CLI 명령을 실행할 수 있습니다. AWS CloudShell은 브라우저 기반의 사전 인증된 쉘로, AWS Management Console에서 직접 시작할 수 있습니다. 자세한 내용은 AWS CloudShell 사용 설명서에서 CloudShell이란 무엇인가요? 및 AWS CloudShell 시작하기를 참조하세요.
AWS CLI를 사용하여 메타데이터 테이블 구성을 생성하는 방법
메타데이터 테이블 구성을 생성하기 전에 사전 조건을 검토하고 충족했는지 확인하고 메타데이터 테이블의 한계 및 제한 섹션을 검토합니다.
다음 예시 명령을 사용하려면
를 실제 정보로 대체하세요.user input
placeholders
-
메타데이터 테이블 구성이 포함된 JSON 파일을 생성하고 저장합니다(예:
metadata-config.json
). 다음은 샘플 구성입니다.저널 테이블 레코드 만료를 활성화할지 또는 비활성화할지 지정해야 합니다. 레코드 만료를 활성화하도록 선택한 경우 저널 테이블 레코드가 만료되기 전의 일수도 지정해야 합니다.
Days
값을 설정하려면7
및2147483647
사이의 정수를 지정할 수 있습니다. 예를 들어 저널 테이블 레코드를 1년 동안 유지하려면 이 값을365
로 설정합니다.선택적으로 인벤토리 테이블을 구성하도록 선택할 수 있습니다.
저널 테이블과 인벤토리 테이블 모두에 대해 선택적으로 암호화 구성을 지정할 수 있습니다. 기본적으로 메타데이터 테이블은
SseAlgorithm
을AES256
으로 설정하여 지정할 수 있는 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)로 암호화됩니다.AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 메타데이터 테이블을 암호화하려면
SseAlgorithm
을aws:kms
로 설정합니다. 또한 범용 버킷이 위치한 동일한 리전에서 고객 관리형 KMS 키의 ARN으로KmsKeyArn
을 설정해야 합니다.{ "JournalTableConfiguration": { "RecordExpiration": { "Expiration": "ENABLED", "Days": 10 }, "EncryptionConfiguration": { "SseAlgorithm": "AES256" } }, "InventoryTableConfiguration": { "ConfigurationState": "ENABLED", "EncryptionConfiguration": { "SseAlgorithm": "aws:kms", "KmsKeyArn": "arn:aws:kms:
us-east-2
:account-id
:key/key-id
" } } } -
다음 명령을 사용하여 메타데이터 테이블 구성을 범용 버킷에 적용합니다(예:
).amzn-s3-demo-bucket
aws s3api create-bucket-metadata-configuration \ --bucket
\ --metadata-configuration file://./amzn-s3-demo-bucket
metadata-config
.json \ --regionus-east-2
-
구성이 추가되었는지 확인하려면 다음 명령을 사용합니다.
aws s3api get-bucket-metadata-configuration \ --bucket
\ --regionamzn-s3-demo-bucket
us-east-2
메타데이터 테이블 구성에 대한 업데이트를 모니터링하려면 AWS CloudTrail을 사용할 수 있습니다. 자세한 내용은 CloudTrail 로깅을 통해 추적되는 Amazon S3 버킷 수준 작업 섹션을 참조하세요.
REST 요청을 전송하여 메타데이터 테이블 구성을 생성할 수 있습니다. 자세한 내용은 Amazon S3 API 참조의 CreateBucketMetadataConfiguration 섹션을 참조하세요.
AWS SDK를 사용하여 Amazon S3에서 메타데이터 테이블 구성을 생성할 수 있습니다. 자세한 내용은 Amazon S3 API 참조의 지원되는 SDK 목록을 참조하세요.
2025년 7월 15일 이전에 만들어진 메타데이터 구성에 대한 인벤토리 테이블 활성화
2025년 7월 15일 이전에 S3 Metadata 구성을 만든 경우 저널 테이블 레코드를 만료시키고 인벤토리 테이블을 만들 수 있도록 구성을 삭제하고 다시 만드는 것이 좋습니다. 이전 구성을 삭제하고 새 구성을 만드는 사이에 발생하는 범용 버킷의 변경 사항은 저널 테이블 중 하나에 기록되지 않습니다.
이전 메타데이터 구성에서 새 구성으로 마이그레이션하려면 다음을 수행합니다.
-
기존 메타데이터 테이블 구성을 삭제합니다. 단계별 지침은 메타데이터 테이블 구성 삭제섹션을 참조하세요.
-
메타데이터 테이블 구성을 만듭니다. 단계별 지침은 메타데이터 테이블 구성 생성섹션을 참조하세요.
구성 마이그레이션에 도움이 필요한 경우 AWS Support에 문의하세요.
새 메타데이터 구성을 만든 후에는 두 개의 저널 테이블이 있게 됩니다. 이전 저널 테이블이 더 이상 필요하지 않은 경우 삭제할 수 있습니다. 단계별 지침은 메타데이터 테이블 삭제섹션을 참조하세요. 이전 저널 테이블을 유지하고 새 테이블과 조인하려는 경우 S3 메타데이터 테이블과 사용자 지정 메타데이터 조인 섹션에서 두 테이블을 조인하는 방법에 대한 예를 참조하세요.
마이그레이션 후 다음을 수행할 수 있습니다.
-
이제
GetBucketMetadataConfiguration
API 작업을 사용하여 구성을 볼 수 있습니다. 구성이 이전 구성인지 새 구성인지 확인하려면GetBucketMetadataConfiguration
API 응답의 다음 속성을 볼 수 있습니다. AWS 관리형 버킷 유형("aws"
)은 새 구성을 나타내고 고객 관리형 버킷 유형("customer"
)은 이전 구성을 나타냅니다."MetadataTableConfigurationResult": { "TableBucketType": ["aws" | "customer"]
자세한 내용은 메타데이터 테이블 구성 보기 섹션을 참조하세요.
참고
GetBucketMetadataConfiguration
및DeleteBucketMetadataConfiguration
API 작업을 이전 또는 새 메타데이터 테이블 구성과 함께 사용할 수 있습니다. 그러나 새 구성에서GetBucketMetadataTableConfiguration
및DeleteBucketMetadataTableConfiguration
API 작업을 사용하려고 하면 HTTP405 Method Not Allowed
오류가 발생합니다.이전 API 작업 대신 새 API 작업(
CreateBucketMetadataConfiguration
,GetBucketMetadataConfiguration
및DeleteBucketMetadataConfiguration
)을 사용하도록 프로세스를 업데이트해야 합니다. -
Amazon Athena 또는 다른 AWS 쿼리 엔진을 사용하여 메타데이터 테이블을 쿼리하려는 경우 AWS 관리형 테이블 버킷을 AWS 분석 서비스와 통합해야 합니다. 이 리전에 기존 테이블 버킷을 이미 통합한 경우, AWS 관리형 테이블 버킷도 자동으로 통합됩니다. 자세한 내용은 AWS 분석 서비스와 Amazon S3 Tables 통합 섹션을 참조하세요.