スナップショットと EBS-backed AMI ライフサイクルの自動化 - Amazon Elastic Compute Cloud

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

スナップショットと EBS-backed AMI ライフサイクルの自動化

次の手順は、Amazon Data Lifecycle Manager を使用して EBS ボリュームと Amazon EC2 インスタンスのバックアップを管理する方法を示しています。アカウントと共有されているスナップショットをコピーするポリシーの作成の詳細については、「クロスアカウントのスナップショットコピーの自動化」を参照してください。

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

Console

スナップショットまたは AMI ライフサイクルポリシーを作成するには

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

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

  3. 必要に応じて、ポリシーに次の情報を入力します。

    • 説明— ポリシーの説明。

    • ポリシータイプ— 作成するポリシーのタイプ。スナップショットのライフサイクルを自動化するポリシーを作成するには、[EBS スナップショットポリシー] を選択します。EBS-backed AMI のライフサイクルを自動化するポリシーを作成するには、[EBS-backed AMI ポリシー] を選択します。

      アカウントと共有されているスナップショットをコピーするポリシーの作成の詳細については、「クロスアカウントのスナップショットコピーの自動化」を参照してください。

    • リソースタイプ— (スナップショットライフサイクルポリシーのみ) バックアップするリソースタイプ。Volume を選択して個々のボリュームのスナップショットを作成するか、Instance を選択してインスタンスにアタッチされたボリュームからマルチボリュームスナップショットを作成します。

      注記

      AMI ライフサイクルポリシーでは、インスタンスのみをバックアップできます。

    • リソースの場所 — (スナップショットライフサイクルポリシーのみ) バックアップするリソースの場所。ソースリソースが AWS リージョンにある場合は、[AWS リージョン] を選択します。ソースリソースがアカウントの Outpost にある場合は、[AWS Outpost] を選択します。[AWS Outpost] を選択した場合は、アカウント内のすべての Outpost で一致するターゲットタグとともに、指定したタイプのすべてのリソースが Amazon Data Lifecycle Manager によりバックアップされます。

      アカウントに Outposts がない場合は、AWS リージョンがデフォルトで選択されます。

      注記

      リソースがリージョンにある場合、ポリシーによって作成されたスナップショットも、同じリージョンに保存されます。リソースが Outpost にある場合、ポリシーによって作成されたスナップショットは、リソースと同じリージョンか、同じ Outpost のどちらかに保存できます。

    • これらのタグを持つターゲット— バックアップするボリュームまたはインスタンスの識別情報となるリソースタグ。ポリシーでは、指定されたタグキーと値のペアを持つリソースのみがバックアップされます。

    • ライフサイクルポリシータグ— ライフサイクルポリシーに適用されるタグ。

  4. IAM ロールでは、選択したポリシータイプに応じて、スナップショットまたは AMI を作成、削除、説明するためのアクセス許可を持つ IAM ロールを選択し、ボリュームとインスタンスを説明します。AWS にはデフォルトのロールが用意されていますが、カスタム IAM ロールを作成することもできます。

  5. ポリシースケジュールを追加します。スケジュール 1 は必須です。スケジュール 2、3、および 4 はオプションです。追加したポリシースケジュールごとに、次の情報を指定します。

    • スケジュール名— スケジュールの名称。

    • 頻度— ポリシーの実行間隔。ポリシーの実行は、日次、週次、月次、年次のいずれかのスケジュールで設定できます。または、[カスタム cron 式] をクリックし、最長 1 年の間隔を指定します。詳細については、Amazon CloudWatch Events ユーザーガイドの「Cron 式」を参照してください。

    • 開始時刻: hh:mm UTC— ポリシー実行の開始予定時刻。初回のポリシー実行は、予定時刻から 1 時間以内に開始されます。

    • 保持タイプ— スナップショットまたは AMI は、総数または期間に基づいて保持できます。カウントベースの保持の場合、指定できる範囲は 1~1000 です。この最大数に達すると、新しいスナップショットまたは AMI の作成時に最も古いスナップショットが削除されます。保存期間に基づく保持の場合、保存時間の範囲は 1~100 年です。各スナップショットまたは AMI の保持期間が終了すると、スナップショットは削除されます。保存期間は、この間隔以上でなければなりません。

      注記

      すべてのスケジュールは、同じ保持タイプである必要があります。保持タイプを指定できるのは、スケジュール 1 のみです。スケジュール 2、3、4 は、スケジュール 1 から保持タイプを継承します。各スケジュールには、独自の保持回数または期間を設定できます。

    • スナップショットの送信先 —(スナップショットライフサイクルポリシーのみ) ポリシーによって作成されるスナップショットを送る先を指定します。ソースリソースと同じ AWS リージョンにスナップショットを作成するには、[AWS Region] を選択します。Outpost にスナップショットを作成するには、[AWS Outpost] を選択します。

      ポリシーがリージョンのリソースをターゲットにしている場合、スナップショットは同じリージョンに作成され、Outpost には作成できません。

      ポリシーが Outpost のリソースをターゲットにしている場合は、ソースリソースと同じ Outpost、または Outpost に関連付けられたリージョンに、スナップショットを作成できます。

    • ソースからタグをコピー—ソースリソースのすべてのユーザー定義タグのコピー先を、スケジュールに従い作成されたスナップショットにするか AMI にするのかを選択します。スナップショットライフサイクルポリシーでは、ソースボリュームに割り当てられたタグがスナップショットに割り当てられます。AMI ライフサイクルポリシーでは、ソースインスタンスに割り当てられたタグが AMI に割り当てられます。

    • 動的タグ— ソースリソースがインスタンスの場合、スナップショットまたは AMI に次の変数タグを自動的にタグ付けすることを選択できます。

      • instance-id— ソースインスタンスの ID。

      • timestamp— (スナップショットライフサイクルポリシーのみ) ポリシーの実行日時。

    • 追加タグ— このスケジュールによって作成されたスナップショットまたは AMI に割り当てる追加のタグを指定します。

    • 高速スナップショット復元— (スナップショットライフサイクルポリシーのみ) スケジュールに従い作成されたすべてのスナップショットに対して、高速スナップショット復元を有効にするかどうかを選択します。高速スナップショット復元を有効にする場合は、特定のアベイラビリティーゾーンを選択する必要があります。特定のアベイラビリティーゾーンでスナップショットの高速スナップショット復元を有効にしている時間中は、請求が発生します。料金は 1 時間を最小として時間単位で計算されます。高速スナップショット復元を有効にするスナップショットの最大数を指定することもできます。

      ポリシーが Outpost にスナップショットを作成している場合、高速スナップショット復元を有効にすることはできません。高速スナップショット復元は、Outpost に保存されているローカルスナップショットではサポートされません。

    • クロスリージョンコピーの有効化 —(AMI ライフサイクルポリシー) AMI を最大 3 つの追加リージョンにコピーできます。

      (スナップショットライフサイクルポリシー) ポリシーによってリージョンにスナップショットが作成された場合、アカウント内で最大 3 つの追加リージョンにある Outposts に、そのスナップショットをコピーできます。コピー先となるリージョンまたは Outposts ごとに、個別のクロスリージョンコピールールを指定する必要があります。

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

      リージョンごとのスナップショットまたは AMI の同時コピー数を超えないようにする必要があります。

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

  6. (AMI ライフサイクルポリシーのみ) AMI の作成前にインスタンスを再起動するかどうかを指定します。ターゲットインスタンスが再起動されないようにするには、[ポリシー実行時にインスタンスを再起動] で [いいえ] を選択します。このオプションを選択すると、データの一貫性の問題が発生する可能性があります。AMI の作成前にインスタンスを再起動するには、[ポリシー実行時にインスタンスを再起動] で [はい] を選択します。これを選択すると、データの整合性は保証されますが、複数のターゲットインスタンスが同時に再起動する可能性があります。

  7. [Policy status after creation (作成後のポリシーの状態)] では、[Enable policy (ポリシーの有効化)] を選択すると、次のスケジュールした時刻にポリシーが実行されます。ポリシーが実行されないようにするには、[Disable policy (ポリシーの無効化)] を選択します。

  8. [Create Policy (ポリシーの作成)] を選択します。

