インスタンスを停止、終了、再起動、または復旧するアラームを作成する
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) ユーザーの場合、EC2 アラームアクションを実行するアラームを作成または変更するには、iam:CreateServiceLinkedRole
が必要です。
目次
Amazon CloudWatch アラームへの停止アクションの追加
一定のしきい値に達したときに Amazon EC2 インスタンスを停止するアラームを作成できます。たとえば、開発またはテスト用のインスタンスを実行したまま、終了するのを忘れることがたまにあります。平均 CPU 利用率が 24 時間 10% 未満である場合に、インスタンスがアイドル状態で使用されていないという信号を発してトリガーするアラームを作成できます。しきい値、持続時間、期間をニーズに合わせて調整し、アラームがトリガーされたときにメールを受信するよう Amazon Simple Notification Service (Amazon SNS) 通知を追加できます。
Amazon EBS ボリュームをルートデバイスとして使用するインスタンスは停止または終了できますが、インスタンスストアをルートデバイスとして使用するインスタンスでは終了のみ行えます。
Amazon CloudWatch アラームへの終了アクションの追加
(インスタンスで終了保護が有効になっていない限り)、一定のしきい値に達したときに EC2 インスタンスを自動的に終了させるアラームを作成することができます。たとえば、インスタンスが仕事を終え、再びそのインスタンスを使用する必要がない場合は、インスタンスを削除することをお勧めします。後でインスタンスを使用する可能性がある場合は、インスタンスを削除するのではなく、停止するほうが良いでしょう。インスタンスの削除保護の有効化と無効化については、「削除保護の有効化」を参照してください。
Amazon CloudWatch アラームへの再起動アクションの追加
Amazon EC2 インスタンスをモニタリングし、自動的に再起動する Amazon CloudWatch アラームを作成できます。再起動アラームアクションは、インスタンスのヘルスチェックが失敗した場合に推奨されます(システムのヘルスチェックが失敗した場合には、復旧アラームアクションが推奨されます)。インスタンスの再起動は、オペレーティングシステムの再起動と同等です。ほとんどの場合、インスタンスの再起動には数分しかかかりません。インスタンスを再起動すると、インスタンスは同じホスト上で保持されるため、インスタンスのパブリックドメイン名、プライベート IP アドレス、およびインスタンスストアボリューム上のすべてのデータは保持されます。
インスタンスを再起動しても、インスタンスの停止と再起動とは異なり、新しいインスタンスの課金 (秒単位、最低 1 分間分) は開始されません。詳細については、「インスタンスの再起動」を参照してください。
再起動と復旧アクション間で不具合が発生するのを回避するには、再起動アラームと復旧アラームを同じ評価期間に設定するのを避けます。再起動アラームを各 1 分間の 3 回の評価期間に設定することをお勧めします。詳細については、Amazon CloudWatch ユーザーガイド の「アラームを評価する」を参照してください。
Amazon CloudWatch アラームへの復旧アクションの追加
Amazon EC2 インスタンスをモニタリングする Amazon CloudWatch アラームを作成できます。下層のハードウェア障害または修復に AWS を必要とする問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧できます。終了したインスタンスは復旧できません。復旧されたインスタンスは、インスタンス ID、プライベート IP アドレス、Elastic IP アドレス、すべてのインスタンスメタデータを含め、元のインスタンスと同じです。
CloudWatch では、復旧アクションをサポートしていないインスタンスにあるアラームに、復旧アクションを追加することはできません。
StatusCheckFailed_System
アラームがトリガーされ、復旧アクションが開始されると、アラームを作成し、復旧アクションに関連付けたときに選択した Amazon SNS トピックによって通知されます。インスタンスを復旧する際、インスタンスを再起動するときにインスタンスは移行され、メモリ内にあるデータは失われます。プロセスが完了すると、情報はアラームに設定された
SNS トピックに発行されます。この SNS トピックをサブスクライブしているすべてのユーザーは、復旧処理のステータスと、それ以降の手順を含むメールの通知を受け取ります。インスタンスが復旧した時点でインスタンスが再起動されたことがわかります。
復旧アクションは、StatusCheckFailed_System
でのみ使用できます。StatusCheckFailed_Instance
では使用できません。
以下の問題が発生すると、システムステータスのチェックに失敗する可能性があります。
-
ネットワーク接続の喪失
-
システム電源の喪失
-
物理ホストのソフトウェアの問題
-
ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題
復旧アクションは、次のような特性を持つインスタンスでのみサポートされています。
-
次のインスタンスタイプのいずれかを使用している: A1、C3、C4、C5、C5a、C5n、C6g、Inf1、 M3、M4、M5、M5a、M5n、M5zn、M6g、 P3、R3、R4、R5、R5a、R5b、R5n、R6g、 T2、T3、T3a、X1、X1e
-
default
またはdedicated
インスタンスのテナント属性を使用している -
EBS ボリュームのみを使用します (インスタンスストアボリュームは設定しないでください)。詳細については、「'Recover this instance' is disabled
」を参照してください。
インスタンスにパブリック IP アドレスが割り当てられている場合、復旧後にパブリック IP アドレスが維持されます。
再起動と復旧アクション間で不具合が発生するのを回避するには、再起動アラームと復旧アラームを同じ評価期間に設定するのを避けます。復旧アラームを各 1 分間の 2 回の評価期間に設定することをお勧めします。詳細については、Amazon CloudWatch ユーザーガイドの「アラームを評価する」を参照してください。
Amazon CloudWatch コンソールを使用してアラームとアクションの履歴を確認する
Amazon CloudWatch コンソールで、アラームとアクションの履歴を見ることができます。Amazon CloudWatch は、過去 2 週間分のアラームとアクションの履歴を保管します。
トリガーされたアラームとアクションを表示するには (CloudWatch コンソール)
-
https://console.aws.amazon.com/cloudwatch/
にある CloudWatch コンソールを開きます。 -
ナビゲーションペインで、[Alarms] を選択します。
-
アラームを選択します。
-
[Details] タブには、直近の状態遷移、および時間とメトリクス値が表示されます。
-
直近の履歴のエントリを表示するには、[History] タブを選択します。
Amazon CloudWatch のアラームアクションのシナリオ
Amazon EC2 (Amazon EC2) コンソールを使用して、一定の条件が満たされたときにインスタンスを停止または終了させるアラームアクションを作成することができます。アラームアクションが設定する以下のコンソールページの画面キャプチャー内に、設定の順番を付けました。また、アクションを適切に作成できるよう、次のシナリオの設定にも順番を付けました。
シナリオ 1: アイドル状態の開発インスタンスおよびテストインスタンスを停止する
ソフトウェアの開発またはテストに使用するインスタンスが 1 時間以上アイドル状態である場合に停止するアラームを作成します。
設定 | 値 |
---|---|
1 |
停止 |
2 |
最大 |
3 |
CPU 使用率 (%) |
4 |
<= |
5 |
10% |
6 |
1 |
7 |
1 時間 |
シナリオ 2: アイドル状態のインスタンスを停止する
インスタンスが 24 時間アイドル状態である場合、インスタンスを停止し、メールを送信するアラームを作成します。
設定 | 値 |
---|---|
1 |
停止および E メール |
2 |
平均 |
3 |
CPU 使用率 (%) |
4 |
<= |
5 |
5% |
6 |
24 |
7 |
1 時間 |
シナリオ 3: トラフィック量が異常に多いウェブサーバーについて E メールを送信する
インスタンスの 1 日当たりのアウトバウンドネットワークトラフィックが 10 GB を超える場合にメールを送信するアラームを作成します。
設定 | 値 |
---|---|
1 |
メール |
2 |
合計 |
3 |
ネットワーク出力 |
4 |
> |
5 |
10 GB |
6 |
24 |
7 |
1 時間 |
シナリオ 4: トラフィック量が異常に多いウェブサーバーを停止する
アウトバウンドトラフィックが 1 時間当たり 1 GB を超えた場合にインスタンスを停止し、テキストメッセージ (SMS) を送信するアラームを作成します。
設定 | 値 |
---|---|
1 |
Stop and send SMS |
2 |
合計 |
3 |
ネットワーク出力 |
4 |
> |
5 |
1 GB |
6 |
1 |
7 |
1 時間 |
シナリオ 5: 障害のあるインスタンスを停止する
3 回連続で状態チェック (5 分間隔で実施) が不合格のインスタンスを停止するアラームを作成します。
設定 | 値 |
---|---|
1 |
停止 |
2 |
平均 |
3 |
ステータスチェックに失敗: システム |
4 |
- |
5 |
- |
6 |
1 |
7 |
15 分 |
シナリオ 6: バッチ処理ジョブの完了時にインスタンスを削除する
バッチジョブを実行するインスタンスが結果データを送信しなくなったときに、そのインスタンスを削除するアラームを作成します。
設定 | 値 |
---|---|
1 |
終了 |
2 |
最大 |
3 |
ネットワーク出力 |
4 |
<= |
5 |
100,000 bytes |
6 |
1 |
7 |
5 分 |