[アップデート] Amazon EBS スナップショットから復元時のデータ転送速度を指定可能になりました
はじめに
Amazon EBS の新機能「ボリューム初期化レート」を一般提供開始しました。データ転送速度を指定できるようになり、EBS の スナップショットからボリュームを作成して EBS がフルパフォーマンスを発揮できるまでの時間を予測可能となりました。
何ができるようになったのか
スナップショットからボリュームを作成する場合、ストレージブロックを S3 からダウンロードしてボリュームに書き込む「ボリューム初期化」プロセスがあります。このプロセス中は I/O レイテンシが増加します。また、パフォーマンスも低下する可能性があります。このボリューム初期化にかかる時間の予測が困難でした。
今回のアップデートで、S3 からのダウンロード速度を 100〜300 MiB/秒の範囲で指定できるようになりました。 これにより一定の転送レートでダウンロードできるため、初期化にかかる時間を予測可能となりました。
ボリューム初期化レートはオプションの項目ですので、デフォルトは未指定となっています。 未指定にすれば従来どおりで動作で別途課金は発生しません。ここに 100 から 300 の数値を入力すると今回の機能が利用できます。
主な利点 3 行まとめ
- 予測可能な初期化時間
- 一定した転送レートで S3 からダウンロードできるため、ボリュームがフルパフォーマンスを発揮できるまでの時間を予測できる
- 同時初期化の高速化
- 多数のボリューム同時初期化にも利用できる
- ただし、リージョンあたりのクォータがあるため注意してください
- 手動初期化スクリプトの廃止検討可
- これまで
fio
/dd
などのユーティリティを使用して初期化を高速化していた場合の運用を廃止にできる - https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html#ebs-initialize
- これまで
ポイント
ボリューム初期化レートを指定すると、スナップショットから EBS 作成時に S3 からボリュームに指定したレートでダウンロードされます。初期化にかかる時間は、以下の要素に依存します。
- EBS のボリュームサイズではなく、スナップショットのフルスナップショットサイズ
- 指定したボリューム初期化レート
例えば、30GiB の EBS からスナップショットまたは、AMI を取得し、スナップショットのサイズは 20GiB だったとします。ボリューム初期化レートを 300 MiB/秒に設定した場合、初期化時間は約 67 秒(20GiB ÷ 300 MiB/秒)となります。
料金
スナップショットのフルスナップショットサイズと、指定したボリューム初期化レートに基づいて課金されます。価格帯は 100-200 MiB/秒と 201-300 MiB/秒の 2 段階で分かれています。
東京リージョンの価格 2025/5/7 現在
最新情報は Amazon EBS の料金ページ をご確認ください。
例えば、20GiB のフルスナップショットサイズを 300MiB/秒のボリューム初期化レートで初期化すると $0.086 かかる計算です。200MiB/秒のボリューム初期化レートなら$0.058 です。100 - 200 MiB/秒の方が安価な設定ですね。
請求項目名
翌日請求書項目を確認したところ、以下の名前で請求がありました。
サービスクォータ
各 AWS アカウントには、リージョンごとに ボリューム初期化レートのクォータ 5,000 MiB/秒 が設定されています。
- この制限は同時実行されるすべてのボリューム作成リクエストの合計に適用される
- 100 MiB/秒のレートで最大 50 個のボリュームを同時に初期化可能(50 × 100 = 5,000 MiB/秒)
- 200 MiB/秒のレートで最大 25 個のボリュームを同時に初期化可能(25 × 200 = 5,000 MiB/秒)
- 300 MiB/秒のレートで最大 16 個のボリュームを同時に初期化可能(16 × 300 = 4,800 MiB/秒)
リージョンクォータに関する具体的な制限値は AWS Service Quotas コンソールで確認できます。必要に応じてクォータの引き上げを申請できます。
ハードリミットのクォータの値を見ると、単発の初期化リクエストのスループットの限界は 1TB/秒までいけそうな感じがします。現在は 300MiB/秒に制限されているのでしょうかね。
試してみた
AWS マネジメントコンソールからボリューム初期化レートを設定してみました。私のアカウントでは東京リージョンでは利用できなかったため、北米リージョンで検証しています。
スナップショットからのボリューム作成
EC2 から AMI を取得して、フルスナップショットサイズが約 21GB のスナップショットを用意しました。
1. スナップショット一覧からボリュームを作成
「アクション」→「スナップショットからボリュームの作成」を選びます。
2. ボリューム初期化レートの設定
ボリューム作成の詳細画面で、下部にある「ボリューム初期化レート」でレートを選択します。
3. EBS ボリュームの完成
裏側で初期化が走っていることはわかりませんが、EBS ボリューム自体はすぐに作成されます。
AMI でもボリューム初期化レート設定できます
AMI から EC2 インスタンスを作成するときも同様にボリューム初期化レートを指定できます。
モニタリング
ボリューム作成後 EBS は初期化が完了したか確認したければ、EventBridge に発行されるイベントを確認する必要があります。initalizeVolume
というイベント名で拾うことができました。
{
"source": ["aws.ec2"],
"detail-type": ["EBS Volume Notification"],
"detail": {
"event": ["initializeVolume"]
}
}
実際に拾えたイベントは以下です。
{
"version": "0",
"id": "a7c2dca2-53d9-39be-fa61-1729e2b8a6d2",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "123456789012",
"time": "2025-05-07T06:35:29Z",
"region": "us-east-1",
"resources": [
"arn:aws:ec2:us-east-1:123456789012:volume/vol-046d17de0fabf107a"
],
"detail": {
"result": "succeeded",
"cause": "",
"event": "initializeVolume",
"request-id": "ec0a68a0-66d1-4547-a72f-d1edfdf9f3a3"
}
}
まとめ
今回のアップデートで EBS スナップショットからのボリューム初期化時間を予測可能となりました。主な利点は以下の通りです。
- 初期化レート(100〜300 MiB/秒)を指定できるため、ボリュームが完全なパフォーマンスを発揮するまでの時間を正確に計算可能
- アプリケーション復旧やテスト・開発環境の準備時間を短縮
fio
/dd
などの手動初期化スクリプトが不要となり、運用の簡素化が可能
ただし、リージョンあたり 5,000 MiB/秒のクォータがあることと、料金が 100-200 MiB/秒と 201-300 MiB/秒の 2 段階となっていることに注意が必要です。同時に多数のボリュームを初期化する場合はクォータを考慮した設計が必要です。
おわりに
DR(災害復旧)対策で有効活用できる設定値なのではないでしょうか。また、現在の上限は 300 MiB/秒ですが、将来的にはさらに高速な初期化レートがサポートされる可能性も考えられます。ハードリミットのクォータ値を見ると、単発の初期化リクエストのスループットの最大値は将来的に引き上げられる余地があるようです。