Command line

ライフサイクルポリシーを作成するには、create-lifecycle-policy コマンドを使用します。スナップショットライフサイクルポリシーを作成するには、PolicyType で、EBS_SNAPSHOT_MANAGEMENT を指定します。AMI ライフサイクルポリシーを作成するには、PolicyType で、IMAGE_MANAGEMENT を指定します。

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

例 1 — スナップショットライフサイクルポリシー

この例では、値が 115costcenter のタグキーを持つすべてのボリュームのスナップショットを作成するスナップショットライフサイクルポリシーを作成します。ポリシーには、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 0 17 ? * FRI *)" }, "RetainRule": { "Count": 5 }, "CopyTags": false } ]}

成功すると、このコマンドは新しく作成されたポリシーの ID を返します。出力例を次に示します。

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

例 2 — 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 } ]}

例 3 — リージョンにスナップショットを作成し、それを Outpost にコピーするスナップショットライフサイクルポリシー

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

例 4 — AMI ライフサイクルポリシー

この例では、ターゲットインスタンスを再起動せずに、値が productionpurpose のタグキーを持つすべてのインスタンスの AMI を作成する AMI ライフサイクルポリシーを作成します。ポリシーには、毎日 01:00 UTC に AMI を作成するスケジュールが 1 つ含まれます。このポリシーは、最新の 2 つの AMI (およびそれらのバックアップスナップショット) を保持し、ソースインスタンスから作成した AMI にタグをコピーします。

aws dlm create-lifecycle-policy --description "My AMI policy" --state ENABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement --policy-details file://policyDetails.json

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

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes": [ "INSTANCE" ], "TargetTags": [{ "Key": "purpose", "Value": "production" }], "Schedules": [{ "Name": "DailyAMIs", "TagsToAdd": [{ "Key": "type", "Value": "myDailyAMI" }], "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "01:00" ] }, "RetainRule": { "Count": 2 }, "CopyTags": true } ], "Parameters" : { "NoReboot":true } }

成功すると、このコマンドは新しく作成されたポリシーの ID を返します。出力例を次に示します。

{ "PolicyId": "policy-9876543210abcdef0" }