Oracle Cloud Infrastructure(以下、OCI)オブジェクトストレージには、バケット内のオブジェクトの管理を自動化するライフサイクルポリシー という便利な機能があります。
本記事では、OCIオブジェクトストレージの ライフサイクルポリシー を利用して、バケット内のオブジェクトを管理する方法を紹介します。
ライフサイクルポリシーとは
OCI オブジェクトストレージは、非構造化データ(テキスト、画像、動画、ログデータなど)などを手軽に保存できる便利なサービスです。
しかし、不要になったオブジェクトを放置すると、ストレージコストが増え続けるという課題があります。
ライフサイクルポリシー機能は、オブジェクトの作成(または最終更新)からの経過日数を条件に、自動的にアクションを実行する仕組みです。
OCI オブジェクトストレージでは、以下のようなアクションを定義できます。
- オブジェクトの削除
- ストレージ層の変更(標準層 → アーカイブ層 など)
- プレフィックス、オブジェクト名のパターンによるフィルタリング
一度設定すれば、人手を介さず自動的に処理されます。
ライフサイクルポリシーを利用し、一定期間後に不要になオブジェクトを、標準層よりコストが安いアーカイブ層に移動、または削除を自動化することで、ストレージコストと運用コストを同時に削減できます。
今回のライフサイクルポリシー検証内容
今回の検証では、以下2パターンのライフサイクルポリシーを設定し、動作を確認します。
| ライフサイクルポリシー名 | ライフサイクル・アクション | 日数 | オブジェクトフィルタ |
|---|---|---|---|
| Lifecycle_rule_test_delete | 削除 | 1日 | オブジェクト名に「*.txt」を含む |
| Lifecycle_rule_test_archive | アーカイブに移行 | 1日 | オブジェクト名に「*.log」を含む |
検証用のバケット情報は以下の通り。
| 項目 | 内容 |
|---|---|
| バケット名 | Lifecycle_test |
| コンパートメント | costsavetest |
バケット内には、テスト用オブジェクトが格納されています。これらのオブジェクトをライフサイクルポリシーによってアーカイブ層へ移動、および削除できるか確認します。

ライフサイクルポリシー用IAM ポリシー作成
ライフサイクルポリシーを実行するには、オブジェクトストレージサービスがオブジェクトを管理する権限が必要になるため、次の手順でIAMポリシーを作成します。
- [アイデンティティとセキュリティ] → [ポリシー] を選択する。

- [ポリシーの作成]をクリックする。

- ポリシーの作成画面で以下の項目を設定する。

- リソース・ポリシービルダー欄は、[手動エディタの表示]をクリックする。以下のポリシーを入力の上[作成]をクリックする。このポリシーによって、ライフサイクルポリシーでコンパートメント"costsavetest"にあるオブジェクトストレージ(東京リージョン)のオブジェクトを操作可能になる。
Allow service objectstorage-ap-tokyo-1 to manage object-family in compartment costsavetest

ライフサイクルポリシー作成
ポリシーを作成したら、ライフサイクルポリシーを作成します。
- OCI コンソールから、「ストレージ」 →「バケット」をクリックする。

- ライフサイクルポリシーを設定するバケット"Lifecycle_test"をクリックする。

- 「ポリシー」 → ライフ・サイクルポリシー・ルール欄の「ルールの作成」をクリックする。

- 削除用ポリシー"Lifecycle_rule_test_delete"を、以下の通り設定する。

- 「フィルタの追加」をクリックし、フィルタ・タイプとフィルタ値を以下の通り設定し、「ルールの作成」をクリックする。

- 削除用ポリシー"Lifecycle_rule_test_delete"が作成されたことを確認する。

- 再度、「ルールの作成」 をクリックし、アーカイブ移動用のポリシー"Lifecycle_rule_test_archive"を以下の通り作成する。

- アーカイブ用ポリシー"Lifecycle_rule_test_archive"が作成されたことを確認する。

ライフサイクルポリシー動作確認
1日以上経過後、バケット内のオブジェクト一覧を確認し、ライフサイクルポリシーに従ってオブジェクトが移動、削除されているか確認します。
- OCI コンソールから、「ストレージ」 →「バケット」をクリックする。

- バケット"Lifecycle_test"をクリックする。

- "Lifecycle_test"バケットの「オブジェクト」を開く。

- ライフサイクルポリシーにより、以下のようにオブジェクトが処理されていることを確認する。
test.txtの削除test.logがアーカイブ層に移動
おわりに
オブジェクトストレージのストレージコストは比較的安価ですが、容量が大きくなるにつれてコストも比例して大きくなるため、オブジェクトの運用はとても重要です。
ライフサイクルポリシー設定は、OCIコンソールから簡単に設定できて、保存コストと運用コストを両方削減できる、とても便利な機能だと感じました。
ライフサイクルポリシーについてさらに詳しく知りたい場合は、以下の公式ページをご覧ください。 オブジェクト・ストレージ・オブジェクト・ライフサイクル管理
坂本 典久(日本ビジネスシステムズ株式会社)
クラウドソリューション事業本部所属。 SQL ServerやPostgreSQLなどのデータベース設計・構築、Azureなどのクラウドを中心としたシステムの設計・構築に携わっています。
担当記事一覧