

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EBS スナップショット用の Amazon Data Lifecycle Manager カスタムポリシーを作成
<a name="snapshot-ami-policy"></a>

以下の手順では、Amazon Data Lifecycle Manager を使用して Amazon EBS スナップショットのライフサイクルを自動化する方法を示します。

**Topics**
+ [スナップショットライフサイクルポリシーを作成する](#create-snap-policy)
+ [スナップショットライフサイクルポリシーに関する考慮事項](#snapshot-considerations)
+ [その他のリソース](#snapshot-additional-resources)
+ [アプリケーション整合性のあるスナップショットを自動化](automate-app-consistent-backups.md)
+ [事前スクリプトと事後スクリプトのその他のユースケース](script-other-use-cases.md)
+ [事前スクリプトと事後スクリプトの仕組み](script-flow.md)
+ [事前スクリプトと事後スクリプトで作成されたスナップショットの識別](dlm-script-tags.md)
+ [事前スクリプトと事後スクリプトをモニタリング](dlm-script-monitoring.md)

## スナップショットライフサイクルポリシーを作成する
<a name="create-snap-policy"></a>

スナップショットのライフサイクルポリシーを作成するには、次のいずれかの手順を使用します。

------
#### [ Console ]

**スナップショットのポリシーを作成するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションペインで、[**Elastic Block Store**]、[**ライフサイクルマネージャー**]、[**ライフサイクルポリシーの作成**] の順に選択します。

1. リポジトリの [**ポリシータイプの選択**] 画面で、[**EBS スナップショットポリシー**] を選択し、[**次へ**] をクリックします。

1. **[Target resources]** (ターゲットリソース) セクションで、以下の操作を行います。

   1. **[Target resource types]** (ターゲットリソースタイプ) で、バックアップするリソースの種類を選択します。`Volume` を選択して個々のボリュームのスナップショットを作成するか、`Instance` を選択してインスタンスにアタッチされたボリュームからマルチボリュームスナップショットを作成します。

   1. (*Outpost およびローカルゾーンのお客様のみ*) ターゲットリソースが存在する場所を指定します。

      **[ターゲットリソースの場所]** で、ターゲットリソースが存在する場所を指定します。
      + リージョン内のリソースをターゲットにするには、[**AWS リージョン**] を選択します。Amazon Data Lifecycle Manager は、現在のリージョン内で、一致するターゲットタグを持つ、指定されたタイプのすべてのリソースをバックアップします。スナップショットは同じリージョンに作成されます。
      + ローカルゾーン内のリソースをターゲットにするには、[**AWS ローカルゾーン**] を選択します。Amazon Data Lifecycle Manager は、現在のリージョン内のすべてのローカルゾーンで、一致するターゲットタグを持つ、指定されたタイプのすべてのリソースをバックアップします。スナップショットは、ソースリソースと同じローカルゾーン、またはその親リージョンに作成できます。
      + Outpost のリソースをターゲットにするには、[**AWS Outpost**] を選択します。Amazon Data Lifecycle Manager は、アカウントのすべての Outposts で、一致するターゲットタグを持つ、指定されたタイプのすべてのリソースをバックアップします。スナップショットは、ソースリソースと同じ Outpost、またはその親リージョンに作成できます。

   1. **[Target resource tags]** (ターゲットリソースタグ) で、バックアップするボリュームもしくはインスタンスを識別する、リソースタグを選択します。ポリシーでは、指定されたタグキーと値のペアを持つリソースのみがバックアップされます。

1. [**説明**] にポリシーの簡単な説明を入力します。

1. [**IAM ロール**] では、スナップショットの管理、ならびにボリュームとインスタンスの記述に必要な、アクセス許可を持つ IAM ロールを選択します。Amazon Data Lifecycle Manager が提供するデフォルトのロールを使用するには、[**デフォルトのロール**] を選択します。以前に作成したカスタム IAM ロールを使用する場合には、[**別のロールを選択**] をクリックした上で、使用するロールを選択します。

1. [**ポリシータグ**] に、ライフサイクルポリシーに適用されるタグを追加します。これらのタグは、ポリシーを識別および分類するために使用することができます。

1. **[Policy status]** (ポリシーステータス) では、**[Enable]** (有効化) を選択すると、次のスケジュールした時刻にポリシーが実行されます。ポリシーが実行されないようにするには、**[Disable policy]** (ポリシーの無効化) を選択します。ここでポリシーを有効にしない場合、作成後に手動で有効にするまで、スナップショットの作成は開始されません。

1. (*インスタンスのみをターゲットとするポリシー*) ボリュームをマルチボリュームスナップショットセットから除外します。

   デフォルトでは、Amazon Data Lifecycle Manager は、ターゲットインスタンスにアタッチされたすべてのボリュームのスナップショットを作成します。ただし、アタッチされたボリュームのサブセットのスナップショットを作成することもできます。**[Parameters]** (パラメータ) セクションで、次を実行します。
   + ターゲットインスタンスにアタッチされたルートボリュームのスナップショットを作成しない場合は、**[Exclude root volume]** (ルートボリュームを除外) を選択します。このオプションを選択すると、ターゲットインスタンスにアタッチされているデータ (非ルート) ボリュームのみがマルチボリュームスナップショットセットに含まれます。
   + ターゲットインスタンスにアタッチされたデータ (非ルート) ボリュームのサブセットのスナップショットを作成する場合は、**[Exclude specific data volumes]** (特定のデータボリュームを除外) を選択し、スナップショットを作成しないデータボリュームを識別するために使用するタグを指定します。Amazon Data Lifecycle Manager は、指定されたタグのいずれかを含むデータボリュームのスナップショットを作成しません。Amazon Data Lifecycle Manager は、指定されたタグを持たないデータボリュームのスナップショットのみを作成します。

1. [**次へ**] を選択します。

1. [**スケジュールの設定**] 画面で、ポリシースケジュールを設定します。ポリシーには、最大 4 つのスケジュールを含めることができます。スケジュール 1 は必須です。スケジュール 2、3、および 4 はオプションです。追加したポリシースケジュールごとに、以下の操作を行います。

   1. [**スケジュールの詳細**] セクションで、次の操作を行います。

      1. [**スケジュール名**] で、スケジュールの分かりやすい名前を指定します。

      1. [**頻度**]とそれに関連するフィールドで、ポリシーの実行間隔を設定します。

         ポリシーの実行は、日次、週次、月次、年次のいずれかのスケジュールで設定できます。または、[**カスタム cron 式**] をクリックし、最長 1 年の間隔を指定します。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Setting a schedule pattern for scheduled rules (legacy) in Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html)」を参照してください。
**注記**  
スケジュールに対し**スナップショットのアーカイブ**を有効にする必要がある場合は、その頻度に、**[monthly]** (毎月) または **[yearly]** (毎年) のいずれかを選択する必要があります。または、作成頻度が 28 日以上の CRON 式を指定します。  
頻度を毎月とし、特定の週の特定の日 (例えば、その月の第 2 木曜日) にスナップショットを作成する場合、カウントベースのスケジュールでは、アーカイブ階層の保存回数は 4 以上にする必要があります。

      1. [**開始時刻**] では、ポリシー実行の開始予定時刻を指定します。初回のポリシー実行は、予定時刻から 1 時間以内に開始されます。時刻は、`hh:mm` UTC 形式で入力する必要があります。

      1. [**保持タイプ**] では、スケジュールによって作成されるスナップショットの保持ポリシーを指定します。

         スナップショットは、総数または期間に基づいて保持できます。
         + カウントベースの保持
           + スナップショットアーカイブを無効にすると、範囲は `1`～`1000` になります。保持期間がしきい値に達すると、最も古いスナップショットは完全に削除されます。
           + スナップショットアーカイブを有効にすると、範囲は `0` (作成直後にアーカイブ) ～`1000` になります。保持期間がしきい値に達すると、最も古いスナップショットは完全なスナップショットに変換され、アーカイブ階層に移動します。
         + 年齢に基づく保持
           + スナップショットアーカイブを無効にすると、範囲は `1` 日～`100` 年になります。保持期間がしきい値に達すると、最も古いスナップショットは完全に削除されます。
           + スナップショットアーカイブを有効にすると、範囲は `0` 日 (作成直後にアーカイブ) ～`100` 年になります。保持期間がしきい値に達すると、最も古いスナップショットは完全なスナップショットに変換され、アーカイブ階層に移動します。
**注記**  
すべてのスケジュールは、同じ保持タイプ (期間ベースまたはカウントベース) にする必要があります。保持タイプを指定できるのは、スケジュール 1 のみです。スケジュール 2、3、4 は、スケジュール 1 から保持タイプを継承します。各スケジュールには、独自の保持回数または期間を設定できます。
高速スナップショット復元、クロスリージョンコピー、またはスナップショットの共有を有効にする場合は、保持回数で `1`　以上を、または保持期間で `1` 日以上を指定する必要があります。

      1. (*AWS Outposts および Local Zone のお客様のみ*) スナップショットの送信先を指定します。

         **[スナップショットの送信先]** で、ポリシーによって作成されるスナップショットの送信先を指定します。
         + ポリシーがリージョン内のリソースを対象とする場合、スナップショットは同じリージョンに作成する必要があります。 AWS リージョンは自動的に選択されます。
         + ポリシーでローカルゾーン内のリソースがターゲットになっている場合は、ソースリソースと同じローカルゾーン、またはその親リージョンにスナップショットを作成する必要があります。
         + ポリシーで Outpost 上のリソースがターゲットになっている場合は、ソースリソースと同じ Outpost、またはその親リージョンにスナップショットを作成する必要があります。

   1. スナップショットのタグ付けを設定します。

      [**タグ付け**] セクションで、以下を実行します。

      1. ソースボリュームのすべてのユーザー定義タグを、スケジュールにより作成されたスナップショットにコピーするには、[**ソースからタグをコピー**] を選択します。

      1. 他のタグを指定し、このスケジュールによって作成されたスナップショットに割り当てるには、[**タグを追加**] をクリックします。

   1. アプリケーション整合性のあるスナップショット用の事前スクリプトと事後スクリプトを設定します。

      詳細については、「[Data Lifecycle Manager を使用してアプリケーション整合性のあるスナップショットを自動化](automate-app-consistent-backups.md)」を参照してください。

   1. (*ボリュームのみをターゲットとするポリシー*) スナップショットアーカイブを設定します。

      **[スナップショットのアーカイブ]** セクションで、次の操作を行います。
**注記**  
スナップショットのアーカイブを有効にできるのは、ポリシー内で 1 つのスケジュールのみです。

      1. スケジュールのスナップショットアーカイブを有効にするには、**[Archive snapshots created by this schedule]** (このスケジュールで作成されたスナップショットをアーカイブする) を選択します。
**注記**  
スナップショットのアーカイブを有効にできるのは、スナップショットの作成頻度に毎月または毎年を設定した場合、または作成頻度が 28 日以上の cron 式を指定した場合のみです。

      1. アーカイブ層のスナップショットのための保存ルールを指定します。
         + **[count-based schedules]** (カウントベースのスケジュール) で、アーカイブ層に保持するスナップショットの数を指定します。保持数のしきい値に達した場合は、最も古いスナップショットが完全にアーカイブ階層から削除されます。例えば、3 を指定した場合、スケジュールは最大 3 つのスナップショットをアーカイブ階層に保持します。4 番目のスナップショットをアーカイブする際には、アーカイブ階層に既存の 3 つのスナップショットのうち、最も古いものが削除されます。
         + **[age-based schedules]** (期間ベースのスケジュール) で、アーカイブ階層でのスナップショットの保持期間を指定します。保持数のしきい値に達した場合は、最も古いスナップショットが完全にアーカイブ階層から削除されます。例えば、120 日間を指定した場合、その期間に達したスナップショットは、スケジュールによりアーカイブ階層から自動的に削除されます。
**重要**  
アーカイブされたスナップショットの最小保持期間は 90 日です。スナップショットを少なくとも 90 日間保持する保存ルールを指定する必要があります。

   1. 高速スナップショット復元を有効にします。

      スケジュールによって作成されたスナップショットで高速スナップショット復元を有効化するには、[**高速スナップショット復元**] セクションで、[**スナップショットの高速復元を有効化する**] を選択します。高速スナップショット復元を有効にする場合は、特定のアベイラビリティーゾーンを選択する必要があります。保存期間に基づく保持スケジュールを使用する場合は、各スナップショットに対して高速スナップショット復元を有効にする期間を指定する必要があります。スケジュールでカウントベースの保持を使用する場合は、高速スナップショット復元を有効にするスナップショットの最大数を指定する必要があります。

      スケジュールで Outpost にスナップショットを作成している場合、高速スナップショット復元を有効にすることはできません。高速スナップショット復元は、Outpost に保存されているローカルスナップショットではサポートされません。
**注記**  
特定のアベイラビリティーゾーンでスナップショットの高速スナップショット復元を有効にしている時間中は、請求が発生します。料金は 1 時間を最小として時間単位で計算されます。

   1. クロスリージョンコピーを設定します。

      スケジュールによって作成されたスナップショットを、Outpost または別のリージョンにコピーするには、**[クロスリージョンコピー]** セクションで、**[クロスリージョンコピーを有効化する]** 選択します。

      スケジュールによってリージョンにスナップショットが作成されている場合は、アカウント内で最大 3 つの異なるリージョンあるいは Outposts に対し、そのスナップショットをコピーできます。送信先となるリージョンまたは Outpost ごとに、個別のクロスリージョンコピーのためのルールを指定する必要があります。

      リージョンまたは Outpost ごとに、異なる保持ポリシーを選択できます。また、すべてのタグをコピーするか、いずれのタグもコピーしないかを選択できます。ソーススナップショットが暗号化されている場合、またはデフォルトの暗号化が有効化されている場合には、コピーされたスナップショットも暗号化されます。ソーススナップショットが暗号化されていない場合には、暗号化できます。KMS キー を指定しない場合、スナップショットは、各送信先リージョンにおける EBS 暗号化用のデフォルト KMS キー を使用して暗号化されます。送信先リージョンで KMS キー を指定する場合、選択した IAM ロールには KMS キー へのアクセス権が必要です。
**注記**  
リージョンごとのスナップショットの同時コピー数を超えないようにする必要があります。

       ポリシーが Outpost にスナップショットを作成している場合、リージョンまたは別の Outpost に対し、そのスナップショットをコピーすることはできません。また、クロスリージョンコピー設定は使用できません。

   1. クロスアカウントの共有を設定します。

      **クロスアカウント共有**で、スケジュールによって作成されたスナップショットを他の AWS アカウントと自動的に共有するようにポリシーを設定します。以下の操作を実行します。

      1. 他の AWS アカウントとの共有を有効にするには、**クロスアカウント共有を有効にする**を選択します。

      1. スナップショットを共有するアカウントを追加するには、[**アカウントを追加**] をクリックし、12 桁の AWS アカウント ID を入力した後、[**追加**] をクリックします。

      1. スナップショットの共有を特定の期間後に自動的に解除するには、**[Unshare automatically]** (共有を自動解除する) を選択します。スナップショットの共有の自動解除を選択した場合、自動的な共有解除が実行されるまでの期間は、ポリシーがスナップショットを保持する期間より長くすることはできません。例えば、ポリシーの保存設定でスナップショットが 5 日間保持される場合、スナップショットの共有を自動的に解除するまでの期間としてポリシーに設定できるのは、最大 4 日間です。これは、期間ベースおよび数値ベースのスナップショット保持設定を持つポリシーに適用されます。

         自動的な共有解除を有効にしない場合、スナップショットは削除されるまで共有されます。
**注記**  
共有できるのは、暗号化されていないスナップショットまたはカスタマーマネージド型キーを使用して暗号化されたスナップショットだけです。デフォルトの EBS 暗号化 KMS キー で暗号化されたスナップショットを共有することはできません。暗号化されたスナップショットを共有する場合は、ソースボリュームの暗号化に使用された KMS キー も、ターゲットアカウントと共有する必要があります。詳細については、「AWS Key Management Service デベロッパーガイド**」の「[他のアカウントのユーザーに KMS キーの使用を許可する](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html)」を参照してください。

   1. 新たにスケジュールを追加するには、画面の上部にある [**他のスケジュールを追加する**] をクリックします。追加スケジュールごとに、このトピックの説明にならってフィールドを設定します。

   1. 必要なスケジュールを追加したら、[**ポリシーをレビュー**] をクリックします。

1. ポリシーの概要を確認した後、[**ポリシーを作成**] をクリックします。
**注記**  
`Role with name AWSDataLifecycleManagerDefaultRole already exists` エラーが発生した場合、詳細については「[Amazon Data Lifecycle Manager の問題のトラブルシューティング](dlm-troubleshooting.md)」を参照してください。

------
#### [ Command line ]

スナップショットのライフサイクルポリシーを作成するには、[create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html) コマンドを使用します。`PolicyType` で、`EBS_SNAPSHOT_MANAGEMENT` を指定する。

**注記**  
構文を簡略化するために、次の例では、ポリシーの詳細を含む JSON ファイル、`policyDetails.json` を使用しています。

**例 1 – 2 つのスケジュールを持つスナップショットライフサイクルポリシー**  
この例では、値が `115` で `costcenter` のタグキーを持つすべてのボリュームのスナップショットを作成するスナップショットライフサイクルポリシーを作成します。ポリシーには、2 つのスケジュールが含まれます。最初のスケジュールでは、毎日 03:00 UTC にスナップショットが作成されます。2 番目のスケジュールでは、毎週金曜日の 17:00 (UTC) に週次のスナップショットが作成されます。

```
aws dlm create-lifecycle-policy \
    --description "{{My volume policy}}" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::{{12345678910}}:role/{{AWSDataLifecycleManagerDefaultRole}} \
    --policy-details file://{{policyDetails.json}}
```

次は、`policyDetails.json` ファイルの例です。

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": [
        "VOLUME"
    ],
    "TargetTags": [{
        "Key": "costcenter",
        "Value": "115"
    }],
    "Schedules": [{
        "Name": "DailySnapshots",
        "TagsToAdd": [{
            "Key": "type",
            "Value": "myDailySnapshot"
        }],
        "CreateRule": {
            "Interval": 24,
            "IntervalUnit": "HOURS",
            "Times": [
                "03:00"
            ]
        },
        "RetainRule": {
            "Count": 5
        },
        "CopyTags": false
    },
    {
        "Name": "WeeklySnapshots",
        "TagsToAdd": [{
            "Key": "type",
            "Value": "myWeeklySnapshot"
        }],
        "CreateRule": {
            "CronExpression": "cron(0 17 ? * FRI *)"
        },
        "RetainRule": {
            "Count": 5
        },
        "CopyTags": false
    }
]}
```

リクエストが成功すると、コマンドは新しく作成されたポリシーの ID を返します。以下は出力の例です。

```
{
   "PolicyId": "policy-{{0123456789abcdef0}}"
}
```

**例 2 - インスタンスをターゲットとし、データ (非ルート) ボリュームのサブセットのスナップショットを作成するスナップショットライフサイクルポリシー**  
この例では、`code=production` でタグ付けされたインスタンスからマルチボリュームスナップショットセットを作成するスナップショットライフサイクルポリシーを作成します。ポリシーには 1 つのスケジュールのみが含まれます。スケジュールでは、`code=temp` でタグ付けされたデータボリュームのスナップショットは作成されません。

```
aws dlm create-lifecycle-policy \
    --description "{{My volume policy}}" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::{{12345678910}}:role/{{AWSDataLifecycleManagerDefaultRole}} \
    --policy-details file://{{policyDetails.json}}
