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

インスタンスを停止、終了、再起動、または復旧するアラームを作成する

Amazon CloudWatch アラームアクションを使用して、 インスタンスを自動的に停止、終了、再起動、または復旧するアラームを作成できます。停止または終了アクションを使用すると、今後インスタンスを実行する必要がなくなったときにコストを節約できます。再起動アクションを使用すると、これらのインスタンスを自動的に再起動でき、復旧アクションを使用すると、システムで障害が発生した場合に新しいハードウェアで復旧できます。

サービスにリンクされたロール AWSServiceRoleForCloudWatchEvents を使用すると、AWS がお客様に代わってアラームアクションを実行できます。AWS マネジメントコンソール、IAM CLI、または IAM API で初めてアラームを作成する場合は、サービスにリンクされたロールが CloudWatch によって作成されます。

自動的にインスタンスを停止または終了するシナリオはいくつもあります。たとえば、バッチ給与計算処理ジョブまたは科学計算タスクを専用に行うインスタンスを使用している場合が挙げられます。これらのインスタンスは一定期間動作して仕事を完了します。このようなインスタンスは、アイドル状態 (課金されている状態) にせずに、停止または終了するとコスト削減につながります。停止アラームアクションと終了アラームアクションの主な違いとして、停止したインスタンスは、後で再実行が必要な場合に再起動しやすいことと、同じインスタンス ID およびルートボリュームを維持できることがあります。しかし、終了したインスタンスを再起動することはできません。代わりに新しいインスタンスを開始する必要があります。

停止、終了、再起動、復旧の各アクションは、Amazon EC2 インスタンスメトリクスごとに設定されている任意のアラームに追加できます。これには、Amazon CloudWatch によって (AWS/EC2 名前空間で) 提供される基本モニタリングや詳細モニタリングのメトリクスが含まれます。また、InstanceId ディメンションを含む任意のカスタムメトリクスも (その値が実行中の有効な Amazon EC2 インスタンスを参照する場合に限り) 含まれます。

コンソールのサポート

Amazon EC2 コンソールまたは CloudWatch コンソールを使用してアラームを作成できます。このドキュメントの手順では、Amazon EC2 コンソールを使用します。CloudWatch コンソールを使用する手順については、『Amazon CloudWatch ユーザーガイド』の「インスタンスを停止、終了、再起動、または復旧するアラームを作成する」を参照してください。

アクセス許可

AWS Identity and Access Management (IAM) ユーザーの場合、アラームを作成または変更するには次のアクセス権限が必要です。

  • iam:CreateServiceLinkedRoleiam:GetPolicyiam:GetPolicyVersion、および iam:GetRole — Amazon EC2 アクションでのすべてのアラーム用

  • ec2:DescribeInstanceStatusec2:DescribeInstances – Amazon EC2 インスタンスステータスメトリクスに対するすべてのアラーム用。

  • ec2:StopInstances – 停止アクションを含むアラーム用。

  • ec2:TerminateInstances – 終了アクションを含むアラーム用。

  • 復旧アクションを含むアラームにその他の特別なアクセス権限は必要ありません

Amazon CloudWatch に対する読み取り/書き込みのアクセス権限があり、Amazon EC2 に対するアクセス権限がない場合、アラームは作成できますが、Amazon EC2 インスタンスで停止または終了アクションが実行されません。ただし、関連付けられている Amazon EC2 API の使用許可が後で付与される場合、以前に作成したアラームアクションは実行されるようになります。IAM アクセス許可の詳細については、『IAM ユーザーガイド』の「アクセス許可とポリシー」を参照してください。

Amazon CloudWatch アラームへの停止アクションの追加

一定のしきい値に達したときに Amazon EC2 インスタンスを停止するアラームを作成できます。たとえば、開発またはテスト用のインスタンスを実行したまま、終了するのを忘れることがたまにあります。平均 CPU 利用率が 24 時間 10% 未満である場合に、インスタンスがアイドル状態で使用されていないという信号を発してトリガーするアラームを作成できます。しきい値、持続時間、期間をニーズに合わせて調整し、アラームがトリガーされたときにメールを受信するよう Amazon Simple Notification Service (Amazon SNS) 通知を追加できます。

