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

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

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

作成するすべてのアラームアクションがアラームアクション ARN を使用します。1 セットの ARN を使用すると、より安全です。お客様のアカウントでは EC2ActionsAccess IAM ロールを使用する必要があるからです。この IAM ロールを使用すると、停止、終了、または再起動アクションを実行できます。以前は、IAM ロールを使用していると、アクションを実行できませんでした。以前のアラームアクションの ARN を使用する現存のアラームは、この IAM ロールを必要としませんが、これらの ARN を使用する現存のアラームを編集するときに ARN を変更し、ロールを追加することを推奨します。

EC2ActionsAccess ロールを使用すると、AWS がお客様に代わってアラームアクションを実行できます。Amazon EC2 または Amazon CloudWatch コンソールを使用して初めてアラームアクションを作成するとき、AWS は自動的にお客様に代わってこのロールを作成します。

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

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

コンソールのサポート

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

アクセス許可

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

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

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

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

  • ec2:DescribeInstanceRecoveryAttributeec2:RecoverInstances。復旧アクションを含むアラーム用。

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

IAM ロールに基づいて、アラームアクションを使用してインスタンスを停止、終了、または再起動する場合は、EC2ActionsAccess ロールしか使用できません。他の IAM ロールはサポートされていません。別の IAM ロールを使用している場合は、インスタンスを停止、終了、または再起動できません。ただし、アラームの状態を確認して、Amazon SNS 通知や Auto Scaling ポリシーなど、その他のアクションを実行することはできます。

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. ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。

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

  4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。

  5. アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアログボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。

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

  6. [Take the action] をオンにし、[Stop this instance] ラジオボタンを選択します。

  7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様に代わって自動的にインスタンスを停止できます。

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

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

  10. [For at least] で、アラームのサンプリング期間を選択します。この例では、1 時間の期間で 24 期間連続と入力しています。

  11. アラーム名を変更するには、[Name this alarm] に新しい名前を入力します。

    アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。

    注記

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

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

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

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

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

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

  2. ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。

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

  4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。

  5. アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアログボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。

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

  6. [Take the action] を選択し、[Terminate this instance] を選択します。

  7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様に代わって自動的にインスタンスを停止できます。

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

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

  10. [For at least] で、アラームのサンプリング期間を選択します。この例では、1 時間の期間で 24 期間連続と入力しています。

  11. アラーム名を変更するには、[Name this alarm] に新しい名前を入力します。

    アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。

    注記

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

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

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

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

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

重要

再起動と復旧アクションの競合状態を避けるには、Amazon EC2 インスタンスを再起動するアラームを作成するときに、アラームのしきい値として 1 分に代えて 3 分を設定することをお勧めします。

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

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

  2. ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。

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

  4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。

  5. アラームがトリガされたときに E メールが届くようにする場合は、[Create Alarm for] ダイアログボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。

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

  6. [Take the action] を選択し、[Reboot this instance] を選択します。

  7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様に代わって自動的にインスタンスを停止できます。

  8. [Whenever] で、[Status Check Failed (Instance)] を選択します。

  9. [For at least] に 2 と入力します。

  10. [consecutive period(s) of] で [1 minute] を選択します。

  11. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。

    アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。

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

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

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

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

システムステータスチェックの失敗の原因となる問題には、次のようなものがあります。

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

  • システム電源の喪失

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

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

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

  • C3、C4、M3、M4、R3、R4、T2、または X1 インスタンスタイプを使用している

  • VPC (EC2-Classic 以外) で実行されている

  • 共有テナンシーを使用している (テナンシー属性が default に設定されている)

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

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

重要

再起動と復旧アクションの競合状態を避けるには、Amazon EC2 インスタンスを復旧させるアラームを作成するときに、アラームのしきい値として 1 分に代えて 2 分を設定することをお勧めします。

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

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

  2. ナビゲーションペインで、[INSTANCES] の下にある [ Instances] を選択します。

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

  4. [Alarm Details for] ダイアログボックスで、[Create Alarm] を選択します。

  5. アラームがトリガされたときに E メールが届くようにするには、[Create Alarm for] ダイアログボックスの [Send a notification to] で、既存の Amazon SNS トピックを選択するか、または [Create Topic] を選択して新しいトピックを作成します。

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

  6. [Take the action] を選択し、[Recover this instance] を選択します。

  7. プロンプトが表示されたら、[Create IAM role: EC2ActionsAccess] をオンにして、IAM ロールが自動的に作成されるようにします。これにより、AWS はアラームがトリガーされたときにお客様に代わって自動的にインスタンスを停止できます。

  8. [Whenever] で、[Status Check Failed (System)] を選択します。

  9. [For at least] に 2 と入力します。

  10. [consecutive period(s) of] で [1 minute] を選択します。

  11. アラーム名を変更するには、[Name of alarm] に新しい名前を入力します。

    アラーム名を入力しない場合は、Amazon CloudWatch が自動的に名前を付けます。

  12. [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 時間以上アイドル状態である場合に停止するアラームを作成します。

設定

停止

最大

CPUUtilization

<=

10%

60 minutes

1

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

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

設定

Stop and email

平均

CPUUtilization

<=

5%

60 minutes

24

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

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

設定

メール

合計

NetworkOut

>

10 GB

1 日

1

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

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

設定

Stop and send SMS

合計

NetworkOut

>

1 GB

1 時間

1

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

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

注記

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

設定

停止

最大

MemoryUtilization

>=

90%

1 分

1

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

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

設定

停止

平均

StatusCheckFailed_System

>=

1

15 分

1

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

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

設定

終了

最大

NetworkOut

<=

100,000 bytes

5 分

1