```

次は、`policyDetails.json` ファイルの例です。

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": [
        "INSTANCE"
    ],
    "TargetTags": [{
        "Key": "code",
        "Value": "production"
    }],
    "Parameters": {
        "ExcludeDataVolumeTags": [{
            "Key": "code",
            "Value": "temp"
        }]
    },
    "Schedules": [{
        "Name": "DailySnapshots",
        "TagsToAdd": [{
            "Key": "type",
            "Value": "myDailySnapshot"
        }],
        "CreateRule": {
            "Interval": 24,
            "IntervalUnit": "HOURS",
            "Times": [
                "03:00"
            ]
        },
        "RetainRule": {
            "Count": 5
        },
        "CopyTags": false
    }
]}
```

リクエストが成功すると、コマンドは新しく作成されたポリシーの ID を返します。以下は出力の例です。

```
{
   "PolicyId": "policy-{{0123456789abcdef0}}"
}
```

**例 3 — Outpost リソースでのローカルスナップショットを自動化する、スナップショットライフサイクルポリシー**  
この例では、すべての Outposts について、`team=dev` によりタグ付けされたボリュームのスナップショットを作成する、スナップショットライフサイクルポリシーを作成します。このポリシーにより、ソースボリュームと同じ Outposts にスナップショットが作成されます。このポリシーによるスナップショットの作成は、`00:00` UTCから開始され、その後 `12` 時間ごとに実行されます。