Amazon EBS ボリュームをルートデバイスとして使用するインスタンスは停止または終了できますが、インスタンスストアをルートデバイスとして使用するインスタンスでは終了のみ行えます。

Amazon EC2 コンソールを使用してアイドル状態のインスタンスを停止させるアラームを作成するには

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

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。

  4. [アラームの作成] ダイアログボックスで、次の操作を行います。

    1. アラームがトリガされたときに E メールが届くようにするには、[通知の送信先] で既存の Amazon SNS トピックを選択するか、または [トピックを作成] を選択して新しいトピックを作成します。

      トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブスクライブの確認メールが届きます。このトピックの通知を受け取れるようになるには、このメールを確認する必要があります。

    2. [アクションを実行]、[このインスタンスを停止する] を選択します。

    3. [Whenever] で使用する統計を選択してから、メトリクスを選択します。この例では、[Average] と [CPU Utilization] を選択します。

    4. [状況] で、メトリクスのしきい値を定義します。この例では、10 パーセントを入力します。

    5. [最低期間] で、アラームの評価期間を指定します。この例では、1 時間の期間で 24 期間連続と入力しています。

    6. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。

      アラーム名を入力しない場合は、Amazon CloudWatch によってアラーム名が自動的に作成されます。

      注記

      アラーム設定は、アラームを作成する前に実際の要件に基づいて調整することも、アラーム作成後に編集することもできます。これにはメトリクス、しきい値、持続時間、アクション、通知設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。

    7. [Create Alarm] を選択します。

Amazon CloudWatch アラームへの終了アクションの追加

(インスタンスで終了保護が有効になっていない限り)、一定のしきい値に達したときに EC2 インスタンスを自動的に終了させるアラームを作成することができます。たとえば、インスタンスが仕事を終え、再びそのインスタンスを使用する必要がない場合は、インスタンスを削除することをお勧めします。後でインスタンスを使用する可能性がある場合は、インスタンスを削除するのではなく、停止するほうが良いでしょう。インスタンスの削除保護の有効化および無効化の詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「インスタンスの削除保護の有効化」を参照してください。

Amazon EC2 コンソールを使用して、アイドル状態のインスタンスを削除するアラームを作成するには

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

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。

  4. [アラームの作成] ダイアログボックスで、次の操作を行います。

    1. アラームがトリガされたときに E メールが届くようにするには、[通知の送信先] で既存の Amazon SNS トピックを選択するか、または [トピックを作成] を選択して新しいトピックを作成します。

      トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブスクライブの確認メールが届きます。このトピックの通知を受け取れるようになるには、このメールを確認する必要があります。

    2. [アクションを実行]、[このインスタンスの削除] を選択します。

    3. [Whenever] で統計を選択し、メトリクスを選択します。この例では、[Average] と [CPU Utilization] を選択します。

    4. [状況] で、メトリクスのしきい値を定義します。この例では、10 パーセントを入力します。

    5. [最低期間] で、アラームの評価期間を指定します。この例では、1 時間の期間で 24 期間連続と入力しています。

    6. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。

      アラーム名を入力しない場合は、Amazon CloudWatch によってアラーム名が自動的に作成されます。

      注記

      アラーム設定は、アラームを作成する前に実際の要件に基づいて調整することも、アラーム作成後に編集することもできます。これにはメトリクス、しきい値、持続時間、アクション、通知設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。

    7. [Create Alarm] を選択します。

Amazon CloudWatch アラームへの再起動アクションの追加

Amazon EC2 インスタンスをモニタリングし、自動的に再起動する Amazon CloudWatch アラームを作成できます。再起動アラームアクションは、インスタンスのヘルスチェックが失敗した場合に推奨されます(システムのヘルスチェックが失敗した場合には、復旧アラームアクションが推奨されます)。インスタンスの再起動は、オペレーティングシステムの再起動と同等です。ほとんどの場合、インスタンスの再起動には数分しかかかりません。インスタンスを再起動すると、インスタンスは同じホスト上で保持されるため、インスタンスのパブリックドメイン名、プライベート IP アドレス、およびインスタンスストアボリューム上のすべてのデータは保持されます。

インスタンスを再起動しても、インスタンスの停止と再起動とは異なり、新しいインスタンスの課金 (秒単位、最低 1 分間分) は開始されません。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「Reboot Your Instance」を参照してください。

