라이브 인벤토리 테이블 활성화 또는 비활성화
라이브 인벤토리 테이블 활성화 또는 비활성화 (Enabling or disabling live inventory tables)
기본적으로 메타데이터 테이블 구성에는 버킷의 객체에서 발생하는 이벤트를 기록하는 저널 테이블이 포함돼요. 저널 테이블은 각 메타데이터 테이블 구성에 필수예요.
출처: 문서
본문
선택적으로 메타데이터 테이블 구성에 라이브 인벤토리 테이블을 추가할 수 있어요. 라이브 인벤토리 테이블은 버킷의 모든 객체와 해당 버전에 대한 간단하고 조회 가능한 인벤토리를 제공해서 데이터의 최신 상태를 파악할 수 있게 해줘요.
참고 2025년 7월 15일 이전에 S3 Metadata 구성을 만들었다면 해당 구성에서는 인벤토리 테이블을 활성화할 수 없어요. 구성을 삭제하고 다시 만들어서 인벤토리 테이블을 만들고 저널 테이블 레코드를 만료시킬 수 있도록 권장해요. 자세한 내용은 2025년 7월 15일 이전에 만든 메타데이터 구성에서 인벤토리 및 주석 테이블 활성화하기를 참고하세요.
인벤토리 테이블은 버킷의 모든 객체에 대한 최신 메타데이터를 포함해요. 이 테이블을 사용해 다양한 워크로드에 처리하려는 객체를 식별함으로써 비즈니스 워크플로와 빅데이터 작업을 단순화하고 가속화할 수 있어요. 예를 들어 인벤토리 테이블을 조회해 다음을 수행할 수 있어요.
- S3 Glacier Deep Archive 스토리지 클래스에 저장된 모든 객체 찾기
- 객체 태그 분포 만들기 또는 태그가 없는 객체 찾기
- AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 암호화되지 않은 모든 객체 찾기
- 서로 다른 두 시점의 인벤토리 테이블을 비교해 특정 태그가 있는 객체의 증가 추이 파악하기
메타데이터 테이블 구성에 인벤토리 테이블을 활성화하도록 선택했다면 테이블은 *백필링(backfilling)*이라는 과정을 거치게 돼요. 이 과정에서 Amazon S3가 범용 버킷을 스캔해 버킷에 존재하는 모든 객체에 대한 초기 메타데이터를 검색해요. 버킷의 객체 수에 따라 이 과정은 수 분(최소 15분)에서 수 시간이 걸릴 수 있어요. 백필링이 끝나면 인벤토리 테이블 상태가 **백필링(Backfilling)**에서 **활성(Active)**으로 바뀌어요. 백필링이 완료된 후에는 일반적으로 객체에 대한 업데이트가 1시간 이내에 인벤토리 테이블에 반영돼요.
참고
- 인벤토리 테이블 백필링에는 요금이 부과돼요. 범용 버킷에 객체가 10억 개를 초과하면 인벤토리 테이블에 대해 월간 요금도 부과돼요. 자세한 내용은 Amazon S3 요금을 참고하세요.
- 인벤토리 테이블에 대한 업데이트를 일시 중지했다가 다시 시작할 수는 없어요. 다만 인벤토리 테이블 구성을 비활성화할 수는 있어요. 인벤토리 테이블을 비활성화해도 삭제되지는 않아요. 인벤토리 테이블은 삭제하기로 결정할 때까지 기록으로 유지돼요. 인벤토리 테이블을 비활성화했고 나중에 다시 활성화하려면 먼저 AWS 관리형 테이블 버킷에서 이전 인벤토리 테이블을 삭제해야 해요. 인벤토리 테이블 구성을 다시 활성화하면 Amazon S3가 새 인벤토리 테이블을 만들고, 새 인벤토리 테이블 백필링에 다시 요금이 부과돼요.
인벤토리 테이블은 Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK 또는 Amazon S3 REST API를 사용해 활성화하거나 비활성화할 수 있어요.
사전 조건 (Prerequisites)
인벤토리 테이블을 비활성화했고 지금 다시 활성화하려면 먼저 AWS 관리형 테이블 버킷에서 이전 인벤토리 테이블을 수동으로 삭제해야 해요. 그렇지 않으면 테이블 버킷에 인벤토리 테이블이 이미 존재하므로 인벤토리 테이블 재활성화가 실패해요. 인벤토리 테이블을 삭제하려면 메타데이터 테이블 삭제를 참고하세요.
인벤토리 테이블 구성을 다시 활성화하면 Amazon S3가 새 인벤토리 테이블을 만들고, 새 인벤토리 테이블 백필링에 다시 요금이 부과돼요.
인벤토리 테이블 활성화 또는 비활성화 (Enable or disable inventory tables)
인벤토리 테이블을 활성화하거나 비활성화하려면 다음 단계를 따라 해요.
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
- 왼쪽 탐색 창에서 **범용 버킷(General purpose buckets)**을 선택해요.
- 인벤토리 테이블을 활성화하거나 비활성화하려는 메타데이터 테이블 구성이 있는 범용 버킷을 선택해요.
- 버킷의 세부 정보 페이지에서 메타데이터(Metadata) 탭을 선택해요.
- 메타데이터(Metadata) 탭에서 **편집(Edit)**을 선택한 다음 **인벤토리 테이블 구성 편집(Edit inventory table configuration)**을 선택해요.
- 인벤토리 테이블 구성 편집(Edit inventory table configuration) 페이지에서 인벤토리 테이블(Inventory table) 아래 활성화(Enabled) 또는 **비활성화(Disabled)**를 선택해요. > 참고 **활성화(Enabled)**를 선택하기 전에 사전 조건을 검토하고 충족했는지 확인하세요.
- **활성화(Enabled)**를 선택했다면 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 테이블을 암호화할지 선택할 수 있어요. 기본적으로 인벤토리 테이블은 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)로 암호화돼요.
SSE-KMS를 사용하려면 범용 버킷과 같은 리전에 고객 관리형 KMS 키를 제공해야 해요. > 중요 메타데이터 테이블의 암호화 유형은 테이블 생성 시에만 설정할 수 있어요. AWS 관리형 테이블이 생성된 후에는 암호화 설정을 변경할 수 없어요.
- 인벤토리 테이블을 SSE-S3(기본값)로 암호화하려면 **암호화 유형 지정 안 함(Don't specify encryption type)**을 선택해요.
- 인벤토리 테이블을 SSE-KMS로 암호화하려면 **암호화 유형 지정(Specify encryption type)**을 선택해요. 암호화 유형(Encryption type) 아래에서 **AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)**를 선택해요. **AWS KMS 키(AWS KMS key)**에서 기존 KMS 키를 선택하거나 KMS 키 ARN을 입력해요. KMS 키가 없다면 **KMS 키 ARN 입력(Enter KMS key ARN)**을 선택한 다음 **KMS 키 만들기(Create a KMS key)**를 선택해요.
- **비활성화(Disabled)**를 선택했다면 인벤토리 테이블이 비활성화된 후에는 테이블이 더 이상 업데이트되지 않으며 업데이트를 재개할 수 없습니다(After the inventory table is disabled, the table will no longer be updated, and updates can't be resumed) 아래에서 확인란을 선택해요.
- **활성화(Enabled)**를 선택했다면 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 테이블을 암호화할지 선택할 수 있어요. 기본적으로 인벤토리 테이블은 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)로 암호화돼요.
SSE-KMS를 사용하려면 범용 버킷과 같은 리전에 고객 관리형 KMS 키를 제공해야 해요. > 중요 메타데이터 테이블의 암호화 유형은 테이블 생성 시에만 설정할 수 있어요. AWS 관리형 테이블이 생성된 후에는 암호화 설정을 변경할 수 없어요.
- **변경 사항 저장(Save changes)**을 선택해요.
다음 명령을 실행하려면 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로 인벤토리 테이블 활성화 또는 비활성화 (To enable or disable inventory tables by using the AWS CLI)
다음 예시 명령을 사용하려면 user input placeholders를 자신의 정보로 바꾸세요.
참고 인벤토리 구성을 활성화하기 전에 사전 조건을 검토하고 충족했는지 확인하세요.
- 인벤토리 테이블 구성을 포함하는 JSON 파일을 만들고 저장해요(예:
inventory-config.json). 다음은 새 인벤토리 테이블을 활성화하는 샘플 구성이에요. 인벤토리 테이블을 활성화하는 경우 선택적으로 암호화 구성을 지정할 수 있어요. 기본적으로 메타데이터 테이블은SseAlgorithm을AES256으로 설정해 지정할 수 있는 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)로 암호화돼요. 인벤토리 테이블을 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)로 암호화하려면SseAlgorithm을aws:kms로 설정해요. 또한KmsKeyArn을 범용 버킷이 있는 리전의 고객 관리형 KMS 키 ARN으로 설정해야 해요.
{
"ConfigurationState": "ENABLED",
"EncryptionConfiguration": {
"SseAlgorithm": "aws:kms",
"KmsKeyArn": "arn:aws:kms:us-east-2:account-id:key/key-id"
}
}
기존 인벤토리 테이블을 비활성화하려면 다음 구성을 사용해요.
{
"ConfigurationState": "DISABLED" }
}
- 다음 명령을 사용해 범용 버킷(예:
amzn-s3-demo-bucket)의 인벤토리 테이블 구성을 업데이트해요.
aws s3api update-bucket-metadata-inventory-table-configuration \
--bucket amzn-s3-demo-source-bucket \
--inventory-table-configuration file://./inventory-config.json \
--region us-east-2
인벤토리 테이블을 활성화하거나 비활성화하기 위해 REST 요청을 보낼 수 있어요. 자세한 내용은 UpdateBucketMetadataInventoryTableConfiguration을 참고하세요.
AWS SDK를 사용해 Amazon S3에서 인벤토리 테이블을 활성화하거나 비활성화할 수도 있어요. 자세한 내용은 지원되는 SDK 목록을 참고하세요.