#Azure Blob Storage のライフサイクルで出来ること
この度、仕事で Azure Blob Storage のライフサイクル機能を利用することになり、その際に調べた内容となります。
まずは、何事も公式のドキュメントを確認です。
Microsoft 社のドキュメントには以下のように記されています。
Azure Blob Storage アクセス層の自動化によるコストの最適化
・パフォーマンスを最適化するためにアクセスされた場合、BLOB をクールからホットに直ちに移行する
・コストを最適化するために、一定期間にわたってアクセスも変更もされていない場合、BLOB、BLOB のバージョン、BLOB のスナップショットをよりクールなストレージ層に移行する (ホットからクール、ホットからアーカイブ、またはクールからアーカイブ)
・ライフサイクルの最後に BLOB、BLOB のバージョン、BLOB のスナップショットを削除する
・ストレージ アカウント レベルで 1 日に 1 回実行されるようにルールを定義する
・コンテナーまたは BLOB のサブセットにルールを適用する (名前のプレフィックスまたは インデックス タグをフィルターとして使用)
#Azure Portal からライフサイクルを設定する
■ライフサイクルの作成
・ルールの範囲
Storage アカウント全体、もしくは指定したBlobを対象にルールの範囲を設定することができる。
・BLOB の種類
ルールの対象となる Blob の種類を複数設定することができる。
・BLOB のサブタイプ
基本 BLOB / スナップショット / バージョン の中から複数を対象に設定することができる。
・最終更新日
最終更新日から○日経過した、Blob を対象に設定することができます。
・結果
削除及び、アーカイブの設定をすることができます。
#検証
利用するにあたり、簡単な検証を行いました、
ライフサイクル機能を使用する場合、以下の要件が考えられます。
・「365日間更新がない場合、削除を行いたい」
・「30日間更新がない場合、アクセス層をクール層へ変更したい」
仮に30日間更新がない場合アクセス層をクール層へ変更したい場合、ライフサイクルの最終更新日の設定項目には、30 と設定したらよいのか、31 と設定したら良いのか、気になりました。
Azure の処理が24時付近、日付ベースで処理が実行されるのか、それとも時間ベースで処理が実行されるのか、Azure の処理がいつ行われているのか確認します。
・ライフサイクルの設定
・最終更新日:1
・結果:クール層へ移動
・結果
最終更新日を含めた、最終更新日時から24時間経過後にホット層からクール層へアクセス層が変更されていることが確認できました。
保存期間を時間ベースで判定していることから、「30日間の保存を行った後に削除」といった要件では、データの保有したい期間+1日と設定することがMASTとなりそうです。