Blob Storageのライフサイクル管理がGAされたので使い方を試してみました。
Blobストレージに保管されたオブジェクトを日数経過に伴って、クール層やアーカイブ層に移したり、削除したりといったことが可能な機能です。
Blobストレージのアクセス層
ホット層、クール層、アーカイブ層は、オブジェクトの用途によって使い分けます。
アーカイブ層が一番価格が安いですが、その分Read/Writeしたときに発生する料金が高く設定されています。
監査用途などでとりあえず保管しておくものはアーカイブ層で、頻繁にアクセスがあるようなものはホット層という使い分けがよいですね。
それではライフサイクル管理機能をやってみましょー。
ストレージアカウント作成
ホット層でストレージアカウントを作成します。
手順は割愛します。
コンテナー作成
- ここでは[lifecycle]という名前でコンテナーを作成してます。
ファイル格納
- [1st.txt]という名前でファイルをアップロードします。
ライフサイクル管理設定
- [Blob service]の[ライフサイクル管理]を選択します。
- 以下のようにJSONで定義します。
- prefixMatch : 対象のコンテナー名を前方一致条件で指定します。
- tierToCool : 最後の変更から何日後にクール層に移動するか。今回は1日を設定してます。
- tierToArchive : 最後の変更から何日後にアーカイブ層に移動するか。今回は2日を設定してます。
- delete : 最後の変更から何日後に削除するか。今回は3日を設定してます。
{
"rules": [
{
"name": "lifeCycleTest",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "lifecycle" ]
},
"actions": {
"baseBlob": {
"tierToCool": { "daysAfterModificationGreaterThan": 1 },
"tierToArchive": { "daysAfterModificationGreaterThan": 2 },
"delete": { "daysAfterModificationGreaterThan": 3 }
}
}
}
}
]
}
- 今回設定した内容では、1日後にクール層に移動して、2日後にアーカイブ層に移動して、3日後に削除されるはずです。
テスト
正しく動作するかテストしてみます。
- 1日後。1st.txtがクール層に移ったことが確認できました。
- 2日後。1st.txtがアーカイブ層に移ったことが確認できました。
- 3日後。1st.txtが削除されました。
まとめ
アクセス層の自動管理ができるのでコスト削減に役立ちますね。
移動されるタイミングは指定できないようですが、大体10時くらいに実行されていました。
コンテナー名はプレフィックス指定なので、今回の例でいうと、lifecycletestという名前のコンテナーがあった場合も対象になりますが、testlifecycleという名前のコンテナーは対象外になります。