Amazon EBS スナップショットをアーカイブするためのガイドラインとベストプラクティス - Amazon EBS

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

Amazon EBS スナップショットをアーカイブするためのガイドラインとベストプラクティス

このセクションでは、スナップショットのアーカイブに関するガイドラインとベストプラクティスをいくつか示します。

ボリュームの 1 つのスナップショットをアーカイブする

ボリュームのスナップショットが 1 つしかない場合、スナップショットは、スナップショットの作成時にボリュームに書き込まれたブロックと常に同じサイズになります。このようなスナップショットをアーカイブすると、標準階層のスナップショットは同等サイズのフルスナップショットに変換され、標準階層からアーカイブ階層に移動されます。

これらのスナップショットをアーカイブすることで、ストレージコストの削減に役立ちます。ソースボリュームが不要になった場合は、ストレージコストをさらに節約するためにボリュームを削除できます。

スナップショットを作成し、アーカイブし、ソースボリュームを削除します。

単一ボリュームの増分スナップショットをアーカイブする

増分スナップショットをアーカイブすると、スナップショットは完全なスナップショットに変換され、アーカイブ階層に移動されます。たとえば、以下の画像では、スナップ B をアーカイブする場合、スナップショットは 10 GiB の完全なスナップショットに変換され、アーカイブ階層に移動されます。同様に、スナップ C をアーカイブする場合の場合、アーカイブ階層内の完全なスナップショットのサイズは 14 GiB です。

ボリュームの増分スナップショットをアーカイブします。

標準階層のストレージコストを削減するためにスナップショットをアーカイブする場合は、増分スナップショットのセットに最初のスナップショットをアーカイブしないでください。これらのスナップショットは、スナップショット系統内の後続のスナップショットによって参照されます。ほとんどの場合、これらのスナップショットをアーカイブしても、ストレージコストは削減されません。

注記

増分スナップショットのセットには、最後のスナップショットをアーカイブしないでください。最後のスナップショットは、ボリュームの最新のスナップショットです。ボリュームが破損または紛失した場合に、標準階層からボリュームを作成する場合は、標準階層でこのスナップショットが必要になります。

後続のスナップショットで参照されるデータを含むスナップショットを系統でアーカイブすると、参照されるデータに関連付けられているデータストレージコストとストレージコストは、系統内の後続のスナップショットに割り当てられます。この場合、スナップショットをアーカイブしても、データストレージやストレージのコストは削減されません。例えば、上の図でスナップ B をアーカイブする場合、その 4 GiB のデータはスナップ C に帰属しています。この場合、アーカイブ階層のスナップ B のフルバージョンのストレージコストが発生し、標準階層のストレージコストは変わらないため、全体のストレージコストが増加します。

スナップ C をアーカイブする場合、データが系統の後半で他のスナップショットによって参照されないため、標準階層ストレージは 4 GiB 減少します。また、スナップショットが完全なスナップショットに変換されるため、アーカイブ階層のストレージは 14 GiB 増加します。

コンプライアンス上の理由から完全なスナップショットをアーカイブする

コンプライアンス上の理由から、毎月、四半期、または年単位でボリュームのフルバックアップを作成する必要がある場合があります。これらのバックアップでは、スナップショット系統内の他のスナップショットへの後方参照または前方参照なしで、スタンドアロンスナップショットが必要になる場合があります。EBS Snapshots Archive でアーカイブされたスナップショットは完全なスナップショットであり、系統内の他のスナップショットへの参照はありません。さらに、コンプライアンスのために、これらのスナップショットを数年間保持する必要があります。EBS Snapshots Archive を使用すると、これらの完全なスナップショットを長期保存するためにアーカイブするコスト効率が向上します。

標準階層のストレージコストの削減を決定する

増分スナップショットをアーカイブしてストレージコストを削減する場合は、アーカイブ階層の完全なスナップショットのサイズと、標準階層のストレージの削減を考慮する必要があります。ここでは、その方法について説明します。

