ボリューム変更の進行状況のモニタリング
EBS ボリュームを変更すると、次のステータスになります。ボリュームの状態は modifying
、optimizing
、completed
の順に変わります。この時点で、ボリュームは追加の変更を適用できる状態になります。
まれに、一時的な AWS エラーのために failed
状態になる場合があります。これは、ボリュームのヘルスステータスを示すものではなく、ボリュームの変更に失敗したことを単に示しています。この場合は、再度ボリュームの変更を行います。
ボリュームが optimizing
状態である場合、ボリュームのパフォーマンスはソースとターゲットの設定仕様の中間にあります。過渡的なボリュームのパフォーマンスは、ソースボリュームのパフォーマンスより劣ることはありません。IOPS
をダウングレードする場合、過渡的なボリュームのパフォーマンスは、ターゲットボリュームと同程度のパフォーマンスになります。
ボリュームの変更による影響は次のとおりです。
-
通常、ボリュームが
Optimizing
状態になってから、サイズの変更が完了して反映されるまでには数秒かかります。 -
パフォーマンス (IOPS) の変更は、設定の変更内容に応じて、完了するまでに数分から数時間かかる場合があります。
-
新しい設定が有効になるには最大 24 時間かかり、場合によっては (ボリュームが完全に初期化されていない場合など) それ以上かかることがあります。通常、完全に使用された 1 TiB ボリュームが新しいパフォーマンス設定に移行するまでには約 6 時間かかります。
ボリュームの変更の進行状況をモニタリングするには、次のいずれかのメソッドを使用します。
ボリューム変更の進行状況のモニタリング (コンソール)
1 つ以上のボリュームの変更の進行状況を表示するには、次の手順を使用します。
コンソールを使用して変更の進行状況をモニタリングするには
-
https://console.aws.amazon.com/ec2/
で Amazon EC2 コンソールを開きます。 -
ナビゲーションペインの [Volumes] を選択します。
-
ボリュームを選択します。
-
詳細ペインの [State (状態)] 列と [State (状態)] フィールドには、ボリューム状態 - 変更状態 (進行状況%) という形式の情報が含まれています。ボリューム状態には、[creating (作成中)]、[available (使用可能)]、[in-use (使用中)]、[deleting (削除中)]、[deleted (削除済み)]、[error (エラー)] があります。変更状態には、[modifying (変更中)] 、[optimizing (最適化中)]、[completed (完了)] があります。ボリュームの変更が完了するとすぐに、変更状態と進捗状況は削除され、ボリューム状態のみが残ります。
この例では、選択したボリュームの変更状態は [optimizing (最適化中)] です。次のボリュームの変更状態は [modifying (変更中)] です。
-
前のステップに示しているように、詳細ペインの [State (状態)] フィールドのテキストを選択して、最新の変更アクションに関する情報を表示します。
ボリューム変更の進行状況のモニタリング (AWS CLI)
1 つ以上のボリュームの変更の進行状況を表示するには、describe-volumes-modifications コマンドを使用します。次の例では、2 つのボリュームのボリューム変更を示します。
aws ec2 describe-volumes-modifications --volume-id
vol-11111111111111111
vol-22222222222222222
次の出力例では、これらのボリュームの変更の状態は、引き続き modifying
になっています。進捗状況は、パーセンテージで報告されます。
{
"VolumesModifications": [
{
"TargetSize": 200,
"TargetVolumeType": "io1",
"ModificationState": "modifying",
"VolumeId": "vol-11111111111111111",
"TargetIops": 10000,
"StartTime": "2017-01-19T22:21:02.959Z",
"Progress": 0,
"OriginalVolumeType": "gp2",
"OriginalIops": 300,
"OriginalSize": 100
},
{
"TargetSize": 2000,
"TargetVolumeType": "sc1",
"ModificationState": "modifying",
"VolumeId": "vol-22222222222222222",
"StartTime": "2017-01-19T22:23:22.158Z",
"Progress": 0,
"OriginalVolumeType": "gp2",
"OriginalIops": 300,
"OriginalSize": 1000
}
]
}
次の例では、変更の状態が optimizing
または completed
であるすべてのボリュームを示し、その結果をフィルタリングおよびフォーマットして 2017 年 2 月 1 日以降に開始された変更のみを表示します。
aws ec2 describe-volumes-modifications --filters Name=modification-state,Values="optimizing","completed" --query "VolumesModifications[?StartTime>='2017-02-01'].{ID:VolumeId,STATE:ModificationState}"
2 つのボリュームに関する情報を含む出力例を以下に示します。
[
{
"STATE": "optimizing",
"ID": "vol-06397e7a0eEXAMPLE"
},
{
"STATE": "completed",
"ID": "vol-ba74e18c2aEXAMPLE"
}
]
ボリューム変更の進行状況のモニタリング (CloudWatch イベント)
CloudWatch イベント では、ボリューム変更イベントの通知ルールを作成できます。ルールを使用して Amazon SNS で通知メッセージを生成するか、一致したイベントに応答して Lambda 関数を呼び出します。イベントは、ベストエフォートベースで出力されます。
CloudWatch イベント を使用して変更の進行状況をモニタリングするには
-
https://console.aws.amazon.com/cloudwatch/
にある CloudWatch コンソールを開きます。 -
[Events]、[Create rule] の順に選択します。
-
[Build event pattern to match events by service] で、[Custom event pattern] を選択します。
-
[カスタムイベントパターンの構築] で、コンテンツを次の以下のように置き換え、[保存] を選択します。
{ "source": [ "aws.ec2" ], "detail-type": [ "EBS Volume Notification" ], "detail": { "event": [ "modifyVolume" ] } }
以下にイベントデータの例を示します。
{ "version": "0", "id": "
01234567
-0123
-0123
-0123
-012345678901
", "detail-type": "EBS Volume Notification", "source": "aws.ec2", "account": "012345678901
", "time": "2017-01-12T21:09:07Z", "region": "us-east-1
", "resources": [ "arn:aws:ec2:us-east-1
:012345678901
:volume/vol-03a55cf56513fa1b6
" ], "detail": { "result": "optimizing", "cause": "", "event": "modifyVolume", "request-id": "01234567
-0123
-0123
-0123
-0123456789ab
" } }