Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

ボリューム変更の進行状況のモニタリング

変更対象の EBS ボリュームは以下の状態を経過します。コンソール、CLI、API、SDK を問わず、ModifyVolume ディレクティブを発行すると、ボリュームは最初に Modifying 状態になり、次に Optimizing 状態になって、最後は Complete 状態になります。この時点で、ボリュームは追加の変更を適用できる状態になります。まれに、一時的な AWS エラーのために Failed 状態になる場合があります。この場合は、変更を再試行します。

通常、ボリュームが Optimizing 状態になってから、サイズの変更が完了して反映されるまでには数秒かかります。

パフォーマンス (IOPS) の変更は、設定の変更内容に応じて、完了するまでに数分から数時間かかる場合があります。

新しい設定が有効になるには最大 24 時間かかり、場合によっては (ボリュームが完全に初期化されていない場合など) それ以上かかることがあります。通常、完全に使用された 1 TiB ボリュームが新しいパフォーマンス設定に移行するまでには約 6 時間かかります。

ボリュームが optimizing 状態である場合、ボリュームのパフォーマンスはソースとターゲットの設定仕様の中間にあります。過渡的なボリュームのパフォーマンスは、ソースボリュームのパフォーマンスより劣ることはありません。 IOPS をダウングレードする場合、過渡的なボリュームのパフォーマンスは、ターゲットボリュームと同程度のパフォーマンスになります。

変更の進行状況を監視するには、AWS マネジメントコンソール を確認するか、Amazon EC2 API/CLI でボリュームの状態をクエリするか、Amazon CloudWatch Events に送信されるメトリクスにアクセスします。以下の手順で、これらのアプローチを示します。

コンソールから変更の進行状況をモニタリングするには

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

  2. [Volumes] を選択し、確認するボリュームを選択します。ボリュームのステータスは、[State] 列に表示されます。次の例では、変更の状態が [completed] になっています。この状態情報は、詳細ペインの [State] フィールドにも表示されます。

  3. [State] フィールドの横にある情報アイコンを開いて、以下に示すように、最新の変更アクションに関する完了前と完了後の情報を表示します。

例 コマンドラインから変更の進行状況をモニタリングするには

describe-volumes-modifications を使用して変更の進行状況を表示します。この例では、上の vol-11111111111111111 ボリュームと別の vol-22222222222222222 ボリュームが呼び出されます。

aws ec2 describe-volumes-modifications --region us-east-1 --volume-id vol-11111111111111111 vol-22222222222222222

コマンドは、1 つ以上の VolumesModification オブジェクトを返します。出力例を次に示します。最初のオブジェクトは、上に示した最初の modify-volume コマンドとほぼ同じです。ただし、追加の変更は適用されていません。

{ "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" --region us-east-1 --query "VolumesModifications[?StartTime>='2017-02-01'].{ID:VolumeId,STATE:ModificationState}"

この場合、クエリは 2 つのボリュームに関する情報を返します。

[ { "STATE": "optimizing", "ID": "vol-06397e7a0eEXAMPLE" }, { "STATE": "completed", "ID": "vol-bEXAMPLE" } ]

CloudWatch イベント で変更の進行状況をモニタリングするには

CloudWatch イベント では、ボリューム変更イベントの通知ルールを作成してテキストメッセージを送信するか、Lambda 関数を実行することができます。

  1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. [Events]、[Create rule] の順に選択します。

  3. [Build event pattern to match events by service] で、[Custom event pattern] を選択します。

  4. [Build custom event pattern] で、コンテンツを次のコードに置き換えます。

    { "source": [ "aws.ec2" ], "detail-type": [ "EBS Volume Notification" ], "detail": { "event": [ "modifyVolume" ] } }

    [Save] を選択します。

    一般的なイベント出力は次のようになります。

    Body: { "version": "0", "id": "1ea2ace2-7790-46ed-99ab-d07a8bd68685", "detail-type": "EBS Volume Notification", "source": "aws.ec2", "account": "065441870323", "time": "2017-01-12T21:09:07Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:065441870323:volume/vol-03a55cf56513fa1b6" ], "detail": { "result": "optimizing", "cause": "", "event": "modifyVolume", "request-id": "auto-58c08bad-d90b-11e6-a309-b51ed35473f8" } }

ルールを使用して Amazon SNS で通知メッセージを生成するか、一致したイベントに応答して Lambda 関数を呼び出します。