オブジェクトのライフサイクル管理の構成例

概要 設定

このページでは、オブジェクトのライフサイクル管理の構成例について説明します。バケットにライフサイクル構成を設定すると、バケット内で定義した条件を満たすオブジェクト(今後追加されるオブジェクトも含む)に、指定されたアクションが実行されます。

オブジェクトの古いバージョンの削除

次のライフサイクル構成では、2 つのルールが定義されています。なお、これらのルールは、バケットでオブジェクトのバージョニングを使用する場合にのみ適用されます。

  1. バケットにオブジェクトの新しいバージョンが 2 つ存在する場合、オブジェクトの非現行バージョンを削除する。このルールの対象となるオブジェクトは完全に削除され、復元できません。

  2. オブジェクトが非現行となって 7 日間経過した後、非現行バージョンを削除します。このルールの対象となるオブジェクトは完全に削除され、復元できません。

オブジェクトのバージョニングを使用するバケットでのこの 2 つのルールを組み合わせると、ライブ オブジェクトが上書きまたは削除された場合に、それを復元できます。オブジェクトは 7 日間、またはオブジェクトの新しいバージョンが 2 つ存在するまで非現行状態でバケットにとどまります。

コンソール

この設定では、ライフサイクル構成を設定するの手順を使用します。

  1. 新しいバージョンがある場合に、オブジェクトの非現行バージョンを削除するには:

    1. [オブジェクトを削除する] アクションを選択します。
    2. [ライブ状態] を選択し、[現行以外] ラジオボタンを選択します。
    3. [新しいバージョンの数] 条件を選択し、値「2」を入力します。
  2. 非現行となって 7 日間経過した非現行バージョンのオブジェクトは、次の方法で削除します。

    1. [オブジェクトを削除する] アクションを選択します。
    2. [非現行になってからの日数] を選択し、値「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 つのルールが定義されています。

  1. オブジェクトの経過時間が 365 日(1 年)を超えていて、現在のストレージ クラスが Standard で、名前が .jpg または .png で終わっている場合は、オブジェクトのストレージ クラスを Nearline に変更します。
  2. オブジェクトの経過時間が 1,095 日(3 年)を超えていて、現在のストレージ クラスが Nearline ストレージで、名前が .jpg または .png で終わっている場合は、オブジェクトのストレージ クラスを Coldline に変更します。

コンソール

この設定では、ライフサイクル構成を設定するの手順を使用します。

  1. オブジェクトの作成から 365 日後にオブジェクトを Nearline ストレージに移動するには:

    1. [ストレージ クラスを Nearline に設定する] アクションを選択します。
    2. [オブジェクト名が接尾辞と一致] ルールのスコープを選択します。
    3. 表示されたフィールドに「.jpg」と入力し、Enter キーを押します。「.png」と入力して、もう一度 Enter キーを押します。
    4. [経過日数] 条件を選択し、値「365」を入力します。
    5. [一致するストレージ クラス] 条件を選択し、[Standard] オプションを選択します。
  2. オブジェクトの作成から 1,095 日後にオブジェクトを Coldline ストレージに移動するには:

    1. [ストレージ クラスを Coldline に設定する] アクションを選択します。
    2. [オブジェクト名が接尾辞と一致] ルールのスコープを選択します。
    3. 表示されたフィールドに「.jpg」と入力し、Enter キーを押します。「.png」と入力して、もう一度 Enter キーを押します。
    4. [経過時間] 条件を選択し、値「1095」を入力します。
    5. [一致するストレージ クラス] 条件を選択し、[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 のライフサイクル構成形式をご覧ください。

ライフサイクル構成を削除する

バケットで設定すると、次のライフサイクル構成では、すべてのルールを削除することでライフサイクル管理を無効にします。

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、ライフサイクル ルールを削除するバケットの名前をクリックします。

  3. [ライフサイクル] タブをクリックします。

  4. [すべてを削除] をクリックするか、削除するルールのゴミ箱アイコンをクリックして、個々のルールを削除します。

コマンドライン

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 のライフサイクル構成形式をご覧ください。

次のステップ