重要

API レスポンスは、Word が呼び出されたときの APIs point-in-time で正確なデータです。APIレスポンスは、スナップショット系統の変更の結果としてスナップショットに関連付けられたデータが変化すると異なる場合があります。

標準階層でのストレージおよびストレージコストの削減を判断するには、次のステップに従います。

  1. 完全なスナップショットのサイズを確認します。スナップショットのフルサイズを確認するには、list-snapshot-blocks コマンドを使用します。[--snapshot-id] に、アーカイブしたいスナップショットの ID を指定します。

    $ aws ebs list-snapshot-blocks --snapshot-id snapshot_id

    これにより、指定されたスナップショット内のすべてのブロックに関する情報を返します。コマンドによって返される最後のブロックの BlockIndex は、スナップショット内のブロック数を示します。ブロック数に 512 KiB (スナップショット・ブロック・サイズ) を乗算すると、アーカイブ階層内の完全なスナップショットのサイズに近い近似値が得られます (ブロック * 512 KiB = 完全なスナップショットサイズ)。

    たとえば、次のコマンドは スナップショットスナップショット snap-01234567890abcdef のブロックの一覧を表示します。

    $ aws ebs list-snapshot-blocks --snapshot-id snap-01234567890abcdef

    以下はコマンド出力で、一部のブロックは省略されています。次の出力は、スナップショットに約 16,383 データブロックが含まれていることを示しています。これは、約 8 GiB (16,383 * 512 KiB = 7.99 GiB) の完全なスナップショットサイズに近似します。

    { "VolumeSize": 8, "Blocks": [ { "BlockToken": "ABgBAeShfa5RwG+RiWUg2pwmnCU/YMnV7fGMxLbCWfEBEUmmuqac5RmoyVat", "BlockIndex": 0 }, { "BlockToken": "ABgBATdTONyThPUAbQhbUQXsn5TGoY/J17GfE83j9WN7siupavOTw9E1KpFh", "BlockIndex": 1 }, { "BlockToken": "EBEUmmuqXsn5TGoY/QwmnCU/YMnV74eKE2TSsn5TGoY/E83j9WQhbUQXsn5T", "BlockIndex": 4 }, ..... { "BlockToken": "yThPUAbQhb5V8xpwmnCU/YMnV74eKE2TSFY1sKP/4r05y47WETdTONyThPUA", "BlockIndex": 12890 }, { "BlockToken": "ABgBASHKD5V8xEbaRKdxdkZZS4eKE2TSFYlMG1sKP/4r05y47WEHqKaNPcLs", "BlockIndex": 12906 }, { "BlockToken": "ABgBARROGMUJo6P9X3CFHQGZNQ7av9B6vZtTTqV89QqC+SkO0HWMlwkGXjnA", "BlockIndex": 16383 } ], "VolumeSize": 8, "ExpiryTime": 1637677800.845, "BlockSize": 524288 }
  2. アーカイブするスナップショットを作成したソースボリュームを検索します。describe-snapshots コマンドを使用します。--snapshot-id に、アーカイブしたいスナップショットの ID を指定します。VolumeId レスポンスパラメータは、ソースボリュームの ID を示します。

    $ aws ec2 describe-snapshots --snapshot-id snapshot_id

    たとえば、次のコマンドは、スナップショット snap-09c9114207084f0d9 に関する情報を返します。

    $ aws ec2 describe-snapshots --snapshot-id snap-09c9114207084f0d9

    次のコマンド出力は、スナップショット snap-09c9114207084f0d9 がボリュームvol-0f3e2c292c52b85c3 から作成されたことを示しています。

    { "Snapshots": [ { "Description": "", "Tags": [], "Encrypted": false, VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-16T08:29:49.840Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-09c9114207084f0d9" } ] }
  3. ソースボリュームから作成されたすべてのスナップショットを検索します。describe-snapshots コマンドを使用します。volume-id フィルターを指定して、フィルター値に、前のステップで取得したボリューム ID を指定します。

    $ aws ec2 describe-snapshots --filters "Name=volume-id, Values=volume_id"

    たとえば、次のコマンドは、ボリューム vol-0f3e2c292c52b85c3 から作成されたすべてのスナップショットを返します。

    $ aws ec2 describe-snapshots --filters "Name=volume-id, Values=vol-0f3e2c292c52b85c3"

    以下のコマンド出力は、ボリューム vol-0f3e2c292c52b85c3 から作成された 3 つのスナップショットを示します。

    { "Snapshots": [ { "Description": "", "Tags": [], "Encrypted": false, "VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-14T08:57:39.300Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-08ca60083f86816b0" }, { "Description": "", "Tags": [], "Encrypted": false, "VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-15T08:29:49.840Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-09c9114207084f0d9" }, { "Description": "01", "Tags": [], "Encrypted": false, "VolumeId": "vol-0f3e2c292c52b85c3", "State": "completed", "VolumeSize": 8, "StartTime": "2021-11-16T07:50:08.042Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-024f49fe8dd853fa8" } ] }
  4. 前のコマンドの出力を使用して、スナップショットを最初のものから新しい順に作成時刻順にソートします。各スナップショットのStartTimeレスポンスパラメータは、作成時刻を UTC 時間形式で示します。

    たとえば、前のステップで返されたスナップショットは、最も古いものから新しいものまで作成時刻順に整理され、次のようになります。

    1. snap-08ca60083f86816b0 (最速 — アーカイブしたいスナップショットの前に作成される)

    2. snap-09c9114207084f0d9 (アーカイブするスナップショット)

    3. snap-024f49fe8dd853fa8 (最新 — アーカイブしたいスナップショットの後に作成される)

  5. アーカイブしたいスナップショットの直前と直後に作成されたスナップショットを特定します。この場合、スナップショット snap-09c9114207084f0d9 をアーカイブします。これは、3 つのスナップショットのセットで作成された 2 番目の増分スナップショットです。スナップショット snap-08ca60083f86816b0 は直前に作成され、スナップショット snap-024f49fe8dd853fa8 が直後に作成されます。

  6. アーカイブしたいスナップショット内の参照されていないデータを検索します。まず、アーカイブしたいスナップショットの直前に作成されたスナップショットと、アーカイブするスナップショットの間で異なるブロックを見つけます。list-changed-blocks コマンドを使用します。--first-snapshot-id に、アーカイブしたいスナップショットの直前に作成されたスナップショットの ID を指定します。--second-snapshot-id に、アーカイブしたいスナップショットの ID を指定します。

    $ aws ebs list-changed-blocks --first-snapshot-id snapshot_created_before --second-snapshot-id snapshot_to_archive

    たとえば、次のコマンドは、スナップショット snap-08ca60083f86816b0 (アーカイブしたいスナップショットの前に作成されたスナップショット) とスナップショット snap-09c9114207084f0d9 (アーカイブしたいスナップショット) の間で異なるブロックのブロックインデックスを表示します。

    $ aws ebs list-changed-blocks --first-snapshot-id snap-08ca60083f86816b0 --second-snapshot-id snap-09c9114207084f0d9

    以下に、一部のブロックが省略されたコマンド出力を示します。

    { "BlockSize": 524288, "ChangedBlocks": [ { "FirstBlockToken": "ABgBAX6y+WH6Rm9y5zq1VyeTCmEzGmTT0jNZG1cDirFq1rOVeFbWXsH3W4z/", "SecondBlockToken": "ABgBASyx0bHHBnTERu+9USLxYK/81UT0dbHIUFqUjQUkwTwK5qkjP8NSGyNB", "BlockIndex": 4 }, { "FirstBlockToken": "ABgBAcfL+EfmQmlNgstqrFnYgsAxR4SDSO4LkNLYOOChGBWcfJnpn90E9XX1", "SecondBlockToken": "ABgBAdX0mtX6aBAt3EBy+8jFCESMpig7csKjbO2Ocd08m2iNJV2Ue+cRwUqF", "BlockIndex": 5 }, { "FirstBlockToken": "ABgBAVBaFJmbP/eRHGh7vnJlAwyiyNUi3MKZmEMxs2wC3AmM/fc6yCOAMb65", "SecondBlockToken": "ABgBAdewWkHKTcrhZmsfM7GbaHyXD1Ctcn2nppz4wYItZRmAo1M72fpXU0Yv", "BlockIndex": 13 }, { "FirstBlockToken": "ABgBAQGxwuf6z095L6DpRoVRVnOqPxmx9r7Wf6O+i+ltZ0dwPpGN39ijztLn", "SecondBlockToken": "ABgBAUdlitCVI7c6hGsT4ckkKCw6bMRclnV+bKjViu/9UESTcW7CD9w4J2td", "BlockIndex": 14 }, { "FirstBlockToken": "ABgBAZBfEv4EHS1aSXTXxSE3mBZG6CNeIkwxpljzmgSHICGlFmZCyJXzE4r3", "SecondBlockToken": "ABgBAVWR7QuQQB0AP2TtmNkgS4Aec5KAQVCldnpc91zBiNmSfW9ouIlbeXWy", "BlockIndex": 15 }, ..... { "SecondBlockToken": "ABgBAeHwXPL+z3DBLjDhwjdAM9+CPGV5VO5Q3rEEA+ku50P498hjnTAgMhLG", "BlockIndex": 13171 }, { "SecondBlockToken": "ABgBAbZcPiVtLx6U3Fb4lAjRdrkJMwW5M2tiCgIp6ZZpcZ8AwXxkjVUUHADq", "BlockIndex": 13172 }, { "SecondBlockToken": "ABgBAVmEd/pQ9VW9hWiOujOAKcauOnUFCO+eZ5ASVdWLXWWC04ijfoDTpTVZ", "BlockIndex": 13173 }, { "SecondBlockToken": "ABgBAT/jeN7w+8ALuNdaiwXmsSfM6tOvMoLBLJ14LKvavw4IiB1d0iykWe6b", "BlockIndex": 13174 }, { "SecondBlockToken": "ABgBAXtGvUhTjjUqkwKXfXzyR2GpQei/+pJSG/19ESwvt7Hd8GHaUqVs6Zf3", "BlockIndex": 13175 } ], "ExpiryTime": 1637648751.813, "VolumeSize": 8 }

    次に、同じコマンドを使用して、アーカイブするスナップショットとその直後に作成されたスナップショットとの間で異なるブロックを検索します。--first-snapshot-id に、アーカイブしたいスナップショットの ID を指定します。--second-snapshot-id に、アーカイブしたいスナップショットの直後に作成されたスナップショットの ID を指定します。

    $ aws ebs list-changed-blocks --first-snapshot-id snapshot_to_archive --second-snapshot-id snapshot_created_after

    たとえば、次のコマンドは、スナップショット snap-024f49fe8dd853fa8 (アーカイブしたいスナップショットの後に作成されたスナップショット) とスナップショット snap-09c9114207084f0d9 (アーカイブしたいスナップショット) の間で異なるブロックのブロックインデックスを表示します。

    $ aws ebs list-changed-blocks --first-snapshot-id snap-09c9114207084f0d9 --second-snapshot-id snap-024f49fe8dd853fa8

    以下に、一部のブロックが省略されたコマンド出力を示します。

    { "BlockSize": 524288, "ChangedBlocks": [ { "FirstBlockToken": "ABgBAVax0bHHBnTERu+9USLxYK/81UT0dbSnkDk0gqwRFSFGWA7HYbkkAy5Y", "SecondBlockToken": "ABgBASEvi9x8Om7Htp37cKG2NT9XUzEbLHpGcayelomSoHpGy8LGyvG0yYfK", "BlockIndex": 4 }, { "FirstBlockToken": "ABgBAeL0mtX6aBAt3EBy+8jFCESMpig7csfMrI4ufnQJT3XBm/pwJZ1n2Uec", "SecondBlockToken": "ABgBAXmUTg6rAI+v0LvekshbxCVpJjWILvxgC0AG0GQBEUNRVHkNABBwXLkO", "BlockIndex": 5 }, { "FirstBlockToken": "ABgBATKwWkHKTcrhZmsfM7GbaHyXD1CtcnjIZv9YzisYsQTMHfTfh4AhS0s2", "SecondBlockToken": "ABgBAcmiPFovWgXQio+VBrxOqGy4PKZ9SAAHaZ2HQBM9fQQU0+EXxQjVGv37", "BlockIndex": 13 }, { "FirstBlockToken": "ABgBAbRlitCVI7c6hGsT4ckkKCw6bMRclnARrMt1hUbIhFnfz8kmUaZOP2ZE", "SecondBlockToken": "ABgBAXe935n544+rxhJ0INB8q7pAeoPZkkD27vkspE/qKyvOwpozYII6UNCT", "BlockIndex": 14 }, { "FirstBlockToken": "ABgBAd+yxCO26I+1Nm2KmuKfrhjCkuaP6LXuol3opCNk6+XRGcct4suBHje1", "SecondBlockToken": "ABgBAcPpnXz821NtTvWBPTz8uUFXnS8jXubvghEjZulIjHgc+7saWys77shb", "BlockIndex": 18 }, ..... { "SecondBlockToken": "ABgBATni4sDE5rS8/a9pqV03lU/lKCW+CTxFl3cQ5p2f2h1njpuUiGbqKGUa", "BlockIndex": 13190 }, { "SecondBlockToken": "ABgBARbXo7zFhu7IEQ/9VMYFCTCtCuQ+iSlWVpBIshmeyeS5FD/M0i64U+a9", "BlockIndex": 13191 }, { "SecondBlockToken": "ABgBAZ8DhMk+rROXa4dZlNK45rMYnVIGGSyTeiMli/sp/JXUVZKJ9sMKIsGF", "BlockIndex": 13192 }, { "SecondBlockToken": "ABgBATh6MBVE904l6sqOC27s1nVntFUpDwiMcRWGyJHy8sIgGL5yuYXHAVty", "BlockIndex": 13193 }, { "SecondBlockToken": "ABgBARuZykaFBWpCWrJPXaPCneQMbyVgnITJqj4c1kJWPIj5Gn61OQyy+giN", "BlockIndex": 13194 } ], "ExpiryTime": 1637692677.286, "VolumeSize": 8 }
  7. 前のステップで両方のコマンドで返された出力を比較します。両方のコマンド出力に同じブロックインデックスが表示される場合は、ブロックに参照されていないデータが含まれていることを示します。

    例えば、前のステップのコマンド出力では、ブロック 4、5、13、14 がスナップショット snap-09c9114207084f0d9 に固有のものであり、スナップショットの系統の中で他のスナップショットから参照されていないことを示しています。

    標準階層ストレージの削減を判断するには、両方のコマンド出力に表示されるブロック数に 512 KiB (スナップショットブロックサイズ) を掛けます。

    たとえば、9,950 ブロックインデックスが両方のコマンド出力に表示されている場合、標準階層ストレージが約 4.85 GiB (9,950 ブロック * 512 KiB = 4.85 GiB) 減少することを示します。

  8. 参照されていないブロックを標準階層に 90 日間格納するためのストレージコストを決定します。この値を、ステップ 1 で説明した完全なスナップショットをアーカイブ階層に格納するコストと比較します。最低 90 日間はアーカイブ階層から完全なスナップショットを復元しないことを前提として、値を比較することで、コスト削減を判断できます。詳細については、「Amazon EBS スナップショットをアーカイブするための料金と請求」を参照してください。