Amazon S3 がレプリケートするもの - Amazon Simple Storage Service

Amazon S3 がレプリケートするもの

Amazon S3 は、レプリケーションに設定されているバケット内の特定のアイテムのみをレプリケートします。

レプリケーション設定でレプリケートされるものは何ですか?

デフォルトで、Simple Storage Service (Amazon S3) は以下をレプリケートします。

  • レプリケーション設定の追加後に作成されたオブジェクト。

  • 暗号化されていないオブジェクト

  • ユーザー提供のキー (SSE-C) を使用して暗号化されたオブジェクト、Amazon S3 マネージドキー (SSE-S3) の下で保管時に暗号化されたオブジェクト、および AWS Key Management Service (SSE-KMS) に保存されている KMS キーで暗号化されたオブジェクト。詳細については、「暗号化されたオブジェクトのレプリケート (SSE-C、SSE-S3、SSE-KMS、DSSE-KMS)」を参照してください。

  • レプリケート元オブジェクトからレプリカへのオブジェクトメタデータ。レプリカからレプリケート元オブジェクトへのメタデータのレプリケーションについては、Amazon S3 レプリカの変更同期によるメタデータ変更のレプリケートを参照してください。

  • バケット所有者がオブジェクトとアクセスコントロールリスト (ACL) の読み取り権限を持つ、レプリケート元バケットのオブジェクトのみをレプリケートします。

    リソース所有者の詳細については「Amazon S3 のバケットとオブジェクトの所有権」を参照してください。

  • レプリケート元バケットとレプリケート先バケットが同じアカウントによって所有されていない場合のレプリカの所有権の変更を Amazon S3 に指示しない限り、オブジェクト ACL は更新されます。

    詳細については、「レプリカ所有者の変更」を参照してください。

    Amazon S3 が 2 つの ACL を同期させるまでしばらく時間がかかる可能性があります。オーナーシップのこの変更は、バケットにレプリケーション設定を追加した後に作成されたオブジェクトにのみ適用されます。

  • オブジェクトタグ、存在する場合。

  • S3 オブジェクトロックの保持情報 (ある場合)。

    Amazon S3 で保持情報が適用されているオブジェクトをレプリケートすると、それらと同じ保持制御がレプリカに適用され、レプリケート先バケットに設定されているデフォルトの保持期間は上書きされます。レプリケート元バケット内のオブジェクトに保持制御が適用されておらず、デフォルトの保持期間が設定されているレプリケート先バケットにレプリケートすると、レプリケート先バケットのデフォルトの保持期間がオブジェクトのレプリカに適用されます。詳細については、「S3 オブジェクトロックの使用」を参照してください。

削除オペレーションがレプリケーションに与える影響

レプリケート元バケットからオブジェクトを削除すると、デフォルトで次のアクションが実行されます。

  • オブジェクトバージョン ID を指定せずに DELETE リクエストを行った場合、Amazon S3 は削除マーカーを追加します。Amazon S3 では、削除マーカーを次のように扱います。

    • 最新バージョンのレプリケーション設定を使用している (すなわち、レプリケーション設定ルールでFilter要素を指定している) 場合、Amazon S3 は削除マーカーをレプリケートしません。ただし、タグベース以外のルールには削除マーカーレプリケーションを追加できます。詳細については、「バケット間での削除マーカーのレプリケーション」を参照してください。

    • Filter要素を指定しない場合、Amazon S3 はレプリケーション設定がバージョン V1 であるとみなし、ユーザーアクションの結果として生じた削除マーカーをレプリケートします。ただし、ライフサイクルアクションによって Amazon S3 がオブジェクトを削除した場合、削除マーカーはレプリケート先のバケットにはレプリケートされません。

  • DELETE リクエストで削除するオブジェクトバージョン ID を指定した場合、Amazon S3 はレプリケート元バケット内のそのオブジェクトバージョンを削除します。しかし、レプリケート先バケット内でその削除をレプリケートすることはありません。これは、レプリケート先バケットからは、同じオブジェクトバージョンを削除しないことを意味します。これは悪意のある削除からデータを保護します。

レプリケーション設定でレプリケートされないものは何ですか?

