

# インスタンスを停止、終了、再起動、または復旧するアラームを作成する
<a name="UsingAlarmActions"></a>

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

**注記**  
Amazon CloudWatch アラームの請求および料金に関する情報については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch の請求とコスト](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_billing.html)」を参照してください。

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

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

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

**重要**  
メトリクスデータポイントが欠落している場合、ステータスチェックアラームは一時的に `INSUFFICIENT_DATA` の状態になることがあります。これはまれですが、インスタンスが正常であっても、メトリクスレポートシステムに中断がある場合に発生する場合があります。特にインスタンスを停止、終了、再起動、または復旧するようにアラームを設定する場合は、アラーム違反ではなく、`INSUFFICIENT_DATA` の状態を欠落データとして扱うことをお勧めします。

**コンソールのサポート**  
Amazon EC2 コンソールまたは CloudWatch コンソールを使用してアラームを作成できます。このドキュメントの手順では、Amazon EC2 コンソールを使用します。CloudWatch コンソールを使用する手順については、「*Amazon CloudWatch ユーザーガイド*」の「[インスタンスを停止、終了、再起動、または復旧するアラームを作成する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html)」を参照してください。

**アクセス許可**  
EC2 アラームアクションを実行するアラームを作成または変更するには、`iam:CreateServiceLinkedRole` が必要です。サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービス に許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

