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

Object Storage Service:レプリケーション

最終更新日:Dec 05, 2024

replicationコマンドを実行して、データレプリケーションルールを管理できます。 データレプリケーションルールは、クロスリージョンレプリケーション (CRR) ルールと同一リージョンレプリケーション (SRR) ルールに分類されます。 データレプリケーションルールを設定した後、Object Storage Service (OSS) は、データレプリケーションルールに基づいて、ソースバケット内のオブジェクトを同じリージョンまたは別のリージョンにあるターゲットバケットにレプリケートします。

使用上の注意

  • データレプリケーションルールを作成するか、バケットのレプリケーション時間制御 (RTC) を有効にするには、oss:PutBucketReplication権限が必要です。 バケットのデータレプリケーションルールを照会するには、oss:GetBucketReplication権限が必要です。 バケットのデータレプリケーションルールを削除するには、oss:DeleteBucketReplication権限が必要です。 バケットで実行されるデータレプリケーションタスクのデータレプリケーションの進行状況を照会するには、oss:GetBucketReplicationProgress権限が必要です。 データをレプリケートできるバケットのリージョンを照会するには、oss:GetBucketReplicationLocation権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

  • ossutil 1.6.16以降の場合、コマンドラインでossutilをバイナリ名として直接使用できます。 オペレーティングシステムに基づいてバイナリ名を更新する必要はありません。 1.6.16より前のossutilの場合、オペレーティングシステムに基づいてバイナリ名を更新する必要があります。 詳細は、「ossutilコマンドリファレンス」をご参照ください。

データ複製ルールの追加

データレプリケーションルールを使用すると、ソースバケットから1つ以上の宛先バケットにデータをレプリケートできます。 1つのバケットに最大100個のデータレプリケーションルールを設定できます。 データレプリケーションの詳細については、「CRRの概要」をご参照ください。

データレプリケーションルールを追加するには、まずローカルファイルを作成し、ファイルに追加するデータレプリケーションルールを指定する必要があります。 次に、データレプリケーションルールをソースバケットに追加します。

  • コマンド構文

    ossutil replication --method put oss://bucketname local_xml_file

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    説明

    bucketname

    データレプリケーションルールを作成するバケットの名前。

    local_xml_ファイル

    データレプリケーションルールが格納されているローカルファイルの名前。 例: localfile.xml

    詳細については、「PutBucketReplication」をご参照ください。

    1. ローカルコンピューターにlocalfile.xmlという名前のファイルを作成し、ビジネス要件に基づいてファイル内のデータレプリケーションルールを設定します。

      次のコードは、データレプリケーションルールを設定する方法の例を示しています。 このルールを使用すると、ソースバケット内のsrcdirプレフィックスを名前に含むオブジェクトに対して実行された作成および変更操作を、中国 (杭州) リージョンにあるdestbucketという名前の宛先バケットにレプリケートできます。 さらに、このルールは、転送アクセラレーションを有効にし、履歴データを宛先バケットにレプリケートすることも指定します。

       <?xml version="1.0" encoding="UTF-8"?>
       <ReplicationConfiguration>
          <Rule>
               <PrefixSet>
                   <Prefix>srcdir</Prefix>             
               </PrefixSet>
               <Action>PUT</Action>
               <Destination>
                   <Bucket>destbucket</Bucket>
                   <Location>oss-cn-hangzhou</Location>
                   <TransferType>oss_acc</TransferType>
               </Destination>
               <HistoricalObjectReplication>enabled</HistoricalObjectReplication>
          </Rule>
       </ReplicationConfiguration>
    2. srcbucketという名前のソースバケットにデータレプリケーションルールを追加します。

      ossutil replication --method put oss://srcbucket localfile.xml
  • サンプル出力

    次の出力は、srcbucketバケットに対してデータレプリケーションルールが作成されたことを示します。

    0.856895(s) elapsed

RTCの有効化または無効化

説明

CRRタスクを設定するときに、レプリケーション時間制御 (RTC) を有効にできます。 既存のCRRタスクに対してRTCを有効にすることもできます。 RTCfor CRRタスクを有効にして、バケット内のすべてのオブジェクトをレプリケートしたり、特定のタグを持つオブジェクトやバケット内の特定のプレフィックスを含む名前のオブジェクトをレプリケートしたりできます。

  • コマンド構文

    ossutil replication --method put --item rtc oss://bucketname local_xml_file

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    説明

    bucketname

    RTCを有効または無効にするソースバケットの名前。

    local_xml_ファイル

    RTC設定を格納するローカルファイルの名前。 例: localfile.xml

    詳細については、「PutBucketReplication」をご参照ください。

    1. ローカルファイルを設定します。

      • RTCの有効化

        <?xml version="1.0" encoding="UTF-8"?>
        <ReplicationRule>
            <RTC>
                <Status>enabled</Status>
            </RTC>
            <ID>test-replication-id</ID>
        </ReplicationRule>
      • RTCを無効にする

        <?xml version="1.0" encoding="UTF-8"?>
        <ReplicationRule>
            <RTC>
                <Status>disabled</Status>
            </RTC>
            <ID>test-replication-id</ID>
        </ReplicationRule>
    2. srcbucketという名前のソースバケットのRTCを有効または無効にします。

      ossutil replication --method put --item rtc oss://srcbucket local.xml
  • サンプル出力

    0.856895(s) elapsed