```
aws dlm create-lifecycle-policy \
    --description "{{My local snapshot policy}}" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::{{12345678910}}:role/{{AWSDataLifecycleManagerDefaultRole}} \
    --policy-details file://{{policyDetails.json}}
```

次は、`policyDetails.json` ファイルの例です。

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": "VOLUME",
	"ResourceLocations": "OUTPOST",
    "TargetTags": [{
        "Key": "team",
        "Value": "dev"
    }],
    "Schedules": [{
        "Name": "on-site backup",
        "CreateRule": {
            "Interval": 12,
            "IntervalUnit": "HOURS",
            "Times": [
                "00:00"
            ],
	"Location": [
		"OUTPOST_LOCAL"
	]
        },
        "RetainRule": {
            "Count": 1
        },
        "CopyTags": false
    }
]}
```

**例 4 — リージョンにスナップショットを作成し、それを Outpost にコピーするスナップショットライフサイクルポリシー**  
次のポリシー例では、`team=dev` によりタグ付けされたボリュームのスナップショットを作成します。スナップショットは、ソースボリュームと同じリージョンに作成されます。スナップショットの作成は、`00:00` UTC から開始され、その後 `12` 時間ごとに実行されます。スナップショットは最大 `1` 個まで保持されます。また、このポリシーでは、スナップショットを Outpost `arn:aws:outposts:us-east-1:123456789012:outpost/op-1234567890abcdef0` にコピーし、デフォルトの暗号化 KMS キー を使用しながら、コピーされたスナップショットの暗号化も行います。コピーの保持期間は `1` か月間です。

```
aws dlm create-lifecycle-policy \
    --description "{{Copy snapshots to Outpost}}" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::{{12345678910}}:role/{{AWSDataLifecycleManagerDefaultRole}} \
    --policy-details file://{{policyDetails.json}}