デフォルトで、Simple Storage Service (Amazon S3) は以下をレプリケートしません。

  • 別のレプリケーションルールによって作成されたレプリカである、レプリケート元バケットのオブジェクト。例えば、バケット A がレプリケート元でバケット B がレプリケート先であるレプリケーションを設定するとします。ここで、バケット B をレプリケート元、バケット C をレプリケート先とする別のレプリケーション設定を追加したとします。この場合、バケット A のオブジェクトのレプリカであるバケット B のオブジェクトは、バケット C にレプリケートされません。

    レプリカであるオブジェクトをレプリケートするには、バッチレプリケーションを使用します。バッチレプリケーションの設定の詳細については、「既存のオブジェクトのレプリケーション」を参照してください。

  • 既に別のレプリケート先にレプリケートされている、レプリケート元バケット内のオブジェクト。例えば、既存のレプリケーション設定でレプリケート先バケットを変更した場合、Simple Storage Service (Amazon S3) がそのオブジェクトを再度レプリケートすることはありません。

    以前にレプリケートされたオブジェクトをレプリケートするには、バッチレプリケーションを使用します。バッチレプリケーションの設定の詳細については、「既存のオブジェクトのレプリケーション」を参照してください。

  • バッチレプリケーションでは、レプリケート先バケットからオブジェクトのバージョン ID で削除されたオブジェクトの再レプリケーションはサポートされません。これらのオブジェクトを再レプリケートするには、バッチコピージョブを使用してソースオブジェクトを所定の場所でコピーします。これらのオブジェクトを所定の場所でコピーすると、レプリケート元バケットにオブジェクトの新しいバージョンが作成され、レプリケート先へのレプリケーションが自動的に開始されます。バッチコピーの使用方法については、「バッチ操作を使用してオブジェクトをコピーする例」を参照してください。

  • デフォルトでは、異なる AWS アカウント からレプリケートする場合、レプリケート元バケットに追加された削除マーカーはレプリケートされません。

    削除マーカーの複製方法については、「バケット間での削除マーカーのレプリケーション」を参照してください。

  • S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive、S3 Intelligent-Tiering Archive Access、または S3 Intelligent-Tiering Deep Archive Access のストレージクラスまたはストレージ階層に保存されているオブジェクト。これらのオブジェクトは、復元して別のストレージクラスにコピーするまで複製できません。

    S3 Glacier Flexible Retrieval と S3 Glacier Deep Archive の詳細については、「ほとんどアクセスすることのないオブジェクトのストレージクラス」を参照してください。

    S3 Intelligent-Tiering の詳細については、「Amazon S3 Intelligent-Tiering」を参照してください。

  • バケット所有者が十分な許可を持っていないレプリケート元バケット内のオブジェクト。

    オブジェクト所有者がバケット所有者にアクセス許可を付与する方法の詳細については、「バケット所有者はフルコントロール権限を持ちながら、オブジェクトをアップロードするためのクロスアカウントアクセス許可を付与する」を参照してください。

  • バケットレベルのサブリソースの更新

    たとえば、ライフサイクル設定を変更したり、レプリケート元バケットに通知設定を追加した場合、これらの変更はレプリケート先バケットには適用されません。この機能により、レプリケート元バケットとレプリケート先バケットで異なる設定を指定できます。

  • ライフサイクル設定によって実行されたアクション。

    たとえば、ライフサイクル設定がレプリケート元バケットでのみ有効である場合、Amazon S3 は失効したオブジェクトに削除マーカーを作成しますが、その削除マーカーはレプリケートされません。同じライフサイクル設定をレプリケート元バケットとレプリケート先バケットの両方に適用する場合は、両方で同じライフサイクル設定を有効にします。ライフサイクル設定についての詳細は、オブジェクトのライフサイクルの管理 を参照してください。

  • ライブレプリケーションでタグベースのレプリケーションルールを使用する場合、PutObject オペレーションで一致するレプリケーションルールタグを新しいオブジェクトにタグ付けする必要があります。そうしないと、オブジェクトはレプリケートされません。PutObject オペレーション後にオブジェクトにタグが付けされると、それらのオブジェクトもレプリケートされません。

    PutObject オペレーション後にタグ付けされたオブジェクトをレプリケートするには、S3 バッチレプリケーションを使用する必要があります。バッチレプリケーションの詳細については、「既存のオブジェクトのレプリケーション」を参照してください。

バケットのデフォルトの暗号化がレプリケーションに与える影響

レプリケーション先バケットのデフォルトの暗号化を有効にすると、以下の暗号化動作が適用されます。

  • レプリケート元バケットのオブジェクトが暗号化されていない場合、レプリケート先バケットのレプリカオブジェクトはレプリケート先バケットのデフォルトの暗号化設定を使用して暗号化されます。そのため、レプリケート元のオブジェクトのエンティティタグ (ETag) はレプリカオブジェクトの ETag とは異なります。アプリケーションで ETag を使用している場合は、アプリケーションを更新して、この違いを反映する必要があります。

  • レプリケート元バケット内のオブジェクトが Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS)、または AWS KMS キーによる二層式サーバー側の暗号化 (DSSE-KMS) を使用して暗号化されている場合、レプリケート先バケットのレプリカオブジェクトは、レプリケート元オブジェクトと同じタイプの暗号化を使用します。レプリケート先バケットのデフォルトの暗号化設定は使用されません。