はじめに

みなさん、こんにちは。
Oracle Cloud Infrastructure検証チームです。

今回は
Oracle Cloud Infrastructure(OCI)のオブジェクト・ストレージ・サービスの
ライフサイクル・ポリシーとレプリケーション
について検証してみましたので、検証内容と結果をご紹介したいと思います。

OCI オブジェクト・ストレージの基本的な説明や使用方法などについては、こちらの記事をご参照下さい。

IAMポリシーの設定

検証の準備として、IAMポリシーの設定を行います。

オブジェクト・ストレージ・サービスのライフサイクル・ポリシーとレプリケーションでは、
ユーザーがバケットやオブジェクトを操作する権限を持つ以外に、ユーザーの代わりにオブジェクト・ストレージ・サービス自身がバケットやオブジェクトを操作する為のサービス権限を設定する必要があります。
このサービス権限は、リージョン毎に設定する必要があります。

今回は、東京リージョンと大阪リージョンのバケット間で、レプリケーションの検証を実施する為、東京リージョンと大阪リージョンへサービス権限を設定します

事前準備-IAMポリシーの設定

コンソール画面の左上のメニューから[アイデンティティとセキュリティ] – [ポリシー] の順でクリックし、画面を遷移させます。

[ポリシーの作成]ボタンをクリックします。

ポリシーの作成画面にて、以下の情報を入力または選択します。

  • 名前:objectstorage-policy
  • 説明:検証用
  • コンパートメント:<対象コンパートメント名>

ポリシー・ビルダーの[手動エディタの表示]スイッチをクリックし、ポリシーを入力します。

  • 東京リージョン用
    Allow service objectstorage-ap-tokyo-1 to manage object-family in compartment <対象コンパートメント名>
  • 大阪リージョン用
    Allow service objectstorage-ap-osaka-1 to manage object-family in compartment <対象コンパートメント名>

入力後、[作成]ボタンをクリックします。

これでサービス権限の設定は終了です。

ライフサイクル・ポリシー

では、ライフサイクル・ポリシーの検証をしていきます。

オブジェクト・ストレージのストレージ層は「標準」、「頻度の低いアクセス」、「アーカイブ」の3つの層に分かれていますが、
ライフサイクル・ポリシーを設定することにより、標準層にオブジェクトを保存して〇日経過したら、自動的にアーカイブ層へオブジェクトを移動させたり、
〇日経過したら自動的にオブジェクトを削除するといったことができます。

事前にデフォルト・ストレージ層が「標準」であるバケット:bucket01を作成しています。
bucket01に対して、ライフサイクル・ポリシーの設定をしていきます。

ライフサイクル・ポリシーの設定

コンソール画面から、[bucket01]をクリックし、バケットの詳細画面を表示します。

バケットの詳細画面の左下にあるリソース一覧から[ライフサイクル・ポリシー・ルール]をクリックします。

[ルールの作成]ボタンをクリックし、ライフサイクル・ポリシーのルールを作成していきます。

ライフサイクル・ルールの作成画面にて、ルールを作成します。

今回は検証として、2つのルールを作成します。
ルール1:指定日数(1日)経過後に標準層からアーカイブ層へ自動的にオブジェクトを移動する
ルール2:指定日数(1日)経過後に自動的にオブジェクトを削除する

以下項目を入力または選択します。

【ルール1】

  • 名前:ライフサイクル・ルール1
  • ターゲット:オブジェクト
  • ライフサイクル・アクション:「アーカイブ」に移行
  • 日数:1(日)
  • オブジェクト名フィルタ:オブジェクト名に[archive]の文字列が含まれる
  • 状態:有効


【ルール2】

  • 名前:ライフサイクル・ルール2
  • ターゲット:オブジェクト
  • ライフサイクル・アクション:削除
  • 日数:1(日)
  • オブジェクト名フィルタ:オブジェクト名に[delete]の文字列が含まれる
  • 状態:有効


入力または選択が完了したら、[作成]ボタンをクリックします。
作成したライフサイクル・ポリシー・ルールが一覧に表示されます。

これでルール作成は終了です。

ライフサイクル・ポリシーの検証

次に、バケットへオブジェクトをアップロードし、ルール通りにオブジェクトが移動または削除されることを確認してみます。
オブジェクト名に[archive]と[delete]が含まれるオブジェクト(テキストファイル)をアップロードし、指定日数が経過するまで待ちます。
指定日数経過後・・・

再度コンソールからbucket01のオブジェクト一覧を確認したところ、
作成したルール通り、[arvhive]testfile.txtのストレージ層が自動的に標準からアーカイブへ変更され、
[delete]testfile.txtは削除されていました。
これでライフサイクル・ポリシーの検証は終了です。

レプリケーション

レプリケーションの検証では、東京リージョンのバケット:bucket02から大阪リージョンのバケット:bucket03へオブジェクトをレプリケーションさせてみます。
まずは、東京リージョンと大阪リージョンへレプリケーションの為のバケットを作成します。

レプリケーションの事前準備-バケットの作成

リージョンの切替はコンソール画面上部からリージョンを選択することで変更できます。

東京リージョン:bucket02

大阪リージョン:bucket03

バケットの準備ができたら、レプリケーション元となる東京リージョンのbucket02にて、レプリケーション・ポリシーを作成します。

レプリケーションの設定

コンソール画面から、[bucket02]をクリックし、バケットの詳細画面を表示します。
バケットの詳細画面の左下にあるリソース一覧から[レプリケーション・ポリシー]をクリックします。

[ポリシーの作成]ボタンをクリックし、レプリケーション・ポリシーを作成していきます。

レプリケーション・ポリシーの作成画面にて、以下項目を入力または選択します。

  • 名前:replication-policy
  • 宛先リージョン:Japan Central (Osaka)
  • 宛先バケット:bucket03


入力または選択が完了したら、[作成]ボタンをクリックします。
作成したレプリケーション・ポリシーが一覧に表示されます。

これでポリシー作成は終了です。

レプリケーションの検証

次に、レプリケーション元のbucket02へオブジェクトをアップロードし、レプリケーション先のbucket03へオブジェクトがレプリケーションされるか確認してみます。
bucket02へオブジェクト(テキストファイル)をアップロードします。

次に、bucket03へオブジェクト(テキストファイル)がレプリケーションされているか確認してみます。

問題なく、オブジェクト(テキストファイル)がレプリケーションされていました。
レプリケーション・ポリシーが設定されていると宛先バケットであるbucket03は読取り専用となり、オブジェクトのアップロードや削除ができなくなります。

これでレプリケーションの検証は終了です。

おわりに

今回はOCI オブジェクト・ストレージのライフサイクル・ポリシーとレプリケーションについて、検証してみました。
ライフサイクル・ポリシーとレプリケーションの設定はコンソール上から簡単にできますので、皆様も是非ご活用下さい。

OCIに関して何かございましたら、お気軽に当社までお問合せください!

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!