重要

再起動と復旧アクション間で不具合が発生するのを回避するには、再起動アラームと復旧アラームを同じ評価期間に設定するのを避けます。再起動アラームを各 1 分間の 3 回の評価期間に設定することをお勧めします。詳細については、『Amazon CloudWatch ユーザーガイド』の「アラームを評価する」を参照してください。

Amazon EC2 コンソールを使用して、インスタンスを再起動するアラームを作成するには

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

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。

  4. [アラームの作成] ダイアログボックスで、次の操作を行います。

    1. アラームがトリガされたときに E メールが届くようにするには、[通知の送信先] で既存の Amazon SNS トピックを選択するか、または [トピックを作成] を選択して新しいトピックを作成します。

      トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブスクライブの確認メールが届きます。このトピックの通知を受け取れるようになるには、このメールを確認する必要があります。

    2. [アクションを実行]、[このインスタンスの再起動] を選択します。

    3. [次の時] で、[ステータスチェックに失敗 (インスタンス)] を選択します。

    4. [最低期間] で、アラームの評価期間を指定します。この例では、1 分の期間で 3 期間連続と入力しています。

    5. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。

      アラーム名を入力しない場合は、Amazon CloudWatch によってアラーム名が自動的に作成されます。

    6. [Create Alarm] を選択します。

Amazon CloudWatch アラームへの復旧アクションの追加

Amazon EC2 インスタンスをモニタリングする Amazon CloudWatch アラームを作成できます。下層のハードウェア障害または修復に AWS を必要とする問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧できます。終了したインスタンスは復旧できません。復旧されたインスタンスは、インスタンス ID、プライベート IP アドレス、Elastic IP アドレス、すべてのインスタンスメタデータを含め、元のインスタンスと同じです。

StatusCheckFailed_System アラームがトリガーされ、復旧アクションが開始されると、アラームを作成し、復旧アクションに関連付けたときに選択した Amazon SNS トピックによって通知されます。インスタンスを復旧する際、インスタンスを再起動するときにインスタンスは移行され、メモリ内にあるデータは失われます。プロセスが完了すると、情報はアラームに設定された SNS トピックに発行されます。この SNS トピックをサブスクライブしているすべてのユーザーは、復旧処理のステータスと、それ以降の手順を含むメールの通知を受け取ります。インスタンスが復旧した時点でインスタンスが再起動されたことがわかります。

復旧アクションは、StatusCheckFailed_System でのみ使用できます。StatusCheckFailed_Instance では使用できません。

以下の問題が発生すると、システムステータスのチェックに失敗する可能性があります。

  • ネットワーク接続の喪失

  • システム電源の喪失

  • 物理ホストのソフトウェアの問題

  • ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題

復旧アクションは、次のような特性を持つインスタンスでのみサポートされています。

  • 次のインスタンスタイプのいずれかを使用します: C3, C4, C5, M3, M4, M5, R3, R4, R5, T2, T3, X1, or X1e

  • default または dedicated インスタンスのテナント属性を使用している

  • EBS ボリュームのみを使用します (インスタンスストアボリュームは設定しないでください)。詳細については、「'Recover this instance' is disabled」を参照してください。

インスタンスにパブリック IP アドレスが割り当てられている場合、復旧後にパブリック IP アドレスが維持されます。

重要

再起動と復旧アクション間で不具合が発生するのを回避するには、再起動アラームと復旧アラームを同じ評価期間に設定するのを避けます。復旧アラームを各 1 分間の 2 回の評価期間に設定することをお勧めします。詳細については、『Amazon CloudWatch ユーザーガイド』の「アラームを評価する」を参照してください。

Amazon EC2 コンソールを使用して、インスタンスを復旧するアラームを作成するには

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

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択します。[Monitoring] タブで、[Create Alarm] を選択します。

  4. [アラームの作成] ダイアログボックスで、次の操作を行います。

    1. アラームがトリガされたときに E メールが届くようにするには、[通知の送信先] で既存の Amazon SNS トピックを選択するか、または [トピックを作成] を選択して新しいトピックを作成します。

      トピックを新規作成するには、[Send a notification to] にトピック名を入力し、[With these recipients] に受信者のメールアドレスを入力します (カンマ区切り)。アラームの作成後、サブスクライブの確認メールが届きます。このトピックの E メールを受け取れるようになるには、このメールを確認する必要があります。

    2. [アクションを実行]、[このインスタンスの復元] を選択します。

    3. [次の時] で、[ステータスチェックに失敗 (システム)] を選択します。

    4. [最低期間] で、アラームの評価期間を指定します。この例では、1 分の期間で 2 期間連続と入力しています。

    5. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。

      アラーム名を入力しない場合は、Amazon CloudWatch によってアラーム名が自動的に作成されます。

    6. [Create Alarm] を選択します。