バケットのデータレプリケーションルールの照会

  • コマンド構文

    ossutil replication --method get oss://bucketname
  • 次のコマンドを実行して、srcbucketバケットのデータレプリケーションルールを照会および表示できます。

    ossutil replication --method get oss://srcbucket

    次のサンプル出力は、srcbucketバケットのデータレプリケーションルールが照会されていることを示しています。

    <?xml version="1.0" encoding="UTF-8"?>
    <ReplicationConfiguration>
      <Rule>
        <ID>37417af4-f2dc-4b24-92d3-82092af6****</ID>
        <Action>ALL</Action>
        <Destination>
          <Bucket>destbucket</Bucket>
          <Location>oss-cn-beijing</Location>
        </Destination>
        <Status>doing</Status>
        <HistoricalObjectReplication>enabled</HistoricalObjectReplication>
      </Rule>
    </ReplicationConfiguration>
    
    
    0.069195(s) elapsed

データをレプリケートできるリージョンの照会

  • コマンド構文

    ossutil replication --method get --item location oss://bucketname
  • 次のコマンドを実行して、srcbucketバケット内のデータをレプリケートできるバケットのリージョンを照会できます。

    ossutil replication --method get --item location oss://srcbucket

    次のサンプル出力は、データをレプリケートできるバケットの領域が照会されることを示しています。

    <?xml version="1.0" ?>
    <ReplicationLocation>
      <Location>oss-cn-beijing</Location>
      <Location>oss-cn-qingdao</Location>
      <Location>oss-cn-shenzhen</Location>
      <Location>oss-cn-hongkong</Location>
      <Location>oss-us-west-1</Location>
      <LocationTransferTypeConstraint>
        <LocationTransferType>
          <Location>oss-cn-hongkong</Location>
            <TransferTypes>
              <Type>oss_acc</Type>          
            </TransferTypes>
          </LocationTransferType>
          <LocationTransferType>
            <Location>oss-us-west-1</Location>
            <TransferTypes>
              <Type>oss_acc</Type>
            </TransferTypes>
          </LocationTransferType>
        </LocationTransferTypeConstraint>
      </ReplicationLocation>
    
    0.226523(s) elapsed

バケットで実行されるデータ複製タスクの進行状況の照会

  • コマンド構文

    ossutil replication --method get --item progress oss://bucketname [ruleID]

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    説明

    bucketname

    データレプリケーションの進行状況を照会するバケットの名前。

    ruleID

    データレプリケーションルールのID。 ルールIDを指定すると、ルールに関連付けられたレプリケーションの進行状況が照会されます。 ルールIDを指定しない場合、バケットのすべてのデータレプリケーションルールに関連付けられているレプリケーションの進行状況が照会されます。 レプリケーションの進行状況は、画面にのみ表示できます。

  • 次のコマンドを実行して、srcbucketバケットの特定のデータレプリケーションルールに関連付けられたデータレプリケーションの進行状況を照会できます。

    ossutil replication --method get --item progress oss://srcbucket 37417af4-f2dc-4b24-92d3-82092af6****

    次のコマンドを実行して、srcbucketバケットのすべてのデータレプリケーション規則に関連付けられたデータレプリケーションの進行状況を照会できます。

    ossutil replication --method get --item progress oss://srcbucket

    次の出力が表示されている場合、データレプリケーションを有効にする前に、srcbucketバケットからdestbucketバケットへの履歴データのレプリケーションの進行状況が100% されます。 データレプリケーションを有効にすると、8月9日の06:00:59 (UTC + 8) より前にsrcbucketバケットに書き込まれたデータは、2021 destbucketという名前の宛先バケットにレプリケートされます。

    <?xml version="1.0" encoding="UTF-8"?>
    <ReplicationProgress>
      <Rule>
        <ID>37417af4-f2dc-4b24-92d3-82092af6****</ID>
        <Action>ALL</Action>
        <Destination>
          <Bucket>destbucket</Bucket>
          <Location>oss-cn-beijing</Location>
        </Destination>
        <Status>doing</Status>
        <HistoricalObjectReplication>enabled</HistoricalObjectReplication>
        <Progress>
          <HistoricalObject>1.00</HistoricalObject>
          <NewObject>2021-08-09T06:00:59.000Z</NewObject>
        </Progress>
      </Rule>
    </ReplicationProgress>
    
    
    0.125002(s) elapsed

データ複製ルールの削除

  • コマンド構文

    ossutil replication --method delete oss://bucketname ruleID
  • 次のコマンドを実行して、srcbucketバケットに設定されている特定のデータレプリケーションルールを削除します。

    ossutil replication --method delete oss://srcbucket 37417af4-f2dc-4b24-92d3-82092af6****

    次のサンプル出力は、指定されたデータレプリケーションルールが削除されたことを示しています。

    0.069195(s) elapsed

一般的なオプション

ossutilを使用して別のリージョンにあるバケットに切り替える場合は、-eオプションを追加して、バケットが配置されているリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、-iオプションを追加して指定されたアカウントのAccessKey IDを指定し、-kオプションを追加して指定されたアカウントのAccessKey secretを指定します。

たとえば、次のコマンドを実行して、中国 (上海) リージョンにあり、別のAlibaba Cloudアカウントが所有するtestbucketバケットのlocalfile.txtファイルにデータレプリケーションルールを作成できます。

ossutil replication --method put oss://testbucket localfile.txt -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

共通オプションの詳細については、「共通オプション」をご参照ください。