https://docs.oracle.com/ja-jp/iaas/Content/Object/Tasks/usingreplication.htm
https://oracle-japan.github.io/ocitutorials/intermediates/object-storage-advanced/#3-%E3%83%AC%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E8%A8%AD%E5%AE%9A
レプリケーション・ポリシーを作成すると、宛先バケットは読取り専用になり、ソース・バケットからのレプリケーションによってのみ更新されます。
ポリシー作成後にソース・バケットから削除されたオブジェクトは、宛先バケットから自動的に削除されます。
IAD | us-ashburn-1
↓
NRT | ap-tokyo-1
-- 1. IAMポリシー設定
レプリケーションを使用するにはサービス権限をソース・リージョンと宛先リージョンに事前に付与する必要があります。
oci iam policy create \
--compartment-id ocid1.tenancy.oc1..000000000000000000000000000000000000000000000000000000000000 \
--description policy01 \
--name policy01 \
--statements '[
"Allow service objectstorage-us-ashburn-1 to manage object-family in compartment cmp01",
]'
oci iam policy create \
--compartment-id ocid1.tenancy.oc1..000000000000000000000000000000000000000000000000000000000000 \
--description policy02 \
--name policy02 \
--statements '[
"Allow service objectstorage-ap-tokyo-1 to manage object-family in compartment cmp01",
]'
-- 2. バケット作成
リージョンが異なれば、同じバケット名も使用可能
oci os bucket list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci os bucket create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--name bucket123 \
--auto-tiering Disabled \
--object-events-enabled false \
--public-access-type NoPublicAccess \
--storage-tier Standard \
--versioning Disabled
oci os bucket list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--region ap-tokyo-1
oci os bucket create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--name bucket123 \
--auto-tiering Disabled \
--object-events-enabled false \
--public-access-type NoPublicAccess \
--storage-tier Standard \
--versioning Disabled \
--region ap-tokyo-1
-- 3. レプリケーション・ポリシーの作成
oci os replication list-replication-policies \
--bucket-name bucket123
oci os replication create-replication-policy \
--bucket-name bucket123 \
--destination-region ap-tokyo-1 \
--destination-bucket bucket123 \
--name rep01
-- 4. テストオブジェクト作成
echo test11 > file11.txt
echo test12 > file12.txt
oci os object list \
--bucket-name bucket123
oci os object put \
--bucket-name bucket123 \
--file ./file11.txt \
--name file11.txt \
--content-type "text/plain"
oci os object put \
--bucket-name bucket123 \
--file ./file12.txt \
--name file12.txt \
--content-type "text/plain"
-- 5. オブジェクト作成時動作確認
oci os object list \
--bucket-name bucket123
oci os object list \
--bucket-name bucket123 \
--region ap-tokyo-1
3分程度でレプリケートされた
-- 6. テストオブジェクト削除
oci os object list \
--bucket-name bucket123
oci os object delete \
--bucket-name bucket123 \
--name file11.txt \
--force
-- 7. オブジェクト削除時動作確認
oci os object list \
--bucket-name bucket123
oci os object list \
--bucket-name bucket123 \
--region ap-tokyo-1
5分程度でレプリケートされた
-- 8. クリーンアップ
oci os bucket list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci os bucket delete \
--name bucket123 \
--empty \
--force
oci os bucket list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--region ap-tokyo-1
oci os bucket delete \
--name bucket123 \
--empty \
--force \
--region ap-tokyo-1