

# Amazon EC2 リソースのモニタリング
<a name="monitoring_ec2"></a>

モニタリングはAmazon EC2 インスタンスおよび AWS ソリューションの信頼性、可用性、およびパフォーマンスを維持するうえで重要な部分です。マルチポイント障害が発生した場合はその障害をより簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。

AWS はAmazon EC2 のモニタリングに使用できるさまざまなツールを提供します。Amazon EC2 および CloudWatch のコンソールダッシュボードにはAmazon EC2 環境の状態が一目でわかるビューが表示されます。さらに、以下が提供されています。
+ **システムステータスのチェック** - インスタンスを使用する際に必要な AWS システムをモニタリングして、正常に実行されていることを確認します。これらのチェックでは修復には AWS の関与が必要なインスタンスの根本的な問題が検出されます。システムステータスチェックが失敗した場合、AWS によって問題が修正されるのを待つか、自分自身で (例えば、インスタンスを停止、再起動、終了、置換するなどによって) 問題を解決できます。システムステータスチェックの失敗の原因となる問題には次のようなものがあります。
  + ネットワーク接続の喪失
  + システム電源の喪失
  + 物理ホストのソフトウェアの問題
  + ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題

  詳細については[Amazon EC2 インスタンスのステータスチェック](monitoring-system-instance-status-check.md)を参照してください。
+ **インスタンスステータスのチェック** - 個々のインスタンスのソフトウェアとネットワークの設定をモニタリングします。これらのチェックではユーザーが関与して修復する必要のある問題が検出されます。インスタンスステータスチェックが失敗した場合、通常はお客様ご自身で (インスタンスの再起動、オペレーティングシステムの修正など) 問題を修復する必要があります。インスタンスステータスチェックの失敗の原因となる問題には次のようなものがあります。
  + 失敗したシステムステータスチェック
  + 誤って設定されたネットワークまたは起動設定
  + メモリの枯渇
  + 破損したファイルシステム
  + 互換性のないカーネル

  詳細については[Amazon EC2 インスタンスのステータスチェック](monitoring-system-instance-status-check.md)を参照してください。
+ **Amazon CloudWatch アラーム** - 指定した期間にわたって単一のメトリクスをモニタリングし、複数の期間にわたる特定のしきい値に対するメトリクスの値に基づいて 1 つ以上のアクションを実行します。アクションは Amazon Simple Notiﬁcation Service (Amazon SNS) のトピックまたは Amazon EC2 Auto Scaling のポリシーに送信される通知です。アラームは持続している状態変化に対してのみアクションを呼び出します。CloudWatch アラームはメトリクスが特定の状態になっただけではアクションを呼び出しません。アクションを呼び出すには状態が変化して、指定した期間継続している必要があります。詳細については「[CloudWatch を使用したインスタンスのモニタリング](using-cloudwatch.md)」を参照してください。
+ **Amazon EventBridge イベント** - AWS サービスを自動化し、システムイベントに自動的に応答します。AWS サービスからのイベントはほぼリアルタイムに EventBridge に提供され、イベントが記述したルールと一致したときに実行する自動アクションを指定できます。詳細については「[EventBridge を使用して Amazon EC2 を自動化する](automating_with_eventbridge.md)」を参照してください。
+ **AWS CloudTrail ログ** - Amazon EC2 API に対して行われた呼び出しに関する詳細情報を取得し、Amazon S3 でログファイルとして保存します。CloudTrail ログを使用して、行われた呼び出し、呼び出しのソース IP アドレス、呼び出し元、および呼び出し時間を判断できます。詳細については「[AWS CloudTrail を使用して Amazon EC2 API コールをログに記録する](monitor-with-cloudtrail.md)」を参照してください。
+ **CloudWatch エージェント** - EC2 インスタンスとオンプレミスサーバー上のホストとゲストの両方からログとシステムレベルのメトリクスを収集します。詳細については*Amazon CloudWatch ユーザーガイド*の「[CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)」を参照してください。

# Amazon EC2 インスタンスのステータスのモニタリング
<a name="monitoring-instances-status-check"></a>

インスタンスのステータスをモニタリングして、インスタンスのステータスチェックや、インスタンスにスケジュールされたイベントを表示できます。

ステータスチェックでは Amazon EC2 によって実行される自動化されたチェックからの情報が提供されます。これらの自動化されたチェックは特定の問題がインスタンスに影響を与えているかどうかを検出します。ステータスチェックの情報と、Amazon CloudWatch で提供されるデータによって、各インスタンスの詳細な動作状況を把握できます。

インスタンスに予定されている特定イベントのステータスを確認することもできます。イベントのステータスは再起動やリタイアなど、インスタンスに対して予定されている今後のアクティビティに関する情報を提供します。また、各イベントの予定開始予定時刻および終了時刻も提供されています。

**Topics**
+ [Amazon EC2 インスタンスのステータスチェック](monitoring-system-instance-status-check.md)
+ [Amazon EC2 インスタンスの状態変更イベント](monitoring-instance-state-changes.md)
+ [Amazon EC2 インスタンスの予定されているイベント](monitoring-instances-status-check_sched.md)

# Amazon EC2 インスタンスのステータスチェック
<a name="monitoring-system-instance-status-check"></a>

インスタンスのステータスのモニタリングではインスタンスによるアプリケーションの実行を妨げる可能性のある問題を Amazon EC2 が検出したかどうかをすばやく判断できます。Amazon EC2 は稼働中のすべての EC2 インスタンスに対して自動チェックを実行して、ハードウェアおよびソフトウェアの問題を特定します。これらのステータスチェックの結果を表示して、具体的で検出可能な問題を識別できます。このイベントステータスデータは各インスタンス (`pending`、`running`、`stopping`) の状態に関して Amazon EC2 が既に提供している情報と、Amazon CloudWatch が監視している使用状況メトリクス (CPU 使用率、ネットワークトラフィック、ディスクアクティビティ) を補足するものです。

ステータスチェックは 1 分ごとに実行され、それぞれ成功または失敗のステータスが返ります。すべてのチェックが成功すると、インスタンス全体のステータスが **OK** になります。1つ以上のチェックが失敗すると、全体のステータスが **impaired** になります。ステータスチェックは Amazon EC2 に組み込まれています。そのため、無効にしたり、削除したりすることはできません。

