すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ゾーン冗長ストレージバケットの作成

最終更新日:Jan 08, 2026

Object Storage Service (OSS) のゾーン冗長ストレージは、99.9999999999% (9が12個) のデータ耐久性を提供します。マルチゾーンをサポートするリージョンでは、OSS は同一リージョン内の異なるゾーンにデータの冗長コピーを保存します。このクロスゾーンでのデータ分散により、あるゾーンで障害が発生した場合でもデータアクセスが保証され、データセンターレベルのディザスタリカバリが実現します。

注意事項

  • ゾーン冗長ストレージをサポートするリージョン、データ耐久性、およびサービスの可用性の詳細については、ストレージの冗長性をご参照ください。

  • ローカル冗長ストレージに比べて、ゾーン冗長ストレージはストレージ料金が高くなります。 詳細については、「OSS の料金」をご参照ください。

  • ゾーン冗長ストレージを有効にした後、無効にすることはできません。

操作手順

OSS コンソールの利用

  1. OSS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで [バケットリスト] をクリックし、次に [バケットの作成] をクリックします。

  3. [バケットの作成] パネルで、冗長性[ゾーン冗長ストレージ (推奨)] に設定し、他のパラメーターを設定します。

    パラメーターの詳細については、バケットの作成をご参照ください。

Alibaba Cloud SDK の利用

次のコードは、一般的な SDK を使用してゾーン冗長ストレージバケットを作成する方法の例です。他の SDK のコード例については、SDK をご参照ください。

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        // バケットが配置されているリージョンのエンドポイントに yourEndpoint を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
        String endpoint = "yourEndpoint";
        // 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケット名を指定します。
        String bucketName = "examplebucket";
        // リソースグループ ID を指定します。リソースグループ ID を指定しない場合、バケットはデフォルトのリソースグループに追加されます。
        //String rsId = "rg-aek27tc****";
        // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。
        String region = "cn-hangzhou";
        
        // OSSClient インスタンスを作成します。
        // OSSClient インスタンスが不要になったら、shutdown メソッドを呼び出してリソースを解放します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // バケットを作成し、階層型名前空間機能を有効にします。
            CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName).withHnsStatus(HnsStatus.Enabled);
            // バケット作成時にストレージクラス、ACL、データ冗長化タイプを指定する場合は、次のコードをご参照ください。
            // 次のコードは、ストレージクラスを標準に設定する例です。
            createBucketRequest.setStorageClass(StorageClass.Standard);
            // デフォルトのデータ冗長化タイプは LRS で、DataRedundancyType.LRS として指定されます。データ冗長化タイプを ZRS に設定する場合は、値を DataRedundancyType.ZRS に設定します。
            createBucketRequest.setDataRedundancyType(DataRedundancyType.ZRS);
            // バケットの ACL を公開読み取りに設定します。デフォルトの ACL は非公開です。
            createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
            // リソースグループをサポートするリージョンでバケットを作成する場合、バケットをリソースグループに割り当てることができます。
            //createBucketRequest.setResourceGroupId(rsId);


            // バケットを作成します。
            ossClient.createBucket(createBucketRequest);
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
const OSS = require('ali-oss');

const client = new OSS({
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'yourregion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケットの名前を指定します。
  bucket: 'yourBucketName',
});

// バケットを作成します。
async function putBucket() {
  try {
    const options = {
      storageClass: 'Standard', // デフォルトでは、バケットのストレージクラスは標準です。バケットのストレージクラスをアーカイブに設定するには、storageClass を Archive に設定します。
      acl: 'private', // デフォルトでは、バケットのアクセス制御リスト (ACL) は非公開です。バケットの ACL を公開読み取りに設定するには、acl を public-read に設定します。
      dataRedundancyType: 'LRS' // デフォルトでは、バケットの冗長化タイプはローカル冗長ストレージ (LRS) です。バケットの冗長化タイプをゾーン冗長ストレージ (ZRS) に設定するには、dataRedundancyType を ZRS に設定します。
    }
    // バケットの名前を指定します。
    const result = await client.putBucket('examplebucket', options);
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}

putBucket();        
import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサを作成します。
parser = argparse.ArgumentParser(description="put bucket sample")
# --region コマンドライン引数を追加します。これはバケットが配置されているリージョンを指定します。この引数は必須です。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# --bucket コマンドライン引数を追加します。これはバケットの名前を指定します。この引数は必須です。
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# --endpoint コマンドライン引数を追加します。これは他のサービスが OSS にアクセスするために使用できるドメイン名を指定します。この引数はオプションです。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    args = parser.parse_args()  # コマンドライン引数を解析します。

    # ID 検証のために環境変数から認証情報を読み込みます。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を読み込み、認証情報プロバイダーを設定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    # 設定にリージョンを設定します。
    cfg.region = args.region
    # endpoint 引数が指定されている場合は、設定にエンドポイントを設定します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 設定された情報を使用して OSS クライアントを作成します。
    client = oss.Client(cfg)

    # バケットを作成するリクエストを送信します。ストレージクラスは標準です。
    result = client.put_bucket(oss.PutBucketRequest(
        bucket=args.bucket,
        create_bucket_configuration=oss.CreateBucketConfiguration(
            storage_class='Standard',
           data_redundancy_type='ZRS'
        )
    ))
    # リクエストが成功したかどうかを確認するために、リクエストのステータスコードとリクエスト ID を出力します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id}'
    )


