

# インスタンスに対する 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"
}
```