```

次は、`policyDetails.json` ファイルの例です。

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": "VOLUME",
    "ResourceLocations": "CLOUD",
    "TargetTags": [{
        "Key": "team",
        "Value": "dev"
    }],
    "Schedules": [{
        "Name": "on-site backup",
        "CopyTags": false,
        "CreateRule": {
            "Interval": 12,
            "IntervalUnit": "HOURS",
            "Times": [
                "00:00"
            ],
            "Location": "CLOUD"
        },
        "RetainRule": {
            "Count": 1
        },
        "CrossRegionCopyRules" : [
        {
            "Target": "arn:aws:outposts:us-east-1:123456789012:outpost/op-1234567890abcdef0",
            "Encrypted": true,
            "CopyTags": true,
            "RetainRule": {
                "Interval": 1,
                "IntervalUnit": "MONTHS"
            }
        }]
    }
]}
```

**例 5 - アーカイブが有効な期間ベースのスケジュールを持つスナップショットライフサイクルポリシー**  
この例では、`Name=Prod` によりタグ付けされたボリュームを対象とする、スナップショットライフサイクルポリシーを作成します。このポリシーには、毎月の初日の午前 9 時にスナップショットを作成する、期間ベースのスケジュールが 1 つあります。スケジュールは、各スナップショットをアーカイブ階層に移動した後も、そのスナップショットを標準階層に 1 日間保持します。スナップショットは、90 日間アーカイブ階層に保持された後に削除されます。

