オブジェクト・ストレージ・レプリケーション
バケット間でのオブジェクト・ストレージ・オブジェクトのレプリケーションを管理する方法について学習します。
レプリケーションは、地域の停止からの保護、障害回復における支援、およびデータ冗長性のコンプライアンス要件への対処を提供します。ユーザー・アクセスに近い地域の場所で複数のデータのコピーを保持すると、レイテンシを減らすこともできます。
オブジェクト・ストレージのレプリケーションを有効にするには、レプリケーションの宛先であるリージョンおよびバケットを識別するレプリケーション・ポリシーをソース・バケットに作成する必要があります。レプリケーション・ポリシーを作成すると、宛先バケットは読取り専用になり、ソース・バケットからのレプリケーションによってのみ更新されます。ポリシー作成後にソース・バケットにアップロードされたオブジェクトは、宛先バケットに非同期でレプリケートされます。ポリシー作成後にソース・バケットから削除されたオブジェクトは、宛先バケットから自動的に削除されます。ポリシー作成前にソース・バケットにアップロードされたオブジェクトはレプリケートされません。
レプリケーションにより、宛先バケットにあるオブジェクトで、ソース・バケットのオブジェクトと同じ名前のものが上書きされます。レプリケート・オブジェクトは、ソース・バケット内のオブジェクトと同じ名前、メタデータ、ETagおよびMD5値を持ちます。作成タイムスタンプ、変更タイムスタンプおよびアーカイブ状態は異なる可能性があるため、これらの属性はソースからレプリケートされません。
レプリケーション・タスク
次のレプリケーション・タスクを実行できます:
必須IAMポリシー
Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。
ユーザー権限
レプリケーションを構成するときは、ソース・バケットと宛先バケットの両方に対して必要なアクセス権を持っている必要があります。ソース・バケットおよび宛先バケット内のオブジェクトを管理する権限も必要です。
管理者の場合:
-
指定したIAMグループで、テナンシのすべてのコンパートメント内のオブジェクト・ストレージのネームスペース、バケット、およびそれらに関連付けられたオブジェクトを管理するポリシーを作成できます。たとえば、StorageAdminsグループがテナンシのオブジェクト・ストレージ・サービス・リソースに対してすべての操作を実行できるようにする単純なユーザー・アクセス・ポリシーを次に示します:
Allow group StorageAdmins to manage object-family in tenancy
-
または、アクセスの範囲を狭くするポリシーを作成できます。たとえば、StorageAdminsグループがテナンシの"ObjectStore"というコンパートメント内のバケットとオブジェクトを管理できるようにポリシーを作成できます:
Allow group StorageAdmins to manage buckets in compartment ObjectStore Allow group StorageAdmins to manage objects in compartment ObjectStore
ポリシーを記述するための他の代替手段の詳細は、オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細を参照してください。
サービス権限
オブジェクト・ストレージはリージョナル・サービスであるため、代理でレプリケーションを実行する各リージョンのオブジェクト・ストレージ・サービスを認可する必要があります。たとえば、オブジェクト・ストレージ・サービスをリージョン米国東部(アッシュバーン)で認可して、代理でオブジェクトを管理できます。オブジェクト・ストレージ・サービスを認可すると、米国東部(アッシュバーン)のバケット内のオブジェクトを別のリージョンのバケットにレプリケートできます。
Oracle Cloud Infrastructureリージョンのリージョン識別子の値を決定するには、リージョンおよび可用性ドメインを参照してください。
管理者の場合:
レプリケーションを有効にするには、代理でオブジェクトを管理するサービスを認可する必要があります:
-
たとえば、次に示すのは、オブジェクト・ストレージ・サービスが米国西部(フェニックス)リージョンのテナンシ内のリソースに対して、すべての操作を実行できるようにするサービス・アクセス・ポリシーです:
Allow service objectstorage-us-phoenix-1 to manage object-family in tenancy
-
または、アクセスの範囲を狭くするポリシーを作成できます。たとえば、オブジェクト・ストレージ・サービスが、米国西部(フェニックス)リージョン内の"ObjectStore"というコンパートメント内のリソースに対して、すべての操作を実行できるようにするポリシーを作成できます:
Allow service objectstorage-us-phoenix-1 to manage object-family in compartment ObjectStore
- レプリケーションに必要な個々の権限を付与する、より限定的なポリシーを作成することもできます。例:
Allow service objectstorage-us-phoenix-1 to manage object-family in compartment ObjectStore where any {request.permission='BUCKET_READ', request.permission='BUCKET_UPDATE', request.permission='OBJECT_READ', request.permission='OBJECT_INSPECT', request.permission='OBJECT_CREATE', request.permission='OBJECT_OVERWRITE', request.permission='OBJECT_RESTORE', request.permission='OBJECT_DELETE'}
範囲および制約
-
レプリケーション・ポリシーの作成では、宛先バケットは自動的に作成されません。ソース・バケットにレプリケーション・ポリシーを作成する前に、宛先バケットを作成します。
-
ソース・バケットまたは宛先バケットは、標準(オブジェクト・ストレージ)またはアーカイブ・ストレージ層に含めることができます。
-
ソース・バケットごとに最大1つのレプリケーション・ポリシー。
-
レプリケーション宛先バケットごとに最大1つのソース。
-
レプリケーション・ソース・バケットごとに最大1つの宛先。
-
宛先バケットはレプリケーション・ソースになることはできません。連鎖レプリケーションはサポートされていません。
-
レプリケーション・ポリシーを作成すると、宛先バケットは読取り専用になり、ソース・バケットからのレプリケーションによってのみ更新されます。ソース・バケットにアップロードされたオブジェクトは、宛先バケットに自動的にレプリケートされます。ソース・バケットから削除されたオブジェクトは、宛先バケットから自動的に削除されます。
-
レプリケーションを停止してバケットを再度書込み可能にしないかぎり、レプリケーション宛先バケットは削除できません。
-
現在、レプリケーション・メトリックはコンソールで使用できません。
レプリケーションとその他のオブジェクト・ストレージ機能間の相互作用
この項では、レプリケーションとその他のオブジェクト・ストレージ機能との相互作用について理解する必要がある重要な事項について説明します。
ライフサイクル管理
レプリケーションをオブジェクトのアーカイブおよび削除を管理するライフサイクル管理ポリシーと組み合せることができます。ただし、ライフサイクル・ポリシーでは、レプリケーション宛先バケットの読取り専用プロパティを受け入れる必要があります。レプリケーション宛先バケットからオブジェクトを削除するライフサイクル・ポリシーが機能しません。実装するあらゆる組合せのレプリケーションとライフサイクル・ポリシーを注意深く確認してテストします。
次に、ポリシーの組合せによってメリットが得られる例を示します:
-
特定のファイル拡張子を持つオブジェクトを指定した日数の経過後に削除するライフサイクル・ポリシーをソース上に作成できます。削除の結果は、レプリケーション宛先にも反映されます。
-
指定した日数の経過後にオブジェクトをアーカイブするライフサイクル・ポリシーを宛先に作成できます。それらのオブジェクトに直接アクセスする必要がない場合は、ストレージ・コストの削減でメリットを得られます。
独自のキーを使用したサーバー側暗号化
レプリケーションでは、SSE-Cキーで暗号化されたオブジェクトをレプリケートすることはできません。詳細は、サーバー側暗号化のための独自キーの使用を参照してください。
レプリケーションの停止
レプリケーション・ソースまたは宛先のいずれかのレプリケーションを停止できます。
-
ソースからレプリケーションを停止するには、レプリケーション・ポリシーを削除します。レプリケーション・ポリシーの削除は永続的です。削除したポリシーはリカバリできません。そのターゲット宛先に再度レプリケートするには、新しいポリシーを作成します。
-
宛先からレプリケーションを停止するには、宛先バケットを再度書き込み可能にします。バケットを書込み可能にすると、宛先バケットはソースからのレプリケーション・リクエストを受け入れません。ソースのレプリケーションのステータスが、アクティブからクライアント・エラー状態に変わります。この宛先をターゲットのレプリケーション宛先に再度する場合は、ソース・バケットのポリシーを削除し、新しいポリシーを作成します。