このページでは、オブジェクトのライフサイクル管理の構成例について説明します。バケットにライフサイクル構成を設定すると、バケット内で定義した条件を満たすオブジェクト(今後追加されるオブジェクトも含む)に、指定されたアクションが実行されます。
オブジェクトの古いバージョンの削除
次のライフサイクル構成では、2 つのルールが定義されています。なお、これらのルールは、バケットでオブジェクトのバージョニングを使用する場合にのみ適用されます。
バケットにオブジェクトの新しいバージョンが 2 つ存在する場合、オブジェクトの非現行バージョンを削除する。このルールの対象となるオブジェクトは完全に削除され、復元できません。
オブジェクトが非現行となって 7 日間経過した後、非現行バージョンを削除します。このルールの対象となるオブジェクトは完全に削除され、復元できません。
オブジェクトのバージョニングを使用するバケットでのこの 2 つのルールを組み合わせると、ライブ オブジェクトが上書きまたは削除された場合に、それを復元できます。オブジェクトは 7 日間、またはオブジェクトの新しいバージョンが 2 つ存在するまで非現行状態でバケットにとどまります。
コンソール
この設定では、ライフサイクル構成を設定するの手順を使用します。
新しいバージョンがある場合に、オブジェクトの非現行バージョンを削除するには:
- [オブジェクトを削除する] アクションを選択します。
- [ライブ状態] を選択し、[現行以外] ラジオボタンを選択します。
- [新しいバージョンの数] 条件を選択し、値「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
条件を追加するか、daysSinceNoncurrent
に大きい値を指定して、早期削除料金が発生しないようにします。このような変更を行った場合でも、オブジェクトの上書きと削除の頻度によっては、早期削除料金が発生する場合があります。
オブジェクトのストレージ クラスを変更する
次のライフサイクル構成では、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 のライフサイクル構成形式をご覧ください。
次のステップ
- 利用可能なライフサイクル アクションやライフサイクル条件など、オブジェクトのライフサイクル管理について学習する。
- バケットにライフサイクル構成を設定して表示する。