このページでは、オブジェクトのライフサイクル管理の構成例について説明します。バケットにライフサイクル構成を設定すると、バケット内で定義した条件を満たすオブジェクト(今後追加されるオブジェクトも含む)に、指定されたアクションが実行されます。
オブジェクトの古いバージョンの削除
次のライフサイクル構成では、2 つのルールが定義されています。なお、これらのルールは、バケットでオブジェクトのバージョニングを使用する場合にのみ適用されます。
バケットにオブジェクトの新しいバージョンが 2 つ存在する場合、オブジェクトの非現行バージョンを削除する。このルールの対象となるオブジェクトは完全に削除され、復元できません。
オブジェクトが非現行となって 7 日間経過した後、非現行バージョンを削除します。このルールの対象となるオブジェクトは完全に削除され、復元できません。
オブジェクトのバージョニングを使用するバケットでのこの 2 つのルールを組み合わせると、ライブ オブジェクトが上書きまたは削除された場合に、それを復元できます。オブジェクトは 7 日間、またはオブジェクトの新しいバージョンが 2 つ存在するまで非現行状態でバケットにとどまります。
Console
この設定では、ライフサイクル構成を設定するの手順を使用します。
新しいバージョンがある場合に、オブジェクトの非現行バージョンを削除するには:
- [オブジェクトを削除する] アクションを選択します。
- [ライブ状態] を選択し、[現行以外] ラジオボタンを選択します。
- [新しいバージョンの数] 条件を選択し、値「2」を入力します。
非現行となって 7 日間経過した非現行バージョンのオブジェクトは、次の方法で削除します。
- [オブジェクトを削除する] アクションを選択します。
- [非現行になってからの日数] を選択し、値「7」を入力します。
コマンドライン
次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします。
{
"lifecycle": {
"rule": [
{
"action": {"type": "Delete"},
"condition": {
"numNewerVersions": 2,
"isLive": false
}
},
{
"action": {"type": "Delete"},
"condition": {
"daysSinceNoncurrentTime": 7
}
}
]
}
}
ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。
REST API
JSON API
次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします。
{
"lifecycle": {
"rule": [
{
"action": {"type": "Delete"},
"condition": {
"numNewerVersions": 2,
"isLive": false
}
},
{
"action": {"type": "Delete"},
"condition": {
"daysSinceNoncurrentTime": 7
}
}
]
}
}
ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。
XML API
次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします。
<?xml version="1.0" encoding="UTF-8" ?>
<LifecycleConfiguration>
<Rule>
<Action>
<Delete/>
</Action>
<Condition>
<IsLive>false</IsLive>
<NumberOfNewerVersions>2</Age>
</Condition>
</Rule>
<Rule>
<Action>
<Delete/>
</Action>
<Condition>
<DaysSinceNoncurrentTime>7</DaysSinceNoncurrentTime>
</Condition>
</Rule>
</LifecycleConfiguration>
ライフサイクル構成ファイルの一般的な形式については、XML のライフサイクル構成形式をご覧ください。
構成の変更
目標に応じて、この構成例にいくつかの変更を加えることができます。
ライブ オブジェクトの有効期間を制限する場合は、
Deleteアクション、isLive条件(trueに設定)、age条件を使用する追加ルールを作成します。誤って削除(上書きは対象外)しないようにデータを保護したい場合は、新しいバージョンの数を 1 にします。これにより、保持するオブジェクトのバージョンが少ないため、ストレージ コストも削減されます。
- データが Nearline ストレージ、Coldline ストレージ、Archive ストレージとして保存されている場合は
age条件を追加するか、daysSinceNoncurrentTimeに大きい値を指定して、早期削除料金が発生しないようにします。このような変更を行った場合でも、オブジェクトの上書きと削除の頻度によっては、早期削除料金が発生する場合があります。
オブジェクトのストレージ クラスを変更する
次のライフサイクル構成では、2 つのルールが定義されています。
- オブジェクトの経過時間が 365 日(1 年)を超えていて、現在のストレージ クラスが Standard で、名前が
.jpgまたは.pngで終わっている場合は、オブジェクトのストレージ クラスを Nearline に変更します。 - オブジェクトの経過時間が 1,095 日(3 年)を超えていて、現在のストレージ クラスが Nearline ストレージで、名前が
.jpgまたは.pngで終わっている場合は、オブジェクトのストレージ クラスを Coldline に変更します。
コンソール
この設定では、ライフサイクル構成を設定するの手順を使用します。
オブジェクトの作成から 365 日後にオブジェクトを Nearline ストレージに移動するには:
- [ストレージ クラスを Nearline に設定する] アクションを選択します。
- [オブジェクト名が接尾辞と一致] ルールのスコープを選択します。
- 表示されたフィールドに「.jpg」と入力し、Enter キーを押します。「.png」と入力して、もう一度 Enter キーを押します。
- [経過日数] 条件を選択し、値「365」を入力します。
- [一致するストレージ クラス] 条件を選択し、[Standard] オプションを選択します。
オブジェクトの作成から 1,095 日後にオブジェクトを Coldline ストレージに移動するには:
- [ストレージ クラスを Coldline に設定する] アクションを選択します。
- [オブジェクト名が接尾辞と一致] ルールのスコープを選択します。
- 表示されたフィールドに「.jpg」と入力し、Enter キーを押します。「.png」と入力して、もう一度 Enter キーを押します。
- [経過時間] 条件を選択し、値「1095」を入力します。
- [一致するストレージ クラス] 条件を選択し、[Nearline] オプションを選択します。
コマンドライン
次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします。
{
"lifecycle": {
"rule": [
{
"action": {
"type": "SetStorageClass",
"storageClass": "NEARLINE"
},
"condition": {
"age": 365,
"matchesStorageClass": [
"STANDARD"
],
"matchesSuffix": [
".jpg",
".png"
]
}
},
{
"action": {
"type": "SetStorageClass",
"storageClass": "COLDLINE"
},
"condition": {
"age": 1095,
"matchesStorageClass": [
"NEARLINE"
],
"matchesSuffix": [
".jpg",
".png"
]
}
}
]
}
}
ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。
REST API
JSON API
次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします。
{
"lifecycle": {
"rule": [
{
"action": {
"type": "SetStorageClass",
"storageClass": "NEARLINE"
},
"condition": {
"age": 365,
"matchesStorageClass": [
"STANDARD"
],
"matchesSuffix": [
".jpg",
".png"
]
}
},
{
"action": {
"type": "SetStorageClass",
"storageClass": "COLDLINE"
},
"condition": {
"age": 1095,
"matchesStorageClass": [
"NEARLINE"
],
"matchesSuffix": [
".jpg",
".png"
]
}
}
]
}
}
ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。
XML API
次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします。
<?xml version="1.0" encoding="UTF-8" ?>
<LifecycleConfiguration>
<Rule>
<Action>
<SetStorageClass>NEARLINE</SetStorageClass>
</Action>
<Condition>
<Age>365</Age>
<MatchesStorageClass>STANDARD</MatchesStorageClass>
<MatchesSuffix>.jpg</MatchesSuffix>
<MatchesSuffix>.png</MatchesSuffix>
</Condition>
</Rule>
<Rule>
<Action>
<SetStorageClass>COLDLINE</SetStorageClass>
</Action>
<Condition>
<Age>1095</Age>
<MatchesStorageClass>NEARLINE</MatchesStorageClass>
<MatchesSuffix>.jpg</MatchesSuffix>
<MatchesSuffix>.png</MatchesSuffix>
</Condition>
</Rule>
</LifecycleConfiguration>
ライフサイクル構成ファイルの一般的な形式については、XML のライフサイクル構成形式をご覧ください。
ライフサイクル構成を削除する
バケットで設定すると、次のライフサイクル構成では、すべてのルールを削除することでライフサイクル管理を無効にします。
コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
バケットのリストで、ライフサイクル ルールを削除するバケットの名前をクリックします。
[ライフサイクル] タブをクリックします。
[すべてを削除] をクリックするか、削除するルールのゴミ箱アイコンをクリックして、個々のルールを削除します。
コマンドライン
gcloud storage buckets update コマンドを使用し、--clear-lifecycle フラグを指定します。
gcloud storage buckets update gs://BUCKET_NAME --clear-lifecycle
ここで、BUCKET_NAME は、ライフサイクル構成を削除するバケットの名前です。
REST API
JSON API
{
"lifecycle": {
"rule": []
}
}
ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。
XML API
<?xml version="1.0" encoding="UTF-8" ?> <LifecycleConfiguration/>
ライフサイクル構成ファイルの一般的な形式については、XML のライフサイクル構成形式をご覧ください。
次のステップ
- 利用可能なライフサイクル アクションやライフサイクル条件など、オブジェクトのライフサイクル管理について学習する。
- バケットにライフサイクル構成を設定して表示する。