ストレージ・クラスの使用
すべてのデータがアクティブなワークロードに送られるわけではありません。 保存データは長期間アクセスされないままになることがあります。 あまりアクティブでないワークロード用に、異なるストレージ・クラスを使用するバケットを作成できます。 それらのバケットに保管されるオブジェクトは、標準ストレージとは異なるスケジュールで課金されます。
この機能は現在、 Object Storage for Satelliteではサポートされていません。 詳細はこちらをご覧ください。
クラスとは
以下の 4 つのストレージ・クラスから選択できます。
- Smart Tier は、どのワークロード (特に、アクセス・パターンが不明または予測が難しい動的ワークロード) にも使用できます。 Smart Tier は、月次使用パターンに基づいてデータを「ホット」、「クール」、および「コールド」の各層に分類することで、簡素化された価格設定構造と自動コスト最適化を提供します。 バケット内のすべてのデータは、適用可能な最低料金で請求されます。 しきい値オブジェクト・サイズや保管期間はなく、取得料金もありません。 この機能の詳細については、 請求トピック を参照してください。
- Standard - アクティブなワークロード用です。データの取得に料金はかかりません (ただし、操作要求そのものの費用は別です)。
- Vault - データへのアクセスが 1 カ月に 1 回のペースに満たないような、あまり頻繁にアクセスされないワークロード用です。データが読み取られるたびに追加の取得料金 ($/GB) が適用されます。 サービスには、使用頻度が低い、あまりアクティブでないデータ向けであるこのサービスの使用目的に合ったオブジェクト・サイズと保管期間に関する最小しきい値が含まれます。
- Cold Vault - データへのアクセスが 90 日以上おきのような、めったにアクセスされないワークロード用です。データが読み取られるたびに、より高額の追加の取得料金 ($/GB) が適用されます。 サービスには、使用頻度がかなり低い、非アクティブ・データ向けであるこのサービスの使用目的に合ったオブジェクト・サイズと保管期間に関する長めの最小しきい値が含まれます。
Flex は、動的ワークロード用の Smart Tier に置き換えられました。 Flex ユーザーは、既存の Flex バケット内のデータを引き続き管理できますが、新しい Flex バケットを作成することはできません。 既存のユーザーは、 ここ で価格設定情報を参照できます。
詳しくは、 料金表(ibm.com)を参照してください。
アクティブ ・ストレージ・クラスは、 1 つの料金プラン でのみ使用され、標準プラン・インスタンスでは使用できません。
異なるストレージ・クラスを使用するバケットの作成方法について詳しくは、API リファレンスを参照してください。
ストレージ・クラスごとに、インスタンス・レベルでのすべてのバケットにわたる集約された使用量に基づいて請求が行われます。 例えば、Smart Tier の場合、請求は、個々のバケットではなく、特定のインスタンス内のすべての Smart Tier バケットの使用量に基づいて行われます。
異なるストレージ・クラスを使用するバケットの作成方法
コンソールでバケットを作成する場合、ストレージ・クラスを選択できるメニューがあります。
バケットをプログラマチックに作成する場合、使用されるエンドポイントに対応する LocationConstraint
を指定する必要があります。 LocationConstraint
の有効なプロビジョニング・コードは、
です。 BR Sao パウロ br-sao-standard
/ br-sao-vault
/ br-sao-cold
/ br-sao-smart
US Geo 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 Geo ap-standard
/ ap-vault
/ ap-cold
/ ap-smart
AP 東京 jp-tok-standard
/ jp-tok-vault
/ jp-tok-cold
/ jp-tok-smart
AP 大阪 jp-osa-standard
/ jp-osa-vault
/ jp-osa-cold
/ jp-osa-smart
AP オーストラリア au-syd-standard
/ au-syd-vault
/ au-syd-cold
/ au-syd-smart
CA Toronto 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
ミラノ mil01-standard
/ mil01-vault
/ mil01-cold
/ mil01-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 に導入されました。 このページの先頭で言語 (curl、Java、JavaScript、Go、または Python) を選択すると、適切な COS SDK を使用する例が表示されます。
すべてのコード例で、さまざまなメソッドを呼び出すことができる 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>"
バケットがいったん作成されると、そのバケットのストレージ・クラスを変更することはできません。 オブジェクトを再分類する必要がある場合は、ご希望のストレージ・クラスが設定された別のバケットにデータを移動する必要があります。