{OCI オブジェクト・ストレージ} レプリケーション

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

https://xn--w8j8bac3czf5bl7e.com/2023/04/24/oci-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%BB%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8-%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB%E3%83%BB%E3%83%9D/

レプリケーション・ポリシーを作成すると、宛先バケットは読取り専用になり、ソース・バケットからのレプリケーションによってのみ更新されます。

ポリシー作成後にソース・バケットから削除されたオブジェクトは、宛先バケットから自動的に削除されます。


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