ライフサイクル管理ポリシーを使用すると、使用パターンに基づいて BLOB をコスト効率の高いアクセス層に移行できます。 この記事には、層間で BLOB を移行するポリシー定義の例が含まれています。
Azure Storage ライフサイクル管理ポリシーの一般的な情報については、 Azure Blob Storage ライフサイクル管理の概要に関するページを参照してください。
古いデータをよりクールな層に移動する
次の例は、プレフィックス sample-container/blob1
または container2/blob2
が付いたブロック BLOB を移行する方法を示しています。 このポリシーでは、30 日以上変更されていない BLOB をクール ストレージに移行し、90 日間変更されていない BLOB をアーカイブ層に移行します。
{
"rules": [
{
"name": "agingRule",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "sample-container/blob1", "container2/blob2" ]
},
"actions": {
"baseBlob": {
"tierToCool": { "daysAfterModificationGreaterThan": 30 },
"tierToArchive": { "daysAfterModificationGreaterThan": 90 }
}
}
}
}
]
}
注
ライフサイクル管理ポリシーの baseBlob 要素は、BLOB の現在のバージョンを参照します。
最後にアクセスした時刻に基づいてデータを移動する
次の例では、BLOB は、30 日間アクセスされない場合に、クール ストレージに移動されます。
enableAutoTierToHotFromCool
プロパティはブール値であり、BLOB がクールに階層化された後で再びアクセスされた場合に、BLOB を自動的にクールからホットに階層化するかどうかを示します。
ヒント
BLOB がクール層に移動され、30 日が経過する前に自動的に戻された場合、早期削除料金が課金されます。
enableAutoTierToHotFromCool
プロパティを設定する前に、予想外の課金を減らせるよう、必ずデータのアクセス パターンを分析してください。 BLOB アクセス時のクールからホットへの自動階層化は、30 日に 1 回に制限されています。 このセーフガードは、クール層からの複数の早期削除ペナルティを回避するのに役立ちます。 ポリシーによりオブジェクト層がクールに戻った場合、BLOB 上のすべてのトランザクションはクール層の価格で課金されます。 BLOB を 30 日間に 2 回以上自動的に階層化する必要がある場合は、BLOB をホット層を保持するとコスト効率が高くなります。
enableAutoTierToHotFromCool
でルールを有効にすると、このルールで階層化されたオブジェクトにのみ適用されます。 クール層に既に存在する BLOB に対して、 enableAutoTierToHotFromCool
プロパティを有効にすることはできません。 そのため、これらの BLOB のアクセス層は、アクセス時に自動的にホットに変わることはありません。
{
"enabled": true,
"name": "last-accessed-thirty-days-ago",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"enableAutoTierToHotFromCool": true,
"tierToCool": {
"daysAfterLastAccessTimeGreaterThan": 30
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"mylifecyclecontainer/log"
]
}
}
}
取り込み後のデータのアーカイブ
クラウド内でアイドル状態に留まり、あったとしてもまれにしかアクセスされないデータもあります。 次のライフサイクル ポリシーは、取り込み直後にデータをアーカイブするように構成されます。 この例では、archivecontainer
という名前のコンテナー内のブロック BLOB をアーカイブ層に移行します。 この移行は、最終変更時刻の 0 日後に BLOB を処理することによって実現されます。
Von Bedeutung
データ セットが読み取り可能である必要がある場合は、BLOB をアーカイブ層に移動するポリシーを設定しないでください。 アーカイブ層の BLOB は、最初にリハイドレートされていない限り読み取ることができません。これは時間とコストがかかる場合があるプロセスです。 詳細については、「アーカイブ層からの BLOB のリハイドレートの概要」を参照してください。 データ セットを頻繁に読み込む必要がある場合は、BLOB をクール層またはコールド層に移動するポリシーを設定しないでください。これにより、トランザクション コストが高くなる可能性があるためです。
{
"rules": [
{
"name": "archiveRule",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "archivecontainer" ]
},
"actions": {
"baseBlob": {
"tierToArchive": {
"daysAfterModificationGreaterThan": 0
}
}
}
}
}
]
}
注
効率を高めるためには、BLOB をアーカイブ層に直接アップロードすることをお勧めします。 アーカイブ層は、Put BLOB または Put Block List 操作の x-ms-access-tier ヘッダーで指定できます。 x-ms-access-tier ヘッダーは、REST バージョン 2018-11-09 以降または最新の BLOB ストレージ クライアント ライブラリでサポートされています。
以前のバージョンの管理
有効期間全体にわたって定期的に変更およびアクセスされるデータの場合は、BLOB ストレージのバージョン管理を有効にすることで、オブジェクトの以前のバージョンを自動的に管理できます。 以前のバージョンを階層化するポリシーを作成できます。 バージョンの古さは、バージョンの作成時刻を評価することによって決定されます。 このポリシー ルールは、バージョンの作成後 90 日以上前のコンテナー activedata
内の以前のバージョンをクール層に移動します。
{
"rules": [
{
"enabled": true,
"name": "versionrule",
"type": "Lifecycle",
"definition": {
"actions": {
"version": {
"tierToCool": {
"daysAfterCreationGreaterThan": 90
},
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"activedata/"
]
}
}
}
]
}
注
ライフサイクル管理ポリシーの version 要素は、以前のバージョンを参照します。