※このブログは2024年12月時点の情報に基づいて作成されているため、現在の状況と異なる可能性がございます。
こんにちは。s.nishimuraです。 Oracle Cloud Infrastructure Advent Calendar 2024のシリーズ3 Day25の記事です。 業務でバケットのライフサイクル・ポリシーを扱いましたので、 ライフサイクル・ポリシーの動作について注意したいポイントやコツを紹介していきます。
目次
バケットについて
オブジェクトストレージ内にバケットが用意されています。 バケットの中にはオブジェクト単位でフォルダやファイルが作成可能です。
バケットの種類について
バケットには3つの層が提供されています。 それぞれの層にはバケットのアクセス速度や料金体系が異なっており、 上位になるほどパフォーマンスが上がりますがその分コストも高くなります。 また、下位になるほどデータの取得に時間がかかりますがその分コストも安くなります。
層の種類 | 利用目的 | コスト |
---|---|---|
標準層 | データのアクセスが頻繁にある | 最高 |
頻度の低いアクセス層 | データアクセスが少ない | 安い |
アーカイブ層 | 変更がないデータを保管する | 最低 |
ライフサイクル・ポリシーについて
ライフサイクル・ポリシーを使用することで、オブジェクトの層の変更や削除を行うことができます。 また、バケット内のオブジェクトを自動管理するため、面倒なオブジェクトの管理やコストの管理を削減できます。
フィルターについて
ライフサイクル・ポリシーを動作させるにあたり、フィルター機能が提供されています。 以下3種類のフィルターを用いて、オブジェクトの操作を行います。 また、フィルターには優先度が用意されています。 ライフサイクル・ポリシーにフィルターを任意の順番で定義しても、下記の優先度によって処理が行われます。
フィルターの種類 | 優先度 |
---|---|
パターン除外 | 高 |
パターン包含 | 中 |
接頭辞包含 | 低 |
ライフサイクル・ポリシーの設定
ライフサイクル・ポリシーの動作例として、バケットを以下のような階層で構築します。
例1:上位のオブジェクトにフィルターを適用させない
バケットの中に任意のファイルを配置し、指定した日付後にオブジェクトの削除を行う処理を考えます。 例えば、Logフォルダの中にhoge.logファイルが毎日格納されるとします。 ファイルのみ削除処理を行う場合、ライフサイクルポリシーには以下のように設定します。
オブジェクト名フィルタ(オプション)
フィルタータイプ | フィルタ値 |
---|---|
パターン除外 | Log/ |
パターン包含 | Log/* |
ここで、ポイントです。
パターン除外のフィルタ値の末尾に「/」を入れてください。
理由として、オブジェクトを区切る文字が「/」であり、 Logフォルダまでをオブジェクトのフィルターの対象とするためです。
例2:下位のオブジェクトにフィルターを適用させたくない
Logフォルダの下にosフォルダがある場合、例1の場合ではosフォルダもフィルター対象になってしまいます。 osフォルダをフィルターから除外する場合には、「パターンで除外」を追加します。
オブジェクト名フィルタ(オプション)
フィルタータイプ | フィルタ値 |
---|---|
パターン除外 | Log/ |
パターン除外 | Log/os/ |
パターン包含 | Log/* |
例3:同じようなオブジェクト名に対して、一括操作を行う
バケットのオブジェクト名に同じようなものがある場合、 フィルターにグループ文字を扱うことでフィルターのルールを少なくすることができます。 例えば、Logフォルダ配下にサーバのホスト名やリソースの名前が含まれる場合、 グループ文字を使うことでフィルター一括りにできます。
Log/WB001
Log/WB002
Log/AP001
Log/AP002
Log/DB001
Log/DB002
オブジェクト名フィルタ(オプション)
フィルタータイプ | フィルタ値 |
---|---|
パターン除外 | Log/ |
パターン除外 | Log/[A-Z][A-Z][0-9][0-9][0-9]/ |
パターン包含 | Log/* |
さらに詳細なグループ文字のパターンについては、 オラクルの公式ドキュメントに記載がありますのでそちらを参照ください。 パターン一致を使用したオブジェクトのフィルタ処理
まとめ
今回はバケットのライフサイクル・ポリシー内のフィルター機能について紹介しました。 ライフサイクル・ポリシーによる自動化を設定することで、バケット内のデータ管理の運用負担を削減することができます。 このライフサイクル・ポリシーで重要なのは、フィルターの設定値に除外したいオブジェクト名の末尾に 「/(スラッシュ)」を入れることになります。
本記事が皆様の参考になれば幸いです。 最後まで読んでいただき、ありがとうございました。