ステータスチェックに失敗すると、ステータスチェックの対応する CloudWatch メトリクスは増加します。詳細については[ステータスチェックメトリクス](viewing_metrics_with_cloudwatch.md#status-check-metrics)を参照してください。このようなメトリクスを使用して、ステータスチェックの結果に基づいてトリガーされる CloudWatch アラームを作成することができます。例えば、特定のインスタンスでステータスチェックが失敗したときに警告するアラームを作成できます。詳細については[ステータスチェックに失敗した Amazon EC2 インスタンスの CloudWatch アラームの作成](creating_status_check_alarms.md)を参照してください。

また、Amazon EC2 インスタンスをモニタリングし、基になる問題によりインスタンスが正常に機能しなくなった場合に、自動的にインスタンスを復旧する Amazon CloudWatch アラームを作成できます。詳細については[インスタンスの自動復旧](ec2-instance-recover.md)を参照してください。

**Topics**
+ [ステータスチェックのタイプ](#types-of-instance-status-checks)
+ [Amazon EC2 インスタンスのステータスチェックの表示](viewing_status.md)
+ [ステータスチェックに失敗した Amazon EC2 インスタンスの CloudWatch アラームの作成](creating_status_check_alarms.md)

## ステータスチェックのタイプ
<a name="types-of-instance-status-checks"></a>

ステータスチェックには 3 種類あります。
+ [システムステータスのチェック](#system-status-checks)
+ [インスタンスステータスのチェック](#instance-status-checks)
+ [アタッチ済みの EBS ステータスチェック](#attached-ebs-status-checks)

### システムステータスのチェック
<a name="system-status-checks"></a>

システムステータスチェックはインスタンスが実行されている AWS システムをモニタリングします。これらのチェックでは修復には AWS の関与が必要なインスタンスの基盤の問題が検出されます。システムステータスチェックが失敗した場合、AWS が問題を解決するのを待つか、自分で解決できるかを選択できます。Amazon EBS でバックアップされたインスタンスの場合はインスタンスを自分で停止および起動することができます。通常、インスタンスは新しいホストに移行されます。インスタンスストアによってサポートされているインスタンスの場合 (Linux インスタンスのみをサポート)、インスタンスを終了して置き換えることができます。インスタンスストアボリュームは短期のものであり、インスタンスが停止するとすべてのデータが失われることに注意してください。

システムステータスチェックの失敗の原因となる問題の例を次に示します。
+ ネットワーク接続の喪失
+ システム電源の喪失
+ 物理ホストのソフトウェアの問題
+ ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題

システムステータスチェックが失敗した場合、[StatusCheckFailed\$1System](viewing_metrics_with_cloudwatch.md#status-check-metrics) メトリクスをインクリメントします。

**ベアメタルインスタンス**  
ベアメタルインスタンス上のオペレーティングシステムから再起動を実行すると、システムステータスチェックが一時的に失敗ステータスを返すことがあります。インスタンスが使用可能になると、システムステータスチェックからは成功ステータスが返されます。

### インスタンスステータスのチェック
<a name="instance-status-checks"></a>

[インスタンスステータスのチェック] 個々のインスタンスのソフトウェアとネットワークの設定をモニタリングします。Amazon EC2 はネットワークインターフェイス (NIC) にアドレス解決プロトコル (ARP) リクエストを送信することでインスタンスのヘルスをチェックします。これらのチェックではユーザーが関与して修復する必要のある問題が検出されます。インスタンスステータスチェックが失敗した場合は通常、自分自身で (例えば、インスタンスを再起動する、インスタンス設定を変更するなどによって) 問題に対処する必要があります。

**注記**  
ネットワーク設定に `systemd-networkd` を使用する最近の Linux ディストリビューションではヘルスチェックに関するレポートが以前のディストリビューションとは異なる場合があります。起動プロセス中、このタイプのネットワークはインスタンスのヘルスにも影響する可能性のある他のスタートアップタスクよりも早く起動し、また早く終了する可能性もあります。ネットワークの可用性に依存するステータスチェックでは他のタスクが完了する前に正常なステータスをレポートできます。

インスタンスステータスチェックの失敗の原因となる問題の例を次に示します。
+ 失敗したシステムステータスチェック
+ 正しくないネットワークまたは起動設定
+ メモリの枯渇
+ 破損したファイルシステム
+ 互換性のないカーネル
+ 再起動中、インスタンスのステータスチェックはインスタンスが再び使用可能になるまで失敗を報告します。

インスタンスのステータスチェックが失敗した場合、[StatusCheckFailed\$1Instance](viewing_metrics_with_cloudwatch.md#status-check-metrics) メトリクスをインクリメントします。

**ベアメタルインスタンス**  
ベアメタルインスタンス上のオペレーティングシステムから再起動を実行すると、インスタンスのステータスチェックが一時的に失敗ステータスを返すことがあります。インスタンスが使用可能になると、インスタンスステータスチェックからは成功ステータスが返されます。

### アタッチ済みの EBS ステータスチェック
<a name="attached-ebs-status-checks"></a>

アタッチ済みの EBS ステータスチェックはインスタンスにアタッチされている Amazon EBS ボリュームが到達可能かどうか、および I/O 操作を完了できるかどうかをモニタリングします。`StatusCheckFailed_AttachedEBS` メトリクスはインスタンスにアタッチされている 1 つ以上の EBS ボリュームが I/O 操作を完了できない場合に障害が発生することを示すバイナリ値です。これらのステータスチェックはコンピューティングまたは Amazon EBS インフラストラクチャの根本的な問題を検出します。アタッチ済みの EBS ステータスチェックメトリクスが失敗した場合はAWS を待って問題を解決するか、影響を受けたボリュームの置き換えやインスタンスの停止および再起動などのアクションを取ることができます。

アタッチ済みの EBS ステータスチェックが失敗する原因となる問題の例を次に示します。
+ EBS ボリュームの基盤となるストレージサブシステムのハードウェアまたはソフトウェアの問題
+ EBS ボリュームの到達可能性に影響する、物理ホスト上のハードウェアの問題
+ インスタンスと EBS ボリューム間の接続に関する問題

`StatusCheckFailed_AttachedEBS` メトリクスを使うことで、ワークロードの耐障害性を向上できます。このメトリクスを使用して、ステータスチェックの結果に基づいてトリガーされる Amazon CloudWatch アラームを作成することができます。例えば、長期にわたる影響を検出した場合はセカンダリインスタンスまたはアベイラビリティーゾーンにフェイルオーバーできます。またはEBS CloudWatch メトリクスを使用してアタッチされた各ボリュームの I/O パフォーマンスをモニタリングし、障害のあるボリュームを検出して置き換えることもできます。ワークロードがインスタンスに接続されている EBS ボリュームに対しても I/O を発生させておらず、EBS ステータスチェックで障害が判明した場合は、インスタンスを停止して起動し、新しいホストに移動できます。これにより、EBS ボリュームの到達可能性に影響を与えている、基盤となるホストの問題を解決できます。詳細については「[Amazon EBS の Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html)」を参照してください。

アタッチ済みの EBS ステータスチェックの失敗を検出し、影響を受けたインスタンスを新しいインスタンスに置き換えるように Amazon EC2 Auto Scaling グループを設定することもできます。詳細については「Amazon EC2 Auto Scaling ユーザーガイド」の「[障害のあるAmazon EBS ボリュームを持つ Auto Scaling インスタンスの監視と置き換え](https://docs.aws.amazon.com/autoscaling/ec2/userguide/monitor-and-replace-instances-with-impaired-ebs-volumes.html)」を参照してください。

**注記**  
アタッチ済みの EBS ステータスチェックメトリクスはNitro インスタンスでのみ使用できます。

# Amazon EC2 インスタンスのステータスチェックの表示
<a name="viewing_status"></a>

インスタンスに失敗したステータスチェックがある場合、通常は自分自身で (例えば、インスタンスを再起動する、インスタンス設定を変更するなどによって) 問題に対処する必要があります。ご自分でシステムまたはインスタンスのステータスチェック失敗のトラブルシューティングを行う場合は[ステータスチェックに失敗した Amazon EC2 Linux インスタンスをトラブルシューティングする](TroubleshootingInstances.md)を参照してください。

------
#### [ Console ]

**ステータスチェックを表示するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. [**インスタンス**] ページで、[**Status check (ステータスチェック)**] 列には各インスタンスの動作状況が表示されます。

1. 特定のインスタンスのステータスを表示するにはインスタンスを選択して、**[ステータスとアラーム]** タブを選択してください。

1. ステータスチェックで CloudWatch メトリクスを確認するには**[ステータスとアラーム]** タブで **[メトリクス]** を展開し、以下のメトリクスのグラフを表示します。
   + **[システムのステータスチェックの失敗]**
   + **[インスタンスのステータスチェックの失敗]**
   + **[アタッチ済みの EBS ステータスチェックに失敗しました]**

   詳細については、「[ステータスチェックメトリクス](viewing_metrics_with_cloudwatch.md#status-check-metrics)」を参照してください。

------
#### [ AWS CLI ]

**ステータスチェックを表示するには**  
[describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) コマンドを使用します。

**例**: 実行中のすべてのインスタンスのステータスを取得する

```
aws ec2 describe-instance-status
```

**例**: すべてのインスタンスのステータスを取得する

```
aws ec2 describe-instance-status --include-all-instances
```

**例**: 単一の実行中のインスタンスのステータスを取得する

```
aws ec2 describe-instance-status --instance-ids i-1234567890abcdef0
```

**例**: ステータスが `impaired` のすべてのインスタンスを取得する

```
aws ec2 describe-instance-status \
--filters Name=instance-status.status,Values=impaired
```

------
#### [ PowerShell ]

**ステータスチェックを表示するには**  
[Get-EC2VolumeStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) コマンドを使用します。

**例**: 実行中のすべてのインスタンスのステータスを取得する

```
Get-EC2InstanceStatus
```

**例**: すべてのインスタンスのステータスを取得する

```
Get-EC2InstanceStatus -IncludeAllInstance $true
```

**例**: 単一の実行中のインスタンスのステータスを取得する

```
Get-EC2InstanceStatus -InstanceId i-1234567890abcdef0
```

**例**: ステータスが `impaired` のすべてのインスタンスを取得する

```
Get-EC2InstanceStatus \
-Filter @{Name="instance-status.status"; Values="impaired"}
```

------

# ステータスチェックに失敗した Amazon EC2 インスタンスの CloudWatch アラームの作成
<a name="creating_status_check_alarms"></a>

[ステータスチェックメトリクス](viewing_metrics_with_cloudwatch.md#status-check-metrics)を使用して、インスタンスのステータスチェックに失敗したときに通知されるように CloudWatch アラームを作成することができます。

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

------
#### [ Console ]

この例では、インスタンスがステータスチェックに失敗したときに通知を送信するアラームを設定します。オプションで、インスタンスを停止、終了、または復旧できます。

**ステータスチェックアラームを作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. インスタンスを選択して、[**Status Checks (ステータスチェック)**] タブを選択し、[**アクション**]、[**Create status check alarm (ステータスチェックアラームの作成)**] を選択してください。

1. [**CloudWatch アラームの管理**] ページの [**アラームの追加または編集**] で、[**Create an alarm (新しいアラームの作成)**] を選択してください。

1. [**Alarm notification (アラーム通知)**] で、トグルをオンにして Amazon Simple Notiﬁcation Service (Amazon SNS) 通知を設定します。既存の Amazon SNS トピックを選択するか、名前を入力して新しいトピックを作成します。

   受信者のリストに E メールアドレスを追加したか、トピックを新規作成した場合、Amazon SNS は新しいアドレスごとに確認の E メールを送信します。各受信者は、E メール内の確認リンクを選択する必要があります。確認されたアドレスのみがアラート通知を受け取ります。

1. [**Alarm action (アラームアクション)**] で、トグルをオンにして、アラームがトリガーされたときに実行するアクションを指定します。アクションを選択してください。

1. [**Alarm thresholds (アラームのしきい値)**] で、アラームのメトリクスと条件を指定します。

   **[サンプルをグループ化]** (**平均**) と **[サンプリングするデータのタイプ]** (**ステータスチェックも失敗**) をデフォルト設定のままにするか、または必要に応じて変更することもできます。

   **[Consecutive period]** (連続期間) の場合、評価する期間数を設定し、**[Period]** (期間) で、アラームをトリガーして E メールを送信するまでの評価の間隔を入力してください。

1. (オプション) **[Sample metric data]** (サンプルメトリクスデータ) の場合、**[Add to dashboard]** (ダッシュボードに追加) を選択してください。

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

インスタンスステータスのアラームを変更する必要がある場合、そのアラームを編集できます。

**ステータスチェックアラームを編集するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. インスタンスを選択し、[**Actions (アクション)**]、[**Monitoring (モニタリング)**]、[**CloudWatch アラームの管理**] の順に選択してください。

1. [**CloudWatch アラームの管理**] ページの [**アラームの追加または編集**] で、[**Edit an alarm (新しいアラームの編集)**] を選択してください。

1. [**Search for alarm (アラームの検索)**] で、アラームを選択してください。

1. 変更が完了したら、[**Update (更新)**] を選択してください。

------
#### [ AWS CLI ]

次の例では、インスタンスが少なくとも 2 つの連続する期間内にインスタンスチェックまたはシステムステータスチェックに失敗した場合、アラームが SNS トピックに通知を発行します。使用する CloudWatch メトリクスは `StatusCheckFailed` です。

**ステータスチェックアラームを作成するには**

1. 既存の SNS トピックを選択するか、新しいキーペアを作成することができます。詳細については、*AWS Command Line InterfaceAmazon Athena ユーザーガイド* の [Athena へのアクセスAWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-sns.html)を参照してください。

1. Amazon EC2 の使用可能な Amazon CloudWatch メトリクスを表示するには [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) コマンドを使用します。

   ```
   aws cloudwatch list-metrics --namespace AWS/EC2
   ```

1. アラームを作成するには次の [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) コマンドを使用します。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name StatusCheckFailed-Alarm-for-i-1234567890abcdef0 \
       --metric-name StatusCheckFailed \
       --namespace AWS/EC2 \
       --statistic Maximum \
       --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
       --unit Count \
       --period 300 \
       --evaluation-periods 2 \
       --threshold 1 \
       --comparison-operator GreaterThanOrEqualToThreshold \
       --alarm-actions arn:aws:sns:us-west-2:111122223333:my-sns-topic
   ```

   期間は Amazon CloudWatch メトリクスが収集される期間 (秒) です。この例では60 秒に 5 分を乗算した 300 を使用します。評価期間はメトリクスの値がしきい値と比較されなければならない連続した期間の数です。この例では 2 を使用します。アラームアクションはこのアラームがトリガーされたときに実行するアクションです。

------
#### [ PowerShell ]

**ステータスチェックアラームを作成するには**  
[Write-CWMetricAlarm](https://docs.aws.amazon.com/powershell/latest/reference/items/Write-CWMetricAlarm.html) コマンドレットを次のように使用して、インスタンスが少なくとも 2 つの連続する期間内にステータスチェックに失敗した場合に SNS トピックに通知を発行します。

```
Write-CWMetricAlarm `
    -AlarmName "StatusCheckFailed-Alarm-for-i-1234567890abcdef0" `
    -MetricName "StatusCheckFailed" `
    -Namespace "AWS/EC2" `
    -Statistic "Maximum" `
    -Dimension @{Name="InstanceId"; Values="i-1234567890abcdef0"} `
    -Unit "Count" `
    -Period 300 `
    -EvaluationPeriod 2 `
    -Threshold 1 `
    -ComparisonOperator "GreaterThanOrEqualToThreshold" `
    -AlarmAction "arn:aws:sns:us-west-2:111122223333:my-sns-topic"
```

期間は Amazon CloudWatch メトリクスが収集される期間 (秒) です。この例では60 秒に 5 分を乗算した 300 を使用します。評価期間はメトリクスの値がしきい値と比較されなければならない連続した期間の数です。この例では 2 を使用します。アラームアクションはこのアラームがトリガーされたときに実行するアクションです。

------

# Amazon EC2 インスタンスの状態変更イベント
<a name="monitoring-instance-state-changes"></a>

インスタンスの状態が変化すると、Amazon EC2 は Amazon EventBridge に `EC2 Instance State-change Notification` イベントを送信します。

以下はこのイベントのサンプルデータです。この例ではインスタンスは `pending` 状態に入りました。

```
{
   "id":"7bf73129-1428-4cd3-a780-95db273d1602",
   "detail-type":"EC2 Instance State-change Notification",
   "source":"aws.ec2",
   "account":"123456789012",
   "time":"2021-11-11T21:29:54Z",
   "region":"us-east-1",
   "resources":[
      "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
   ],
   "detail":{
      "instance-id":"i-1234567890abcdef0",
      "state":"pending"
   }
}
```

`state` に指定できる値は次のとおりです。
+ `pending`
+ `running`
+ `stopping`
+ `stopped`
+ `shutting-down`
+ `terminated`

インスタンスを起動または開始した場合、インスタンスは `pending` 状態に移行してから、`running` 状態になります。インスタンスを停止した場合、インスタンスは `stopping` 状態に移行してから、`stopped` 状態になります。インスタンスを終了した場合、インスタンスは `shutting-down` 状態に移行してから、`terminated` 状態になります。詳細については、「[Amazon EC2 インスタンスの状態変更](ec2-instance-lifecycle.md)」を参照してください。

# Amazon EC2 インスタンスの状態が変更されたときに E メールを送信するアラームの作成
<a name="ec2-events-eventbridge-example"></a>

インスタンスの状態が変化したときに E メール通知を受け取るには、Amazon SNS トピックを作成してから、`EC2 Instance State-change Notification` イベントの EventBridge ルールを作成します。

**SNS トピックを作成するには**

1. Amazon SNS コンソールの [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) を開いてください。

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

1. **[トピックの作成]** を選択してください。

1. [**Type (タイプ)**] で、[**Standard (標準)**] を選択してください。

1. **[Name]** (名前) で、トピックの名前を入力してください。

1. **[トピックの作成]** を選択してください。

1. [**Create subscription**] を選択してください。

1. [**Protocol (プロトコル)**] として [**Email (E メール)**] を選択してください。

1. **[Endpoint]** (エンドポイント) で、通知を受信するメールアドレスを入力してください。

1. [**Create subscription**] を選択してください。

1. 次の件名の E メールメッセージが届きます: AWS Notification - Subscription Confirmation。指示に沿って操作し、登録を確認します。

**EventBridge ルールを作成するには**

1. Amazon EventBridge コンソールの [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) を開いてください。

1. [**Create rule**] を選択してください。

1. [**Name**] (名前) に、ルールの名前を入力してください。

1. **[ルールタイプ]** で、**[イベントパターンを持つルール]** を選択してください。

1. [**Next**] を選択してください。

1. **[Event pattern]** (イベントパターン) の場合は次のいずれかを実行します。

   1. **イベントソース** で **AWS のサービス** を選択してください。

   1. **[AWS のサービス]** で、**[EC2]** を選択してください。

   1. [**イベントタイプ**] に、[**EC2 インスタンスの状態変更通知**] を選択してください。

   1. デフォルトではすべてのインスタンスの状態変更に関する通知が送信されます。必要に応じて、特定の状態またはインスタンスを選択できます。

1. [**Next**] を選択してください。

1. 次のようにターゲットを指定します。

   1. **[Target types]** (ターゲットタイプ) には**[AWS のサービス]** を選択してください。

   1. **[Select a target]** (ターゲットの選択) には**[SNS topic]** (SNS トピック) を選択してください。

   1. **[Topic]** (トピック) で、前の手順で作成した SNS トピックを選択してください。

1. [**Next**] を選択してください。

1. (オプション) ルールにタグを追加します。

1. [**Next**] を選択してください。

1. **ルールの作成**を選択してください。

1. ルールをテストするには状態変更を開始します。例えば、停止されたインスタンスを開始したり、実行中のインスタンスを停止したり、インスタンスを起動したりします。次の件名の E メールメッセージが届きます: AWS Notification Message。E メールの本文にはイベントデータが含まれます。

# Amazon EC2 インスタンスの予定されているイベント
<a name="monitoring-instances-status-check_sched"></a>

インフラストラクチャの信頼性とパフォーマンスを維持するために、 AWS はインスタンスの再起動、停止、終了イベントをスケジュールすることがあります。これらのイベントは頻繁には発生しません。

予定されたイベントの影響を受けるインスタンスがある場合、AWS は AWS アカウントに関連付けられている E メールアドレスを使用して、事前に E メールで通知します。この E メールには、開始日や終了日などのイベントに関する詳細が記載されています。イベントタイプによっては、イベントのタイミングを制御するアクションを実行できる場合があります。AWS は AWS Health イベントも送信し、Amazon EventBridge を使用してモニタリングおよび管理できます。詳細については「[Amazon EventBridge を使用した AWS Health でのイベントのモニタリング](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html)」を参照してください。

予定されたイベントは AWS によって管理されます。インスタンスのイベントをスケジュールすることはできません。ただし、以下はできます。
+ インスタンスに予定されたイベントを表示します。
+ 予定されたイベント通知をカスタマイズして、E メール通知にタグを追加または削除します。
+ 特定の予定されたイベントを再スケジュールします。
+ 予定されているイベントのカスタムイベントウィンドウを作成します。
+ インスタンスの再起動、停止、またはリタイアが予定されているときにアクションを実行します。

スケジュールされたイベントの通知を確実に受信するには、[[アカウント]](https://console.aws.amazon.com/billing/home?#/account) ページで連絡先情報を確認します。

**注記**  
インスタンスがスケジュールされたイベントの影響を受け、それが Auto Scaling グループの一部である場合、Amazon EC2 Auto Scaling はヘルスチェックの一部として最終的にそのインスタンスを置き換えるので、追加のアクションは必要ありません。Amazon EC2 Auto Scaling によって実行されるヘルスチェックの詳細については「*Amazon EC2 Auto Scaling ユーザーガイド*」の「[Auto Scaling グループのインスタンスのヘルスチェック](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)」を参照してください。

## 予定されたイベントのタイプ
<a name="types-of-scheduled-events"></a>

Amazon EC2 は、インスタンスに対して、スケジュールされた時間に発生する以下の種類のスケジュールされたイベントを作成できます。


| イベントタイプ | イベントコード | イベントアクション | 
| --- | --- | --- | 
| インスタンスの停止 | instance-stop | スケジュールされた時刻になると、インスタンスは停止します。再度起動すると、新しいホストに移行されます。Amazon EBS ルートボリュームを持つインスタンスに対してのみ適用されます。 | 
| インスタンスのリタイア | instance-retirement | スケジュールされた時刻に、インスタンスは Amazon EBS ルートボリュームがある場合は停止され、インスタンスストアルートボリュームがある場合は終了されます。 | 
| インスタンスの再起動 | instance-reboot | スケジュールされた時刻になると、インスタンスは再起動されます。インスタンスはホストに留まり、再起動中にホストのメンテナンスが実行されます。これはインプレース再起動と呼ばれます。 | 
| システムの再起動 | system-reboot | スケジュールされた時刻に、インスタンスが再起動され、新しいホストに移行されます。これは再起動移行と呼ばれます。 | 
| [System maintenance] | system-maintenance | スケジュールされた時刻になると、インスタンスはネットワークメンテナンスまたは電源のメンテナンスの影響を一時的に受ける場合があります。 | 

## イベントタイプを決定する
<a name="scheduled-event-type"></a>

インスタンスでスケジュールされているイベントのタイプを確認できます。

------
#### [ Console ]

**イベントタイプを確認するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. テーブルの **[イベントタイプ]** 列にイベントコードが表示されます。

1. テーブルをフィルタリングしてインスタンスのイベントのみを表示するには、検索フィールドでフィルターリストから**[リソースタイプ: インスタンス]** を選択します。

------
#### [ AWS CLI ]

**インスタンスのイベントタイプを確認するには**  
[describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) コマンドを使用します。インスタンスにスケジュールされたイベントが関連付けられている場合、出力にはスケジュールされたイベントに関する情報が提供されます。

```
aws ec2 describe-instance-status \
    --instance-id i-1234567890abcdef0 \
    --query InstanceStatuses[].Events
```

以下は出力の例です。スケジュールされたイベントコードは `system-reboot` です。

```
[
    "Events": [
        {
            "InstanceEventId": "instance-event-0d59937288b749b32",
            "Code": "system-reboot",
            "Description": "The instance is scheduled for a reboot",
            "NotAfter": "2020-03-14T22:00:00.000Z",
            "NotBefore": "2020-03-14T20:00:00.000Z",
            "NotBeforeDeadline": "2020-04-05T11:00:00.000Z"
        }
    ]
]
```

------
#### [ PowerShell ]

**インスタンスのイベントタイプを確認するには**  
[Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) コマンドレットを使用します。インスタンスにスケジュールされたイベントが関連付けられている場合、出力にはスケジュールされたイベントに関する情報が提供されます。

```
(Get-EC2InstanceStatus `
    -InstanceId i-1234567890abcdef0).Events
```

以下は出力の例です。スケジュールされたイベントコードは `system-reboot` です。

```
Code              : system-reboot
Description       : The instance is scheduled for a reboot
InstanceEventId   : instance-event-0d59937288b749b32
NotAfter          : 2020-03-14T22:00:00.000Z
NotBefore         : 2020-03-14T20:00:00.000Z
NotBeforeDeadline : 2020-04-05T11:00:00.000Z
```

------

**Topics**
+ [予定されたイベントのタイプ](#types-of-scheduled-events)
+ [イベントタイプを決定する](#scheduled-event-type)
+ [停止またはリタイアがスケジュールされている Amazon EC2 インスタンスを管理する](schedevents_actions_retire.md)
+ [再起動が予定されている Amazon EC2 インスタンスを管理する](schedevents_actions_reboot.md)
+ [メンテナンスがスケジュールされている Amazon EC2 インスタンスを管理する](schedevents_actions_maintenance.md)
+ [Amazon EC2 インスタンスに影響する予定されているイベントの表示](viewing_scheduled_events.md)
+ [EC2 インスタンスのスケジュールされたイベント通知をカスタマイズする](customizing_scheduled_event_notifications.md)
+ [EC2 インスタンスのスケジュールされたイベントを再スケジュールする](reschedule-event.md)
+ [Amazon EC2 インスタンスに影響する予定されているイベントのカスタムイベントウィンドウの作成](event-windows.md)

# 停止またはリタイアがスケジュールされている Amazon EC2 インスタンスを管理する
<a name="schedevents_actions_retire"></a>

AWS はインスタンスの基盤となるホストの回復不能な障害を検出すると、インスタンスのルートボリュームタイプに応じて、インスタンスを停止または終了するようにスケジュールします。
+ インスタンスに Amazon EBS ルートボリュームがある場合、インスタンスは停止するようにスケジュールされます。
+ インスタンスにインスタンスストアのルート ボリュームがある場合、インスタンスは終了するようにスケジュールされます。

詳細については、「[インスタンスのリタイア](instance-retirement.md)」を参照してください。

**重要**  
インスタンスストアボリュームに格納されているデータはいずれも、インスタンスが停止、休止、または終了されると失われます。これにはEBS ルートボリュームを備えたインスタンスにアタッチされたインスタンスストアボリュームも含まれます。インスタンスが停止、休止、または終了される前に、後で必要となるインスタンスストアボリュームからデータを必ず保存しておきます。

## 実行できるアクション
<a name="actions-you-can-take-for-scheduled-stop-or-retire-event"></a>

**EBS ルートボリュームを持つインスタンスに対して実行できるアクション**

スケジュールされた `instance-stop` イベント通知を受け取った場合、次のいずれかのアクションを実行できます。
+ **スケジュールされた停止の待機:** 予定されたメンテナンスウィンドウ中にインスタンスが停止するのを待機できます。
+ **手動による停止と起動の実行:** 都合の良いときにインスタンスを自分で停止および起動して、新しいホストに移行できます。これは、インスタンスの再起動と同じではありません。詳細については、「[Amazon EC2 インスタンスの停止と開始](Stop_Start.md)」を参照してください。
+ **停止と開始の自動化:** スケジュールされた `instance-stop` イベントに対応した、即時の停止と開始を自動化できます。詳細については「*AWS Health ユーザーガイド*」の「[AWS Health のイベントに応答して EC2 インスタンスでオペレーションを自動的に実行](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)」を参照してください。

**インスタンスストアのルートボリュームを持つインスタンスに対して実行できるアクション**

スケジュールされた`system-retirement`イベント通知を受信し、データを保持したい場合は、次の操作を実行できます。

1. 最新の AMI から置換インスタンスを起動します。

1. インスタンスの終了がスケジュールされる前に、必要なすべてのデータを代替インスタンスに移行します。

1. 元のインスタンスを終了するか、予定どおりに終了するまで待機します。

実行できるアクションの詳細については、「[インスタンスのリタイア](instance-retirement.md)」を参照してください。

# 再起動が予定されている Amazon EC2 インスタンスを管理する
<a name="schedevents_actions_reboot"></a>

AWS は更新のインストールや基盤となるホストのメンテナンスなどのタスクを実行する必要があるとき、インスタンスの再起動をスケジュールできます。スケジュールされた再起動中、インスタンスは次のようにイベントに応じて、同じホストに留まるか、別のホストに移行します。
+ `instance-reboot` イベント
  + 再起動中、インスタンスはホスト上に留まります。これは*インプレース再起動*と呼ばれます。
  + 現在のホストはメンテナンス中です。
  + 通常、秒単位で完了します。
+ `system-reboot` イベント
  + 再起動中、インスタンスは新しいホストに移行されます。これは*再起動移行*と呼ばれます。
  + 通常、数分で完了します。

インスタンスでスケジュールされているイベントのタイプを確認するには、「[イベントタイプを決定する](monitoring-instances-status-check_sched.md#scheduled-event-type)」を参照してください。

## 実行できるアクション
<a name="actions-you-can-take-for-scheduled-reboot-event"></a>

スケジュールされた `instance-reboot` または `system-reboot` イベント通知を受け取った場合、次のいずれかのアクションを実行できます。
+ **スケジュールされた再起動の待機:** スケジュールされたメンテナンスウィンドウ内にインスタンスの再起動が行われるまで待機できます。
+ **再起動のスケジュールの変更:** インスタンスの再起動を、都合のよい日時に合わせて[再スケジュール](reschedule-event.md)できます。
+ **ユーザー操作による再起動の実行:** ユーザーは好きなタイミングで手動でインスタンスを[再起動](ec2-instance-reboot.md)できます。ただし、再起動結果はイベントによって異なります。
  + `instance-reboot` イベント – インスタンスは現在のハードウェア上に留まり (インプレース再起動)、ホストのメンテナンスは行われず、イベントは開いたままになります。
  + `system-reboot` イベント
    + インスタンスで再起動移行が有効になっている状態でユーザー操作による再起動を行うと、システムはインスタンスを新しいハードウェアに移行しようとします。成功すると、イベントはクリアされます。失敗するとインプレース再起動が発生し、イベントはスケジュールされたままになります。
    + インスタンスで再起動移行が無効になっている状態では、ユーザー操作による再起動を行ってもインスタンスは同じハードウェアに保持され (インプレース再起動)、ホストのメンテナンスは行われず、イベントはスケジュールされたままになります。その後スケジュールされたイベントが予定通りに発生すると、AWS はインスタンスを新しいハードウェアに移動します (再起動移行)。

**AWS がインスタンスを再起動した後**

AWS がインスタンスを再起動した後、以下が適用されます。
+ スケジュールされたイベントはクリアされます。
+ イベントの説明が更新されました。
+ `instance-reboot` イベントの場合:
  + 基盤となるホストのメンテナンスが完了しました。
+ `system-reboot` イベントの場合:
  + インスタンスは新しいホストに移動します。
  + インスタンスは IP アドレスと DNS 名を保持します。
  + ローカルインスタンスストアボリュームのデータはすべて保持されます。
+ インスタンスは、完全に起動したら使用できます。

**代替オプション**

再起動イベントを再スケジュールできない、またはユーザー操作による再起動に対して再起動移行を有効にできないが、スケジュールされているメンテナンスウィンドウの予定時間には通常の操作を維持したい場合は、次の操作を行ってください。
+ **EBS ルートボリュームを持つインスタンスの場合**
  + インスタンスを手動で停止して起動し、新しいホストに移行します。これは、インスタンスを同じホストに留まっているインスタンスを手動で再起動する場合とは異なります。
  + オプションで、スケジュールされた再起動イベントに対応した、インスタンスの即時の停止と開始を自動化することができます。詳細については「*AWS Health ユーザーガイド*」の「[AWS Health のイベントに応答して EC2 インスタンスでオペレーションを自動的に実行](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)」を参照してください。
**重要**  
インスタンスストアボリューム上のデータは、インスタンスの停止に伴って失われます。詳細については、「[Amazon EC2 インスタンスの停止と開始](Stop_Start.md)」を参照してください。
+ **インスタンスストアのルートボリュームを持つインスタンスの場合**

  1. 最新の AMI から置換インスタンスを起動します。

  1. スケジュールされたメンテナンスウィンドウの前に、必要なすべてのデータを代替インスタンスに移行します。

  1. 元のインスタンスを終了します。

## 再起動移行を有効または無効にする
<a name="reboot-migration"></a>

インスタンスが `system-reboot` イベントにスケジュールされている場合も、イベント予定日時の前にインスタンスを手動で再起動できます。ユーザー操作による再起動の結果は、そのインスタンスの再起動移行設定によって異なります。
+ 有効 – ユーザー操作による再起動を行うと、システムはインスタンスを新しいハードウェアに移行しようとします (再起動移行)。成功すると、イベントはクリアされます。失敗するとインプレース再起動が発生し、イベントはスケジュールされたままになります。なお、再起動移行を有効に設定していても、再起動移行はそのインスタンスが[再起動移行要件](#requirements-for-reboot-migration)を満たしている場合にのみ実行可能である点に留意してください。
+ 無効 – ユーザー操作による再起動を行ってもインスタンスは同じハードウェアに保持され (インプレース再起動)、ホストメンテナンスは行われず、イベントはスケジュールされたままになります。その後スケジュールされたイベントが予定通りに発生すると、AWS はインスタンスを新しいハードウェアに移動します (再起動移行)。

移行を伴う再起動は、インプレース再起動よりも時間がかかります。
+ インプレース再起動: 約 30 秒
+ 移行を伴う再起動: 数分

**注記**  
`system-reboot` イベント通知を受信するインスタンスでは、デフォルトでユーザー操作による再起動移行が有効になっています。

### 再起動移行を有効にするための要件
<a name="requirements-for-reboot-migration"></a>

再起動移行は、次の条件を満たすインスタンスで有効にできます。

**インスタンスのタイプ**  
すべてのインスタンスタイプが再起動移行の有効化をサポートしているわけではありません。再起動移行の有効化をサポートするインスタンスタイプを確認することができます。  

**再起動移行の有効化をサポートするインスタンスタイプを確認するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. フィルターバーに、**Reboot Migration support: supported** と入力します。あるいはこの文字列を入力していくと該当するフィルター名が表示されるので、そのフィルターを選択できます。

   **[インスタンスタイプ]** テーブルに、再起動移行の有効化をサポートするすべてのインスタンスタイプが表示されます。
**再起動移行の有効化をサポートするインスタンスタイプを確認するには**  
[describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) コマンドを `reboot-migration-support` フィルターと共に使用します。

```
aws ec2 describe-instance-types \
    --filters Name=reboot-migration-support,Values=supported \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```
**再起動移行の有効化をサポートするインスタンスタイプを確認するには**  
[Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) コマンドレットを `reboot-migration-support` フィルタと共に使用します。

```
Get-EC2InstanceType `
    -Filter @{Name="reboot-migration-support";Values="true"} | `
    Select InstanceType | Sort-Object InstanceType
```

**テナンシー**  
+ Shared
+ Dedicated Instance
詳細については「[Amazon EC2 ハードウェア専有インスタンス](dedicated-instance.md)」を参照してください。

**制限事項**

再起動移行は、次の特性を持つインスタンスでは**サポートされていません**。
+ プラットフォーム: Xen ハイパーバイザーでネイティブに実行されているインスタンス
+ インスタンスサイズ: `metal`インスタンス
+ テナンシー: 専用ホスト。専用ホスト の場合は代わりに [Dedicated Host Auto Recovery](dedicated-hosts-recovery.md) を使用します。
+ ストレージ: インスタンスストアボリュームを持つインスタンス
+ ネットワーク: エラスティックファブリックアダプタ を使用するインスタンス
+ Auto Scaling: Auto Scaling グループの一部であるインスタンス

### 再起動移行を有効化または無効化する手順
<a name="configure-reboot-migration-behavior"></a>

インスタンスが `system-reboot` イベントを受信すると、デフォルトで再起動移行が有効になります。再起動移行が無効に設定されている場合、ユーザー操作による再起動を行ってもインスタンスは同じハードウェア上に保持されます (インプレース再起動)。

`default` 設定では、サポートされていないインスタンスの再起動移行を有効にすることはできません。詳細については、「[再起動移行を有効にするための要件](#requirements-for-reboot-migration)」を参照してください。

実行中または停止中のインスタンスで再起動移行を無効または有効にできます。

------
#### [ AWS CLI ]

**再起動移行を無効にするには**  
[modify-instance-maintenance-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-maintenance-options.html) コマンドを使用して、`--reboot-migration` パラメータを `disabled` に設定します。

```
aws ec2 modify-instance-maintenance-options \ 
    --instance-id i-0abcdef1234567890 \ 
    --reboot-migration disabled
```

**再起動移行を有効にするには**  
[modify-instance-maintenance-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-maintenance-options.html) コマンドを使用して、`--reboot-migration` パラメータを `default` に設定します。

```
aws ec2 modify-instance-maintenance-options \ 
    --instance-id i-0abcdef1234567890 \ 
    --reboot-migration default
```

------
#### [ PowerShell ]

**再起動移行を無効にするには**  
[Edit-EC2InstanceMaintenanceOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMaintenanceOption.html) コマンドレットを使用します。

```
Edit-EC2InstanceMaintenanceOption `
    -InstanceId  `
    -RebootMigration Disabled
```

**再起動移行を有効にするには**  
[Edit-EC2InstanceMaintenanceOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMaintenanceOption.html) コマンドレットを使用します。

```
Edit-EC2InstanceMaintenanceOption `
    -InstanceId i-1234567890abcdef0 `
    -RebootMigration Enabled
```

------

# メンテナンスがスケジュールされている Amazon EC2 インスタンスを管理する
<a name="schedevents_actions_maintenance"></a>

AWS はインスタンスの基盤となるホストをメンテナンスする必要があるときに、インスタンスのメンテナンスを予定します。2 種類のメンテナンスイベントがあります。1 つはネットワークメンテナンスで、もう 1 つは電源のメンテナンスです。
+ ネットワークメンテナンス中は短い期間、予定されたインスタンスのネットワーク接続が切断されます。メンテナンスが終了すると、インスタンスとの通常のネットワーク接続が回復します。
+ 電源のメンテナンス中は短い期間、予定されたインスタンスはオフラインになり、その後再起動されます。再起動されると、インスタンスの設定内容はすべて維持されます。

インスタンスが再起動したら (通常、数分かかります)、アプリケーションが正常に動作していることを確認します。この時点で、インスタンスにスケジュールされたイベントは残っていません。残っている場合はスケジュールされたイベントの説明の先頭に [**Completed**] と表示されます。インスタンスのステータス説明が更新するのに、最大で 1 時間ほどかかる場合があります。完了したメンテナンスイベントは最長で 1 週間、Amazon EC2 コンソールのダッシュボードに表示されます。

## 実行できるアクション
<a name="actions-you-can-take-for-scheduled-maintenance-event"></a>

**EBS ルートボリュームを持つインスタンスに対して実行できるアクション**

`system-maintenance` イベント通知を受け取った場合、次のいずれかのアクションを実行できます。
+ **スケジュールされたメンテナンスの待機:** メンテナンスがスケジュールどおりに実行されるのを待機できます。
+ **手動で停止と停止の実行:** インスタンスの停止と起動を行うと、インスタンスは別のホストに移行されます。これは、インスタンスの再起動と同じではありません。詳細については、「[Amazon EC2 インスタンスの停止と開始](Stop_Start.md)」を参照してください。
+ **停止と開始の自動化:** スケジュールされたメンテナンスイベントに対応した、即時の停止と開始を自動化することができます。詳細については「*AWS Health ユーザーガイド*」の「[AWS Health のイベントに応答して EC2 インスタンスでオペレーションを自動的に実行](https://docs.aws.amazon.com/health/latest/ug/automating-instance-actions.html)」を参照してください。

**インスタンスストアのルートボリュームを持つインスタンスに対して実行できるアクション**

`system-maintenance` イベント通知を受け取った場合、次のいずれかのアクションを実行できます。
+ **スケジュールされたメンテナンスの待機:** メンテナンスがスケジュールどおりに実行されるのを待機できます。
+ **代替インスタンスの起動:** スケジュールされたメンテナンスウィンドウ中に通常の操作を維持する場合:

  1. 最新の AMI から置換インスタンスを起動します。

  1. スケジュールされたメンテナンスウィンドウの前に、必要なすべてのデータを代替インスタンスに移行します。

  1. 元のインスタンスを終了します。

# Amazon EC2 インスタンスに影響する予定されているイベントの表示
<a name="viewing_scheduled_events"></a>

スケジュールされたイベント通知を E メールで受信することに加え、スケジュールされたイベントを確認できます。

------
#### [ Console ]

**インスタンスに予定されたイベントを表示するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ダッシュボードには[**Scheduled events**] の下に関連付けられているイベントを持つすべてのリソースが表示されます。  
![\[ダッシュボードを使用してイベントを表示します。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/dashboard-scheduled-events.png)

1. 詳細についてはナビゲーションペインで **[イベント]** を選択してください。イベントに関連付けられたリソースがすべて表示されます。イベントタイプ、リソースタイプ、アベイラビリティーゾーンなどの特性でフィルタリングできます。  
![\[[Events] ページを使用してイベントを表示します。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/events-instance-scheduled-stop.png)

------
#### [ AWS CLI ]

**インスタンスに予定されたイベントを表示するには**  
[describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) コマンドを使用します。

```
aws ec2 describe-instance-status \
    --instance-id i-1234567890abcdef0 \
    --query "InstanceStatuses[].Events"
```

以下の出力例は再起動イベントを示しています。

```
[
    "Events": [
        {
            "InstanceEventId": "instance-event-0d59937288b749b32",
            "Code": "system-reboot",
            "Description": "The instance is scheduled for a reboot",
            "NotAfter": "2019-03-15T22:00:00.000Z",
            "NotBefore": "2019-03-14T20:00:00.000Z",
            "NotBeforeDeadline": "2019-04-05T11:00:00.000Z"
         }

    ]
]
```

インスタンスのリタイアイベントを示す出力例を次に示します。

```
[
    "Events": [
        {
            "InstanceEventId": "instance-event-0e439355b779n26",                        
            "Code": "instance-stop",
            "Description": "The instance is running on degraded hardware",
            "NotBefore": "2015-05-23T00:00:00.000Z"
        }
    ]
]
```

------
#### [ PowerShell ]

**インスタンスに予定されたイベントを表示するには**  
次の [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) コマンドを使用します。

```
(Get-EC2InstanceStatus -InstanceId i-1234567890abcdef0).Events
```

インスタンスのリタイアイベントを示す出力例を次に示します。

```
Code         : instance-stop
Description  : The instance is running on degraded hardware
NotBefore    : 5/23/2015 12:00:00 AM
```

------
#### [ Instance metadata ]

**インスタンスメタデータを使用してインスタンスに予定されたイベントを表示するには**  
インスタンスのアクティブなメンテナンスイベントに関する情報はインスタンスメタデータサービスバージョン 2 または インスタンスメタデータサービスバージョン 1 を使用して[インスタンスメタデータ](ec2-instance-metadata.md)から取得できます。

**IMDSv2**

```
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/maintenance/scheduled
```

**IMDSv1**

```
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/scheduled
```

以下は予定されたシステムの再起動イベントに関する情報を JSON 形式で出力した例です。

```
[ 
  {
    "NotBefore" : "21 Jan 2019 09:00:43 GMT",
    "Code" : "system-reboot",
    "Description" : "scheduled reboot",
    "EventId" : "instance-event-0d59937288b749b32",
    "NotAfter" : "21 Jan 2019 09:17:23 GMT",
    "State" : "active"
  } 
]
```

**インスタンスメタデータを使用して、インスタンスの完了またはキャンセルされたイベントのイベント履歴を表示するには**  
インスタンスの完了済みまたはキャンセル済みイベントに関する情報はインスタンスメタデータサービスバージョン 2 または インスタンスメタデータサービスバージョン 1 を使用して[インスタンスメタデータ](ec2-instance-metadata.md)から取得できます。

**IMDSv2**

```
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/maintenance/history
```

**IMDSv1**

```
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/maintenance/history
```

以下は取り消されたシステム再起動イベントおよび完了したシステム再起動イベントに関する情報を JSON 形式で出力した例です。

```
[ 
  {
    "NotBefore" : "21 Jan 2019 09:00:43 GMT",
    "Code" : "system-reboot",
    "Description" : "[Canceled] scheduled reboot",
    "EventId" : "instance-event-0d59937288b749b32",
    "NotAfter" : "21 Jan 2019 09:17:23 GMT",
    "State" : "canceled"
  }, 
  {
    "NotBefore" : "29 Jan 2019 09:00:43 GMT",
    "Code" : "system-reboot",
    "Description" : "[Completed] scheduled reboot",
    "EventId" : "instance-event-0d59937288b749b32",
    "NotAfter" : "29 Jan 2019 09:17:23 GMT",
    "State" : "completed"
  }
]
```

------
#### [ AWS Health ]

AWS Health Dashboard を使用して、インスタンスに影響を与える可能性があるイベントについて確認できます。Health Dashboard では未解決の問題、予定された変更、その他の通知という 3 つのグループに問題が分類されます。予定された変更には進行中または予定されている変更が含まれます。

詳細についてはAWS Health ユーザーガイドの「*[AWS Health Dashboard の開始方法](https://docs.aws.amazon.com/health/latest/ug/getting-started-health-dashboard.html)*」を参照してください。

------

# EC2 インスタンスのスケジュールされたイベント通知をカスタマイズする
<a name="customizing_scheduled_event_notifications"></a>

スケジュールされたイベント通知をカスタマイズして、メール通知にタグを含めることができます。これにより、影響を受けるリソース (インスタンスまたは 専用ホスト) を特定して、その後のイベントに対するアクションに優先順位を付けやすくなります。

タグを含めるようにイベント通知をカスタマイズする場合、次のいずれかを含めることができます。
+ 影響を受けるリソースに関連付けられているすべてのタグ
+ 影響を受けるリソースに関連付けられている特定のタグのみ

例えば、`application`、`costcenter`、`project`、`owner` タグをすべてのインスタンスに割り当てるとします。イベント通知にはこれらのすべてのタグを含めることができます。また、イベント通知に `owner` タグと `project` タグのみを表示したい場合はそれらのタグのみを含めることもできます。

含めるタグを選択すると、イベント通知には影響を受けるリソースに関連付けられているリソース ID (インスタンス ID または Dedicated Host ID) とタグのキーと値のペアが含まれます。

**Topics**
+ [イベント通知にタグを含める](#register-tags)
+ [イベント通知からのタグの削除](#deregister-tags)
+ [イベント通知に含めるタグの表示](#view-tags)

## イベント通知にタグを含める
<a name="register-tags"></a>

含めるように選択したタグは選択したリージョンのすべてのリソース (インスタンスと 専用ホスト) に適用されます。他のリージョンのイベント通知をカスタマイズするにはまず必要なリージョンを選択してから、次の手順を実行します。

------
#### [ Console ]

**イベント通知にタグを含めるには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. [**アクション**]、[**Manage event notifications (イベント通知の管理)**] の順に選択してください。

1. **[イベント通知にタグを含める]**をオンにします。

1. イベント通知に含めるタグに応じて、次のいずれかの操作を行います。
   + 影響を受けるインスタンスまたは専有ホストに関連付けられている全タグを含めるには**[全タグを含める]** を選択してください。
   + 含めるタグを選択するには **[含めるタグを選択]** を選択し、タグキーを選択または入力してください。

1. [**Save**] を選択してください。

------
#### [ AWS CLI ]

**イベント通知にすべてのタグを含めるには**  
`IncludeAllTagsOfInstance` コマンドの [register-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-instance-event-notification-attributes.html) を使用して、`true` パラメータをに設定します。

```
aws ec2 register-instance-event-notification-attributes \
    --instance-tag-attribute "IncludeAllTagsOfInstance=true"
```

**イベント通知に特定のタグを含めるには**  
 コマンドの [register-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-instance-event-notification-attributes.html) を使用して、パラメー`InstanceTagKeys` タを使用して含めるタグを指定します。

```
aws ec2 register-instance-event-notification-attributes \
    --instance-tag-attribute 'InstanceTagKeys=["tag_key_1", "tag_key_2", "tag_key_3"]'
```

------
#### [ PowerShell ]

**イベント通知にすべてのタグを含めるには**  
[Register-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventNotificationAttribute.html) コマンドレットを使用します。

```
Register-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_IncludeAllTagsOfInstance $true
```

**イベント通知に特定のタグを含めるには**  
[Register-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventNotificationAttribute.html) コマンドレットを使用します。

```
Register-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_InstanceTagKey tag_key_1, tag_key_2, tag_key_3
```

------

## イベント通知からのタグの削除
<a name="deregister-tags"></a>

イベント通知からタグを削除できます。

------
#### [ Console ]

**イベント通知からタグを削除するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. [**アクション**]、[**Manage event notifications (イベント通知の管理)**] の順に選択してください。

1. イベント通知からすべてのタグを削除するには**[イベント通知にタグを含める]** をオフにします。

1. イベント通知から特定のタグを削除するには対応するタグキーの [**X**] を選択してください。

1. [**Save**] を選択してください。

------
#### [ AWS CLI ]

**イベント通知からすべてのタグを削除するには**  
`IncludeAllTagsOfInstance` コマンドの [deregister-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-instance-event-notification-attributes.html) を使用して、`false` パラメータをに設定します。

```
aws ec2 deregister-instance-event-notification-attributes \
    --instance-tag-attribute "IncludeAllTagsOfInstance=false"
```

**イベント通知からタグを削除するには**  
 コマンドの [deregister-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-instance-event-notification-attributes.html) を使用して、パラメ`InstanceTagKeys`タを使用して削除するタグを指定します。

```
aws ec2 deregister-instance-event-notification-attributes \
    --instance-tag-attribute 'InstanceTagKeys=["tag_key_3"]'
```

------
#### [ PowerShell ]

**イベント通知からすべてのタグを削除するには**  
[Unregister-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventNotificationAttribute.html) コマンドレットを使用します。

```
Unregister-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_IncludeAllTagsOfInstance $false
```

**イベント通知からタグを削除するには**  
[Unregister-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventNotificationAttribute.html) コマンドレットを使用します。

```
Unregister-EC2InstanceEventNotificationAttribute `
    -InstanceTagAttribute_InstanceTagKey tag_key_3
```

------

## イベント通知に含めるタグの表示
<a name="view-tags"></a>

イベント通知に含めるタグを表示できます。

------
#### [ Console ]

**イベント通知に含めるタグを表示するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. [**アクション**]、[**Manage event notifications (イベント通知の管理)**] の順に選択してください。

------
#### [ AWS CLI ]

**イベント通知に含めるタグを表示するには**  
 コマンドの [describe-instance-event-notification-attributes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-event-notification-attributes.html) を使用します。

```
aws ec2 describe-instance-event-notification-attributes
```

------
#### [ PowerShell ]

**イベント通知に含めるタグを表示するには**  
[Get-EC2InstanceEventNotificationAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceEventNotificationAttribute.html) コマンドレットを使用します。

```
Get-EC2InstanceEventNotificationAttribute
```

------

# EC2 インスタンスのスケジュールされたイベントを再スケジュールする
<a name="reschedule-event"></a>

都合の良い日時にイベントが発生するように、予定を再スケジュールできます。イベントを再スケジュールすると、更新された日付が表示されるまでに 1～2 分かかる場合があります。

**制限事項**
+ イベント期限があるイベントのみ再スケジュールできます。イベントはイベント期限日まで再スケジュールできます。イベントの期限は、[**期限**] 列 (コンソール) と `NotBeforeDeadline` フィールド (AWS CLI) に表示されます。
+ まだ開始していないイベントのみ再スケジュールできます。開始時刻は、[**開始時刻**] 列 (コンソール) と `NotBefore` フィールド (AWS CLI) に表示されます。あと 5 分で開始するようにスケジュールされているイベントは再スケジュールできません。
+ 新しいイベント開始時刻は現在の時刻から少なくとも 60 分後にする必要があります。
+ コンソールを使用して複数のイベントを再スケジュールすると、イベント期限は最も早い期限日のイベントによって決定されます。

------
#### [ Console ]

**イベントを再スケジュールするには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. フィルターリストから [**リソースタイプ: インスタンス**] を選択してください。

1. 1 つ以上のインスタンスを選択し、[**アクション**]、[**Schedule event**] の順に選択してください。

   [**期限**] でイベント期限を設定したイベントのみを再スケジュールできます。選択したイベントのいずれかに期限がない場合、[**アクション**]、[**Schedule event**] は無効になります。

1. [**New start time**] に、イベントの新しい日時を入力してください。新しい日時は[**Event deadline**] より前に設定する必要があります。

1. [**Save**] を選択してください。

   更新されたイベント開始時刻がコンソールに反映されるまで、1～2 分かかることがあります。

------
#### [ AWS CLI ]

**イベントを再スケジュールするには**  
[https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-start-time.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-start-time.html) コマンドを使用します。

```
aws ec2 modify-instance-event-start-time \
    --instance-id i-1234567890abcdef0 \
    --instance-event-id instance-event-0d59937288b749b32 \
    --not-before 2020-03-25T10:00:00.000
```

------
#### [ PowerShell ]

**イベントを再スケジュールするには**  
[Edit-EC2InstanceEventStartTime](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventStartTime.html) コマンドレットを使用します。

```
Edit-EC2InstanceEventStartTime `
    -InstanceId i-1234567890abcdef0 `
    -InstanceEventId instance-event-0d59937288b749b32 `
    -NotBefore 2020-03-25T10:00:00.000
```

------

# Amazon EC2 インスタンスに影響する予定されているイベントのカスタムイベントウィンドウの作成
<a name="event-windows"></a>

スケジュールされたイベントに対して、週ごとに繰り返されるカスタムのイベントウィンドウを定義して、Amazon EC2 インスタンスを再起動、停止、終了させることができます。イベントウィンドウには1 つ以上のインスタンスを関連付けることができます。これらのインスタンスにスケジュールされたイベントが設定されている場合、AWS は関連するイベントウィンドウ内でイベントをスケジュールします。

ワークロードのオフピーク期間にイベントウィンドウを指定することで、ワークロードの可用性を最大化できます。また、内部的な保守スケジュールにイベントウィンドウを合わせることもできます。

イベントウィンドウを定義するには一連の時間範囲を指定します。最小期間は 2 時間です。全体を合計した時間範囲は最小で 4 時間必要です。

インスタンス ID またはインスタンスタグを使用して、1 つ以上のインスタンスをイベントウィンドウに関連付けることができます。また、ホスト ID を使用して、専用ホスト をイベントウィンドウに関連付けることもできます。

**警告**  
イベントウィンドウはインスタンスを停止、再起動、または終了する、スケジュールされたイベントにのみ適用されます。  
イベントウィンドウは以下には適用されません。  
繰り上げられた、スケジュールされたイベントとネットワーク保守イベント。
[自動インスタンスリカバリ](ec2-instance-recover.md)や予期しない再起動などのスケジュール外の保守作業。

**Topics**
+ [考慮事項](#event-windows-considerations)
+ [イベントウィンドウを作成する](#create-event-windows)
+ [イベントウィンドウとターゲットの関連付け](#associate-target-event-window)
+ [イベントウィンドウからターゲットの関連付けを解除する](#disassociate-target-event-window)
+ [イベントウィンドウを変更する](#modify-event-windows)
+ [イベントウィンドウを削除する](#delete-event-windows)

## 考慮事項
<a name="event-windows-considerations"></a>
+ イベントウィンドウの時刻はすべて UTC で表示されます。
+ イベントウィンドウには、複数の時間範囲を含めることができます。各範囲は少なくとも 2 時間である必要がありますが、すべての範囲の合計期間は少なくとも 4 時間である必要があります。
+ イベントウィンドウにはターゲットタイプ (インスタンスID、Dedicated Host ID、またはインスタンスタグ) を 1 つだけ関連付けることができます。
+ 1 つのターゲット (インスタンス ID、Dedicated Host ID、またはインスタンスタグ) は1 つのイベントウィンドウにのみ関連付けることが可能です。
+ 1 つのイベントウィンドウには最大 100 個のインスタンス ID、または 50 個の Dedicated Host ID、または 50 個のインスタンスタグを関連付けることができます。インスタンスタグは任意の数のインスタンスに関連付けることができます。
+ 個々の AWS リージョンで、最大 200 個までのイベントウィンドウを作成できます。
+ 複数のインスタンスがイベントウィンドウに関連付けられている場合、スケジュールされたイベントが同時に発生する可能性があります。
+ 既に AWS によりスケジュールされたイベントが存在する場合、イベントウィンドウを変更しても、スケジュールされたイベントの時間は変更されません。イベントに締め切り日がある場合は[イベントの再スケジュール](reschedule-event.md)が行えます。
+ スケジュールされたイベントの前にインスタンスを停止および開始できます。これにより、インスタンスが新しいホストに移行され、イベントがクリアされます。

## イベントウィンドウを作成する
<a name="create-event-windows"></a>

イベントウィンドウは複数作成できます。イベントウィンドウごとに、1 つ以上の時間ブロックを指定します。例えば、毎日の午前 4 時に発生し 2 時間継続する時間ブロックを持つイベントウィンドウを作成できます。あるいは日曜日の午前 2 時から午前 4 時、および水曜日の午前 3 時から午前 5 時に発生する時間ブロックを持つイベントウィンドウを作成することもできます。

イベントウィンドウは削除されない限り毎週繰り返されます。

------
#### [ Console ]

**イベントウィンドウを作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. **[Actions]** (アクション)、**[Manage event windows]** (イベントウィンドウの管理) を選択してください。

1. [**インスタンスのイベントウィンドウを作成**] をクリックしてください。

1. [**イベントウィンドウ名**] に、イベントウィンドウのわかりやすい名前を入力してください。

1. [**イベントウィンドウのスケジュール**] で、イベントウィンドウ内の時間ブロックを指定するために、Cron スケジュールビルダーを使用するか、あるいは時間範囲で指定するかを選択してください。
   + [**Cron スケジュールビルダー**] を選択した場合は以下を指定します。

     1. [**曜日 (UTC)**] で、イベントウィンドウを発生させる曜日を指定します。

     1. [**開始時刻 (UTC)**] で、イベントウィンドウが開始する時刻を指定します。

     1. [**期間**] で、イベントウィンドウ内の時間ブロックの継続時間を指定します。各時間ブロックに設定できる最小期間は 2 時間です。イベントウィンドウの最小期間は合計で 4 時間以上にする必要があります。すべての時刻は協定世界時 (UTC) です。
   + [**時間範囲**] を選択した場合は[**新しい時間範囲の追加**] をクリックし、開始する日時ならびに終了する日時を指定します。各時間範囲に対して、これを繰り返します。各時間範囲に設定できる最小期間は 2 時間です。時間範囲の最小期間は全体を合計して 4 時間以上にする必要があります。

1. (オプション) **[ターゲットの詳細]** で、1 つ以上のインスタンスをイベントウィンドウに関連付けます。インスタンスを関連付けるには、インスタンス ID またはインスタンス タグを使用します。ホスト ID を使用して専有ホストを関連付けます。これらのターゲットのメンテナンスがスケジュールされている場合、イベントはこのイベントウィンドウ中に発生します。

   イベントウィンドウの作成時、そのウィンドウとターゲットの関連付けは必須ではありません。作成後、ウィンドウを変更して、1 つ以上のターゲットを関連付けることができます。

1. (オプション) [**イベントウィンドウのタグ**] で、[**タグを追加**] をクリックし、タグのキーおよび値を入力してください。各タグについて、これを繰り返します。

1. [**イベントウィンドウの作成**] をクリックしてください。

------
#### [ AWS CLI ]

**時間範囲を設定したイベントウィンドウを作成するには**  
[create-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-instance-event-window.html) コマンドを使用します。

```
aws ec2 create-instance-event-window \
    --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \
    --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
    --name myEventWindowName
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**cron 式を指定したイベントウィンドウを作成するには**  
[create-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-instance-event-window.html) コマンドを使用します。

```
aws ec2 create-instance-event-window \
    --cron-expression "* 21-23 * * 2,3" \
    --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \
    --name myEventWindowName
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

------
#### [ PowerShell ]

**時間範囲を設定したイベントウィンドウを作成するには**  
[New-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
$timeRange = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange.StartWeekDay = "monday"
$timeRange.EndWeekDay = "wednesday"
$timeRange.StartHour = 2
$timeRange.EndHour = 8
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
    -Name my-event-window `
    -TagSpecification $tagspec `
    -TimeRange @($timeRange)
```

以下は出力の例です。

```
AssociationTarget     : 
CronExpression        : 
InstanceEventWindowId : iew-0abcdef1234567890
Name                  : my-event-window
State                 : creating
Tags                  : {key1}
TimeRanges            : {Amazon.EC2.Model.InstanceEventWindowTimeRange}
```

**cron 式を指定したイベントウィンドウを作成するには**  
[New-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
$tag = @{Key="key1"; Value="value1"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance-event-window"
$tagspec.Tags.Add($tag)
New-EC2InstanceEventWindow `
    -Name my-event-window `
    -TagSpecification $tagspec`
    -CronExpression "* 21-23 * * 2,3"
```

以下は出力の例です。

```
AssociationTarget     : 
CronExpression        : * 21-23 * * 2,3
InstanceEventWindowId : iew-0abcdef1234567890
Name                  : my-event-window
State                 : creating
Tags                  : {key1}
TimeRanges            : {}
```

------

## イベントウィンドウとターゲットの関連付け
<a name="associate-target-event-window"></a>

イベントウィンドウを作成した後に、ターゲットをイベントウィンドウに関連付けることができます。イベントウィンドウに関連付けることができるターゲットのタイプは 1 つだけです。インスタンス ID、専有ホスト ID、またはインスタンスタグを指定できます。

------
#### [ Console ]

**イベントウィンドウにターゲットを関連付けるには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. 変更するイベントウィンドウを選択します。

1. **[アクション]**、**[インスタンスイベントウィンドウを変更]** の順に選択します。

------
#### [ AWS CLI ]

**イベントウィンドウとインスタンスタグを関連付けるには**  
[associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) コマンドを使用します。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [
                {
                    "Key": "k2",
                    "Value": "v2"
                },
                {
                    "Key": "k1",
                    "Value": "v1"
                }
            ],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**イベントウィンドウとインスタンス ID を関連付けるには**  
[associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) コマンドを使用します。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [
                "i-1234567890abcdef0",
                "i-0598c7d356eba48d7"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**専有ホストとイベントウィンドウを関連付けるには**  
[associate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-instance-event-window.html) コマンドを使用します。

```
aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "DedicatedHostIds=h-029fa35a02b99801d"
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": [
                "h-029fa35a02b99801d"
            ]
        },
        "State": "creating"
    }
}
```

------
#### [ PowerShell ]

**イベントウィンドウとインスタンスタグを関連付けるには**  
[Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceTag @($tag1,$tag2)
```

**イベントウィンドウとインスタンス ID を関連付けるには**  
[Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
```

**専有ホストとイベントウィンドウを関連付けるには**  
[Register-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
Register-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_DedicatedHostId h-029fa35a02b99801d
```

------

## イベントウィンドウからターゲットの関連付けを解除する
<a name="disassociate-target-event-window"></a>

------
#### [ Console ]

**イベントウィンドウとターゲットの関連付けを解除するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. 変更するイベントウィンドウを選択します。

1. **[アクション]**、**[インスタンスイベントウィンドウを変更]** の順に選択します。

------
#### [ AWS CLI ]

**イベントウィンドウからインスタンスタグの関連付けを解除するには**  
[disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference//ec2/disassociate-instance-event-window.html) コマンドを使用します。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**イベントウィンドウからインスタンス ID の関連付けを解除するには**  
[disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-instance-event-window.html) コマンドを使用します。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

**専有ホストとイベントウィンドウとの関連付けを解除するには**  
[disassociate-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-instance-event-window.html) コマンドを使用します。

```
aws ec2 disassociate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target DedicatedHostIds=h-029fa35a02b99801d
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating"
    }
}
```

------
#### [ PowerShell ]

**イベントウィンドウからインスタンスタグの関連付けを解除するには**  
[Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
$tag1 = @{Key="key1"; Value="value1"}
$tag2 = @{Key="key2"; Value="value2"}
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceTag @($tag1, $tag2)
```

**イベントウィンドウからインスタンス ID の関連付けを解除するには**  
[Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_InstanceId i-1234567890abcdef0, i-0598c7d356eba48d7
```

**専有ホストとイベントウィンドウとの関連付けを解除するには**  
[Unregister-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
Unregister-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -AssociationTarget_DedicatedHostId h-029fa35a02b99801d
```

------

## イベントウィンドウを変更する
<a name="modify-event-windows"></a>

イベントウィンドウに関してはその ID 以外のすべてのフィールドを変更できます。例えば、夏時間の開始時に、イベントウィンドウのスケジュールを変更できます。既存のイベントウィンドウに対してはターゲットの追加または削除が必要になることもあります。

イベントウィンドウでは時間範囲または cron 式のいずれかの変更が可能ですが、両方を変更することはできません。

------
#### [ Console ]

**イベントウィンドウを変更するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. **[Actions]** (アクション)、**[Manage event windows]** (イベントウィンドウの管理) を選択してください。

1. 変更するイベントウィンドウを選択し、そして**[Actions]** (アクション)、**[Modify instance event window]** (インスタンスイベントウィンドウの変更) を選択してください。

1. イベントウィンドウの各フィールドを変更した後、[**イベントウィンドウの変更**] をクリックしてください。

------
#### [ AWS CLI ]

**イベントウィンドウの時間範囲を変更するには**  
[modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) コマンドを使用します。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**イベントウィンドウの時間範囲のセットを変更するには**  
[modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) コマンドを使用します。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --time-range '[{"StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8},
	  {"StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8}]'
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "TimeRanges": [
            {
                "StartWeekDay": "monday",
                "StartHour": 2,
                "EndWeekDay": "wednesday",
                "EndHour": 8
            },
            {
                "StartWeekDay": "thursday",
                "StartHour": 2,
                "EndWeekDay": "friday",
                "EndHour": 8
            }
        ],
        "Name": "myEventWindowName",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

**イベントウィンドウの cron 式を変更するには**  
[modify-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-event-window.html) コマンドを使用します。

```
aws ec2 modify-instance-event-window 
    --instance-event-window-id iew-0abcdef1234567890 \
    --cron-expression "* 21-23 * * 2,3"
```

以下は出力の例です。

```
{
    "InstanceEventWindow": {
        "InstanceEventWindowId": "iew-0abcdef1234567890",
        "Name": "myEventWindowName",
        "CronExpression": "* 21-23 * * 2,3",
        "AssociationTarget": {
            "InstanceIds": [
                "i-0abcdef1234567890",
                "i-0be35f9acb8ba01f0"
            ],
            "Tags": [],
            "DedicatedHostIds": []
        },
        "State": "creating",
        "Tags": [
            {
                "Key": "K1",
                "Value": "V1"
            }
        ]
    }
}
```

------
#### [ PowerShell ]

**イベントウィンドウの時間範囲を変更するには**  
[Edit-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
$timeRange1 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange1.StartWeekDay = "monday"
$timeRange1.EndWeekDay = "wednesday"
$timeRange1.StartHour = 2
$timeRange1.EndHour = 8
$timeRange2 = New-Object Amazon.EC2.Model.InstanceEventWindowTimeRangeRequest
$timeRange2.StartWeekDay = "thursday"
$timeRange2.EndWeekDay = "friday"
$timeRange2.StartHour = 1
$timeRange2.EndHour = 6
Edit-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -TimeRange @($timeRange1, $timeRange2)
```

**イベントウィンドウの cron 式を変更するには**  
[Edit-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
Edit-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -CronExpression "* 21-23 * * 2,3"
```

------

## イベントウィンドウを削除する
<a name="delete-event-windows"></a>

一度に 1 つのイベントウィンドウを削除できます。

------
#### [ Console ]

**イベントウィンドウを削除するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. [**アクション**]、[**イベントウィンドウの管理**] の順にクリックしてください。

1. 削除するイベントウィンドウを選択し、[**アクション**]、[**インスタンスのイベントウィンドウの削除**] の順にクリックしてください。

1. 確認を求めるメッセージが表示されたら、**delete**と入力し、[**削除**] を選択してください。

------
#### [ AWS CLI ]

**イベントウィンドウを削除するには**  
削除するイベントウィンドウを指定しながら、[delete-instance-event-window](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-instance-event-window.html) コマンドを実行します。

```
aws ec2 delete-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890
```

**イベントウィンドウを強制的に削除するには**  
現在、イベントウィンドウがターゲットに関連付けられている場合には`--force-delete` パラメータを使用します。

```
aws ec2 delete-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --force-delete
```

------
#### [ PowerShell ]

**イベントウィンドウを削除するには**  
[Remove-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
Remove-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890
```

**イベントウィンドウを強制的に削除するには**  
[Remove-EC2InstanceEventWindow](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2InstanceEventWindow.html) コマンドレットを使用します。

```
Remove-EC2InstanceEventWindow `
    -InstanceEventWindowId iew-0abcdef1234567890 `
    -ForceDelete $true
```

------

# CloudWatch を使用したインスタンスのモニタリング
<a name="using-cloudwatch"></a>

Amazon CloudWatch を使用してインスタンスをモニタリングすることで、Amazon EC2 から未加工データを収集し、リアルタイムに近い読み取り可能なメトリクスに加工することができます。これらの統計は 15 か月間記録されるため、履歴情報にアクセスしてウェブアプリケーションやサービスの動作をより的確に把握できます。

デフォルトでは Amazon EC2 は 5 分ごとにメトリクスデータを CloudWatch に送信します。1 分ごとにインスタンスのメトリクスデータを CloudWatch に送信するにはインスタンスで詳細モニタリングを有効にできます。詳細については「[EC2 インスタンスの詳細モニタリングを管理する](manage-detailed-monitoring.md)」を参照してください。

Amazon EC2 コンソールには、Amazon CloudWatch の未加工データに基づいて一連のグラフが表示されます。必要に応じて、コンソールのグラフではなく Amazon CloudWatch からインスタンスのデータを取得することもできます。

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

**Topics**
+ [Amazon EC2 コンソールで EC2 インスタンスの CloudWatch アラームを管理する](ec2-instance-alarms.md)
+ [EC2 インスタンスの詳細モニタリングを管理する](manage-detailed-monitoring.md)
+ [インスタンスに対して利用可能な CloudWatch メトリクス](viewing_metrics_with_cloudwatch.md)
+ [Amazon EC2 コンソールを使用して CloudWatch エージェントをインストールおよび設定し、メトリクスを追加する](install-and-configure-cloudwatch-agent-using-ec2-console.md)
+ [インスタンスに対する CloudWatch メトリクスの統計](monitoring_get_statistics.md)
+ [インスタンスのモニタリンググラフを表示する](graphs-in-the-aws-management-console.md)
+ [インスタンスの CloudWatch アラームを作成する](using-cloudwatch-createalarm.md)
+ [インスタンスを停止、終了、再起動、または復旧するアラームを作成する](UsingAlarmActions.md)

# Amazon EC2 コンソールで EC2 インスタンスの CloudWatch アラームを管理する
<a name="ec2-instance-alarms"></a>

Amazon EC2 コンソールの **[インスタンス]** 画面から、インスタンスのための Amazon CloudWatch アラームを管理できます。**[インスタンス**] テーブルの **[アラームステータス]** 列にはアラームを表示するためのコントロールと、アラームを作成または編集するためのコントロールの 2 つのコンソールコントロールがあります。次のスクリーンショットは、**[1]** (**[アラームの表示]**) と **[2]** (アラームを作成または編集するための **[\$1]** 記号) の番号が付されたこれらのコンソールコントロールを示しています。

![\[EC2 コンソールでアラームを表示および作成するための [インスタンス] テーブルのコントロール。1. アラーム 2 を表示します。プラス記号。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/instance-alarms.png)


## インスタンス画面からアラームを表示する
<a name="view-ec2-instance-alarms"></a>

**[インスタンス]** 画面から各インスタンスのアラームを表示できます。

**インスタンス画面からインスタンスのアラームを表示する方法**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. **[インスタンス]** テーブルで、選択したインスタンスの **[アラームの表示]** (前のスクリーンショットでの **[1]** 番) を選択してください。

1. **[*i-1234567890abcdef0* のアラーム詳細]** ウィンドウで、CloudWatch コンソールにアラームを表示させるアラームの名前を選択します。

## インスタンス画面からアラームを作成する
<a name="create-ec2-instance-alarms"></a>

**[インスタンス]**画面からインスタンスごとにアラームを作成できます。

**インスタンス画面からインスタンスにアラームを作成する方法**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. **[インスタンス]** テーブルで、選択したインスタンスに対してプラス記号 (前のスクリーンショットでの **[2]** 番) を選択してください。

1. **[CloudWatch アラームの管理]** 画面で、アラームを作成します。詳細については「[インスタンスの CloudWatch アラームを作成する](using-cloudwatch-createalarm.md)」を参照してください。

## インスタンス画面からアラームを編集する
<a name="edit-ec2-instance-alarms"></a>

**[インスタンス]**画面からインスタンスのためのアラームを編集できます。

**インスタンス画面からインスタンスにアラームを編集するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. **[インスタンス]** テーブルで、選択したインスタンスに対してプラス記号 (前のスクリーンショットでの **[2]** 番) を選択してください。

1. **[CloudWatch アラームの管理]** 画面で、アラームを編集します。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch アラームの編集または削除](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Manage-CloudWatch-Alarm.html#Edit-CloudWatch-Alarm)」を参照してください。

# EC2 インスタンスの詳細モニタリングを管理する
<a name="manage-detailed-monitoring"></a>

Amazon CloudWatch には*基本モニタリング*と*詳細モニタリング*の 2 つのカテゴリのモニタリングが用意されています。デフォルトではインスタンスは基本モニタリングを使用するように設定されています。オプションで詳細モニタリングを有効にすることで、運用上の問題をより迅速に特定して対処できるようにすることができます。インスタンスの起動時、実行中、または停止中に、詳細モニタリングを有効にしたり無効にしたりできます。

インスタンスで詳細モニタリングを有効にしても、そのインスタンスにアタッチされている EBS ボリュームのモニタリングには影響しません。詳細については「[Amazon EBS の Amazon CloudWatch メトリクス](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html)」を参照してください。

次のテーブルはインスタンスの基本モニタリングと詳細モニタリングの違いを示しています。


| モニタリングタイプ | 説明 | 料金 | 
| --- | --- | --- | 
| 基本モニターリング |  ステータスチェックメトリクスは 1 分間隔で利用できます。その他のメトリクスはすべて 5 分間隔で利用できます。  | 料金は発生しません。 | 
| 詳細モニターリング | インスタンスの詳細モニタリングが有効化されている場合は、1 分間隔でメトリクスを取得できます。 詳細モニタリングを有効にすると、同様のインスタンスグループ全体のデータを集計できます。 | 料金はAmazon EC2 が CloudWatch に送信したメトリクスごとに発生します。データストレージに対しては料金が発生しません。詳細については、「[Amazon CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/#Paid_tier)」ページの「有料利用枠」を参照してください。 | 

**Topics**
+ [必要な許可](#iam-detailed-monitoring)
+ [起動時に詳細モニタリングを有効にする](#enable-detailed-monitoring)
+ [詳細モニタリングを管理する](#disable-detailed-monitoring)

## 必要な許可
<a name="iam-detailed-monitoring"></a>

インスタンスの詳細モニタリングを有効にするにはユーザーに [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_MonitorInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_MonitorInstances.html) API アクションを使用するための許可が必要です。インスタンスの詳細モニタリングをオフにするにはユーザーに [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_UnmonitorInstances.html) API アクションを使用するための許可が必要です。

## 起動時に詳細モニタリングを有効にする
<a name="enable-detailed-monitoring"></a>

起動時に詳細モニタリングを有効にするには次の手順を使用します。デフォルトではインスタンスでは基本モニタリングが使用されます。

------
#### [ Console ]

**インスタンスの起動時に詳細モニタリングを有効にするには**  
Amazon EC2 コンソールを使用してインスタンスを起動するとき、**[高度な詳細]** で、**[CloudWatch モニタリングの詳細]** チェックボックスを選択してください。

------
#### [ AWS CLI ]

**インスタンスの起動時に詳細モニタリングを有効にするには**  
`--monitoring` オプションで [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用します。

```
--monitoring Enabled=true
```

------
#### [ PowerShell ]

**インスタンスの起動時に詳細モニタリングを有効にするには**  
`-Monitoring` パラメータで [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用します。

```
-Monitoring $true
```

------

## 詳細モニタリングを管理する
<a name="disable-detailed-monitoring"></a>

実行中または停止中のインスタンスの詳細モニタリングを管理するには次の手順を使用します。

------
#### [ Console ]

**詳細モニタリングを管理するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. インスタンスを選択してください。

1. **[アクション]**、**[モニタリングとトラブルシューティング]**、**[詳細モニタリングの管理]** の順に選択してください。

1. **[詳細モニタリング]** ページの **[詳細モニタリング]** で、次のいずれかを実行します。
   + 詳細モニタリング – **[有効]** を選択してください。
   + 基本モニタリング — **[有効]** をクリアします。

1. **[確認]** を選択してください。

------
#### [ AWS CLI ]

**詳細モニタリングを有効にするには**  
次の [monitor-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/monitor-instances.html) コマンドを使用します。

```
aws ec2 monitor-instances --instance-ids i-1234567890abcdef0
```

**詳細モニタリングを無効にするには**  
[unmonitor-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/unmonitor-instances.html) コマンドを使用します。

```
aws ec2 unmonitor-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**詳細モニタリングを有効にするには**  
[Start-EC2InstanceMonitoring](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2InstanceMonitoring.html) コマンドレットを使用します。

```
Start-EC2InstanceMonitoring -InstanceId i-1234567890abcdef0
```

**詳細モニタリングを無効にするには**  
[Stop-EC2InstanceMonitoring](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2InstanceMonitoring.html) コマンドレットを使用します。

```
Stop-EC2InstanceMonitoring -InstanceId i-1234567890abcdef0
```

------

# インスタンスに対して利用可能な CloudWatch メトリクス
<a name="viewing_metrics_with_cloudwatch"></a>

Amazon EC2 はメトリクスを Amazon CloudWatch に送信します。AWS マネジメントコンソール、AWS CLI、または API を使用して、Amazon EC2 が CloudWatch に送信するメトリクスを一覧表示できます。デフォルトで、各データポイントではインスタンスのアクティビティの開始後 5 分間が対象となります。詳細モニタリングを有効にした場合、各データポイントは開始後 1 分間のアクティビティを対象とします。注意事項[最小]、[最大]、[平均] の統計ではEC2 が提供するメトリックスの最小粒度は 1 分であることに注意します。

AWS マネジメントコンソール または AWS CLI を使用して利用可能なメトリクスを表示する方法の詳細については,「*Amazon CloudWatch ユーザーガイド*」の「[利用可能なメトリクスを表示する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)」を参照してください。

これらのメトリクスの統計の取得については[インスタンスに対する CloudWatch メトリクスの統計](monitoring_get_statistics.md)を参照してください。

**Topics**
+ [インスタンスメトリクス](#ec2-cloudwatch-metrics)
+ [アクセラレーターメトリクス](#accelerator-metrics)
+ [CPU クレジットメトリクス](#cpu-credit-metrics)
+ [専用ホストメトリクス](#dh-metrics)
+ [Nitro ベースのインスタンスの Amazon EBS メトリクス](#ebs-metrics-nitro)
+ [ステータスチェックメトリクス](#status-check-metrics)
+ [トラフィックミラーリングのメトリクス](#traffic-mirroring-metrics)
+ [Auto Scaling グループメトリクス](#autoscaling-metrics)
+ [Amazon EC2 メトリクスディメンション](#ec2-cloudwatch-dimensions)
+ [Amazon EC2 使用状況メトリクス](#service-quota-metrics)

## インスタンスメトリクス
<a name="ec2-cloudwatch-metrics"></a>

`AWS/EC2` 名前空間には次のインスタンスメトリクスが含まれます。


| メトリクス | 説明 | Unit | 有意義な統計 | 
| --- | --- | --- | --- | 
| CPUUtilization |  Amazon EC2 が EC2 インスタンスを実行するために使用する物理 CPU 時間の割合。これにはユーザーコードと Amazon EC2 コードの両方を実行するために費やされた時間が含まれます。 非常に高いレベルでは`CPUUtilization` はゲスト `CPUUtilization` とハイパーバイザー `CPUUtilization` の合計です。 オペレーティングシステムのツールは CloudWatch と異なる割合を表示することがあります。これはレガシーデバイスのシミュレーション、レガシーではないデバイスの設定、中断の多いワークロード、ライブ移行、ライブアップデートなどが原因です。  |  Percent  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskReadOps |  指定された期間にインスタンスで利用できるすべてのインスタンスストアボリュームでの、完了した読み取り操作。 その期間の 1 秒あたりの I/O 操作回数 (IOPS) の平均を算出するにはその期間の操作回数の合計をその期間の秒数で割ります。 インスタンスストアボリュームがない場合は、値が 0 であるか、メトリクスがレポートされません。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskWriteOps |  指定された期間にインスタンスで利用できるすべてのインスタンスストアボリュームへの、完了した書き込み操作。 その期間の 1 秒あたりの I/O 操作回数 (IOPS) の平均を算出するにはその期間の操作回数の合計をその期間の秒数で割ります。 インスタンスストアボリュームがない場合は、値が 0 であるか、メトリクスがレポートされません。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskReadBytes |  インスタンスで利用できるすべてのインスタンスストアボリュームから読み取られたバイト数。 このメトリクスを使用すると、このインスタンスのハードディスクからアプリケーションが読み取るデータの量がわかります。これを利用すると、アプリケーションの速度がわかります。 報告された数は期間中に受信されたバイト数です。基本 (5 分) モニタリングを使用している場合、この数を 300 で除算してバイト/秒を求めることができます。詳細 (1 分) モニタリングを使用している場合はこの数を 60 で除算します。CloudWatch メトリクスの計算関数 `DIFF_TIME` を使用して、1 秒あたりのバイト数を求めることもできます。例えば、CloudWatch で `DiskReadBytes` のグラフを `m1` として作成した場合、メトリクスの数式 `m1/(DIFF_TIME(m1))` はメトリクスをバイト/秒単位で返します。`DIFF_TIME` およびメトリクス計算関数の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[メトリクス数式の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。 インスタンスストアボリュームがない場合は値が 0 であるか、メトリクスがレポートされません。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| DiskWriteBytes |  インスタンスで利用できるすべてのインスタンスストアボリュームに書き込まれたバイト数。 このメトリクスを使用すると、このインスタンスのハードディスクにアプリケーションが書き込むデータの量がわかります。これを利用すると、アプリケーションの速度がわかります。 報告された数は期間中に受信されたバイト数です。基本 (5 分) モニタリングを使用している場合、この数を 300 で除算してバイト/秒を求めることができます。詳細 (1 分) モニタリングを使用している場合はこの数を 60 で除算します。CloudWatch メトリクスの計算関数 `DIFF_TIME` を使用して、1 秒あたりのバイト数を求めることもできます。例えば、CloudWatch で `DiskWriteBytes` のグラフを `m1` として作成した場合、メトリクスの数式 `m1/(DIFF_TIME(m1))` はメトリクスをバイト/秒単位で返します。`DIFF_TIME` およびメトリクス計算関数の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[メトリクス数式の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。 インスタンスストアボリュームがない場合は値が 0 であるか、メトリクスがレポートされません。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| MetadataNoToken |  トークンを使用しないメソッドを使用してインスタンスメタデータサービス (IMDS) に正常にアクセスした回数。 このメトリクスにより、トークンを使用しないインスタンスメタデータサービスバージョン 1 (IMDSv1) を使用してインスタンスメタデータにアクセスするプロセスがあるかどうかがわかります。すべてのリクエストがトークン支援のセッション (インスタンスメタデータサービスバージョン 2 (IMDSv2)) を使用している場合、値は 0 になります。詳細については、「[インスタンスメタデータサービスバージョン 2 の使用への移行](instance-metadata-transition-to-version-2.md)」を参照してください。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| MetadataNoTokenRejected |  IMDSv1 が無効になった後に IMDSv1 呼び出しが試行された回数。 このメトリクスが表示された場合はIMDSv1 呼び出しが試行され、拒否されたことを示します。IMDSv1 を再度有効にするか、すべての呼び出しで IMDSv2 が使用されていることを確認します。詳細については、「[インスタンスメタデータサービスバージョン 2 の使用への移行](instance-metadata-transition-to-version-2.md)」を参照してください。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkIn |  すべてのネットワークインターフェイスを通じ、このインスタンスによって受信されたバイトの数。このメトリクスは 1 つのインスタンスへの受信ネットワークトラフィックの量を表しています。 報告された数は期間中に受信されたバイト数です。基本 (5 分) のモニタリングで統計情報に 合計 使用している場合であれば、この数を 300 で除算してバイト/秒の値を求めることができます。詳細 (1 分) のモニタリングで統計情報に 合計 使用している場合合はこの数を 60 で除算します。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkOut |  すべてのネットワークインターフェイスを通じ、このインスタンスから送信されたバイトの数。このメトリクスは 1 つのインスタンスからの送信ネットワークトラフィックの量を表しています。 報告された数は期間中に送信されたバイト数です。基本 (5 分) のモニタリングで統計情報に 合計 使用している場合であれば、この数を 300 で除算してバイト/秒の値を求めることができます。詳細 (1 分) のモニタリングで統計情報に 合計 使用している場合合はこの数を 60 で除算します。  |  Bytes  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkPacketsIn |  すべてのネットワークインターフェイスを通じ、このインスタンスによって受信されたパケットの数。このメトリクスは受信トラフィックのボリュームを単一インスタンスでのパケット数として識別します。 このメトリクスは基本モニタリング (5分間) でのみ使用が可能です。5 分間でインスタンスが受信した 1 秒あたりのパケット数 (PPS) を計算するには、Sum の統計値を 300 で割ることで算出されます。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| NetworkPacketsOut |  すべてのネットワークインターフェイスを通じ、このインスタンスから送信されたパケットの数。このメトリクスは送信トラフィックのボリュームを単一インスタンスでのパケット数として識別します。 このメトリクスは基本モニタリング (5分間) でのみ使用が可能です。5 分間にインスタンスが受信した 1 秒あたりのパケット数 (PPS) を計算するには合計 統計値を 300 で割ります。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## アクセラレーターメトリクス
<a name="accelerator-metrics"></a>

`AWS/EC2` 名前空間には、[高速コンピューティングインスタンス](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html)向けの以下のアクセラレーターメトリクスが含まれています。このメトリクスは、高速コンピューティングインスタンスタイプのサブセットのみでサポートされます。


| メトリクス | 説明 | Unit | 有意義な統計 | 
| --- | --- | --- | --- | 
| GPUPowerUtilization | 最大有効電力の割合 (%) としての有効電力使用量。 | 割合 (%) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## CPU クレジットメトリクス
<a name="cpu-credit-metrics"></a>

`AWS/EC2` 名前空間は[バーストパフォーマンスインスタンス](burstable-performance-instances.md)の以下の CPU クレジットメトリクスを含みます。


| メトリクス | 説明 | Unit | 有意義な統計 | 
| --- | --- | --- | --- | 
| CPUCreditUsage |  CPU 使用率に関してインスタンスで消費される CPU クレジットの数。1 つの CPU クレジットは1 個の vCPU が 100% の使用率で 1 分間実行されること、またはvCPU、使用率、時間の同等の組み合わせ (例えば、1 個の vCPU が 50% の使用率で 2 分間実行されるか、2 個の vCPU が 25% の使用率で 2 分間実行される) に相当します。 CPU クレジットメトリクスは5 分間隔でのみ利用可能です。5 分を超える期間を指定する場合は`Average` 統計の代わりに `Sum` 統計を使用します。  |  クレジット (vCPU 分)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUCreditBalance |  インスタンスが起動または開始後に蓄積した獲得 CPU クレジットの数。T2 スタンダードの場合、`CPUCreditBalance` には蓄積された起動クレジットの数も含まれます。 クレジットは獲得後にクレジット残高に蓄積され、消費されるとクレジット残高から削除されます。クレジット残高にはインスタンスサイズによって決まる上限があります。制限に到達すると、獲得された新しいクレジットはすべて破棄されます。T2 スタンダードの場合、起動クレジットは制限に対してカウントされません。 `CPUCreditBalance` のクレジットはインスタンスがそのベースライン CPU 使用率を超えてバーストするために消費できます。 インスタンスが実行中の場合、`CPUCreditBalance` のクレジットは期限切れになりません。T3 または T3a インスタンスが停止すると、`CPUCreditBalance` 値は 7 日間保持されます。その後、蓄積されたすべてのクレジットが失われます。T2 インスタンスが停止すると、`CPUCreditBalance` 値は保持されず、蓄積されたすべてのクレジットが失われます。 CPU クレジットメトリクスは5 分間隔でのみ利用可能です。  |  クレジット (vCPU 分)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUSurplusCreditBalance  |  `CPUCreditBalance` 値がゼロの場合に `unlimited` インスタンスによって消費された余剰クレジットの数。 `CPUSurplusCreditBalance` 値は獲得した CPU クレジットによって支払われます。余剰クレジットの数が、24 時間にインスタンスが獲得できるクレジットの最大数を超えている場合、最大数を超えて消費された余剰クレジットに対しては料金が発生します。 CPU クレジットメトリクスは5 分間隔でのみ利用可能です。  |  クレジット (vCPU 分)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| CPUSurplusCreditsCharged |  獲得 CPU クレジットにより支払われないために追加料金が発生した、消費された余剰クレジットの数。 消費された余剰クレジットは以下のいずれかの状況に当てはまると料金が発生します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) CPU クレジットメトリクスは5 分間隔でのみ利用可能です。  |  クレジット (vCPU 分)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## 専用ホストメトリクス
<a name="dh-metrics"></a>

`AWS/EC2` 名前空間にはT3 専用ホスト のための以下のメトリクスが含まれます。


| メトリクス | 説明 | Unit | 有意義な統計 | 
| --- | --- | --- | --- | 
|  DedicatedHostCPUUtilization |  Dedicated Host で実行されているインスタンスによって現在使用されている割り当て済みコンピューティング容量の割合。  |  Percent  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## Nitro ベースのインスタンスの Amazon EBS メトリクス
<a name="ebs-metrics-nitro"></a>

`AWS/EC2` 名前空間にはベアメタルインスタンスではない、Nitro ベースのインスタンスにアタッチされているボリュームに関する、追加の Amazon EBS メトリクスが含まれます。


| メトリクス | 説明 | Unit | 有意義な統計 | 
| --- | --- | --- | --- | 
|  InstanceEBSIOPSExceededCheck  |  過去 1 分以内にアプリケーションがインスタンスの最大 EBS IOPS 制限を超える IOPS を駆動しようとしたかどうかをレポートします。このメトリクスは、`0` (IOPS 制限を超えていない) または `1` (IOPS 制限を超えている) のいずれの値をとります。  |  なし  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  InstanceEBSThroughputExceededCheck  |  過去 1 分以内にアプリケーションがインスタンスの最大 EBS スループット制限を超えるスループットを駆動しようとしたかどうかをレポートします。このメトリクスは、`0` (スループット制限を超えていない) または `1` (スループット制限を超えている) のいずれかの値をとります。  |  なし  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSReadOps |  指定された期間にインスタンスに接続されたすべての Amazon EBS ボリュームからの、完了した読み込みオペレーション。 その期間の 1 秒あたりの読み込み I/O 操作回数 (読み込み IOPS) の平均を算出するにはその期間の操作回数の合計をその期間の秒数で割ります。基本 (5 分) モニタリングを使用している場合、この数を 300 で除算して読み込み IOPS を計算することができます。詳細 (1 分) モニタリングを使用している場合はこの数を 60 で除算します。CloudWatch メトリクスの計算関数 `DIFF_TIME` を使用して、1 秒あたりのオペレーション数を求めることもできます。例えば、CloudWatch で `EBSReadOps` のグラフを `m1` として作成した場合、メトリクスの計算関数 `m1/(DIFF_TIME(m1))` はメトリクスをオペレーション/秒単位で返します。`DIFF_TIME` およびその他のメトリクス計算関数の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch メトリクスでの数式の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。  |  カウント  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSWriteOps  |  指定された期間にインスタンスに接続されたすべての EBS ボリュームからの、完了した書き込み操作。 その期間の 1 秒あたりの書き込み I/O 操作回数 (書き込み IOPS) の平均を算出するにはその期間の操作回数の合計をその期間の秒数で割ります。基本 (5 分) モニタリングを使用している場合、この数を 300 で除算して書き込み IOPS を計算することができます。詳細 (1 分) モニタリングを使用している場合はこの数を 60 で除算します。CloudWatch メトリクスの計算関数 `DIFF_TIME` を使用して、1 秒あたりのオペレーション数を求めることもできます。例えば、CloudWatch で `EBSWriteOps` のグラフを `m1` として作成した場合、メトリクスの計算関数 `m1/(DIFF_TIME(m1))` はメトリクスをオペレーション/秒単位で返します。`DIFF_TIME` およびその他のメトリクス計算関数の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch メトリクスでの数式の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。  |  カウント  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSReadBytes  |  指定した期間内にインスタンスに接続されたすべての EBS ボリュームから読み取られたバイト数。 報告された数は期間中に読み取られたバイト数です。基本 (5 分) モニタリングを使用している場合、この数を 300 で除算して読み込みバイト/秒を求めることができます。詳細 (1 分) モニタリングを使用している場合はこの数を 60 で除算します。CloudWatch メトリクスの計算関数 `DIFF_TIME` を使用して、1 秒あたりのバイト数を求めることもできます。例えば、CloudWatch で `EBSReadBytes` のグラフを `m1` として作成した場合、メトリクスの数式 `m1/(DIFF_TIME(m1))` はメトリクスをバイト/秒単位で返します。`DIFF_TIME` およびメトリクス計算関数の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[メトリクス数式の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。  |  バイト  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSWriteBytes  |  指定した期間内にインスタンスに接続されたすべての EBS ボリュームに書き込まれたバイト数。 報告された数は期間中に書き込まれたバイト数です。基本 (5 分) モニタリングを使用している場合、この数を 300 で除算して書き込みバイト/秒を求めることができます。詳細 (1 分) モニタリングを使用している場合はこの数を 60 で除算します。CloudWatch メトリクスの計算関数 `DIFF_TIME` を使用して、1 秒あたりのバイト数を求めることもできます。例えば、CloudWatch で `EBSWriteBytes` のグラフを `m1` として作成した場合、メトリクスの数式 `m1/(DIFF_TIME(m1))` はメトリクスをバイト/秒単位で返します。`DIFF_TIME` およびメトリクス計算関数の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[メトリクス数式の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。  |  バイト  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSIOBalance%  |  バーストバケットの I/O 残りクレジットの割合に関する情報を提供します。このメトリクスは基本モニタリング専用です。 このメトリクスは少なくとも 24 時間に 1 回、30 分間だけ最大パフォーマンスにバーストする一部の `*.4xlarge` インスタンスサイズ以下でのみ使用できます。 `Sum` 統計はこのメトリクスに該当しません。  |  割合 (%)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
|  EBSByteBalance%  |  バーストバケットのスループット残りクレジットの割合に関する情報を提供します。このメトリクスは基本モニタリング専用です。 このメトリクスは少なくとも 24 時間に 1 回、30 分間だけ最大パフォーマンスにバーストする一部の `*.4xlarge` インスタンスサイズ以下でのみ使用できます。 `Sum` 統計はこのメトリクスに該当しません。  |  割合 (%)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

EBS ボリューム用のメトリクスの詳細については「*Amazon EBS ユーザーガイド*」の「[Amazon EBS ボリュームのメトリクス](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html#ebs-volume-metrics)」を参照してください。EC2 フリートおよびスポットフリートに提供されるメトリクスの詳細については「[CloudWatch を使用して EC2 フリートまたはスポットフリートをモニタリングする](ec2-fleet-cloudwatch-metrics.md)」を参照してください。

## ステータスチェックメトリクス
<a name="status-check-metrics"></a>

デフォルトではステータスチェックメトリクスは無料で 1 分の頻度で利用できます。新しく起動したインスタンスの場合、ステータスチェックメトリクスデータはインスタンスが初期化状態を完了するまで使用できません (インスタンスが `running` の状態になってから数分以内)。EC2 ステータスチェックの詳細については[Amazon EC2 インスタンスのステータスチェック](monitoring-system-instance-status-check.md)を参照してください。

`AWS/EC2` 名前空間には次のステータスチェックメトリクスが含まれます。


| メトリクス | 説明 | Unit | 有意義な統計 | 
| --- | --- | --- | --- | 
| StatusCheckFailed |  最近 1 分間にインスタンスがすべてのステータスチェックに成功したかどうかを報告します。 このメトリクスは `0` (合格) または `1` (失敗) となります。 デフォルトではこのメトリクスは無料で 1 分の頻度で利用できます。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1Instance |  最近 1 分間にインスタンスがインスタンスステータスチェックに成功したかどうかを報告します。 このメトリクスは `0` (合格) または `1` (失敗) となります。 デフォルトではこのメトリクスは無料で 1 分の頻度で利用できます。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1System |  最近 1 分間にインスタンスが システムステータスチェックに成功したかどうかを報告します。 このメトリクスは `0` (合格) または `1` (失敗) となります。 デフォルトではこのメトリクスは無料で 1 分の頻度で利用できます。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 
| StatusCheckFailed\$1AttachedEBS |  直近 1 分間でインスタンスがアタッチ済みの EBS ステータスチェックに成功したかどうかを報告します。 このメトリクスは `0` (合格) または `1` (失敗) となります。 デフォルトではこのメトリクスは無料で 1 分の頻度で利用できます。  |  Count  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

`AWS/EBS` 名前空間には次のステータスチェックメトリクスが含まれます。


| メトリクス | 説明 | Unit | 有意義な統計 | 
| --- | --- | --- | --- | 
| VolumeStalledIOCheck |  **注:** Nitro インスタンスのみが対象です。Amazon ECS と AWS Fargate タスクにアタッチされたボリュームについては公開されていません。 ボリュームが過去 1 分間の*ストールした* IO のチェックに合格したか失敗したかを報告します。このメトリクスは `0` (合格) または `1` (失敗) となります。  |  なし  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)  | 

## トラフィックミラーリングのメトリクス
<a name="traffic-mirroring-metrics"></a>

`AWS/EC2` 名前空間にはミラートラフィックのメトリクスが含まれます。詳細については「*Amazon VPC トラフィックミラーリングガイド*」の「[Monitor mirrored traffic using Amazon CloudWatch](https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirror-cloudwatch.html)」(Amazon CloudWatch によるミラーリングされたトラフィックのモニタリング) を参照してください。

## Auto Scaling グループメトリクス
<a name="autoscaling-metrics"></a>

`AWS/AutoScaling` 名前空間にはAuto Scaling グループのメトリクスが含まれます。詳細については「*Amazon EC2 Auto Scaling ユーザーガイド*」の「[Auto Scaling グループとインスタンスの CloudWatch メトリクスのモニタリング](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html)」ご参照してください。

## Amazon EC2 メトリクスディメンション
<a name="ec2-cloudwatch-dimensions"></a>

以下のディメンションを使用して、前の表に示したメトリクスを絞り込むことができます。


| ディメンション | 説明 | 
| --- | --- | 
|  AutoScalingGroupName  |  このディメンションを指定すると、リクエストしたデータがフィルタリングされて、指定したキャパシティーグループ内のインスタンスのものだけになります。*Auto Scaling グループ*はAuto Scaling を使用する場合に定義するインスタンスのコレクションです。このディメンションを Amazon EC2 のメトリクスに対して使用できるのはインスタンスが Auto Scaling グループ内にあるときに限られます。詳細モニタリングまたは基本モニタリングが有効になっているインスタンスに対して使用できます。  | 
|  ImageId  |  このディメンションを指定すると、リクエストしたデータがフィルタリングされて、この Amazon EC2 Amazon マシンイメージ (AMI) を実行しているインスタンスのものだけになります。詳細モニタリングが有効になっているインスタンスに対して使用できます。  | 
|  InstanceId  |  このディメンションを指定すると、リクエストしたデータがフィルタリングされて、指定のインスタンスのものだけになります。これを利用すると、どのインスタンスからのデータをモニタリングするかを指定できます。  | 
|  InstanceType  |  このディメンションを指定すると、リクエストしたデータがフィルタリングされて、指定のインスタンスタイプで実行されているインスタンスのものだけになります。これを利用すると、実行されているインスタンスのタイプでデータを分類することができます。例えば、m1.small インスタンスと m1.large インスタンスのデータを比較して、アプリケーションに対するビジネス価値はどちらが上かを判断します。詳細モニタリングが有効になっているインスタンスに対して使用できます。  | 

## Amazon EC2 使用状況メトリクス
<a name="service-quota-metrics"></a>

CloudWatch 使用状況メトリクスを使用して、アカウントのリソースの使用状況を把握できます。これらのメトリクスを使用して、CloudWatch グラフやダッシュボードで現在のサービスの使用状況を可視化できます。

Amazon EC2 使用状況メトリクスはAWS のサービスクォータに対応しています。使用量がサービスクォータに近づいたときに警告するアラームを設定することもできます。CloudWatch とサービスクオータの統合については、「*Amazon CloudWatch ユーザーガイド*」の「[AWS 使用状況メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)」を参照してください。

Amazon EC2 は`AWS/Usage` 名前空間に以下のメトリクスを公開します。


| メトリクス | 説明 | 
| --- | --- | 
| `ResourceCount` |  アカウントで実行されている指定されたリソースの数。リソースはメトリクスに関連付けられたディメンションによって定義されます。 このメトリクスで最も役に立つ統計は `MAXIMUM` です。これは1 分間の期間中に使用されるリソースの最大数を表します。  | 

次のディメンションはAmazon EC2 によって発行される使用状況メトリクスを絞り込むために使用されます。


| ディメンション | 説明 | 
| --- | --- | 
|  Service  |  リソースを含む AWS のサービスの名前。Amazon EC2 使用状況メトリクスの場合、このディメンションの値は `EC2` です。  | 
|  Type  |  レポートされるエンティティのタイプ。現在、Amazon EC2 使用状況メトリクスの有効な値は `Resource` のみです。  | 
|  Resource  |  実行中のリソースのタイプ。現在、Amazon EC2 使用状況メトリクスの有効な値は `vCPU` のみです。これは実行中のインスタンスに関する情報を返します。  | 
|  Class  |  追跡されるリソースのクラス。`vCPU` ディメンションの値として `Resource` を使用する Amazon EC2 使用状況メトリクスの場合、有効な値は`Standard/OnDemand`、`F/OnDemand`、`G/OnDemand`、`Inf/OnDemand`、`P/OnDemand`、および `X/OnDemand` です。 このディメンションの値はメトリクスによって報告されるインスタンスタイプの最初の文字を定義します。例えば、`Standard/OnDemand` はA、C、D、H、I、M、R、T、Z で始まるタイプのすべての実行中のインスタンスに関する情報を返し、`G/OnDemand` は G で始まるタイプのすべてのインスタンスに関する情報を返します。  | 

# Amazon EC2 コンソールを使用して CloudWatch エージェントをインストールおよび設定し、メトリクスを追加する
<a name="install-and-configure-cloudwatch-agent-using-ec2-console"></a>


|  | 
| --- |
| Amazon EC2 コンソールを使用した CloudWatch エージェントのインストールおよび設定は Amazon EC2 ではベータ版であり、今後変更される場合があります。 | 

デフォルトで、Amazon CloudWatch は Amazon EC2 インスタンスをモニタリングするための基本的なメトリクス (`CPUUtilization`、`NetworkIn` など) を提供します。追加のメトリクスを収集するにはEC2 インスタンスに CloudWatch エージェントをインストールします。その後、選択したメトリクスを出力するようにエージェントを設定します。すべての EC2 インスタンスに CloudWatch エージェントを手動でインストールして設定するのではなく、Amazon EC2 コンソールを使用してインストールおよび設定を行えます。

Amazon EC2 コンソールを使用して、インスタンスに CloudWatch エージェントをインストールし、選択したメトリクスを出力するようにエージェントを設定できます。

このプロセスを手動で実行するときは、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch エージェントのインストール](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)」を参照してください。CloudWatch エージェントの詳細については「[CloudWatch エージェントを使用してメトリクス、ログ、トレースを収集する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)」を参照してください。

**Topics**
+ [前提条件](#install-and-configure-cw-agent-prerequisites)
+ [仕組み](#install-and-configure-cw-agent-how-it-works)
+ [コスト](#install-and-configure-cw-agent-costs)
+ [CloudWatch エージェントをインストールして設定する](#install-and-configure-cw-agent-procedure)

## 前提条件
<a name="install-and-configure-cw-agent-prerequisites"></a>

Amazon EC2 を使用して CloudWatch エージェントをインストールおよび設定するにはこのセクションで説明するユーザーとインスタンスの前提条件を満たす必要があります。

**ヒント**  
この機能はすべての AWS リージョン で利用できるわけではありません。このページのインストール手順で説明されているメニュー項目が Amazon EC2 コンソールに存在せず、インスタンスの実行場所について柔軟に対応できる場合は、別のリージョンをお試しください。それ以外の場合は、「*Amazon CloudWatch ユーザーガイド*」の手動の指示に従ってエージェントをインストールおよび設定することができます。

**ユーザーの前提条件**  
この機能を使用するにはIAM コンソールユーザーまたはロールはAmazon EC2 を使用するために必要なアクセス許可および、次の IAM アクセス許可を持っている必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter",
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:*:*:parameter/EC2-Custom-Metrics-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand",
                "ssm:ListCommandInvocations",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetInstanceProfile",
                "iam:SimulatePrincipalPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**インスタンスの前提条件**
+ インスタンスの状態: `running`
+ サポートされるオペレーティングシステム：Linux
+ AWS Systems Manager Agent (SSM Agent): インストール済み。SSM エージェントに関する注意事項は 2 つあります。
  + SSM Agent はAWS および信頼できるサードパーティが提供している一部の Amazon マシンイメージ (AMI) にプリインストールされています。サポートされている AMI と SSM Agent のインストール手順については「*AWS Systems Manager ユーザーガイド*」の「[SSMエージェントをプリインストール付 Amazon マシンイメージ (AMI) ](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html)」を参照してください。
  + SSM Agent で問題が発生した場合は「*AWS Systems Manager ユーザーガイド*」の「[SSMエージェントのトラブルシューティング](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)」を参照してください。
+ インスタンスの IAM アクセス許可: インスタンスにアタッチされている IAM ロールには以下の AWS 管理ポリシーを追加する必要があります。
  + [AmazonSSMManagedInstanceCore](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html) — インスタンスが Systems Manager を使用して CloudWatch エージェントをインストールおよび設定できるようにします。
  + [CloudWatchAgentServerPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchAgentServerPolicy.html) — インスタンスが CloudWatch エージェントを使用して CloudWatch にデータを書き込めるようにします。

  インスタンスに IAM アクセス許可を追加する方法については「*IAM ユーザーガイド*」の「[インスタンスプロファイルの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)」を参照してください。

## 仕組み
<a name="install-and-configure-cw-agent-how-it-works"></a>

Amazon EC2 コンソールを使用して CloudWatch エージェントをインストールおよび設定する前に、IAM ユーザーまたはロール、およびメトリクスを追加するインスタンスが特定の前提条件を満たしていることを確認する必要があります。その後 Amazon EC2 コンソールを使用して、選択したインスタンスで CloudWatch エージェントをインストールおよび設定できます。

**まずは[前提条件](#install-and-configure-cw-agent-prerequisites)を満たします**
+ **IAM アクセス許可が必要です** — 開始する前に、この機能を使用するのに必要な IAM アクセス許可がコンソールのユーザーまたはロールにあることを確認してください。
+ **インスタンス** — この機能を使用するにはEC2 インスタンスが Linux インスタンスで、SSM エージェントがインストールされており、インスタンスに必要な IAM アクセス許可がある必要があります。また、インスタンスが実行中である必要があります。

**その後、[機能を使用](#install-and-configure-cw-agent-procedure)できるようになります**

1. **インスタンスを選択する** — Amazon EC2 コンソールで、CloudWatch エージェントをインストールして設定するインスタンスを選択してください。次に、[**CloudWatch エージェントの設定]** を選択してプロセスを開始します。

1. **SSM Agent を検証する** — Amazon EC2 はSSM Agent が各インスタンスにインストールされ起動していることをチェックします。このチェックに合格しないインスタンスはプロセスから除外されます。SSM Agent はこのプロセス中にインスタンスに対してアクションを実行するために使用されます。

1. **IAM アクセス許可を検証する** — Amazon EC2 はこのプロセスに必要な IAM アクセス許可が各インスタンスにあることをチェックします。このチェックに合格しないインスタンスはプロセスから除外されます。IAM アクセス許可により CloudWatch エージェントでインスタンスからメトリクスを収集し、AWS Systems Manager と統合して SSM エージェントを使用できます。

1. **CloudWatch エージェントを検証する** — Amazon EC2 はCloudWatch エージェントが各インスタンスにインストールされ、実行されていることをチェックします。このチェックに合格しないインスタンスがある場合、Amazon EC2 がユーザーに代わって CloudWatch エージェントをインストールおよび起動します。このプロセスが完了すると、CloudWatch エージェントは各インスタンスで選択したメトリクスを収集します。

1. **メトリクス設定を選択する** — CloudWatch エージェントがインスタンスから出力するメトリクスを選択してください。選択すると、Amazon EC2 は設定ファイルをパラメータストアに保存します。設定ファイルはプロセスが完了するまでそこに残ります。Amazon EC2 ではプロセスが中断されない限り、パラメータストアから設定ファイルが削除されます。以前にインスタンスに追加したメトリクスを選択しない場合、このプロセスの完了後にインスタンスから削除されることに注意してください。

1. **CloudWatch エージェント設定を更新する** — Amazon EC2 は CloudWatch エージェントにメトリクス設定を送信します。これがプロセスの最後のステップです。成功すると、インスタンスは選択したメトリクスのデータを出力でき、Amazon EC2 はパラメータストアから設定ファイルを削除します。

## コスト
<a name="install-and-configure-cw-agent-costs"></a>

このプロセス中に追加したメトリクスはカスタムメトリクスとして課金されます。CloudWatch メトリクスの料金の詳細については「[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。

## CloudWatch エージェントをインストールして設定する
<a name="install-and-configure-cw-agent-procedure"></a>

Amazon EC2 コンソールを使用して CloudWatch エージェントをインストールおよび設定し、メトリクスを追加できます。

**注記**  
この手順を実行するたびに、既存の CloudWatch エージェント設定を上書きします。以前に選択したメトリクスを選択しない場合、そのメトリクスはインスタンスから削除されます。

**Amazon EC2 コンソールを使用して CloudWatch エージェントをインストールおよび設定するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. CloudWatch エージェントをインストールおよび設定するインスタンスを選択してください。

1. [**アクション**]、[**モニタリングとトラブルシューティング**]、[**CloudWatch エージェントの設定**] を選択してください。

1. プロセスの各ステップで、コンソールのテキストを読み、**[次へ]** を選択してください。

1. プロセスを完了するには最後のステップで [**完了**] を選択してください。

**Amazon EC2 コンソールが作成したエージェントの設定を更新するには**  
EC2 コンソールが作成した設定は手動でカスタマイズできます。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch エージェント設定ファイルを手動で作成または編集する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)」を参照してください。

# インスタンスに対する CloudWatch メトリクスの統計
<a name="monitoring_get_statistics"></a>

インスタンスの CloudWatch メトリクスの統計情報を取得できます。*統計*とはメトリクスデータを指定した期間で集計したものです。CloudWatch はカスタムデータまたは AWS の他のサービスから CloudWatch に提供された、メトリクスデータポイントに基づく統計を提供します。集約は指定した期間内に、名前空間、メトリクス名、ディメンション、データポイントの測定単位を用いて行われます。次の表は利用可能な統計を説明しています。


| 統計 | 説明 | 
| --- | --- | 
| Minimum |  指定された期間に認められた最小値です。この値を用いて、アプリケーションの低ボリュームのアクティビティを判断できます。  | 
| Maximum |  指定された期間に認められた最大値です。この値を用いて、アプリケーションの高ボリュームのアクティビティを判断できます。  | 
| Sum |  該当するメトリクスで加算されたすべての合計値です。この統計はメトリクスの合計ボリュームを判断するのに役立ちます。  | 
| Average |  指定した期間の `Sum`/`SampleCount` の値です。この統計を `Minimum` および `Maximum` と比較することで、メトリクスの全容、および平均使用量がどれくらい `Minimum` と `Maximum` に近いかを判断できます。この比較は必要に応じていつリソースを増減させるべきかを知るのに役立ちます。  | 
| SampleCount |  統計計算で使用するデータポイントのカウント (数) です。  | 
| pNN.NN |  指定されたパーセンタイルの値。小数点以下最大 2 桁を使用して、任意のパーセンタイルを指定できます (p95.45 など)。  | 

**Topics**
+ [特定のインスタンスの統計を取得する](US_SingleMetricPerInstance.md)
+ [インスタンス全体の統計の集約](GetSingleMetricAllDimensions.md)
+ [Auto Scaling グループ別に統計を集計する](GetMetricAutoScalingGroup.md)
+ [AMI 別に統計を集計する](US_SingleMetricPerAMI.md)

# 特定のインスタンスの統計を取得する
<a name="US_SingleMetricPerInstance"></a>

AWS マネジメントコンソールまたは AWS CLI を使用して、特定のインスタンスの統計を取得できます。次の例ではAWS マネジメントコンソール または AWS CLI を使用して、特定の EC2 インスタンスの最大 CPU 使用率を決定することができます。

**要件**
+ インスタンスの ID が必要です。インスタンス ID はAWS マネジメントコンソール コンソールまたは [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使って取得します。
+ デフォルトでは基本モニタリングが有効化されていますが、詳細モニタリングを有効化することもできます。詳細については「[EC2 インスタンスの詳細モニタリングを管理する](manage-detailed-monitoring.md)」を参照してください。

**特定のインスタンスの CPU 使用率を表示するには (コンソール)**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで [**Metrics (メトリクス)**] を選択してください。

1. **EC2** のメトリクスの名前空間を選択してください。

1. **インスタンス別メトリクス**のディメンションを選択してください。

1. 検索フィールドに **CPUUtilization** と入力して Enter キーを押します。特定のインスタンスの行を選択してください。すると、そのインスタンスの [**CPUUtilization**] メトリクスのグラフが表示されます。グラフに名前を付けるには鉛筆アイコンを選択してください。時間範囲を変更するには事前定義済みの値を選択するか、[**custom**] を選択してください。  
![\[単一メトリクスのグラフ化\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance.png)

1. メトリクスの統計または期間を変更するには[**Graphed metrics**] タブを選択してください。列見出しまたは個々の値を選択し、次に異なる値を選択してください。  
![\[メトリクスの統計または期間を変更する\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/metric_statistics_ec2_instance_statistic_period.png)

**特定のインスタンスの CPU 使用率を取得するには (AWS CLI)**  
次の [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) コマンドを使用すると、期間と時間間隔を指定して、特定のインスタンスの [**CPUUtilization**] メトリクスを取得できます。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization  --period 3600 \
--statistics Maximum --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
--start-time 2022-10-18T23:18:00 --end-time 2022-10-19T23:18:00
```

出力例を次に示します。それぞれの値は単一の EC2 インスタンスの最大 CPU 使用率を表しています。

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-10-19T00:18:00Z", 
            "Maximum": 0.33000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T03:18:00Z", 
            "Maximum": 99.670000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T07:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-19T12:18:00Z", 
            "Maximum": 0.34000000000000002, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# インスタンス全体の統計の集約
<a name="GetSingleMetricAllDimensions"></a>

集約された統計は詳細モニタリングが有効になっているインスタンスで利用が可能です。基本モニタリングを使用するインスタンスは集約されません。インスタンス全体から集約された統計情報を取得するには[詳細モニタリングを事前に有効化](manage-detailed-monitoring.md#enable-detailed-monitoring)し、1 分間隔でデータが提供されるようにしておく必要があります (追加料金がかかります)。

Amazon CloudWatch は AWS リージョンをまたがってデータを集約することはできません。メトリクスはリージョン間で完全に独立しています。

この例ではEC2 インスタンスの平均 CPU 使用率を取得するために詳細モニタリングを使用する方法について示します。ディメンションを指定していないため、CloudWatch は`AWS/EC2` 名前空間にある全ディメンションの統計を返します。

**重要**  
AWS 名前空間にあるすべてのディメンションを取得するこの手法は、Amazon CloudWatch に発行するカスタム名前空間では機能しません。カスタム名前空間の場合、データポイントを含む統計を取得するにはそのデータポイントに関連付けられたディメンション一式をすべて指定する必要があります。

**インスタンスの平均 CPU 使用率を表示するには (コンソール)**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで [**Metrics (メトリクス)**] を選択してください。

1. [**EC2**] 名前空間を選択して、[**Across All Instances**] を選択してください。

1. [**CPUUtilization**] を含む行を選択してください。すべての EC2 インスタンスのメトリクスがグラフとして表示されます。グラフに名前を付けるには鉛筆アイコンを選択してください。時間範囲を変更するには事前定義済みの値を選択するか、[**custom**] を選択してください。  
![\[複数の EC2 インスタンスで集約されるメトリクス\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/metric_aggregated_instances.png)

1. メトリクスの統計または期間を変更するには[**Graphed metrics**] タブを選択してください。列見出しまたは個々の値を選択し、次に異なる値を選択してください。

**複数のインスタンスの平均 CPU 使用率を取得するには (AWS CLI)**  
次のように [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) コマンドを使用し、インスタンス全体の平均 [**CPUUtilization**] メトリクスを取得します。

```
aws cloudwatch get-metric-statistics \
    --namespace AWS/EC2 \
    --metric-name CPUUtilization \ 
    --period 3600  --statistics "Average" "SampleCount" \ 
    --start-time 2022-10-11T23:18:00 \
    --end-time 2022-10-12T23:18:00
```

出力例を次に示します。

```
{
    "Datapoints": [
        {
            "SampleCount": 238.0, 
            "Timestamp": "2022-10-12T07:18:00Z", 
            "Average": 0.038235294117647062, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 240.0, 
            "Timestamp": "2022-10-12T09:18:00Z", 
            "Average": 0.16670833333333332, 
            "Unit": "Percent"
        }, 
        {
            "SampleCount": 238.0, 
            "Timestamp": "2022-10-11T23:18:00Z", 
            "Average": 0.041596638655462197, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# Auto Scaling グループ別に統計を集計する
<a name="GetMetricAutoScalingGroup"></a>

Auto Scaling グループ内で EC2 インスタンスの統計を集計することができます。Amazon CloudWatch は AWS リージョンをまたがってデータを集約することはできません。メトリクスはリージョン間で完全に独立しています。

この例では1 つの Auto Scaling グループについて、ディスクに書き込まれた総バイト数を取得する方法を説明します。合計は指定された Auto Scaling グループのすべての EC2 インスタンスで、24 時間おきに 1 分間に対して算出されます。

**Auto Scaling グループ内のインスタンスの DiskWriteBytes を表示するには (コンソール)**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで [**Metrics (メトリクス)**] を選択してください。

1. [**EC2**] 名前空間を選択し、次に [**By Auto Scaling Group**] を選択してください。

1. [**DiskWriteBytes**] メトリクスの行と特定の Auto Scaling グループを選択してください。すると、その Auto Scaling グループ内にあるインスタンスのメトリクスがグラフとして表示されます。グラフに名前を付けるには鉛筆アイコンを選択してください。時間範囲を変更するには事前定義済みの値を選択するか、[**custom**] を選択してください。

1. メトリクスの統計または期間を変更するには[**Graphed metrics**] タブを選択してください。列見出しまたは個々の値を選択し、次に異なる値を選択してください。

**Auto Scaling グループのインスタンスの DiskWriteBytes を表示するには (AWS CLI)**  
以下のように [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) コマンドを使用します。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteBytes --period 360 \
--statistics "Sum" "SampleCount" --dimensions Name=AutoScalingGroupName,Value=my-asg --start-time 2022-10-16T23:18:00 --end-time 2022-10-18T23:18:00
```

出力例を次に示します。

```
{
    "Datapoints": [
        {
            "SampleCount": 18.0, 
            "Timestamp": "2022-10-19T21:36:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }, 
        {
            "SampleCount": 5.0, 
            "Timestamp": "2022-10-19T21:42:00Z", 
            "Sum": 0.0, 
            "Unit": "Bytes"
        }
    ], 
    "Label": "DiskWriteBytes"
}
```

# AMI 別に統計を集計する
<a name="US_SingleMetricPerAMI"></a>

詳細モニタリングが有効になっているインスタンスに対して、AMI を使用して統計を集計できます。基本モニタリングを使用するインスタンスは集約されません。インスタンス全体から集約された統計情報を取得するには[詳細モニタリングを事前に有効化](manage-detailed-monitoring.md#enable-detailed-monitoring)し、1 分間隔でデータが提供されるようにしておく必要があります (追加料金がかかります)。

Amazon CloudWatch は AWS リージョンをまたがってデータを集約することはできません。メトリクスはリージョン間で完全に独立しています。

この例では特定の Amazon マシンイメージ (AMI) を使用するすべてのインスタンスの平均 CPU 使用率を特定する方法を説明します。平均値は1 日間、60 秒間隔の平均値です。

**AMI 別の平均 CPU 使用率を表示するには (コンソール)**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで [**Metrics (メトリクス)**] を選択してください。

1. [**EC2**] 名前空間を選択し、次に [**By Image (AMI) Id**] を選択してください。

1. [**CPUUtilization**] メトリクスの行と特定の AMI を選択してください。すると、その AMI のメトリクスがグラフとして表示されます。グラフに名前を付けるには鉛筆アイコンを選択してください。時間範囲を変更するには事前定義済みの値を選択するか、[**custom**] を選択してください。

1. メトリクスの統計または期間を変更するには[**Graphed metrics**] タブを選択してください。列見出しまたは個々の値を選択し、次に異なる値を選択してください。

**特定のイメージ ID の平均 CPU 使用率を取得するには (AWS CLI)**  
以下のように [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) コマンドを使用します。

```
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization  --period 3600 \
--statistics Average --dimensions Name=ImageId,Value=ami-3c47a355 --start-time 2022-10-10T00:00:00 --end-time 2022-10-11T00:00:00
```

出力例を次に示します。それぞれの値は指定した AMI を実行する EC2 インスタンスの平均 CPU 使用率 (%) を表します。

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-10-10T07:00:00Z", 
            "Average": 0.041000000000000009, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-10T14:00:00Z", 
            "Average": 0.079579831932773085, 
            "Unit": "Percent"
        }, 
        {
            "Timestamp": "2022-10-10T06:00:00Z", 
            "Average": 0.036000000000000011, 
            "Unit": "Percent"
        }
    ], 
    "Label": "CPUUtilization"
}
```

# インスタンスのモニタリンググラフを表示する
<a name="graphs-in-the-aws-management-console"></a>

インスタンスを起動した後はAmazon EC2 コンソールの [**モニタリング**] タブを開いて、インスタンスのモニタリンググラフを表示できます。各グラフは利用可能な Amazon EC2 メトリクスのいずれかに基づいています。

以下のグラフが利用可能です。
+ 平均 CPU 使用率 (パーセント)
+ 平均ディスク読み込み (バイト)
+ 平均ディスク書き込み (バイト)
+ 最大ネットワーク受信 (バイト)
+ 最大ネットワーク送信 (Bytes)
+ 要約ディスク読み取り操作 (カウント)
+ 要約ディスク書き込み操作 (カウント)
+ 要約ステータス (任意)
+ 要約ステータスインスタンス (カウント)
+ 要約ステータスシステム (カウント)

グラフに表示されるメトリクスおよびデータの詳細については[インスタンスに対して利用可能な CloudWatch メトリクス](viewing_metrics_with_cloudwatch.md)を参照してください。

**CloudWatch コンソールを使用したメトリクスのグラフ化**  
CloudWatch コンソールを使用して、Amazon EC2 や他の AWS のサービスによって生成されたメトリクスデータをグラフ化できます。詳細については「*Amazon CloudWatch ユーザーガイド*」の「[メトリクスのグラフ化](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_metrics.html)」を参照してください。

# インスタンスの CloudWatch アラームを作成する
<a name="using-cloudwatch-createalarm"></a>

インスタンスの 1 つのCloudWatch メトリクスをモニタリングする、CloudWatch アラームを作成できます。CloudWatch はメトリクスが指定したしきい値に到達すると、自動的に通知を送信します。CloudWatch アラームは Amazon EC2 コンソールを使用するか、CloudWatch コンソールに用意されている高度なオプションを使用して作成できます。

**CloudWatch コンソールを使用してアラームを作成するには**  
例については、「*Amazon CloudWatch ユーザーガイド*」の「[Amazon CloudWatch アラームの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)」を参照してください。

**Amazon EC2 コンソールを使用してアラームを作成するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

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

1. [**CloudWatch アラームの管理**] 詳細ページの [**アラームの追加または編集**] で、[**アラームの作成**] を選択してください。

1. **[アラーム通知]** で、Amazon Simple Notiﬁcation Service (Amazon SNS) 通知を設定するかどうかを選択してください。既存の Amazon SNS トピックを入力するか、名前を入力して新しいトピックを作成します。

1. **[アラームアクション]** で、アラームがトリガーされた際に実行するアクションを指定するかどうかを選択してください。リストからアクションを選択してください。

1. [**アラームのしきい値**] で、アラームのメトリクスと条件を選択してください。例えば、CPU 使用率が 80% に達した状態が 5 分間継続した場合にトリガーされるアラームを作成するには次の操作を行います。

   1. **[サンプルのグループ化基準]** (**[平均]**) と **[サンプリングするデータのタイプ]** (**[CPU 使用率]** ) の設定はデフォルトのままにしてきます。

   1. **[アラームの条件]** で **[>=]** を選択し、**[割合]** に「**0.80**」と入力してください。

   1. **[連続した期間]** に「**1**」と入力し、**[期間]** で **[5 分間]** を選択してください。

1. (オプション) **[Sample metric data]** (サンプルメトリクスデータ) の場合、**[Add to dashboard]** (ダッシュボードに追加) を選択してください。

1. [**Create**] (作成) を選択してください。

CloudWatch アラーム設定は Amazon EC2 コンソールまたは CloudWatch コンソールから編集できます。アラームを削除する場合はCloudWatch コンソールから行えます。詳細については「Amazon CloudWatch ユーザーガイド」の「[CloudWatch アラームの編集または削除](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Manage-CloudWatch-Alarm.html#Edit-CloudWatch-Alarm)」を参照してください。

# インスタンスを停止、終了、再起動、または復旧するアラームを作成する
<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 分  | 

# EventBridge を使用して Amazon EC2 を自動化する
<a name="automating_with_eventbridge"></a>

Amazon EventBridge を使用すると、AWS のサービス を自動化し、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに自動的に対応できます。AWS のサービスからのイベントは、ほぼリアルタイムに EventBridge に提供されます。ルールを作成して、注目しているイベントと、イベントがルールに一致した場合に実行するアクションを指定できます。自動的にトリガーできるオペレーションには、以下が含まれます。
+ AWS Lambda 関数を呼び出す
+ Amazon EC2 Run Command を呼び出す
+ Amazon Kinesis Data Streams へのイベントを中継する
+ AWS Step Functions ステートマシンをアクティブ化する
+ Amazon SNS トピックを通知する
+ Amazon SQS キューを通知する

Amazon EC2 での EventBridge の使用例を次に示します。
+ インスタンスが実行状態になるたびに Lambda 関数をアクティブ化します。
+ Amazon EBS ボリュームの作成時または変更時に Amazon SNS トピックを通知します。
+ AWS の別のサービスで特定のイベントが発生するたびに、Amazon EC2 Run Command を使用して 1 つ以上の Amazon EC2 インスタンスにコマンドを送信します。

詳細については、「[Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/)」を参照してください。

## Amazon EC2 イベントタイプ
<a name="ec2-events-eventbridge"></a>

Amazon EC2 は、次のイベントタイプをサポートします。
+ [EC2 AMI の状態変更](monitor-ami-events.md#ami-events)
+ [EC2 の高速起動状態の変更通知](win-fast-launch-monitor.md#win-monitor-fast-launch-events)
+ [EC2 フリートエラー](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-config-not-valid)
+ [EC2 フリート情報](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-info)
+ [EC2 フリートインスタンスの変更](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-instance-change)
+ [EC2 フリートのスポットインスタンスリクエストの変更](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-spot-instance-request-change)
+ [EC2 フリートの状態の変更](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-state-change)
+ [EC2 インスタンスの再調整に関するレコメンデーション](rebalance-recommendations.md#cp-eventbridge)
+ [EC2 インスタンスの状態変更通知](monitoring-instance-state-changes.md)
+ [EC2 スポットフリートのエラー](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-config-not-valid)
+ [EC2 スポットフリート情報](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-info)
+ [EC2 スポットフリートインスタンスの変更](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-instance-change)
+ [EC2 スポットフリートのスポットインスタンスリクエストの変更](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-spot-instance-request-change)
+ [EC2 スポットフリートの状態の変更](monitor-ec2-fleet-using-eventbridge.md#spot-fleet-state-change)
+ [EC2 スポットインスタンスの中断の警告](spot-instance-termination-notices.md#ec2-spot-instance-interruption-warning-event)
+ [EC2 スポットインスタンスリクエストのフルフィルメント](spot-request-status.md#spot-request-fulfillment-event)
+ [EC2 ODCR 低使用率通知](cr-eventbridge.md)

Amazon EBS でサポートされているイベントタイプについては、「[Amazon EBS 用 Amazon EventBridge](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-cloud-watch-events.html)」を参照してください。

# AWS CloudTrail を使用して Amazon EC2 API コールをログに記録する
<a name="monitor-with-cloudtrail"></a>

Amazon EC2 API は、ユーザー、ロール、または AWS のサービスが実行したアクションの記録を提供するサービスである [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/) と統合されています。CloudTrail は、すべての Amazon EC2 API コールをイベントとしてキャプチャします。キャプチャされる呼び出しには、コンソールからの呼び出しが含まれます。CloudTrail で収集した情報を使用して、Amazon EC2 API に対して行われたリクエスト、リクエスト元の IP アドレス、およびリクエストが行われた日時を確認できます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます:
+ ルートユーザーまたはユーザー認証情報のどちらを使用してリクエストが送信されたか
+ リクエストが IAM Identity Center ユーザーに代わって行われたかどうか。
+ リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが、別の AWS のサービス によって送信されたかどうか。

アカウントを作成すると、AWS アカウント で CloudTrail がアクティブになり、自動的に CloudTrail の**[イベント履歴]** にアクセスできるようになります。CloudTrail の **[イベント履歴]** では、AWS リージョン で過去 90 日間に記録された 管理イベントの表示、検索、およびダウンロードが可能で、変更不可能な記録を確認できます。詳細については、「AWS CloudTrail ユーザーガイド」の「[CloudTrail イベント履歴の使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。**[イベント履歴]** の閲覧には CloudTrail の料金はかかりません。

AWS アカウント で過去 90 日間のイベントを継続的に記録するには、証跡または [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) イベントデータストアを作成します。

**CloudTrail 証跡**  
*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。AWS マネジメントコンソール を使用して作成した証跡はマルチリージョンです。AWS CLI を使用する際は、単一リージョンまたは複数リージョンの証跡を作成できます。アカウント内のすべて AWS リージョン でアクティビティを把握するため、マルチリージョン証跡を作成することをお勧めします。単一リージョンの証跡を作成する場合、証跡の AWS リージョン に記録されたイベントのみを表示できます。証跡の詳細については、「*AWS CloudTrail ユーザーガイド*」の「[AWS アカウント の証跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)」および「[組織の証跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html)」を参照してください。  
証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から Amazon S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。Amazon S3 の料金に関する詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

**CloudTrail Lake イベントデータストア**  
*CloudTrail Lake* を使用すると、イベントに対して SQL ベースのクエリを実行できます。CloudTrail Lake は、行ベースの JSON 形式の既存のイベントを [Apache ORC](https://orc.apache.org/) 形式に変換します。ORC は、データを高速に取得するために最適化された単票ストレージ形式です。イベントはイベントデータストアに集約されます。イベントデータストアは、[高度なイベントセレクタ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors)を適用することによって選択する条件に基いた、イベントのイミュータブルなコレクションです。どのイベントが存続し、クエリに使用できるかは、イベントデータストアに適用するセレクタが制御します。CloudTrail Lake の詳細については、「*AWS CloudTrail ユーザーガイド*」の「[Lake の使用AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html)」を参照してください。  
CloudTrail Lake のイベントデータストアとクエリにはコストがかかります。イベントデータストアを作成する際に、イベントデータストアに使用する[料金オプション](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option)を選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。

## CloudTrail の Amazon EC2 API 管理イベント
<a name="cloudtrail-management-events"></a>

[管理イベント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events)では、AWS アカウント のリソースに対して実行される管理オペレーションについての情報が得られます。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。CloudTrail は、デフォルトで管理イベントをログ記録します。

すべての Amazon EC2 API アクションは管理イベントとしてログに記録されます。CloudTrail によってログ記録される API アクションのリストについては、「[Amazon EC2 API リファレンス](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/)」を参照してください。例えば、[https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)、[https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html)、および [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StopInstances.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StopInstances.html) アクションへの呼び出しは、管理イベントとしてログに記録されます。

## Amazon EC2 API イベントの例
<a name="cloudtrail-event-examples"></a>

各イベントは任意の送信元からの単一のリクエストを表し、リクエストされた API オペレーション、オペレーションの日時、リクエストパラメータなどに関する情報を含みます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、イベントは特定の順序で表示されません。

次のログファイルレコードは、ユーザーがインスタンスを終了したことを示しています。

```
{
   "Records":[
      {
         "eventVersion":"1.03",
         "userIdentity":{
            "type":"Root",
            "principalId":"123456789012",
            "arn":"arn:aws:iam::123456789012:root",
            "accountId":"123456789012",
            "accessKeyId":"AKIAIOSFODNN7EXAMPLE",
            "userName":"user"
         },
         "eventTime":"2016-05-20T08:27:45Z",
         "eventSource":"ec2.amazonaws.com",
         "eventName":"TerminateInstances",
         "awsRegion":"us-west-2",
         "sourceIPAddress":"198.51.100.1",
         "userAgent":"aws-cli/1.10.10 Python/2.7.9 Windows/7botocore/1.4.1",
         "requestParameters":{
            "instancesSet":{
               "items":[{
                  "instanceId":"i-1a2b3c4d"
               }]
            }
         },
         "responseElements":{
            "instancesSet":{
               "items":[{
                  "instanceId":"i-1a2b3c4d",
                  "currentState":{
                     "code":32,
                     "name":"shutting-down"
                  },
                  "previousState":{
                     "code":16,
                     "name":"running"
                  }
               }]
            }
         },
         "requestID":"be112233-1ba5-4ae0-8e2b-1c302EXAMPLE",
         "eventID":"6e12345-2a4e-417c-aa78-7594fEXAMPLE",
         "eventType":"AwsApiCall",
         "recipientAccountId":"123456789012"
     }
   ]
}
```

CloudTrail レコードの内容については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail record contents](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)」を参照してください。

## EC2 Instance Connect による接続を監査する
<a name="ec2-instance-connect-cloudtrail"></a>

AWS CloudTrail を使用して、EC2 Instance Connect によってインスタンスに接続するユーザーを監査します。

**AWS CloudTrail コンソールを使用して、EC2 Instance Connect 経由で SSH アクティビティを監査するには**

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

1. 正しいリージョンを使用していることを確認します。

1. ナビゲーションペインで [**Event history (イベント履歴)**] を選択します。

1. [**Filter (フィルター)**] で、[**Event source (イベントソース)**]、[**ec2-instance-connect.amazonaws.com**] の順に選択します。

1. (オプション) [**Time range (時間範囲)**] で、時間範囲を選択します。

1. [**Refresh events (イベントの更新)**] アイコンを選択します。

1. [https://docs.aws.amazon.com/ec2-instance-connect/latest/APIReference/API_SendSSHPublicKey.html](https://docs.aws.amazon.com/ec2-instance-connect/latest/APIReference/API_SendSSHPublicKey.html) API コールに対応するイベントがページに表示されます。矢印を使用してイベントを展開します。ユーザー名、SSH 接続を行うために使用した AWS アクセスキー、ソース IP アドレスなどの詳細が表示されます。

1. すべてのイベント情報を JSON 形式で表示するには、[**View event (イベントの表示)**] を選択します。**[requestParameters]** フィールドに、SSH 接続を行うために使用されたターゲットインスタンス ID、OS ユーザー名、およびパブリックキーが表示されます。

   ```
   {
       "eventVersion": "1.05",
       "userIdentity": {
           "type": "IAMUser",
           "principalId": "ABCDEFGONGNOMOOCB6XYTQEXAMPLE",
           "arn": "arn:aws:iam::1234567890120:user/IAM-friendly-name",
           "accountId": "123456789012",
           "accessKeyId": "ABCDEFGUKZHNAW4OSN2AEXAMPLE",
           "userName": "IAM-friendly-name",
           "sessionContext": {
               "attributes": {
                   "mfaAuthenticated": "false",
                   "creationDate": "2018-09-21T21:37:58Z"}
           }
       },
       "eventTime": "2018-09-21T21:38:00Z",
       "eventSource": "ec2-instance-connect.amazonaws.com",
       "eventName": "SendSSHPublicKey ",
       "awsRegion": "us-west-2",
       "sourceIPAddress": "123.456.789.012",
       "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60",
       "requestParameters": {
           "instanceId": "i-0123456789EXAMPLE",
           "osUser": "ec2-user",
           "SSHKey": {
               "publicKey": "ssh-rsa ABCDEFGHIJKLMNO01234567890EXAMPLE"
           }
        },
       "responseElements": null,
       "requestID": "1a2s3d4f-bde6-11e8-a892-f7ec64543add",
       "eventID": "1a2w3d4r5-a88f-4e28-b3bf-30161f75be34",
       "eventType": "AwsApiCall",
       "recipientAccountId": "0987654321"
   }
   ```

   CloudTrail イベントを S3 バケットに収集するために AWS アカウントを設定している場合は、プログラムで情報をダウンロードして監査できます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail ログファイルの取得と表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html)」を参照してください。

# CloudWatch Application Insights を使用した .NET および SQL Server アプリケーションのモニタリング
<a name="monitoring-appinsights"></a>

CloudWatch Application Insights は他の [AWS アプリケーションリソース](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/appinsights-what-is.html#appinsights-components)とともに Amazon EC2 インスタンスを使用する .NET および SQL Server アプリケーションをモニタリングするのに役立ちます。アプリケーションのリソース全体およびテクノロジースタック (Microsoft SQL Server データベース、ウェブ (IIS) サーバー、アプリケーションサーバー、OS、ロードバランサー、キューなど) で主要なメトリクスとログおよびアラームを特定して設定します。メトリクスとログを継続的にモニタリングし、異常やエラーを検出して相互に関連付けます。エラーや異常が検出されると、Application Insights は CloudWatch Events を生成します。これを使用して、通知を設定したり、アクションを実行したりできます。トラブルシューティングを支援するために、検出した問題の自動ダッシュボードを作成します。このダッシュボードには相互に関連付けられた異常とログエラー、さらに根本原因を示唆する追加のインサイトが示されます。自動ダッシュボードを使用すると、修復アクションをすばやく実行してアプリケーションを正常な状態に保ち、アプリケーションのエンドユーザーへの影響を防止できます。

**検出された問題に関して提供される情報**
+ 問題の簡単な概要
+ 問題の発生日時
+ 問題の重大度: 高/中/低
+ 検出された問題のステータス: 進行中/解決済み
+ インサイト: 検出された問題と考えられる根本原因に関して自動生成されるインサイト
+ インサイトに関するフィードバック: CloudWatch Application Insights for .NET and SQL Server で生成されたインサイトの有益性についてユーザーが提供したフィードバック
+ 関連する監視結果: さまざまなアプリケーションコンポーネントにまたがる問題に関連するメトリクスの異常とログのエラースニペットの詳細ビュー

**フィードバック**  
検出された問題への自動生成されたインサイトが有益であるかどうかを判定することで、インサイトに対するフィードバックを提供できます。インサイトに対するユーザーからのフィードバックとアプリケーションの診断結果 (メトリクスの異常とログの例外) は今後同様の問題が発生した場合の検出を向上させるために使用されます。

詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html)」ドキュメントを参照してください。

# Amazon EC2 の無料利用枠の使用状況を追跡する
<a name="ec2-free-tier-usage"></a>

AWS アカウントを作成すると、[AWS 無料利用枠](https://aws.amazon.com/free)を利用して、Amazon EC2 を無料で使い始めることができます。無料利用枠の特典は、アカウントを作成したのが 2025 年 7 月 15 日より前か、2025 年 7 月 15 日以降かによって異なります。詳細については、「*AWS Billing ユーザーガイド*」の「[Explore AWS services with AWS Free Tier](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier.html)」を参照してください。

## 2025 年 7 月 15 日より前とそれ以降の無料利用枠の特典
<a name="ec2-free-tier-comparison"></a>

次の表は、AWS アカウントの作成日に基づく無料利用枠の特典を比較したものです。


| 無料利用枠の特典 | 2025 年 7 月 15 日より前に作成されたアカウント | 2025 年 7 月 15 日以降に作成されたアカウント | 
| --- | --- | --- | 
| [無料利用枠の対象] と表示されたインスタンスタイプ |  `t2.micro`, `t3.micro`  |  `t3.micro`, `t3.small`, `t4g.micro`, `t4g.small`, `c7i-flex.large`, `m7i-flex.large`  | 
| [無料利用枠の対象] と表示された Amazon EBS ボリュームタイプ |  `standard`, `st1`, `sc1`, `gp2`, および `gp3`  |  `standard`, `st1`, `sc1`, `gp2`, および `gp3`  | 
| [無料利用枠の対象] と表示された AMI | [無料利用枠の対象] と表示された AMI を確認 | [無料利用枠の対象] と表示された AMI を確認 | 
| 使用制限 | 使用制限が設定され、それを超えた後は従量制料金が請求されます。 |  サインアップすると 100 USD のクレジットを受け取ることができ、最大 100 USD の追加クレジットを獲得できます。  | 
| 無料利用枠の期間 | 無料利用枠は、アカウントの作成日から 12 か月間有効です。この間、無料利用枠の使用制限を超えた場合は、従量制料金が請求されます。 | 無料利用枠は、アカウントの作成日から 6 か月間、またはクレジットを使い切った時点のいずれか早い方まで有効です。無料利用枠の制限を超えることはできません。 | 

**無料利用枠の対象となるインスタンスタイプを一覧表示するには**  
[describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) コマンドを `free-tier-eligible` フィルターと共に使用します。

```
aws ec2 describe-instance-types \
    --filters Name=free-tier-eligible,Values=true \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```

**無料利用枠の対象となる AMI を一覧表示する方法**  
`free-tier-eligible` フィルターで「[describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html)」コマンドを使用します。

```
aws ec2 describe-images \
    --filters Name=free-tier-eligible,Values=true \
    --query "Images[*].[ImageId]" \
    --output text | sort
```

## 2025 年 7 月 15 日より前に作成されたアカウントの無料利用枠の使用状況を追跡する
<a name="track-ec2-free-tier-usage"></a>

**注記**  
***このセクションは、2025 年 7 月 15 日より前に AWS アカウントを作成した無料利用枠ユーザーにのみ適用されます。2025 年 7 月 15 日以降にアカウントを作成した場合は、「AWS Billing ユーザーガイド」の「[Tracking your AWS Free Tier usage](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/tracking-free-tier-usage.html)」を参照してください。***

2025 年 7 月 15 日より前にアカウントを作成した場合、AWS のお客様になってから 12 か月未満で、AWS 無料利用枠 使用制限の範囲内であれば、Amazon EC2 は無料で使用できます。予期せぬ請求を避けるには無料利用枠の使用状況を追跡することが重要です。無料利用枠の制限を超える場合、標準の従量課金制料金が発生します。詳細については「[AWS 無料利用枠](https://aws.amazon.com/free/)」を参照してください。

**注記**  
12 か月以上ご利用いただいている AWS カスタマーの場合は無料利用枠の利用資格がなくなり、以下の手順で説明する **[EC2 無料利用枠]** ボックスも表示されなくなります。

**無料利用枠の使用状況を追跡するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、[**EC2 ダッシュボード**] を選択してください。

1. **[EC2 無料利用枠]** ボックス (右上) を参照してください。  
![\[EC2 ダッシュボードの EC2 無料利用枠ボックス。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/ec2-free-tier-widget.png)

1. **[EC2 無料利用枠]** ボックスで、次のように無料利用枠の使用状況を確認します。
   + **[使用中の EC2 無料利用枠のオファー]** の警告に注意してください。
     + **[月末の予測]** — 現在の使用パターンを継続する場合、今月は料金が発生することを警告しています。
     + **[無料利用枠超過]** — 無料利用枠の制限を超え、すでに料金が発生していることを警告しています。
   + **[オファーの使用量 (月額)]** で、Linux インスタンス、Windows インスタンス、EBS ストレージの使用状況を書き留めてください。このパーセンテージは今月使用した無料利用枠の制限を示します。100% の場合、それ以降の使用には料金が発生します。
**注記**  
この情報はインスタンスを作成した後にのみ表示されます。ただし、使用状況情報はリアルタイムでは更新されず、1 日 3 回更新されます。

1. さらなる料金の発生を避けるには現在料金が発生しているリソース、または無料利用枠の使用制限を超えた場合に料金が発生するリソースをすべて削除してください。
   + インスタンスを削除する手順については「[Amazon EC2 インスタンスを終了する](terminating-instances.md)」を参照してください。
   + 料金が発生する可能性のあるリソースが他のリージョンにあるかどうかを確認するには**[EC2 無料利用枠]** ボックスで **[グローバル EC2 リソースを表示]** を選択して **[EC2 グローバルビュー]** を開きます。詳細については「[AWS Global View を使用して複数のリージョンにわたるリソースを表示する](global-view.md)」を参照してください。

1. AWS 無料利用枠 にあるすべての AWS のサービス のリソース使用量を表示するには**[EC2 無料利用枠]** ボックスの下部にある **[すべての AWS 無料利用枠 オファーを表示]** を選択してください。詳細については「*AWS Billing User Guide*」の「[Trying services using AWS 無料利用枠](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-free-tier.html)」を参照してください。

# 請求および使用状況レポートでの Amazon EC2 のコードを理解する
<a name="ec2-billing-usage-reports"></a>

Amazon EC2 を使用すると、AWS 請求および使用状況レポートに関連コードが含められます。これらのコードを確認することは、Amazon EC2 のコストと使用パターンを理解するのに役立ちます。コストを最適化するには、費用の追跡と管理が不可欠です。

以下の表では、請求および使用状況レポートに表示される Amazon EC2 のコードについて説明します。請求および使用状況レポートで使用されるリージョンコードのリストについては、「[AWS Region billing codes](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-region-billing-codes.html)」を参照してください。

**Topics**
+ [インスタンス](#instances-billing-usage-reports)
+ [ベアメタルインスタンス](#bare-metal-instances-billing-usage-reports)
+ [専用ホスト](#dedicated-hosts-billing-usage-reports)
+ [Dedicated Instances](#dedicated-instances-billing-usage-reports)
+ [EBS 最適化](#ebs-billing-usage-reports)
+ [キャパシティ予約](#capacity-reservation-billing-usage-reports)

**関連リソース**
+ [Amazon EC2 の請求および購入オプション](instance-purchasing-options.md)
+ [AMI の請求情報について](ami-billing-info.md)
+ [Amazon EC2 の料金](https://aws.amazon.com/ec2/pricing/)

## インスタンス
<a name="instances-billing-usage-reports"></a>


| Code | 説明 | 単位 | 
| --- | --- | --- | 
| region-BoxUsage:instance-type | オンデマンドインスタンスの実行時間。 | 時間 | 
| region-HostBoxUsage:instance-type | 専有ホスト上のインスタンスの実行時間。 | 時間 | 
| region-SpotUsage:instance-type | スポットインスタンスの実行時間。 | 時間 | 



## ベアメタルインスタンス
<a name="bare-metal-instances-billing-usage-reports"></a>


| Code | 説明 | 単位 | 
| --- | --- | --- | 
| region-BoxUsage:instance-family.metal | ベアメタルオンデマンドインスタンスの実行時間。 | 時間 | 
| region-HostBoxUsage:instance-family.metal | 専有ホスト上のベアメタルインスタンスの実行時間。 | 時間 | 
| region-SpotUsage:instance-family.metal | ベアメタルスポットインスタンスの実行時間。 | 時間 | 



## 専用ホスト
<a name="dedicated-hosts-billing-usage-reports"></a>


| Code | 説明 | 単位 | 
| --- | --- | --- | 
| region-HostUsage:host-type | 専有ホストがプロビジョニングされる時間。 | 時間 | 
| region-ReservedHostUsage:host-type | 専有ホストの予約が適用される時間。 | 時間 | 



## Dedicated Instances
<a name="dedicated-instances-billing-usage-reports"></a>


| Code | 説明 | 単位 | 
| --- | --- | --- | 
| region-DedicatedUsage:instance-type | ハードウェア専有インスタンスの実行時間。 | 時間 \$1 リージョンごとの料金 | 



## EBS 最適化
<a name="ebs-billing-usage-reports"></a>


| Code | 説明 | 単位 | 
| --- | --- | --- | 
| region-EBSOptimized:instance-type | EBS 最適化が有効になっている時間。 | 時間 | 



## キャパシティ予約
<a name="capacity-reservation-billing-usage-reports"></a>


| Code | 説明 | 単位 | 
| --- | --- | --- | 
| region-Reservation:instance-type | キャパシティ予約のリザーブドインスタンス時間。 | 時間 | 
| region-UnusedBox:instance-type | キャパシティ予約の未使用のリザーブドインスタンス時間。 | 時間 | 
| region-DedicatedRes:instance-type | 専有キャパシティ予約のリザーブドインスタンス時間。 | 時間 | 
| region-UnusedDed:instance-type | 専有キャパシティ予約の未使用のリザーブドインスタンス時間。 | 時間 | 



# EC2 インスタンスのインベントリを作成する
<a name="ec2-data-inventory"></a>

Amazon EC2 は、オンデマンドでスケーラブルなコンピューティング能力を提供します。EC2 インスタンスは AWS ネットワーク上の仮想サーバーです。

次の表で EC2 インスタンスの主要な特徴を説明します。システム管理者は、本書に記載されているガイダンスを使用してこれらの特徴に関する情報を取得し、それを利用して、オンプレミスまたは別のクラウドプロバイダーのネットワークで実行される機能的に同等のサーバーを設定できます。


| 特性 | 説明 | 
| --- | --- | 
| [地理的場所](#ec2-data-geographic-location) | Amazon EC2 は、世界中のすべての AWS リージョンでホストされています。ロケーションは、インスタンスが顧客の近くに配置されるような場所を選択します。複数のロケーションでインスタンスを起動できます。 | 
| [ハードウェア仕様](#ec2-data-specifications) | Amazon EC2 では、幅広いインスタンスタイプの選択肢があり、さまざなユースケースに合わせて最適化できます。インスタンスに選択するインスタンスタイプによって、コンピューティング、メモリ、ネットワーキング、およびストレージのリソースが決まります。 | 
| [イメージ](#ec2-data-images) | Amazon マシンイメージ (AMI) には、起動時にインスタンスにインストールするソフトウェアが含まれています。オペレーティングシステム、ソフトウェアパッケージ、カスタム設定などが含まれます。 | 
| [IP アドレスと DNS ホスト名](#ec2-data-ip-dns) | インスタンスは、プライベート IP アドレスとプライベート DNS ホスト名を受信します。インスタンスにパブリック IP アドレスを設定すると、パブリック DNS ホスト名も受信します。 | 
| 「[セキュリティグループのルール](#ec2-data-rules)」 | インスタンスに関連付けられたセキュリティグループルールによって、許可されるインバウンドトラフィックとアウトバウンドトラフィックが決まります。 | 
| [ユーザーデータ](#ec2-data-user-data) | ユーザーデータは、起動時にインスタンスで利用可能になります。シェルスクリプト (Linux) または PowerShell スクリプト (Windows) で構成されます。 | 

## 地理的場所
<a name="ec2-data-geographic-location"></a>

Amazon EC2 は、世界中のすべての AWS リージョンで利用できます。各リージョンは、個別の地理的領域です。大部分のユーザーに近いリージョンをサーバー向けに選択すると、ネットワークレイテンシーを低減できます。

[Amazon EC2 グローバルビュー](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/global-view.html)を使用すると、すべてのリージョンの Amazon EC2 インスタンスを一覧表示できます。AWS マネジメントコンソールおよび API では、各リージョンのインスタンスを個別に一覧表示する必要があります。

**これが重要な理由**  
インスタンスの場所を特定したら、必要に応じて、機能的に同等のサーバーを同じロケーションにデプロイするか、それとも異なるロケーションにデプロイするかを決定できます。

**すべてのリージョンの EC2 インスタンスの概要を取得するには**

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

1. **[リージョンエクスプローラー]** タブの **[概要]** で、**[インスタンス]** のリソース数を確認します。これには、インスタンスの数とリージョンの数が含まれます。下線付きのテキストをクリックして、インスタンスの数がリージョン全体にどのように分散しているかを確認します。

1. **[グローバル検索]** タブで、クライアントフィルター **[リソースタイプ = インスタンス]** を選択します。リージョンまたはタグを指定することで、結果をさらにフィルタリングできます。

**AWS CLI を使用してリージョンにある EC2 インスタンスの数を取得するには**  
次の [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用して、指定したリージョンにあるインスタンスの数を調べます。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。

```
aws ec2 describe-instances \
    --region us-east-2 \
    --query "length(Reservations[*].Instances[])"
```

以下は出力の例です。

```
27
```

インスタンス数ではなくインスタンス ID のリストを取得するには、代わりに次の `--query` パラメータを使用します。

```
--query "Reservations[*].Instances[].InstanceId"
```

## ハードウェア仕様
<a name="ec2-data-specifications"></a>

EC2 インスタンスに指定するインスタンスタイプによって、使用可能なコンピューティング、メモリ、ストレージ、ネットワーキングのリソースが決まります。各インスタンスファミリはコンピューティング、メモリ、ネットワーク、ストレージのリソースが異なるバランスで構成されています。詳細については[「Amazon EC2 インスタンスタイプガイド」](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html)を参照してください。

**これらが重要な理由**  
インスタンスのハードウェア仕様を決定したら、機能的に同等のサーバーに必要な最小仕様を決定できます。

**インスタンスで使用するインスタンスタイプの概要を取得するには**  
次の [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用します。**sed** コマンドを実行すると、角括弧を含む行と空の行が削除されます。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].InstanceType" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
```

以下は出力の例です。

```
  20    "c6i.4xlarge",
   5    "t2.micro",
   2    "g6e.2xlarge",
```

**特定のインスタンスタイプに関する情報を取得するには**  
次の [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) コマンドを使用すると、インスタンスタイプの説明が表示されます。`--query` パラメータには、出力内に指定されたフィールドのみが含まれます。これらは基本的な特徴です。必要な追加フィールドを含めるか、「*Amazon EC2 インスタンスタイプのガイド*」の「[Amazon EC2 インスタンスタイプの仕様](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-type-specifications.html)」を参照することもできます。

```
aws ec2 describe-instance-types \
    --instance-types c6i.4xlarge t2.micro g6e.2xlarge \
    --query "InstanceTypes[*].[InstanceType,VCpuInfo.DefaultVCpus,MemoryInfo.SizeInMiB,NetworkInfo.NetworkPerformance]" \
    --output table
```

以下は出力の例です。列は、インスタンスタイプ、vCPU、メモリ (GiB)、ネットワーク帯域幅 (Gbps) です。

```
------------------------------------------------------
|                DescribeInstanceTypes               |
+--------------+-----+--------+----------------------+
|  t2.micro    |  1  |  1024  |  Low to Moderate     |
|  c6i.4xlarge |  16 |  32768 |  Up to 12.5 Gigabit  |
|  g6e.2xlarge |  8  |  65536 |  Up to 20 Gigabit    |
+--------------+-----+--------+----------------------+
```

## イメージ
<a name="ec2-data-images"></a>

Amazon マシンイメージ (AMI) は、オペレーティングシステム、サービス、開発ツール、アプリケーションなど、起動時にインスタンスにインストールされるソフトウェアを提供します。AMI を他の形式にエクスポートすると、他のサーバーで使用できます。

**これらが重要な理由**  
インスタンスの AMI を決定したら、機能的に同等のサーバーで必要なイメージを計画できます。AMI を他の場所で使用できる形式にエクスポートできる場合があります。そうでない場合、各 AMI から起動したインスタンスに接続し、インストールされている内容と設定を確認して、必要なものがすべてコピーされていることを確認する必要があります。

**インスタンスの AMI を取得するには**  
次の [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用します。**sed** コマンドを実行すると、角括弧を含む行と空の行が削除されます。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].ImageId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
```

以下は出力の例です。

```
20     "ami-0a70b9d193ae8a79",
 5     "ami-07d9cf938edb0739b",
 2     "ami-09245d5773578a1d6",
```

**特定の AMI に関する情報を取得するには**  
次の [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用します。`--query` パラメータには、出力内に指定されたフィールドのみが含まれます。必要な追加フィールドを含めることができます。

```
aws ec2 describe-images \
    --image-id ami-0a70b9d193ae8a79 ami-07d9cf938edb0739b ami-09245d5773578a1d6 \
    --query "Images[*].{ID:ImageId,CreateDate:CreationDate,Name:Name,Description:Description}"
```

以下は出力の例です。

```
[
    {
        "ID": "ami-0a70b9d193ae8a799",
        "CreateDate": "2025-03-01T02:22:41.000Z",
        "Name": "web-server-3.1",
        "Description": "Image for web servers"
    },
    {
        "ID": "ami-07d9cf938edb0739b",
        "CreateDate": "2025-02-01T23:59:03.000Z",
        "Name": "awesome-application-11.5",
        "Description": "Image for Awesome Application"
    },
    {
        "ID": "ami-09245d5773578a1d6",
        "CreateDate": "2025-01-31T02:22:41.000Z",
        "Name": "monitoring-4.2",
        "Description": "Monitoring software"
    }
]
```

**AMI から VM ファイルを作成するには**  
[export-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/export-image.html) コマンドを使用します。サポートされているイメージ形式は、VHD (Citrix Xen および Microsoft Hyper-V と互換性あり）、VMDK (VMware ESX および VMware vSphere と互換性あり）、および raw 形式 (KVM および Xen ハイパーバイザーと互換性あり) です。VM Import/Export の要件および制限事項については、「[VM Import/Export の要件](https://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html)」を参照してください。

## IP アドレスと DNS ホスト名
<a name="ec2-data-ip-dns"></a>

ユーザーは、パブリック DNS ホスト名を使用してインターネット経由で EC2 インスタンスに接続します。EC2 インスタンスのパブリック DNS ホスト名は、そのパブリック IP アドレスに解決されます。EC2 インスタンスはプライベート IP アドレスを使用して互いに通信できます。

**これらが重要な理由**  
IP アドレスを使用すると、デバイスはローカルネットワークまたはインターネット経由で相互に通信できます。インスタンスの IP アドレスと DNS 名をメモすることで、機能的に同等のサーバーが、インスタンスと同じクライアントまたはデバイスと通信できるようになります。例えば、ロードバランサー設定や、DNS プロバイダー用に作成した DNS レコードを更新できます。

**インスタンスの IP アドレスと DNS ホスト名を取得するには**  
次の [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用します。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。`--query` パラメータには、出力内に指定されたフィールドのみが含まれます。必要な追加フィールドを含めることができます。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].[InstanceId,PrivateIpAddress,PublicDnsName]" \
    --output table
```

以下は出力の例です。列は、インスタンス ID、プライベート IPv4 アドレス、パブリック IPv4 DNS 名です。

```
----------------------------------------------------------------------------------------
|                                   DescribeInstances                                  |
+---------------------+------------+---------------------------------------------------+
| i-0bac57d7472c89bac | 10.0.2.139 | ec2-192-0-2-142.us-east-2.compute.amazonaws.com   |
| i-0fa8b7678975a3fff | 10.0.14.85 | ec2-198-51-100-56.us-east-2.compute.amazonaws.com |
  ...
  ...
| i-08fd74f3f1595fdbd | 10.0.1.241 | ec2-203.0.113.13.us-east-2.compute.amazonaws.com  |
+---------------------+------------+---------------------------------------------------+
```

## 「セキュリティグループのルール」
<a name="ec2-data-rules"></a>

セキュリティグループは、仮想ファイアウォールとして機能します。セキュリティグループを EC2 インスタンスに関連付けると、そのルールにより、特定のポートとプロトコルを介した EC2 インスタンスのインバウンドトラフィックとアウトバウンドトラフィックが許可されます。

**これらが重要な理由**  
サーバーに到達できるインバウンドトラフィックとサーバーから出ることができるアウトバウンドトラフィックを決定した後で、機能的に同等のサーバーに必要なファイアウォールルールを計画できます。

**インスタンスのセキュリティグループを取得するには**  
次の [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用します。**sed** コマンドを実行すると、角括弧を含む行と空の行が削除されます。このコマンドは、インスタンスがあるリージョンごとに実行する必要があります。

```
aws ec2 describe-instances \
    --query "Reservations[*].Instances[].SecurityGroups[].GroupId" | sed 's/[][]//g;/^$/d' | sort | uniq -c | sort -nr
```

以下は出力の例です。

```
27     "sg-01dd3383691d02f42",
10     "sg-08c77cc910c0b3b2c",
 2     "sg-00f4e409629f1a42d",
```

**セキュリティグループのインバウンドルールを取得するには**  
次の [describe-security-group-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-group-rules.html) コマンドを使用して、`IsEgress` が `false` である指定されたセキュリティグループのルールを表示します。

```
aws ec2 describe-security-group-rules \
    --filters Name=group-id,Values=sg-01dd3383691d02f42 \
    --query 'SecurityGroupRules[?IsEgress==`false`]'
```

以下は出力の例です。最初のルールはデフォルトのインバウンドルールで、このセキュリティグループに割り当てられたすべてのリソースからのインバウンドトラフィックを許可します。もう 1 つのルールは、指定されたプレフィックスリストの IP アドレスからの SSH トラフィックを許可します。プレフィックスリストの CIDR ブロックを記述するには、[describe-prefix-lists](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-prefix-lists.html) コマンドを実行します。

```
[
    {
        "SecurityGroupRuleId": "sgr-06c8b42574a91db1b",
        "GroupId": "sg-01dd3383691d02f42",
        "GroupOwnerId": "123456789012",
        "IsEgress": false,
        "IpProtocol": "-1",
        "FromPort": -1,
        "ToPort": -1,
        "ReferencedGroupInfo": {
            "GroupId": "sg-01dd3383691d02f42",
            "UserId": "123456789012"
        },
        "Tags": [],
        "SecurityGroupRuleArn": "arn:aws:ec2:us-west-2:123456789012:security-group-rule/sgr-06c8b42574a91db1b"
    },
    {
        "SecurityGroupRuleId": "sgr-0886a5d46afcd1758",
        "GroupId": "sg-01dd3383691d02f42",
        "GroupOwnerId": "123456789012",
        "IsEgress": false,
        "IpProtocol": "tcp",
        "FromPort": 22,
        "ToPort": 22,
        "PrefixListId": "pl-f8a6439125e7bf465",
        "Tags": [],
        "SecurityGroupRuleArn": "arn:aws:ec2:us-east-2:123456789012:security-group-rule/sgr-0886a5d46afcd1758"
    }
]
```

**セキュリティグループのアウトバウンドルールを取得するには**  
次の [describe-security-group-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-group-rules.html) コマンドを使用して、`IsEgress` が `true` である指定されたセキュリティグループのルールを表示します。

```
aws ec2 describe-security-group-rules \
    --filters Name=group-id,Values=sg-01dd3383691d02f42 \
    --query 'SecurityGroupRules[?IsEgress==`true`]'
```

以下は出力の例です。これには、すべてのアウトバウンド IPv4 トラフィックを許可するデフォルトのアウトバウンドルールのみが含まれます。

```
[
    {
        "SecurityGroupRuleId": "sgr-048f09a719247dce7",
        "GroupId": "sg-01dd3383691d02f42",
        "GroupOwnerId": "123456789012",
        "IsEgress": true,
        "IpProtocol": "-1",
        "FromPort": -1,
        "ToPort": -1,
        "CidrIpv4": "0.0.0.0/0",
        "Tags": [],
        "SecurityGroupRuleArn": "arn:aws:ec2:us-east-2:123456789012:security-group-rule/sgr-048f09a719247dce7"
    }
]
```

## ユーザーデータ
<a name="ec2-data-user-data"></a>

EC2 インスタンスを起動するときに、ユーザーデータを使用してシェルスクリプトをインスタンスに渡すことができます。ユーザーデータは base64 でエンコードされているため、スクリプトを読み取るにはユーザーデータをデコードする必要があることに注意してください。

**これが重要な理由**  
インスタンスの設定の一環として起動時にコマンドを実行している場合は、機能的に同等のサーバーを設定する際にも同じタスクを実行する必要がある場合があります。

**インスタンスのデコードされたユーザーデータを表示するには**  
次の [describe-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-attribute.html) コマンドを使用します。**base64** コマンドはユーザーデータをデコードします。

```
aws ec2 describe-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --attribute userData \
    --output text \
    --query "UserData.Value" | base64 --decode
```

以下は出力の例です。

```
#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on
```

## 関連リソース
<a name="ec2-data-related-resources"></a>

EC2 インスタンスの追加の特徴は次のとおりです。
+ [キーペア](ec2-key-pairs.md)
+ [[Storage (ストレージ)](Storage.md)]
+ [[タグ]](Using_Tags.md)

以下を使用して EC2 インスタンスを起動しているか、EC2 インスタンス間でトラフィックを分散しているかどうかを確認できます。
+ 「[Auto Scaling グループ](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html)」
+ [EC2 Fleet](Fleets.md)
+ [エラスティックロードバランシング](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/)