```
aws dlm create-lifecycle-policy \
    --description "{{Copy snapshots to Outpost}}" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::{{12345678910}}:role/{{AWSDataLifecycleManagerDefaultRole}} \
    --policy-details file://{{policyDetails.json}}
```

次は、`policyDetails.json` ファイルの例です。

```
{
    "ResourceTypes": [ "VOLUME"],
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "Schedules" : [
      {
        "Name": "sched1",
        "TagsToAdd": [
          {"Key":"createdby","Value":"dlm"}
        ],
        "CreateRule": {
          "CronExpression": "cron(0 9 1 * ? *)"
        },
        "CopyTags": true,
        "RetainRule":{
          "Interval": 1,
          "IntervalUnit": "DAYS"
        },
        "ArchiveRule": {
            "RetainRule":{
              "RetentionArchiveTier": {
                 "Interval": 90,
                 "IntervalUnit": "DAYS"
              }
            }
        }
      }
    ],
    "TargetTags": [
      {
        "Key": "Name",
        "Value": "Prod"
      }
    ]
}
```

**例 6 - アーカイブが有効なカウントベースのスケジュールを持つスナップショットライフサイクルポリシー**  
この例では、`Purpose=Test` によりタグ付けされたボリュームを対象とする、スナップショットライフサイクルポリシーを作成します。このポリシーには、毎月の初日の午前 9 時にスナップショットを作成する、カウントベースのスケジュールが 1 つあります。スケジュールは、作成直後にスナップショットをアーカイブし、最大 3 つのスナップショットをアーカイブ階層に保持します。

```
aws dlm create-lifecycle-policy \
    --description "{{Copy snapshots to Outpost}}" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::{{12345678910}}:role/{{AWSDataLifecycleManagerDefaultRole}} \
    --policy-details file://{{policyDetails.json}}
```

次は、`policyDetails.json` ファイルの例です。