if __name__ == "__main__":
    main()  # スクリプトのエントリポイント。ファイルが直接実行されると main 関数が呼び出されます。
using Aliyun.OSS;
using Aliyun.OSS.Common;

// バケットが配置されているリージョンのエンドポイントに yourEndpoint を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケット名を指定します。
var bucketName = "examplebucket";
// バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。
const string region = "cn-hangzhou";

// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();

// 署名バージョン V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;

// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
// バケットを作成します。
try
    {
        var request = new CreateBucketRequest(bucketName);
        // アクセス制御リスト (ACL) を公開読み取りに設定します。デフォルトの ACL は非公開です。
        request.ACL = CannedAccessControlList.PublicRead;
        // データディザスタリカバリタイプをゾーン冗長ストレージに設定します。
        request.DataRedundancyType = DataRedundancyType.ZRS;
        client.CreateBucket(request);
        Console.WriteLine("Create bucket succeeded");
    }
    catch (Exception ex)
    {
        Console.WriteLine("Create bucket failed. {0}", ex.Message);
    }
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* OSS アカウント情報を初期化します。*/
    
    /* バケットが配置されているリージョンのエンドポイントに yourEndpoint を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。*/
    std::string Endpoint = "yourEndpoint";
    
    /* バケットが配置されているリージョンに yourRegion を設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。*/
    std::string Region = "yourRegion";

    /* バケット名を指定します (例: examplebucket)。*/
    std::string BucketName = "examplebucket";

    /* ネットワークリソースを初期化します。*/
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* 環境変数からアクセス認証情報を取得します。このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* 新しいバケットの名前、ストレージクラス、および ACL を指定します。*/
    CreateBucketRequest request(BucketName, StorageClass::IA, CannedAccessControlList::PublicReadWrite);
    /* データ冗長化タイプをゾーン冗長ストレージに設定します。*/
    request.setDataRedundancyType(DataRedundancyType::ZRS);

    /* バケットを作成します。*/
    auto outcome = client.CreateBucket(request);

    if (!outcome.isSuccess()) {
        /* 例外を処理します。*/
        std::cout << "CreateBucket fail" <<
        ",code:" << outcome.error().Code() <<
        ",message:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /* ネットワークリソースを解放します。*/
    ShutdownSdk();
    return 0;
}
package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// コマンドライン引数を定義します。
var (
	region     string // バケットが配置されているリージョン。
	bucketName string // バケットの名前。
)

// コマンドライン引数の解析を初期化します。
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}

func main() {
	// コマンドライン引数を解析します。
	flag.Parse()

	// バケット名が空かどうかを確認します。
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// リージョンが空かどうかを確認します。
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// OSS クライアントを設定します。
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). // 環境変数を使用してアクセス認証情報を提供します。
		WithRegion(region)                                                                // リージョンを設定します。

	// OSS クライアントインスタンスを作成します。
	client := oss.NewClient(cfg)

	// バケットを作成するリクエストを構築します。
	request := &oss.PutBucketRequest{
		Bucket: oss.Ptr(bucketName), // バケット名を設定します。
		CreateBucketConfiguration: &oss.CreateBucketConfiguration{
			DataRedundancyType: oss.DataRedundancyZRS, // データ冗長化タイプを ZRS (ゾーン冗長ストレージ) に設定します。
		},
	}

	// バケットを作成するリクエストを送信します。
	result, err := client.PutBucket(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to put bucket: %v", err) // エラーを処理し、プログラムを停止します。
	}

	// バケット作成の結果を出力します。
	log.Printf("put bucket result: %#v\n", result)
}

ossutil の利用

ossutil を使用してゾーン冗長ストレージバケットを作成する方法の詳細については、put-bucket をご参照ください。

REST API の利用

プログラムに高度にカスタマイズされた要件がある場合は、REST API リクエストを直接送信できます。REST API リクエストを送信するには、手動でコードを記述して署名を計算する必要があります。詳細については、PutBucket をご参照ください。