**Topics**
+ [Amazon CloudWatch アラームへの停止アクションの追加](#AddingStopActions)
+ [Amazon CloudWatch アラームへの終了アクションの追加](#AddingTerminateActions)
+ [Amazon CloudWatch アラームへの再起動アクションの追加](#AddingRebootActions)
+ [Amazon CloudWatch アラームへの復旧アクションの追加](#AddingRecoverActions)
+ [Amazon CloudWatch のアラームアクションのシナリオ](AlarmActionScenarios.md)

## Amazon CloudWatch アラームへの停止アクションの追加
<a name="AddingStopActions"></a>

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

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

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

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. インスタンスを選択し、[**アクション**]、[**モニタリングとトラブルシューティング**]、[**CloudWatch アラームの管理**] の順に選択します。

   または、[**アラームステータス**] 列でプラス記号 (![\[Plus sign.\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/add-plus.png)) を選択できます。

1. [**CloudWatch アラームの管理**] ページで、次の操作を行います。

   1. [**アラームの作成**] を選択します。

   1. アラームがトリガーされたときに E メールを受信するには、[**アラーム通知**] で既存の Amazon SNS トピックを選択します。先ず、Amazon SNS コンソールを使用して Amazon SNS トピックを作成する必要があります。詳細については、*Amazon Simple Notification Service デベロッパーガイド* の[Amazon SNS を使用した Application-to-Person (A2P) メッセージング](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)を参照してください。

   1. [**アラームアクション**] をオンにして、[**停止**] を選択します。

   1. [**サンプルのグループ化基準**] と [**サンプリングするデータのタイプ**] で、統計とメトリクスを選択します。この例では、[**平均**] と [**CPU 使用率**] を選択します。

   1. [**アラーム発生時**] と [**パーセント**] で、メトリクスのしきい値を指定します。この例では、**<=** と **10** % を指定します。

   1. [**連続期間**] と [**期間**] で、アラームの評価期間を指定します。この例では、**5 分間**の **1** 連続期間を指定します。

   1. Amazon CloudWatch は、自動的にアラーム名を作成します。名前を変更するには、[**アラーム名**] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。
**注記**  
アラーム設定は、アラームを作成する前に実際の要件に基づいて調整することも、アラーム作成後に編集することもできます。これにはメトリクス、しきい値、持続時間、アクション、通知設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。

   1. **[作成]** を選択します。

## Amazon CloudWatch アラームへの終了アクションの追加
<a name="AddingTerminateActions"></a>

(インスタンスで終了保護が有効になっていない限り)、一定のしきい値に達したときに EC2 インスタンスを自動的に終了させるアラームを作成することができます。例えば、インスタンスが仕事を終え、再びそのインスタンスを使用する必要がない場合は、インスタンスを削除することをお勧めします。後でインスタンスを使用する可能性がある場合は、インスタンスを削除するのではなく、停止するほうが良いでしょう。インスタンスストアボリュームのデータは、インスタンスの終了に伴って失われます。インスタンスの削除保護の有効化と無効化については、「[インスタンスの終了保護を変更する](Using_ChangingDisableAPITermination.md)」を参照してください。

**アイドル状態のインスタンスを終了するアラームを作成するには (Amazon EC2 コンソール)**

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. インスタンスを選択し、[**アクション**]、[**モニタリングとトラブルシューティング**]、[**CloudWatch アラームの管理**] の順に選択します。

   または、[**アラームステータス**] 列でプラス記号 (![\[Plus sign.\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/add-plus.png)) を選択できます。

1. [**CloudWatch アラームの管理**] ページで、次の操作を行います。

   1. [**アラームの作成**] を選択します。

   1. アラームがトリガーされたときに E メールを受信するには、[**アラーム通知**] で既存の Amazon SNS トピックを選択します。先ず、Amazon SNS コンソールを使用して Amazon SNS トピックを作成する必要があります。詳細については、*Amazon Simple Notification Service デベロッパーガイド* の[Amazon SNS を使用した Application-to-Person (A2P) メッセージング](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)を参照してください。

   1. [**アラームアクション**] をオンにして、[**終了**] を選択します。

   1. [**サンプルのグループ化基準**] と [**サンプリングするデータのタイプ**] で、統計とメトリクスを選択します。この例では、[**平均**] と [**CPU 使用率**] を選択します。

   1. [**アラーム発生時**] と [**パーセント**] で、メトリクスのしきい値を指定します。この例では、**>=** と **10** % を指定します。

   1. [**連続期間**] と [**期間**] で、アラームの評価期間を指定します。この例では、**1 時間**の **24** 連続期間を指定します。

   1. Amazon CloudWatch は、自動的にアラーム名を作成します。名前を変更するには、[**アラーム名**] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。
**注記**  
アラーム設定は、アラームを作成する前に実際の要件に基づいて調整することも、アラーム作成後に編集することもできます。これにはメトリクス、しきい値、持続時間、アクション、通知設定などがあります。ただし、アラームの作成後のアラーム名の編集はできません。

   1. **[作成]** を選択します。

## Amazon CloudWatch アラームへの再起動アクションの追加
<a name="AddingRebootActions"></a>

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

インスタンスの停止と再起動の場合とは違って、インスタンスを再起動しても、インスタンスの新しい (1 分間分の最低料金がある) 課金期間は開始されません。インスタンスストアボリュームのデータは、インスタンスの再起動しても保持されます。インスタンスストアボリュームは、再起動後にファイルシステムに再マウントする必要があります。詳細については、「[Amazon EC2 インスタンスを再起動する](ec2-instance-reboot.md)」を参照してください。

**重要**  
再起動と復旧アクション間で不具合が発生するのを回避するには、再起動アラームと復旧アラームを同じ評価期間に設定するのを避けます。再起動アラームを各 1 分間の 3 回の評価期間に設定することをお勧めします。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[アラームを評価する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)」を参照してください。

**インスタンスを再起動するアラームを作成するには (Amazon EC2 コンソール)**

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. インスタンスを選択し、[**アクション**]、[**モニタリングとトラブルシューティング**]、[**CloudWatch アラームの管理**] の順に選択します。

   または、[**アラームステータス**] 列でプラス記号 (![\[Plus sign.\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/add-plus.png)) を選択できます。

1. [**CloudWatch アラームの管理**] ページで、次の操作を行います。

   1. [**アラームの作成**] を選択します。

   1. アラームがトリガーされたときに E メールを受信するには、[**アラーム通知**] で既存の Amazon SNS トピックを選択します。先ず、Amazon SNS コンソールを使用して Amazon SNS トピックを作成する必要があります。詳細については、*Amazon Simple Notification Service デベロッパーガイド* の[Amazon SNS を使用した Application-to-Person (A2P) メッセージング](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)を参照してください。

   1. [**アラームアクション**] をオンにして、[**再起動**] を選択します。

   1. [**サンプルのグループ化基準**] と [**サンプリングするデータのタイプ**] で、統計とメトリクスを選択します。この例では、[**平均**] と [**ステータスチェックに失敗しました: インスタンス**] を選択しています。

   1. [**連続期間**] と [**期間**] で、アラームの評価期間を指定します。この例では、**[1 分間]**の **[3]** 連続期間と入力します。**[1 分が無効]** になっている場合は、[[詳細なモニタリング]](manage-detailed-monitoring.md#enable-detailed-monitoring) を有効にするか、代わりに **[5 分]** を選択する必要があります。

   1. Amazon CloudWatch は、自動的にアラーム名を作成します。名前を変更するには、[**アラーム名**] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。

   1. **[作成]** を選択します。

## Amazon CloudWatch アラームへの復旧アクションの追加
<a name="AddingRecoverActions"></a>

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

CloudWatch では、復旧アクションをサポートしていないインスタンスにあるアラームに、復旧アクションを追加することはできません。

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

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

以下の問題が発生すると、システムステータスのチェックに失敗する可能性があります。
+ ネットワーク接続の喪失
+ システム電源の喪失
+ 物理ホストのソフトウェアの問題
+ ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題

復旧アクションは、特定の特性を持つインスタンスでのみサポートされます。詳細については、「[インスタンスの自動復旧](ec2-instance-recover.md)」を参照してください。

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

**重要**  
再起動と復旧アクション間で不具合が発生するのを回避するには、再起動アラームと復旧アラームを同じ評価期間に設定するのを避けます。復旧アラームを各 1 分間の 2 回の評価期間に設定することをお勧めします。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[アラームを評価する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)」を参照してください。

**インスタンスを復旧するアラームを作成するには (Amazon EC2 コンソール)**

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

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. インスタンスを選択し、[**アクション**]、[**モニタリングとトラブルシューティング**]、[**CloudWatch アラームの管理**] の順に選択します。

   または、[**アラームステータス**] 列でプラス記号 (![\[Plus sign.\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/add-plus.png)) を選択できます。

1. [**CloudWatch アラームの管理**] ページで、次の操作を行います。

   1. [**アラームの作成**] を選択します。

   1. アラームがトリガーされたときに E メールを受信するには、[**アラーム通知**] で既存の Amazon SNS トピックを選択します。先ず、Amazon SNS コンソールを使用して Amazon SNS トピックを作成する必要があります。詳細については、*Amazon Simple Notification Service デベロッパーガイド* の[Amazon SNS を使用した Application-to-Person (A2P) メッセージング](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)を参照してください。
**注記**  
今後、アラームがトリガーされたときにメール通知を受信するためには、指定された SNS トピックをサブスクライブする必要があります。AWS アカウントのルートユーザー は、自動インスタンス復旧アクションが発生すると、SNS トピックが指定されていない場合や、ルートユーザーが指定した SNS トピックにサブスクライブしていない場合でも、常に E メール通知を受信します。

   1. [**アラームアクション**] をオンにして、[**復元**] を選択します。

   1. [**サンプルのグループ化基準**] と [**サンプリングするデータのタイプ**] で、統計とメトリクスを選択します。この例では、[**平均**] と [**ステータスチェックに失敗しました: システム**] を選択しています。

   1. [**連続期間**] と [**期間**] で、アラームの評価期間を指定します。この例では、**[1 分間]**の **[2]** 連続期間と入力します。**[1 分が無効]** になっている場合は、[[詳細なモニタリング]](manage-detailed-monitoring.md#enable-detailed-monitoring) を有効にするか、代わりに **[5 分]** を選択する必要があります。

   1. Amazon CloudWatch は、自動的にアラーム名を作成します。名前を変更するには、[**アラーム名**] に新しい名前を入力します。アラーム名には ASCII 文字のみを使用する必要があります。

   1. **[作成]** を選択します。

# Amazon CloudWatch のアラームアクションのシナリオ
<a name="AlarmActionScenarios"></a>

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

![\[Cloudwatch アラームの管理ページ\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/manage-cloudwatch-alarms.png)


## シナリオ 1: アイドル状態の開発インスタンスおよびテストインスタンスを停止する
<a name="StopIdleInstance"></a>

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


| 設定 | 値 | 
| --- | --- | 
|  1  |  停止  | 
|  2  |  最大  | 
|  3  |  CPU 使用率 (%)  | 
|  4  |  <=  | 
|  5  |  10%  | 
|  6  |  1  | 
|  7  |  1 時間  | 

## シナリオ 2: アイドル状態のインスタンスを停止する
<a name="StopLowUtilizationInstance"></a>

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


| 設定 | 値 | 
| --- | --- | 
|  1  |  停止および E メール  | 
|  2  |  平均  | 
|  3  |  CPU 使用率 (%)  | 
|  4  |  <=  | 
|  5  |  5%  | 
|  6  |  24  | 
|  7  |  1 時間  | 

## シナリオ 3: トラフィック量が異常に多いウェブサーバーについて E メールを送信する
<a name="StopHighWebTraffic"></a>

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


| 設定 | 値 | 
| --- | --- | 
|  1  |  メール  | 
|  2  |  合計  | 
|  3  |  ネットワーク出力  | 
|  4  |  >  | 
|  5  |  10 GB  | 
|  6  |  24  | 
|  7  |  1 時間  | 

## シナリオ 4: トラフィック量が異常に多いウェブサーバーを停止する
<a name="StopHighWebTraffic2"></a>

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


| 設定 | 値 | 
| --- | --- | 
|  1  |  Stop and send SMS  | 
|  2  |  合計  | 
|  3  |  ネットワーク出力  | 
|  4  |  >  | 
|  5  |  1 GB  | 
|  6  |  1  | 
|  7  |  1 時間  | 

## シナリオ 5: 障害のあるインスタンスを停止する
<a name="StopImpairedInstance"></a>

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


| 設定 | 値 | 
| --- | --- | 
|  1  |  停止  | 
|  2  |  平均  | 
|  3  |  ステータスチェックに失敗: システム  | 
|  4  |  -  | 
|  5  |  -  | 
|  6  |  1  | 
|  7  |  15 分  | 

## シナリオ 6: バッチ処理ジョブの完了時にインスタンスを削除する
<a name="TerminateBatchProcesses"></a>

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


| 設定 | 値 | 
| --- | --- | 
|  1  |  終了  | 
|  2  |  最大  | 
|  3  |  ネットワーク出力  | 
|  4  |  <=  | 
|  5  |  100,000 bytes  | 
|  6  |  1  | 
|  7  |  5 分  | 