```
{
    "ResourceTypes": [ "VOLUME"],
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "Schedules" : [
      {
        "Name": "sched1",
        "TagsToAdd": [
          {"Key":"createdby","Value":"dlm"}
        ],
        "CreateRule": {
          "CronExpression": "cron(0 9 1 * ? *)"
        },
        "CopyTags": true,
        "RetainRule":{
          "Count": 0
        },
        "ArchiveRule": {
            "RetainRule":{
              "RetentionArchiveTier": {
                 "Count": 3
              }
            }
        }
      }
    ],
    "TargetTags": [
      {
        "Key": "Purpose",
        "Value": "Test"
      }
    ]
}
```

------

## スナップショットライフサイクルポリシーに関する考慮事項
<a name="snapshot-considerations"></a>

スナップショットのライフサイクルポリシーには、次の**一般的な考慮事項**が適用されます。
+ スナップショットライフサイクルポリシーは、ポリシーと同じリージョンにあるインスタンスまたはボリュームのみを対象としています。
+ 最初のスナップショット作成オペレーションは、指定された開始時刻から 1 時間以内に開始されます。その後に続くスナップショット作成オペレーションは、スケジュールされた時刻の 1 時間以内に開始されます。
+ ボリュームまたはインスタンスをバックアップするために複数のポリシーを作成できます。例えば、ボリュームに 2 つのタグがあり、タグ *A* が 12 時間ごとにスナップショットを作成するポリシー *A* のターゲットであり、タグ *B* が 24 時間ごとにスナップショットを作成するポリシー *B* のターゲットである場合、Amazon Data Lifecycle Manager は両方のポリシーのスケジュールに従ってスナップショットを作成します。または、複数のスケジュールを持つ単一のポリシーを作成することで、同じ結果を得ることができます。例えば、タグ *A* のみをターゲットとするポリシーを 1 つ作成し、スケジュールを 2 つ指定できます (1 つは 12 時間ごと、1 つは 24 時間ごと)。
+ ターゲットリソースタグでは大文字と小文字が区別されます。
+ ポリシーによってターゲットにされたリソースからターゲットタグを削除した場合、以降、Amazon Data Lifecycle Manager では、標準階層とアーカイブ層に既に存在するスナップショットの管理は行いません。不要になった場合は手動で削除する必要があります。
+ インスタンスをターゲットとするポリシーを作成し、ポリシーの作成後に新しいボリュームがターゲットインスタンスにアタッチされた場合、新しく追加されたボリュームは、次回のポリシー実行時にバックアップに含まれます。ポリシー実行時にインスタンスにアタッチされたすべてのボリュームが含まれます。
+ スナップショットを 1 つだけ作成するように設定されているカスタム cron ベースのスケジュールを持つポリシーを作成した場合、そのポリシーでは、保持のしきい値に達しても、そのスナップショットは自動的に削除されません。スナップショットが不要になった場合は、手動で削除する必要があります。
+ 保持期間が作成頻度よりも短い経過日ベースのポリシーを作成した場合、Amazon Data Lifecycle Manager は次のスナップショットが作成されるまで常に最新のスナップショットを保持します。例えば、経過日ベースのポリシーで保存期間が 7 日間のスナップショットが毎月 1 つ作成される場合、Amazon Data Lifecycle Manager は、保持期間が 7 日間であっても、各スナップショットを 1 か月間保持します。

**[スナップショットの共有](snapshot-archive.md)**には、次の考慮事項が適用されます。
+ スナップショットのアーカイブは、ボリュームをターゲットとするスナップショットポリシーに対してのみ有効にできます。
+ アーカイブルールは、ポリシーごとに 1 つのスケジュールでのみ指定が可能す。
+ コンソールを使用している場合、スケジュールに設定されている作成頻度が、毎月または毎年、または 28 日以上の cron 式の場合にのみ、スナップショットアーカイブを有効にできます。

   AWS CLI、 AWS API、または AWS SDK を使用している場合、スケジュールに作成頻度が 28 日以上の cron 式がある場合にのみ、スナップショットのアーカイブを有効にできます。
+ アーカイブ階層における最小保持期間は 90 日です。
+ アーカイブされるスナップショットは、アーカイブ階層に移動される際に完全なスナップショットに変換されます。これにより、スナップショットのストレージコストが高くなる可能性があります。詳細については、「[Amazon EBS スナップショットをアーカイブするための料金と請求](snapshot-archive-pricing.md)」を参照してください。
+ スナップショットのアーカイブを使用する場合、スナップショットの高速復元とスナップショット共有は無効になります。
+ うるう年のために、保持ルールによるアーカイブの保持期間が 90 日到達できない場合、Amazon Data Lifecycle Manager が、スナップショットの保持期間が最低 90 日間になるように調整します。
+ Amazon Data Lifecycle Manager によって作成されたスナップショットを手動でアーカイブし、スケジュールによる保持期間のしきい値を超えても依然としてアーカイブされている場合には、そのスナップショットに対して Amazon Data Lifecycle Manager による管理は行われません。ただし、スケジュールによる保持期間のしきい値に達する前にスナップショットを標準階層に復元すれば、そのスナップショットに対し、引き続きスケジュールの保存ルールに従った管理が行われます。
+ 標準階層に永続的または一時的に復元された (Amazon Data Lifecycle Manager がアーカイブを行った) スナップショットが、スケジュールでの保持期間のしきい値に達した後も標準階層に残っている場合、そのスナップショットに対する Amazon Data Lifecycle Manager による管理は行われなくなります。ただし、保持期間のしきい値に達する前にスナップショットを再アーカイブすると、この保持期間が終了した時点で、スナップショットはスケジュールにより削除されます。
+ Amazon Data Lifecycle Manager によってアーカイブされたスナップショットは、`Archived snapshots per volume` および `In-progress snapshot archives per account` のクォータにカウントされます。
+ 24 時間再試行した後も、スケジュールがスナップショットをアーカイブできない場合、スナップショットは標準階層に残されます。その後、アーカイブ層から削除される予定時刻に基づいて削除されるようにスケジュールされます。例えば、スナップショットを 120 日間アーカイブするスケジュールでは、アーカイブが失敗してもスナップショットが 120 日間は標準階層に残され、その後完全に削除されます。カウントベースのスケジュールの場合、スナップショットはスケジュールによるの保持回数にカウントされません。
+ スナップショットは、それが作成されたリージョンと同じリージョンにアーカイブされる必要があります。クロスリージョンコピーとスナップショットアーカイブを有効にしている場合、このスナップショットのコピーは Amazon Data Lifecycle Manager によりアーカイブされません。
+ Amazon Data Lifecycle Manager によってアーカイブされたスナップショットには、`aws:dlm:archived=true` システムタグが付けられます。さらに、アーカイブが有効な期間ベースのスケジュールで作成されたスナップショットには、`aws:dlm:expirationTime` システムタグ (スナップショットがアーカイブされる予定の日付と時刻を示します) が付けられます。

