このトピックでは、レプリケーション(クロスリージョンレプリケーションおよび同一リージョンレプリケーションを含む)がバージョン管理、ライフサイクルルール、サーバ側暗号化、および保持ポリシーとどのように相互作用するかについて説明します。
バージョン管理を伴うレプリケーション
バージョン管理とレプリケーションを併用する場合、以下の制限事項が適用されます。
レプリケーションは、バージョン管理の状態が同じ 2 つのバケット間でのみ有効化できます。ソースバケットと送信先バケットの両方でバージョン管理を有効にするか、または両方で無効にする必要があります。レプリケーションがアクティブな間は、いずれのバケットのバージョン管理状態も変更できません。
レプリケーション中に、ソースバケットまたは送信先バケットのバージョン管理を一時停止することはできません。バージョン管理を一時停止するには、まずレプリケーションルールを削除する必要があります。
バージョン管理が有効なソースバケットからオブジェクトを削除すると、以下のシナリオが発生する可能性があります。
削除リクエストの種類 | レプリケーションポリシー | 結果 |
バージョン ID を指定しない削除リクエスト | 追加および変更の同期 | OSS はソースバケットに削除マーカーを作成し、それを送信先バケットにレプリケートします。 |
追加、削除、および変更の同期 | ||
バージョン ID を指定した削除リクエスト | 追加および変更の同期 | 指定されたバージョンはソースバケットからのみ削除されます。送信先バケットにはオブジェクトが保持されます。 |
追加、削除、および変更の同期 | 指定されたバージョンはソースバケットおよび送信先バケットの両方から削除されます。 |
ライフサイクルルールとの併用
バージョン管理とレプリケーションを併用すると、送信先バケットに複数の非現在バージョンが作成され、ストレージコストが増加する可能性があります。ストレージコストを削減するには、ライフサイクルルールを使用してカスタムのデータ保持ポリシーを定義できます。
ライフサイクルルールとレプリケーションを併用する場合は、以下の点にご注意ください。
レプリケーションにより、ソースバケットのライフサイクルルールの効果は送信先バケットに伝達されますが、ルール自体は伝達されません。送信先バケットにも同じルールを適用するには、そのバケット上で別途設定する必要があります。
送信先バケット内のレプリケートされたオブジェクトは、レプリケーション時刻ではなく、元のオブジェクトの作成時刻を保持します。
レプリケーション中にライフサイクルルールによってソースバケット内のオブジェクトが削除された場合でも、レプリケーションプロセスは完了する可能性があります。この場合、レプリケートされたオブジェクトは送信先バケットに残ります。
バージョン管理が有効なバケットに対してクロスリージョンレプリケーションを使用する場合、ソースバケットの削除マーカーが送信先バケットにレプリケートされます。これにより、送信先バケットでは削除マーカーがオブジェクトの現在バージョンとなり、以前の現在バージョンは非現在バージョンになります。送信先バケットに非現在バージョンをクリーンアップするライフサイクルルール(たとえば、1 日後に削除するなど)が設定されている場合、ルールの条件が満たされるとオブジェクトは完全に削除されます。そのため、送信先バケットでの意図しないデータ損失を防ぐため、非現在バージョンをクリーンアップするライフサイクルルールは慎重に構成してください。
サーバ側暗号化との併用
レプリケーションは、暗号化されていないオブジェクトおよび SSE-KMS(KMS 管理キー)または SSE-OSS(OSS 管理キー)を使用して暗号化されたオブジェクトをサポートしています。詳細については、「サーバ側暗号化」をご参照ください。
SSE-KMS を使用する場合、暗号鍵は CMK ID を指定するかどうかによって異なります。
CMK ID を指定しない場合、KMS が管理するデフォルトの CMK ID が暗号化および復号に使用されます。
CMK ID を指定する場合、指定された CMK ID が暗号化および復号に使用されます。
サーバ側暗号化とレプリケーションを併用する場合、以下のいずれかのシナリオが発生します。
ソースオブジェクトの暗号化 | 送信先バケットの暗号化 | レプリケーションルールの構成 | 送信先オブジェクトの暗号化 | 説明 |
暗号化なし | 暗号化なし | - | 暗号化なし | 送信先バケットの暗号化方法に基づきます。 |
SSE-OSS | SSE-OSS | |||
SSE-KMS(CMK ID なし) | SSE-KMS(CMK ID なし) | |||
SSE-KMS(CMK ID1 指定) | CMK ID 未設定 | SSE-KMS(CMK ID1 指定) | レプリケーションルールに指定された CMK ID が優先されます。 | |
CMK ID2 設定 | SSE-KMS(CMK ID2 指定) | |||
SSE-OSS | - | - | SSE-OSS | ソースオブジェクトの暗号化方法に基づきます。 |
SSE-KMS | - | KMS 暗号化オブジェクトをレプリケートしない | レプリケートされません | レプリケーションルールの構成に基づきます。 |
CMK ID 設定 | 指定された CMK ID を使用した SSE-KMS |
保持ポリシーとの併用
バケットの保持ポリシー(WORM)がロック済みの場合、バケット内にオブジェクトをアップロードおよび読み取りできますが、保持期間が有効期限切れになるまでオブジェクトを変更(上書き)または削除することはできません。
この機能の詳細については、「保持ポリシー」をご参照ください。
保持ポリシーとレプリケーションを併用する場合、以下のいずれかのシナリオが発生します。
ソースの WORM 保護 | ソースバケットでの操作 | 送信先の WORM 保護 | 操作のレプリケーション |
なし | オブジェクトの追加 | はい | なし |
オブジェクトの上書き | はい | なし | |
オブジェクトの削除 | はい | なし | |
なし | オブジェクトの追加 | なし | はい |
オブジェクトの上書き | なし | はい | |
オブジェクトの削除 | なし | はい | |
はい | オブジェクトの追加 | 該当なし | はい |