스토리지 클래스 사용
일부 데이터가 활성 워크로드를 피드하지 않습니다. 아카이브 데이터가 오랫동안 처리되지 않을 수 있습니다. 자주 사용되지 않는 워크로드의 경우에는 다른 스토리지 클래스로 버킷을 작성할 수 있습니다. 이러한 버킷에 저장된 오브젝트는 표준 스토리지와는 다른 스케줄에 따라 비용이 발생합니다.
이 기능은 현재 Satellite 용 Object Storage 에서 지원되지 않습니다. 자세히 보기
클래스의 개념
네 개의 스토리지 클래스 중에서 선택할 수 있습니다.
- 스마트 티어 는 모든 워크로드, 특히 액세스 패턴을 알 수 없거나 예측하기 어려운 동적 워크로드에 사용할 수 있습니다. 스마트 티어는 월별 사용 패턴에 따라 데이터를 "핫", "쿨" 및 "콜드" 티어로 분류하여 단순화된 가격 책정 구조 및 자동 비용 최적화를 제공합니다. 그러면 버킷의 모든 데이터가 가장 낮은 적용 가능 비율로 청구됩니다. 임계값 오브젝트 크기 또는 스토리지 기간이 없으며 검색 비용이 없습니다. 작동 방식에 대한 자세한 설명은 청구 주제 를 참조하십시오.
- 표준은 검색되는 데이터에 대한 비용 없이(운영 요청 비용 제외) 활성 워크로드에 사용됩니다.
- 볼트는 데이터가 한 달에 한 번 미만으로 액세스되는 쿨 워크로드에 사용됩니다. 데이터를 읽을 때마다 추가 검색 비용($/GB)이 적용됩니다. 서비스에는 이 서비스의 사용 목적, 즉, 덜 활성화된 쿨러 데이터에 적합한 오브젝트 크기 및 스토리지 기간에 대한 최소 임계값이 포함됩니다.
- 콜드 볼트는 데이터가 90일 이하마다 액세스되는 콜드 워크로드에 사용되며 데이터를 읽을 때마다 많은 추가 검색 비용($/GB)이 적용됩니다. 서비스에는 이 서비스의 사용 목적, 즉, 비활성화된 콜드 데이터에 적합한 오브젝트 크기 및 스토리지 기간에 대한 더 긴 최소 임계값이 포함됩니다.
Flex 는 동적 워크로드에 대해 스마트 티어로 대체되었습니다. Flex 사용자는 새 Flex 버킷을 작성할 수 없지만 기존 Flex 버킷의 데이터를 계속 관리할 수 있습니다. 기존 사용자는 여기 에서 가격 책정 정보를 참조할 수 있습니다.
자세한 내용은 ibm.com 의 가격표를 참조하십시오.
활성 스토리지 클래스는 정액제 요금 제에서만 사용되며 표준 요금제 인스턴스에서는 사용할 수 없습니다.
여러 스토리지 클래스로 버킷을 작성하는 방법에 대한 자세한 정보는 API 참조를 참조하십시오.
각 스토리지 클래스에 대해 청구는 인스턴스 레벨의 모든 버킷에서 집계된 사용량을 기반으로 합니다. 예를 들어, 스마트 티어의 경우 비용 청구는 개별 버킷이 아닌 지정된 인스턴스의 모든 스마트 티어 버킷에 대한 사용량을 기반으로 합니다.
서로 다른 스토리지 클래스로 버킷을 작성하는 방법
콘솔에서 버킷을 작성할 때 스토리지 클래스를 선택할 수 있는 메뉴가 있습니다.
프로그래밍 방식으로 버킷을 작성할 때 사용되는 엔드포인트에 해당하는 LocationConstraint를 지정해야 합니다. 유효한 프로비저닝 코드는 다음과 LocationConstraint 같습니다:
BR 상파울루 br-sao-standard / br-sao-vault / br-sao-cold / br-sao-smart
미국 지역 us-standard / us-vault / us-cold / us-smart
미국 동부 us-east-standard / us-east-vault / us-east-cold / us-east-smart
미국 남부 us-south-standard / us-south-vault/ us-south-cold/ us-south-smart
EU 지역 eu-standard / eu-vault / eu-cold / eu-smart
**EU 영국 **eu-gb-standard / eu-gb-vault / eu-gb-cold / eu-gb-smart
EU 독일 eu-de-standard / eu-de-vault / eu-de-cold / eu-de-smart
EU 스페인 eu-es-standard / eu-es-vault / eu-es-cold / eu-es-smart
AP 지역 ap-standard / ap-vault / ap-cold / ap-smart
아시아 태평양 jp-tok-standard / jp-tok-vault / jp-tok-cold / jp-tok-smart
아시아 태평양 오사카 jp-osa-standard / jp-osa-vault / jp-osa-cold / jp-osa-smart
아시아 태평양 au-syd-standard / au-syd-vault / au-syd-cold / au-syd-smart
CA 토론토 ca-tor-standard / ca-tor-vault / ca-tor-cold / ca-tor-smart
암스테르담 ams03-standard / ams03-vault / ams03-cold / ams03-smart
첸나이 che01-standard / che01-vault / che01-cold / che01-smart
**몬트리올 **mon01-standard / mon01-vault / mon01-cold / mon01-smart
파리 par01-standard / par01-vault / par01-cold / par01-smart
**산호세 **sjc04-standard / sjc04-vault / sjc04-cold / sjc04-smart
싱가포르 sng01-standard / sng01-vault / sng01-cold / sng01-smart
엔드포인트에 대한 자세한 정보는 엔드포인트 및 스토리지 위치를 참조하십시오.
REST API, 라이브러리 및 SDK 사용
여러 새 API가 IBM COS SDK에 도입되어 보존 정책에 대한 작업을 수행하는 애플리케이션에 대한 지원을 제공합니다. 적절한 COS SDK를 사용하는 예를 보려면 이 페이지의 시작 부분에서 언어(curl, Java, JavaScript, Go 또는 Python)를 선택하십시오.
모든 코드 예에서는 서로 다른 메소드를 호출할 수 있는 cos라는 클라이언트 오브젝트가 있다고 가정합니다. 클라이언트 작성에 대한 세부사항은 구체적 SDK 안내서를 참조하십시오.
스토리지 클래스로 버킷 작성
public static void createBucket(String bucketName) {
System.out.printf("Creating new bucket: %s\n", bucketName);
_cos.createBucket(bucketName, "us-vault");
System.out.printf("Bucket: %s created!\n", bucketName);
}
function createBucket(bucketName) {
console.log(`Creating new bucket: ${bucketName}`);
return cos.createBucket({
Bucket: bucketName,
CreateBucketConfiguration: {
LocationConstraint: 'us-standard'
},
}).promise()
.then((() => {
console.log(`Bucket: ${bucketName} created!`);
}))
.catch((e) => {
console.error(`ERROR: ${e.code} - ${e.message}\n`);
});
}
def create_bucket(bucket_name):
print("Creating new bucket: {0}".format(bucket_name))
try:
cos.Bucket(bucket_name).create(
CreateBucketConfiguration={
"LocationConstraint":COS_BUCKET_LOCATION
}
)
print("Bucket: {0} created!".format(bucket_name))
except ClientError as be:
print("CLIENT ERROR: {0}\n".format(be))
except Exception as e:
print("Unable to create bucket: {0}".format(e))
func main() {
// Create client
sess := session.Must(session.NewSession())
client := s3.New(sess, conf)
// Bucket Names
newBucket := "<NEW_BUCKET_NAME>"
input := &s3.CreateBucketInput{
Bucket: aws.String(newBucket),
CreateBucketConfiguration: &s3.CreateBucketConfiguration{
LocationConstraint: aws.String("us-cold"),
},
}
client.CreateBucket(input)
d, _ := client.ListBuckets(&s3.ListBucketsInput{})
fmt.Println(d)
}
curl -X "PUT" "https://(endpoint)/(bucket-name)"
-H "Content-Type: text/plain; charset=utf-8"
-H "Authorization: Bearer (token)"
-H "ibm-service-instance-id: (resource-instance-id)"
-d "<CreateBucketConfiguration>
<LocationConstraint>(provisioning-code)</LocationConstraint>
</CreateBucketConfiguration>"
버킷이 작성되면 버킷의 스토리지 클래스를 변경할 수 없습니다. 오브젝트를 재분류해야 하는 경우 원하는 스토리지 클래스의 다른 버킷으로 데이터를 이동해야 합니다.