**ルートボリュームとデータ (非ルート) ボリュームの除外**には、次の考慮事項が適用されます。
+ ブートボリュームを除外することを選択し、結果としてインスタンスにアタッチされたすべての追加データボリュームを除外するタグを指定した場合、Amazon Data Lifecycle Manager は、影響を受けるインスタンスのスナップショットを作成せず、`SnapshotsCreateFailed` CloudWatch メトリクスを発行します。詳細については、「[CloudWatch を使用して、ポリシーをモニタリング](monitor-dlm-cw-metrics.md)」を参照してください。

**スナップショットライフサイクルポリシーによってターゲットにされたボリュームを削除したり、インスタンスを終了したりする場合**の考慮事項は次のとおりです。
+ 数値ベースの保持期間が設定されたポリシーでターゲットされているボリュームの削除やインスタンスの終了を行った場合、以後 Amazon Data Lifecycle Manager では、これらのボリュームまたはインスタンスで作成されたスナップショットの管理は行いません。前に作成されたこれらのスナップショットが不要になった場合、手動で削除する必要があります。
+ 期間ベースの保持スケジュールが設定されたポリシーによってターゲットされているボリュームの削除やインスタンスの終了を行っても、ポリシーは、削除されたボリュームまたは終了されたインスタンスから以前に作成されたスナップショットを、 定義されたスケジュールに基づいて順番にすべて (ただし、最新のものは除き) 削除し続けます。最後のスナップショットが不要になった場合は、手動で削除する必要があります。

