IBM Cloud Docs
ストレージ・クラスの使用

ストレージ・クラスの使用

すべてのデータがアクティブなワークロードに送られるわけではありません。 保存データは長期間アクセスされないままになることがあります。 あまりアクティブでないワークロード用に、異なるストレージ・クラスを使用するバケットを作成できます。 それらのバケットに保管されるオブジェクトは、標準ストレージとは異なるスケジュールで課金されます。

この機能は現在、 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>"

バケットがいったん作成されると、そのバケットのストレージ・クラスを変更することはできません。 オブジェクトを再分類する必要がある場合は、ご希望のストレージ・クラスが設定された別のバケットにデータを移動する必要があります。