本記事の概要
IBM Cloud Object Storage(ICOS)は、IBM Cloudが提供するオブジェクトストレージサービスです。
IBM Cloud Object Storageでは、格納されたオブジェクトの履歴を管理することが可能ですが、その履歴は削除しない限り残り続け、運用を続けるとストレージの利用量増加に繋がります。そのため、古くなって利用しなくなった過去バージョンのオブジェクトは削除することが望ましいです。
本記事では、IBM Cloud Object Storageのバケットに対して、バージョン管理に加えて、オブジェクトの有効期限を設定することで、過去のバージョンを自動的に削除する仕組みをご紹介します。
IBM Cloud Object Storageのバケット作成と設定
※ICOSのインスタンスは作成済みの前提です。
ICOSのインスタンスの画面で「バケットの作成」ボタンをクリックします。
バケットの作成画面を下にスクロールすると、「オブジェクト・バージョン管理」の項目があるため、これを「有効」に設定します。
さらに下にスクロールして、「有効期限」の「追加+」をクリックします。
「有効期限ルールの追加」ダイアログが表示されるので、「有効期限ルール」を「有効」に設定します。現行バージョンの有効期限を設定することもできますが、今回は過去バージョン(非現行バージョン)の履歴を自動削除したいので、「非現行バージョンの有効期限」の「有効期限までの日数」を設定します。ここでは1日を設定してみます。
「有効期限ルールの追加」ダイアログの「拡張」タブをクリックすると、ルールの適用対象を設定できるようになります。「単純」タブではバケット内の一律の設定でしたが、「拡張」タブではオブジェクトの名前に特定の接頭部を持つもののみに対して有効期限ルールを設定できます(今回は使用しません)。
「単純」タブで「非現行バージョンの有効期限」を1日に設定して「保存」ボタンをクリックすると、以下の画面の状態になります。ルールIDは自動設定されます。
設定結果の検証
それでは設定した内容を検証してみます。試しにtest1.txt
という適当なファイルを作成し、先ほど作成したバケットにアップロードします。バージョンが1つのみで、「現行バージョン」と表示されています。
test1.txt
を編集・アップロードを2回実施した結果の画面です。「現行バージョン」以外の2つのバージョンが存在しています。
test1.txt
のアップロードから1日以上が経過すると、以下の状態になりました。12バイトの現行バージョンのみが残っており、過去の2つのバージョンは削除されています。
なお、ドキュメントにも記載がありますが、有効期限が経過してすぐに削除されるわけではありません。有効期限はUTCの0時基準で丸められて評価され、期限切れと評価されてから24時間以内を目処に削除されるようです。