スナップショットライフサイクルポリシーや**[高速スナップショット復元](ebs-fast-snapshot-restore.md)**に関する考慮事項は次のとおりです。
+ Amazon Data Lifecycle Manager は、サイズが 16 TiB 以下のスナップショットに対してのみ高速スナップショット復元を有効にできます。詳細については、「[Amazon EBS 高速スナップショット復元](ebs-fast-snapshot-restore.md)」を参照してください。
+ 高速スナップショット復元が有効化されているスナップショットについては、対応するポリシーを削除もしくは無効化した場合、対応するポリシーの高速スナップショット復元を無効化した場合、または対応するアベイラビリティーゾーンの高速スナップショット復元を無効化した場合であっても、当該復元は有効に保たれます。このようなスナップショットについては、手動で高速スナップショット復元を無効化する必要があります。
+ ポリシーの高速スナップショット復元の有効化中に、有効化できるスナップショットの最大数を超えると、Amazon Data Lifecycle Manager はスケジュールに沿ったスナップショット作成は行うものの、作成したスナップショットの高速スナップショット復元は有効化しません。高速スナップショット復元が有効化されているスナップショットが削除されると、その次にAmazon Data Lifecycle Managerが作成するスナップショットの高速スナップショット復元が有効化されます。
+ あるスナップショットの高速スナップショット復元を有効化すると、当該スナップショットが最適化されるまでに、1 TiB あたり 60 分の時間がかかります。Amazon Data Lifecycle Manager が次のスナップショットを作成する前に各スナップショットが完全に最適化されるようなスケジュールの設定をお勧めします。
+ インスタンスを対象とするポリシーの高速スナップショット復元を有効にすると、Amazon Data Lifecycle Manager は、マルチボリュームスナップショットセット内の各スナップショットの高速スナップショット復元を個別に有効にします。Amazon Data Lifecycle Manager が、マルチボリュームスナップショットセット内のスナップショットの 1 つに対して高速スナップショット復元を有効にできない場合でも、スナップショットセット内の残りのスナップショットに対して高速スナップショット復元を有効にしようとします。
+ 特定のアベイラビリティーゾーンでスナップショットの高速スナップショット復元を有効にしている時間中は、請求が発生します。料金は 1 時間を最小として時間単位で計算されます。詳細については、「[料金と請求](ebs-fast-snapshot-restore.md#fsr-pricing)」を参照してください。
**注記**  
ライフサイクルポリシーの設定によっては、複数のスナップショットに対して同時に複数のアベイラビリティーゾーンで高速スナップショット復元を有効にすることができます。

スナップショットライフサイクルポリシーおよび**[マルチアタッチ](ebs-volumes-multi.md)が有効なボリューム**に関する考慮事項は次のとおりです。
+ マルチアタッチが有効な同じボリュームを持つインスタンスをターゲットとするライフサイクルポリシーを作成する場合、Amazon Data Lifecycle Manager はアタッチされたインスタンスごとにボリュームのスナップショットを開始します。*timestamp* タグを使用して、アタッチされたインスタンスから作成された時間整合性のあるスナップショットのセットを識別します。

**アカウント間でスナップショットを共有する**場合の考慮事項は次のとおりです。
+ 共有できるのは、暗号化されていないスナップショットまたは カスタマーマネージド型キー を使用して暗号化されたスナップショットだけです。
+ デフォルトの EBS 暗号化 KMS キーで暗号化されたスナップショットを共有することはできません。
+ 暗号化されたスナップショットを共有する場合は、ソースボリュームの暗号化に使用された KMS キーも、ターゲットアカウントと共有する必要があります。詳細については、*AWS Key Management Service デベロッパーガイド*の「[他のアカウントのユーザーに KMS キーの使用を許可する](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html)」を参照してください。

スナップショットのポリシーや**[スナップショットのアーカイブ](snapshot-archive.md)**に関する考慮事項は次のとおりです。
+ ポリシーによって作成されたスナップショットを手動でアーカイブし、ポリシーの保持しきい値に達したときにそのスナップショットがアーカイブ階層にある場合、Amazon Data Lifecycle Manager はスナップショットを削除しません。Amazon Data Lifecycle Manager は、スナップショットがアーカイブ階層に保存されている間は、スナップショットを管理しません。アーカイブ階層に保存されているスナップショットが不要になった場合は、手動で削除する必要があります。

次の考慮事項は、スナップショットポリシーおよび[ごみ箱](recycle-bin.md)に適用されます。
+ Amazon Data Lifecycle Manager がポリシーの保持しきい値に達したときにスナップショットを削除してごみ箱に移動し、そのスナップショットをごみ箱から手動で復元した場合は、スナップショットが不要になったら手動で削除する必要があります。Amazon Data Lifecycle Manager は、スナップショットを管理しなくなります。
+ ポリシーによって作成されたスナップショットを手動で削除し、ポリシーの保持しきい値に達したときにそのスナップショットがごみ箱にある場合、Amazon Data Lifecycle Manager はスナップショットを削除しません。Amazon Data Lifecycle Manager は、スナップショットがごみ箱に保存されている間は、スナップショットを管理しません。

  ポリシーの保持しきい値に達する前にスナップショットがごみ箱から復元された場合、Amazon Data Lifecycle Manager は、ポリシーの保持しきい値に達したときにスナップショットを削除します。

  ポリシーの保持しきい値に達した後にスナップショットがごみ箱から復元された場合、Amazon Data Lifecycle Manager はそのスナップショットを削除しません。スナップショットが不要になった場合は、手動で削除する必要があります。

以下は、**エラー**状態にあるスナップショットライフサイクルポリシーに関する考慮事項です。
+ 期間ベースの保持スケジュールを持つポリシーの場合、ポリシーが `error` 状態の間に有効期限を迎えるスナップショットは無期限に保持されます。これらのスナップショットは手動で削除する必要があります。ポリシーを再度有効にすると、Amazon Data Lifecycle Manager は保持期間が終了した時にスナップショットの削除を再開します。
+ カウントベースの保存スケジュールが設定されているポリシーの場合、ポリシーが `error` 状態の間はスナップショットの作成と削除が停止されます。ポリシーを再度有効にすると、Amazon Data Lifecycle Manager はスナップショットの作成を再開し、保持しきい値に達した時にスナップショットの削除を再開します。

スナップショットポリシーと**[スナップショットロック](ebs-snapshot-lock.md)**に関する考慮事項は次のとおりです。
+ Amazon Data Lifecycle Manager によって作成されたスナップショットを手動でロックし、その後保持しきい値を超えても依然としてロックされている場合、そのスナップショットについては Amazon Data Lifecycle Manager による管理は行われません。スナップショットが不要になった場合は、手動で削除する必要があります。
+ Amazon Data Lifecycle Manager によって作成され、高速スナップショット復元が有効化されているスナップショットを手動でロックし、その後保持しきい値を超えても依然としてロックされている場合、そのスナップショットについては Amazon Data Lifecycle Manager による高速スナップショット復元の無効化または削除は行われません。スナップショットが不要になった場合は、手動で高速スナップショット復元を無効にして削除する必要があります。
+ Amazon Data Lifecycle Manager によって作成されたスナップショットを AMI に手動で登録してからロックし、その後保持しきい値を超えても依然としてロックされた状態で AMI に関連付けられている場合、そのスナップショットについては Amazon Data Lifecycle Manager による削除の試行が続行されます。AMI の登録が解除され、スナップショットのロックが解除されると、Amazon Data Lifecycle Manager はスナップショットを自動的に削除します。

## その他のリソース
<a name="snapshot-additional-resources"></a>

詳細については、[「Amazon Data Lifecycle Manager ストレージを使用した Amazon EBS スナップショットと AMI 管理の自動化](https://aws.amazon.com/blogs/storage/automating-amazon-ebs-snapshot-and-ami-management-using-amazon-dlm/) AWS 」ブログを参照してください。