Amazon CloudWatch コンソールを使用してアラームとアクションの履歴を確認する

Amazon CloudWatch コンソールで、アラームとアクションの履歴を見ることができます。Amazon CloudWatch は、過去 2 週間分のアラームとアクションの履歴を保管します。

トリガーされたアラームとアクションを表示するには

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

  2. ナビゲーションペインで、[Alarms] を選択します。

  3. アラームを選択します。

  4. [Details] タブには、直近の状態遷移、および時間とメトリクス値が表示されます。

  5. 直近の履歴のエントリを表示するには、[History] タブを選択します。

Amazon CloudWatch のアラームアクションのシナリオ

Amazon EC2 (Amazon EC2) コンソールを使用して、一定の条件が満たされたときにインスタンスを停止または終了させるアラームアクションを作成することができます。アラームアクションが設定する以下のコンソールページの画面キャプチャー内に、設定の順番を付けました。また、アクションを適切に作成できるよう、次のシナリオの設定にも順番を付けました。


         [Create Alarm for] ダイアログボックス

シナリオ 1: アイドル状態の開発インスタンスおよびテストインスタンスを停止する

ソフトウェアの開発またはテストに使用するインスタンスが 1 時間以上アイドル状態である場合に停止するアラームを作成します。

設定

1

停止

2

最大

3

CPUUtilization

4

<=

5

10%

6

60 分

7

1

シナリオ 2: アイドル状態のインスタンスを停止する

インスタンスが 24 時間アイドル状態である場合、インスタンスを停止し、メールを送信するアラームを作成します。

設定

1

停止および E メール

2

平均

3

CPUUtilization

4

<=

5

5%

6

60 分

7

24

シナリオ 3: トラフィック量が異常に多いウェブサーバーについて E メールを送信する

インスタンスの 1 日当たりのアウトバウンドネットワークトラフィックが 10 GB を超える場合にメールを送信するアラームを作成します。

設定

1

メール

2

合計

3

NetworkOut

4

>

5

10 GB

6

1 日

7

1

シナリオ 4: 異常な高トラフィック状態のウェブサーバーを停止する

アウトバウンドトラフィックが 1 時間当たり 1 GB を超えた場合にインスタンスを停止し、テキストメッセージ (SMS) を送信するアラームを作成します。

設定

1

Stop and send SMS

2

合計

3

NetworkOut

4

>

5

1 GB

6

1 時間

7

1

シナリオ 5: メモリリークが発生しているインスタンスを停止する

トラブルシューティングに使えるアプリケーションログを取得できるよう、メモリ使用率が 90% 以上になった場合にインスタンスを停止するアラームを作成します。

注記

MemoryUtilization メトリクスはカスタムメトリクスです。MemoryUtilization メトリクスを使用するには、Linux インスタンスの Perl スクリプトをインストールする必要があります。詳細については、「Amazon EC2 Linux インスタンスのメモリとディスクのメトリクスのモニタリング」を参照してください。

設定

1

停止

2

最大

3

MemoryUtilization

4

>=

5

90%

6

1 分

7

1

シナリオ 6: 障害のあるインスタンスを停止する

3 回連続で状態チェック (5 分間隔で実施) が不合格のインスタンスを停止するアラームを作成します。

設定

1

停止

2

平均

3

StatusCheckFailed_System

4

>=

5

1

6

15 分

7

1

シナリオ 7: バッチ処理ジョブの完了時にインスタンスを削除する

バッチジョブを実行するインスタンスが結果データを送信しなくなったときに、そのインスタンスを削除するアラームを作成します。

設定

1

削除

2

最大

3

NetworkOut

4

<=

5

100,000 bytes

6

5 分

7

1