Intelligent-Tiering으로 테이블 비용 최적화하기
Intelligent-Tiering으로 테이블 비용 최적화하기 (Cost optimization for tables with Intelligent-Tiering)
S3 Intelligent-Tiering을 사용해 테이블의 스토리지 비용을 자동으로 최적화할 수 있어요. S3 Tables Intelligent-Tiering 스토리지 클래스는 접근 패턴이 바뀌면 데이터를 가장 비용 효율적인 접근 계층으로 자동 이동해요. S3 Intelligent-Tiering을 쓰면 덜 자주 접근하는 데이터는 자동으로 더 저렴한 계층으로 옮겨가고, 다시 접근할 때마다 Frequent Access 계층으로 되돌아와요.
출처: 문서
본문
모든 데이터는 검색 수수료, 성능 영향, 가용성 변화 없이 계층 사이를 이동해요. 게다가 압축 같은 테이블 유지 관리 작업은 접근 패턴을 기반으로 최적화돼요. Frequent Access 계층에서 적극적으로 접근되는 데이터만 처리하고, 저비용 계층에서 덜 자주 접근되는 데이터의 유지 관리 비용은 줄여요.
S3 Tables Intelligent-Tiering 접근 계층
테이블이 S3 Intelligent-Tiering 스토리지 클래스에 저장되면 Amazon S3는 접근 패턴을 지속적으로 모니터링하고 테이블 데이터를 접근 계층 사이에서 자동으로 이동해요.
계층 전환은 개별 파일 수준에서 일어나므로, 한 테이블도 접근 패턴에 따라 서로 다른 계층에 파일을 가질 수 있어요. 테이블 데이터는 접근 패턴에 따라 다음 접근 계층 중 하나로 자동 이동돼요:
- Frequent Access: 모든 파일의 기본 계층이에요. 다른 계층의 파일은 접근하면 자동으로 Frequent Access 계층으로 되돌아와요.
- Infrequent Access: 파일에 30일 연속으로 접근하지 않으면 Infrequent Access 계층으로 이동해요.
- Archive Instant Access: 파일에 90일 연속으로 접근하지 않으면 Archive Instant Access 계층으로 이동해요.
모든 계층은 밀리초 단위 지연 시간과 높은 처리량 성능을 제공하며, 99.9% 가용성과 99.999999999% 내구성을 위해 설계됐어요.
S3 Intelligent-Tiering의 자동 계층 전환 동작
다음 작업은 파일을 Infrequent Access 계층이나 Archive Instant Access 계층에서 Frequent Access 계층으로 자동 되돌리는 접근으로 간주돼요.
GetObject,PutObject,CompleteMultipartUpload작업을 사용한 테이블 데이터·메타데이터 파일에 대한 모든 읽기·쓰기 작업- Iceberg REST API 작업을 사용한
LoadTable또는UpdateTable작업 - S3 Tables 복제 작업
다른 작업은 파일을 Infrequent Access 계층이나 Archive Instant Access 계층에서 Frequent Access 계층으로 자동 되돌리는 접근으로 간주되지 않아요.
참고: 128KB보다 작은 파일은 자동 계층 전환 대상이 아니며 Frequent Access 계층에 남아요. 압축이 이 파일들을 더 적고 더 큰 객체로 합치고 새 스냅샷으로 테이블에 커밋할 수 있어요. 새로 압축된 파일이 128KB 이상이면 자동 계층 전환 대상이 돼요.
테이블 유지 관리 동작
Amazon S3가 수행하는 자동 테이블 유지 관리 작업(예: 스냅샷 관리, 참조되지 않은 파일 제거, 레코드 만료)은 계층과 관계없이 테이블에서 계속 실행돼요. 압축은 Frequent Access 계층의 파일에서만 실행되어 자주 접근되는 데이터의 성능을 최적화하고, 저비용 계층의 데이터에 대한 유지 관리 비용은 줄여요.
유지 관리 작업은 테이블 안 파일의 접근 계층에는 영향을 주지 않아요. 유지 관리 작업이 수행하는 읽기는 파일의 계층을 바꾸지 않아요. 다만 압축이나 레코드 만료 같은 유지 관리 작업이 새 파일을 쓰면 그 파일은 Frequent Access 계층에 만들어져요.
참고: 압축은 Frequent Access 계층의 파일만 처리하므로, 저비용 계층의 데이터에 대한 삭제 작업은 자동으로 압축되지 않는 삭제 파일을 만들어요. 이 삭제 파일들은 관련 데이터 파일에 접근해 Frequent Access 계층으로 되돌아오면 압축 대상이 돼요. 자주 접근하지 않는 테이블의 경우 Amazon EMR을 사용해 압축을 수동 실행해 이 삭제 파일들을 관련 데이터 파일과 함께 압축할 수 있어요. 자세한 내용은 "Maintaining tables by using compaction" 문서를 참고하세요. 수동 압축이 유익할 시점을 판단하려면 Amazon CloudWatch 메트릭으로 테이블의 파일 증가를 모니터링할 수 있어요.
S3 Intelligent-Tiering을 스토리지 클래스로 지정하기
기본적으로 모든 테이블은 S3 Standard 스토리지 클래스로 만들어지며 S3 Intelligent-Tiering으로 이동할 수 없어요. S3 Intelligent-Tiering을 쓰려면 테이블을 만들 때 지정해야 해요. 또한 테이블 버킷의 기본 스토리지 클래스로 S3 Intelligent-Tiering을 설정하면 그 버킷에 새로 만들어지는 테이블이 S3 Intelligent-Tiering 스토리지 클래스에 자동으로 저장돼요.
테이블 버킷에 S3 Intelligent-Tiering 지정하기
새 테이블 버킷을 만들 때 CreateTableBucket 작업과 함께 storage-class-configuration 헤더를 사용해 기본 스토리지 클래스로 S3 Intelligent-Tiering을 지정할 수 있어요.
기존 테이블 버킷의 기본 스토리지 클래스를 확인하려면 GetTableBucketStorageClass 작업을 쓰세요. 기존 테이블 버킷의 기본 스토리지 클래스를 수정하려면 PutTableBucketStorageClass 작업을 쓰세요.
참고: 테이블 버킷의 기본 스토리지 클래스를 수정하면 그 설정은 해당 버킷에 새로 만드는 테이블에만 적용돼요. 기존 테이블의 스토리지 클래스는 바뀌지 않아요.
테이블에 S3 Intelligent-Tiering 지정하기
새 테이블을 만들 때 CreateTable 작업과 함께 storage-class-configuration 헤더를 사용해 스토리지 클래스로 S3 Intelligent-Tiering을 지정할 수 있어요.
테이블을 만들 때 스토리지 클래스를 지정하지 않으면 그 시점에 테이블 버킷에 구성된 기본 스토리지 클래스로 만들어져요. 테이블을 만든 뒤에는 스토리지 클래스를 수정할 수 없어요.
기존 테이블 버킷의 기본 스토리지 클래스를 확인하려면 GetTableBucketStorageClass 작업을 쓰세요.
스토리지 사용량 모니터링하기
계정의 AWS Cost and Usage Reports에서 접근 계층별 스토리지 사용량 내역을 볼 수 있어요. 자세한 내용은 AWS Data Exports User Guide의 "Creating Cost and Usage Reports" 문서를 참고하세요.
청구 보고서에서 사용할 수 있는 사용 유형은 다음과 같아요.
| 사용 유형 | 단위 | 세분화 | 설명 |
|---|---|---|---|
| region-Tables-TimedStorage-INT-FA-ByteHrs | GB-월 | 일간 | S3 Intelligent-Tiering 스토리지의 Frequent Access 계층에 데이터가 저장된 GB-월 수 |
| region-Tables-TimedStorage-INT-IA-ByteHrs | GB-월 | 일간 | S3 Intelligent-Tiering 스토리지의 Infrequent Access 계층에 데이터가 저장된 GB-월 수 |
| region-Tables-TimedStorage-INT-AIA-ByteHrs | GB-월 | 일간 | S3 Intelligent-Tiering 스토리지의 Archive Instant Access 계층에 데이터가 저장된 GB-월 수 |
| region-Tables-Requests-INT-Tier1 | 개수 | 시간당 | S3 Tables Intelligent-Tiering 객체에 대한 PUT, COPY, POST 요청 수 |
| region-Tables-Requests-INT-Tier2 | 개수 | 시간당 | S3 Tables Intelligent-Tiering 객체에 대한 GET 및 기타 모든 Tier1이 아닌 요청 수 |
더 알아보기 (Learn more)
- 고려 사항 및 제한 사항 (Considerations and limitations)
- 네임스페이스 (Namespaces)