S3 Intelligent-Tiering 사용
S3 Intelligent-Tiering 사용
S3 Intelligent-Tiering 스토리지 클래스를 사용하면 저장 비용을 자동으로 최적화할 수 있어요. 접근 패턴이 바뀌면 S3 Intelligent-Tiering이 객체 단위로 접근 계층 사이에서 데이터를 옮겨 자동으로 비용을 절감해 줘요. 비동기적으로 접근할 수 있는 데이터라면 AWS Management Console, AWS CLI, Amazon S3 API를 사용해 S3 Intelligent-Tiering 스토리지 클래스 안에서 자동 아카이빙을 켤 수도 있어요.
출처: 문서
본문
데이터를 S3 Intelligent-Tiering으로 이동하기
데이터를 S3 Intelligent-Tiering으로 옮기는 방법은 두 가지가 있어요. 콘솔에서 직접 객체를 업로드하거나, PUT 작업으로 프로그래밍 방식으로 업로드할 수 있어요. 자세한 내용은 "객체의 스토리지 클래스 설정"을 참고하세요. 또한 S3 Lifecycle 구성을 설정해 S3 Standard나 S3 Standard-Infrequent Access의 객체를 S3 Intelligent-Tiering으로 전환할 수 있어요.
Direct PUT으로 S3 Intelligent-Tiering에 데이터 업로드
PUT API 작업으로 객체를 S3 Intelligent-Tiering 스토리지 클래스에 업로드할 때는 x-amz-storage-class 요청 헤더에 S3 Intelligent-Tiering을 지정해요.
다음 요청은 my-image.jpg 이미지를 myBucket 버킷에 저장해요. x-amz-storage-class 헤더로 객체를 S3 Intelligent-Tiering 스토리지 클래스에 저장하도록 요청해요.
PUT /my-image.jpg HTTP/1.1
Host: myBucket.s3.<Region>.amazonaws.com (http://amazonaws.com/)
Date: Wed, 1 Sep 2021 17:50:00 GMT
Authorization: authorization ***
Content-Type: image/jpeg
Content-Length: 11434
Expect: 100-continue
x-amz-storage-class: INTELLIGENT_TIERING
S3 Lifecycle로 S3 Standard 또는 S3 Standard-Infrequent Access에서 S3 Intelligent-Tiering으로 전환
S3 Lifecycle 구성에 규칙을 추가하면 Amazon S3가 객체를 한 스토리지 클래스에서 다른 스토리지 클래스로 전환하도록 할 수 있어요. 지원되는 전환과 관련 제약은 "S3 Lifecycle을 사용한 객체 전환"을 참고하세요.
S3 Lifecycle 구성은 버킷 또는 접두사 수준에서 지정할 수 있어요. 다음 S3 Lifecycle 구성 규칙에서 필터는 키 접두사(documents/)를 지정해요. 따라서 이 규칙은 documents/doc1.txt, documents/doc2.txt처럼 키 이름 접두사가 documents/인 객체에 적용돼요. 규칙은 Transition 작업을 지정해 생성 후 0일 뒤에 객체를 S3 Intelligent-Tiering 스토리지 클래스로 전환하도록 지시해요. 이 경우 객체는 생성 후 다음 UTC 자정에 S3 Intelligent-Tiering 전환 대상이 돼요.
<LifecycleConfiguration>
<Rule>
<ID>ExampleRule</ID>
<Filter>
<Prefix>documents/</Prefix>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>0</Days>
<StorageClass>INTELLIGENT_TIERING</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
버전 관리가 활성화된 버킷은 현재 객체 버전 하나와 0개 이상의 비현재(noncurrent) 객체 버전을 유지해요. 현재 버전과 비현재 버전에 대해 별도의 Lifecycle 규칙을 정의할 수 있어요.
자세한 내용은 "Lifecycle 구성 요소"를 참고하세요.
S3 Intelligent-Tiering Archive Access 및 Deep Archive Access 계층 활성화
몇 분에서 몇 시간 안에 접근할 수 있는 데이터에서 가장 낮은 저장 비용을 얻으려면 AWS Management Console, AWS CLI, Amazon S3 API를 사용해 버킷, 접두사 또는 객체 태그 수준 구성으로 아카이브 접근 계층 하나 또는 둘 다를 활성화할 수 있어요.
S3 Intelligent-Tiering 자동 아카이빙을 활성화하려면
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
- Buckets 목록에서 원하는 버킷 이름을 선택합니다.
- Properties를 선택합니다.
- S3 Intelligent-Tiering Archive configurations 섹션으로 이동해 Create configuration을 선택합니다.
- Archive configuration settings 섹션에서 S3 Intelligent-Tiering Archive 구성의 이름을 지정합니다.
- Choose a configuration scope에서 사용할 구성 범위를 선택합니다. 선택적으로 공유 접두사, 객체 태그 또는 둘의 조합을 사용해 버킷 내 특정 객체로 구성 범위를 제한할 수 있습니다.
- 구성 범위를 제한하려면 Limit the scope of this configuration using one or more filters를 선택합니다.
- 단일 접두사로 범위를 제한하려면 Prefix 아래에 접두사를 입력합니다.
- 객체 태그로 범위를 제한하려면 Add tag를 선택하고 Key 값을 입력합니다.
- Status에서 Enable을 선택합니다.
- Archive settings 섹션에서 활성화할 Archive Access 계층 하나 또는 둘 다를 선택합니다.
- Create를 선택합니다.
S3 Intelligent-Tiering 구성을 관리하는 데 다음 AWS CLI 명령을 사용할 수 있어요.
delete-bucket-intelligent-tiering-configurationget-bucket-intelligent-tiering-configurationlist-bucket-intelligent-tiering-configurationsput-bucket-intelligent-tiering-configuration
AWS CLI 설정 방법은 Amazon S3 API Reference의 "AWS CLI로 Amazon S3 개발"을 참고하세요.
AWS CLI를 쓸 때는 구성을 XML 파일로 지정할 수 없고 JSON으로 지정해야 해요. 다음은 AWS CLI 명령에 지정할 수 있는 S3 Intelligent-Tiering 구성의 XML 예시와 그에 해당하는 JSON이에요.
다음 예시는 지정한 버킷에 S3 Intelligent-Tiering 구성을 넣는 put-bucket-intelligent-tiering-configuration 명령이에요.
JSON
{
"Id": "string",
"Filter": {
"Prefix": "string",
"Tag": {
"Key": "string",
"Value": "string"
},
"And": {
"Prefix": "string",
"Tags": [
{
"Key": "string",
"Value": "string"
}
...
]
}
},
"Status": "Enabled"|"Disabled",
"Tierings": [
{
"Days": integer,
"AccessTier": "ARCHIVE_ACCESS"|"DEEP_ARCHIVE_ACCESS"
}
...
]
}
XML
PUT /?intelligent-tiering&id=Id HTTP/1.1
Host: Bucket.s3.amazonaws.com
<?xml version="1.0" encoding="UTF-8"?>
<IntelligentTieringConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Id>string</Id>
<Filter>
<And>
<Prefix>string</Prefix>
<Tag>
<Key>string</Key>
<Value>string</Value>
</Tag>
...
</And>
<Prefix>string</Prefix>
<Tag>
<Key>string</Key>
<Value>string</Value>
</Tag>
</Filter>
<Status>string</Status>
<Tiering>
<AccessTier>string</AccessTier>
<Days>integer</Days>
</Tiering>
...
</IntelligentTieringConfiguration>
PutBucketIntelligentTieringConfiguration 작업을 특정 버킷에 사용할 수 있고, 버킷당 최대 1,000개의 S3 Intelligent-Tiering 구성을 만들 수 있어요. 공유 접두사나 객체 태그로 버킷 내 어떤 객체가 아카이브 접근 계층 대상인지 정의할 수 있어요. 공유 접두사나 객체 태그를 사용하면 특정 비즈니스 애플리케이션, 워크플로, 내부 조직에 맞출 수 있어요. 또한 Archive Access 계층, Deep Archive Access 계층 또는 둘 다를 활성화할 수 있는 유연성도 있어요.