ライフサイクル管理ポリシーを構成する
Azure Blob Storage のライフサイクル管理にはルールベースのポリシーが用意されており、これを使用すると、最適なアクセス層に BLOB データを移行したり、データ ライフサイクルの最後にデータを期限切れにしたりすることができます。 ライフサイクル ポリシーは、ベース BLOB に対して機能するほか、オプションで、BLOB のバージョンやスナップショットに対して機能します。 ライフサイクル管理ポリシーの詳細については、「データ ライフサイクルを自動管理してコストを最適化する」を参照してください。
ライフサイクル管理ポリシーは、満たされた条件に基づいて実行する一連のアクションを定義する 1 つ以上のルールで構成されます。 ベース BLOB の場合、次のいずれかの条件をチェックすることを選択できます。
- BLOB が作成された後の日数。
- BLOB が最後に変更された後の日数。
- BLOB が最後にアクセスされた後の日数。 アクション内でこの条件を使用するには、最初に、オプションである最終アクセス時間の追跡を有効にする必要があります。
Note
BLOB を変更する操作 (BLOB のメタデータまたはプロパティの更新など) を行うと、BLOB の最終更新時刻が変更されます。
選択されている条件が true であると、管理ポリシーにより、指定されているアクションが実行されます。 たとえば、30 日間変更されていない場合に BLOB をホット層からクール層に移動するアクションを定義した場合は、その BLOB に対する最後の書き込み操作から 30 日後に、ライフサイクル管理ポリシーによって BLOB が移動されます。
BLOB のスナップショットまたはバージョンの場合、チェックされる条件は、スナップショットまたはバージョンが作成された後の日数です。
Note
汎用 v2、Premium ブロック BLOB、Blob Storage のアカウントでは、ブロック BLOB と追加 BLOB でライフサイクル管理ポリシーがサポートされています。
オプションであるアクセス時間の追跡を有効にする
ライフサイクル管理ポリシーを構成する前に、BLOB アクセス時間の追跡を有効にすることを選択できます。 アクセス時間の追跡が有効になっていると、ライフサイクル管理ポリシーに、BLOB が読み取りまたは書き込みの操作で最後にアクセスされた時間に基づくアクションを含めることができます。 読み取りアクセス待ち時間への影響を最小限に抑えるために、過去 24 時間の最初の読み取りのみが最終アクセス時刻を更新します。 同じ 24 時間内のその後の読み取りでは、最終アクセス時刻は更新されません。 読み取り間で BLOB が変更された場合、最終アクセス時刻は 2 つの値のうち新しい方になります。
最終アクセス時間の追跡が有効でない場合、daysAfterLastAccessTimeGreaterThan には、BLOB の LastAccessTime
プロパティではなく、ライフサイクル ポリシーが有効になった日付が使われます。 この日付は、LastAccessTime
プロパティが null 値の場合にも使用されます。 最終アクセス時刻の追跡の使用の詳細については、「最終アクセス時刻に基づいてデータを移動する」を参照してください。
Azure portal で最終アクセス時刻の追跡を有効にするには、次の手順に従います。
Azure Portal のストレージ アカウントに移動します。
[データ管理] セクションで、[ライフサイクル管理] を選択します。
[アクセス追跡を有効にする] チェック ボックスをオンにします
daysAfterLastAccessTimeGreaterThan プロパティを使用して、BLOB に対してアクションを実行する必要がある、最後のアクセスからの日数を指定します。
ポリシーを作成または管理する
ライフサイクル管理ポリシーは、Azure portal、PowerShell、Azure CLI、または Azure Resource Manager テンプレートを使用して追加、編集、削除することができます。
Azure portal を通じてポリシーを追加するには、2つの方法があります。
リスト ビュー
Azure Portal のストレージ アカウントに移動します。
[データ管理] で、 [ライフサイクル管理] を選択してライフサイクル管理ポリシーを表示または変更します。
[リスト ビュー] タブを選択します。
[ルールの追加] を選択し、 [詳細] フォームでルールに名前を付けることができます。 また、 [規則のスコープ] 、 [BLOB の種類] 、 [BLOB のサブタイプ] の各値を設定することもできます。 次の例では、BLOB をフィルター処理するスコープを設定します。 これにより、 [フィルター セット] タブが追加されます。
- [Base blobs](ベース BLOB) を選択して、ルールの条件を設定します。 次の例では、BLOB が 30 日間変更されない場合、BLOB はクール ストレージに移動されます。
[最終アクセス] オプションは、アクセス時間の追跡が有効で、BLOB の種類に [ブロック BLOB] を選んでいる場合にのみ使用できます。 アクセスの追跡を有効にする方法については、「オプションであるアクセス時間の追跡を有効にする」を参照してください。
- [詳細] ページで [フィルターを使用して BLOB を制限する] を選択した場合は、 [フィルター セット] を選択して省略可能なフィルターを追加します。 次の例では、sample-container という名前のコンテナー内の、名前が log で始まる BLOB にフィルターを適用しています。
- [追加] を選択して新しいポリシーを追加します。
ライフサイクル管理ポリシーでは、BLOB の現在のバージョンの削除は、その BLOB に関連付けられている以前のバージョンまたはスナップショットが削除されるまで実行されないことにご注意ください。 ストレージ アカウント内の BLOB に以前のバージョンまたはスナップショットがある場合は、ポリシーの一部として削除アクションを指定するときに、[BLOB のサブタイプ] セクションで [基本 BLOB]、[スナップショット]、[バージョン] を選択する必要があります。
[コード ビュー]
- Azure Portal のストレージ アカウントに移動します。
- [データ管理] で、 [ライフサイクル管理] を選択してライフサイクル管理ポリシーを表示または変更します。
- [コード ビュー] タブを選択します。このタブでは、JSON でライフサイクル管理ポリシーを定義できます。
次のサンプル JSON では、BLOB の変更からの経過時間が 30 日を超えた場合に、名前が log で始まるブロック BLOB をクール層に移動するライフサイクル ポリシーを定義しています。
{
"rules": [
{
"enabled": true,
"name": "move-to-cool",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": 30
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"sample-container/log"
]
}
}
}
]
}