Amazon Elastic Block Store (Amazon EBS) ボリュームの増分のスナップショットを作成する場合、完全なスナップショットと同じ時間がかかる理由を知りたいと考えています。
解決策
スナップショットの作成時間は、以下の要因によって異なります。
- EBS ボリュームのサイズ。
- 最後のスナップショット以降に変更された、ブロックの量 (デルタ)。
- EBS のボリュームでのワークロード。
- スナップショット作成中の EBS ボリュームでのアクティブな I/O。create 呼び出しの発行時にボリューム上で入出力操作が一致している場合には、スナップショットの優先順位は低くなります。
- 帯域幅はバックエンドサーバーで共有されるため、スナップショットのタイミング。
- 最後にスナップショットが作成されてからの時間。
設計上、EBS スナップショットには、増分サイズではなくバックアップのフルサイズが表示されます。この最初のスナップショットは、データ全体のコピーとなります。これ以降のスナップショットは増加分であり、最新のスナップショットから変更されたブロックとなっています。設計上は増加した分であっても、これ以降のスナップショットは、任意の EBS スナップショットから新たなボリュームを復元したものになる可能性があるため、全体が表示されます。それぞれの増分のスナップショットは、バックエンド内の他のスナップショットを参照するものとなります。
たとえば、最初のスナップショット以降にすべてのブロックが変更された場合は、スナップショットを作成するのにスナップショットの全体の場合と同じくらい時間を要するように見える場合があります。これは、最初のスナップショットを参照しているすべてのブロックが変更されるためです。
最後のスナップショット以降の変更数が多いほど、後のスナップショットの作成時間がより長くかかります。
作成時間は、基になる記憶域サブシステムの負荷などの、他のインフラストラクチャ要因にも左右されます。EBS スナップショットの作成時間を予測したり、プロセスを迅速化したりする方法はありません。
詳しくは、「How snapshots work」を参照してください。
スナップショットの実際のサイズを確認する方法
1. list-snapshot-blocks AWS コマンドラインインターフェイス (AWS CLI) コマンドを実行します。以下のコマンド例では、value を、ご自身のスナップショットの ID に置き換えてください。
$ aws ebs list-snapshot-blocks --snapshot-id value
注: AWS CLI コマンドを実行する際にエラーが発生する場合は、AWS CLI の最新バージョンを使用しているかを確認してください。
list-snapshot-blocks コマンドは、スナップショット内のすべてのデータブロックを、ブロックインデックスとブロックトークンと一緒に一覧表示します。API はブロックの総数を直接入力できないことに注意してください。ブロックトークン、またはブロックインデックスに基づいて、返されるブロックの数をカウントする必要があります。
list-snapshot-blocks コマンドは、1 つの結果の中で最大 10,000 個のブロックを返します。スナップショットに 10,000 を超えるブロックがある場合、コマンドは NextToken も返します。
以下のコマンドを実行して、トークンを使用し、結果の次のページを取得してください。以下のコマンド例では、value を、ご自身のスナップショットの ID に置き換えてください。
$ aws ebs list-snapshot-blocks --snapshot-id <value> --next-token value
2. ブロックを数えてから、ブロックの総数に 512 を掛け算し、データサイズを計算します (各ブロックのサイズは 512 KiB です)。
例
スナップショット内のデータのサイズ (KiB) = ブロックの総数 * 512
スナップショットの作成時間を短縮する方法
ボリュームに対して、スナップショットを頻繁に作成することをお勧めします。スナップショットを頻繁に作成することで、ボリュームに対する変更されたブロックのサイズが小さくなり、スナップショットの作成時間を短縮できます。スナップショットの作成および削除を自動化するには、Amazon Data Lifecycle Managerまたは AWS Backup を使用します。
関連情報
Why is my Amazon Elastic Compute Cloud (Amazon EC2) AMI or EBS snapshot creation slow?