

# CloudFormation を使用して新しいインスタンスに CloudWatch エージェントをインストールする
<a name="Install-CloudWatch-Agent-New-Instances-CloudFormation"></a>

 このセクションでは、AWS CloudFormation を使用して、新しい Amazon EC2 インスタンスに CloudWatch エージェントをインストールする方法について説明します。

**注記**  
 Amazon は、新しい Amazon EC2 インスタンスへの CloudWatch エージェントのインストールおよび更新に役立つ複数の CloudFormation テンプレートを GitHub にアップロードしています。CloudFormation の使用の詳細については、「[AWS CloudFormation とは](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)」を参照してください。

テンプレートの場所は、[CloudFormation を使用して Amazon CloudWatch エージェントを EC2 インスタンスにデプロイする](https://github.com/aws-cloudformation/aws-cloudformation-templates/tree/main/Solutions/AmazonCloudWatchAgent)です。この場所には、`inline` ディレクトリと `ssm` ディレクトリの両方が含まれます。各ディレクトリに Linux インスタンスと Windows インスタンスの両方のテンプレートが含まれています。


+ `inline` ディレクトリのテンプレートの場合は、CloudWatch エージェント設定が CloudFormation テンプレートに埋め込まれています。デフォルトでは、Linux テンプレートが `mem_used_percent` メトリクスと `swap_used_percent` メトリクスを収集し、Windows テンプレートが `Memory % Committed Bytes In Use` メトリクスと `Paging File % Usage` メトリクスを収集します。

  さまざまなメトリクスが収集されるようにこれらのテンプレートを変更するには、テンプレートの次のセクションを変更します。Linux サーバーのテンプレートの例を次に示します。これらの変更を行うには、エージェント設定ファイルの形式と構文に従ってください。詳細については、「[CloudWatch エージェント設定ファイルを手動で作成または編集する](CloudWatch-Agent-Configuration-File-Details.md)」を参照してください。

  ```
  {
     "metrics":{
        "append_dimensions":{
           "AutoScalingGroupName":"${!aws:AutoScalingGroupName}",
           "ImageId":"${!aws:ImageId}",
           "InstanceId":"${!aws:InstanceId}",
           "InstanceType":"${!aws:InstanceType}"
        },
        "metrics_collected":{
           "mem":{
              "measurement":[
                 "mem_used_percent"
              ]
           },
           "swap":{
              "measurement":[
                 "swap_used_percent"
              ]
           }
        }
     }
  }
  ```
**注記**  
inline テンプレートの場合、すべてのプレースホルダ変数の先頭にエスケープ文字として感嘆符 (\$1) が必要です。これは、サンプルテンプレートで確認できます。他のプレースホルダ変数を追加する場合は、変数名の前に感嘆符を追加します。
+ `ssm` ディレクトリのテンプレートでは、エージェント設定ファイルを Parameter Store からロードします。これらのテンプレートを使用するには、最初に設定ファイルを作成して Parameter Store にアップロードする必要があります。次に、このファイルの Parameter Store 名をテンプレート内で指定します。設定ファイルは手動で作成するか、ウィザードで作成できます。詳細については、「[CloudWatch エージェント設定ファイルを作成する](create-cloudwatch-agent-configuration-file.md)」を参照してください。

CloudWatch エージェントのインストールとエージェント設定の更新には、両方のタイプのテンプレートを使用できます。

Security-Enhanced Linux (SELinux) が有効になっているシステムでエージェントを設定する方法については、「[Security-Enhanced Linux (SELinux) で CloudWatch エージェントをセットアップする](CloudWatch-Agent-SELinux.md)」を参照してください。

## チュートリアル: CloudFormation inline テンプレートを使用して CloudWatch エージェントをインストールおよび設定する
<a name="installing-CloudWatch-Agent-using-CloudFormation-Templates-inline"></a>

このチュートリアルでは、CloudFormation を使用して新しい Amazon EC2 インスタンスに CloudWatch エージェントをインストールする手順について説明します。このチュートリアルでは、inline テンプレートを使用して Amazon Linux 2 を実行する新しいインスタンスにインストールします。この場合、JSON 設定ファイルや Parameter Store を使用する必要はありません。inline テンプレートの場合、テンプレートにエージェント設定が含まれています。このチュートリアルでは、テンプレートに含まれているデフォルトのエージェント設定を使用します。

エージェントのインストール手順を示した後で、エージェントの更新方法を示します。

**CloudFormation を使用して新しいインスタンスに CloudWatch エージェントをインストールするには**

1. GitHub からテンプレートをダウンロードします。このチュートリアルでは、次のように Amazon Linux 2 の inline テンプレートをダウンロードします。

   ```
   curl -O https://raw.githubusercontent.com/aws-cloudformation/aws-cloudformation-templates/main/Solutions/AmazonCloudWatchAgent/inline/amazon_linux.yaml
   ```

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

1. [**Create stack**] を選択します。

1. [**テンプレートの選択**] で、[**テンプレートを Amazon S3 にアップロード**] を選択し、ダウンロード済みのテンプレートを選択して [**次へ**] を選択します。

1. [**詳細の指定**] ページで、以下のパラメータを指定し、[**次へ**] を選択します。
   + **Stack name**: CloudFormation スタックのスタック名を選択します。
   + **IAMRole**: CloudWatch メトリクス、ログ、トレースを書き込むアクセス許可を持つ IAM ロールを選択します。詳細については、「[前提条件](prerequisites.md)」を参照してください。
   + **InstanceAMI**: スタックを起動するリージョンで有効な AMI を選択します。
   + **InstanceType**: 有効なインスタンスタイプを選択します。
   + **KeyName**: 新しいインスタンスへの SSH アクセスを有効にするには、既存の Amazon EC2 キーペアを選択します。Amazon EC2 キーペアをまだ持っていない場合は、AWS マネジメントコンソール で作成できます。詳細については、「Amazon EC2 ユーザーガイド」の「[Amazon EC2 キーペア](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)」を参照してください。
   + **SSHLocation**: SSH を使用してインスタンスに接続するために使用できる IP アドレス範囲を指定します。デフォルトでは、任意の IP アドレスからのアクセスを許可します。

1. [**オプション**] ページで、スタックリソースをタグ付けできます。[**次へ**] を選択します。

1. [**レビュー**] ページで、情報を確認して、スタックで IAM リソースが作成されることを認識し、[**作成**] を選択します。

   コンソールを更新すると、新しいスタックが `CREATE_IN_PROGRESS` スタータスで表示されます。

1. インスタンスが作成されると、Amazon EC2 コンソールに表示されます。必要に応じてホストに接続し、進行状況をチェックできます。

   エージェントがインストールされたことを確認するには、次のコマンドを使用します。

   ```
   rpm -qa amazon-cloudwatch-agent
   ```

   エージェントが実行中であることを確認するには、次のコマンドを使用します。

   ```
   ps aux | grep amazon-cloudwatch-agent
   ```

次の手順では、inline テンプレートを使用して CloudFormation で CloudWatch エージェントを更新する方法を示します。デフォルトの inline テンプレートでは `mem_used_percent` メトリクスを収集します。このチュートリアルでは、このメトリクスの収集を停止するようにエージェント設定を変更します。

**CloudFormation を使用して CloudWatch エージェントを更新するには**

1. 前の手順でダウンロードしたテンプレートで、以下の行を削除し、テンプレートを保存します。

   ```
   "mem": {
                           
        "measurement": [
            "mem_used_percent"
          ]
    },
   ```

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

1. CloudFormation ダッシュボードで、作成したスタックを選択後、[**スタックの更新**] を選択します。

1. [**テンプレートの選択**] で、[**テンプレートを Amazon S3 にアップロード**] を選択し、変更したテンプレートを選択して [**次へ**] を選択します。

1. [**オプション**] ページで、[**次へ**]、[**次へ**] の順に選択します。

1. [**確認**] ページで情報を確認し、[**更新**] を選択します。

   しばらくすると、`UPDATE_COMPLETE` と表示されます。

## チュートリアル: CloudFormation と Parameter Store を使用して CloudWatch エージェントをインストールする
<a name="installing-CloudWatch-Agent-using-CloudFormation-Templates"></a>

このチュートリアルでは、CloudFormation を使用して新しい Amazon EC2 インスタンスに CloudWatch エージェントをインストールする手順について説明します。このチュートリアルでは、Parameter Store で作成して保存したエージェント設定ファイルを使用して、Amazon Linux 2 を実行する新しいインスタンスにインストールします。

エージェントのインストール手順を示した後で、エージェントの更新方法を示します。

**CloudFormation を使用して、Parameter Store の設定により CloudWatch エージェントを新しいインスタンスにインストールするには**

1. まだ行っていない場合は、CloudWatch エージェントパッケージをコンピュータにダウンロードし、エージェント設定ファイルを作成できるようにします。Parameter Store を使用したエージェントの詳細とダウンロードについては、「[CloudWatch エージェントパッケージをダウンロードする](download-CloudWatch-Agent-on-EC2-Instance-commandline-first.md)」を参照してください。

1. Parameter Store でエージェント設定ファイルを作成して保存します。詳細については、「[CloudWatch エージェント設定ファイルを作成する](create-cloudwatch-agent-configuration-file.md)」を参照してください。

1. 次のように、GitHub からテンプレートをダウンロードします。

   ```
   curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/ssm/amazon_linux.template
   ```

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

1. [**Create stack**] を選択します。

1. [**テンプレートの選択**] で、[**テンプレートを Amazon S3 にアップロード**] を選択し、ダウンロードしたテンプレートを選択して [**次へ**] を選択します。

1. [**詳細の指定**] ページで、必要に応じて以下のパラメータを指定し、[**次へ**] を選択します。
   + **Stack name**: CloudFormation スタックのスタック名を選択します。
   + **IAMRole**: CloudWatch メトリクス、ログ、トレースを書き込むアクセス許可を持つ IAM ロールを選択します。詳細については、「[前提条件](prerequisites.md)」を参照してください。
   + **InstanceAMI**: スタックを起動するリージョンで有効な AMI を選択します。
   + **InstanceType**: 有効なインスタンスタイプを選択します。
   + **KeyName**: 新しいインスタンスへの SSH アクセスを有効にするには、既存の Amazon EC2 キーペアを選択します。Amazon EC2 キーペアをまだ持っていない場合は、AWS マネジメントコンソール で作成できます。詳細については、「Amazon EC2 ユーザーガイド」の「[Amazon EC2 キーペア](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)」を参照してください。
   + **SSHLocation**: SSH を使用してインスタンスに接続するために使用できる IP アドレス範囲を指定します。デフォルトでは、任意の IP アドレスからのアクセスを許可します。
   + **SSMKey**: Parameter Store で作成して保存したエージェント設定ファイルを指定します。

1. [**オプション**] ページで、スタックリソースをタグ付けできます。[**次へ**] を選択します。

1. [**レビュー**] ページで、情報を確認して、スタックで IAM リソースが作成されることを認識し、[**作成**] を選択します。

   コンソールを更新すると、新しいスタックが `CREATE_IN_PROGRESS` スタータスで表示されます。

1. インスタンスが作成されると、Amazon EC2 コンソールに表示されます。必要に応じてホストに接続し、進行状況をチェックできます。

   エージェントがインストールされたことを確認するには、次のコマンドを使用します。

   ```
   rpm -qa amazon-cloudwatch-agent
   ```

   エージェントが実行中であることを確認するには、次のコマンドを使用します。

   ```
   ps aux | grep amazon-cloudwatch-agent
   ```

次の手順では、Parameter Store に保存したエージェント設定を使用して、CloudFormation により CloudWatch エージェントを更新する方法を示します。

**CloudFormation を使用して、Parameter Store の設定により CloudWatch エージェントを更新するには**

1. 必要に応じて、Parameter Store に保存したエージェント設定ファイルを新しい設定に変更します。

1. CloudFormation トピックでダウンロードした [チュートリアル: CloudFormation と Parameter Store を使用して CloudWatch エージェントをインストールする](#installing-CloudWatch-Agent-using-CloudFormation-Templates) テンプレートで、バージョン番号を変更します。たとえば、`VERSION=1.0` を `VERSION=2.0` に変更できます。

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

1. CloudFormation ダッシュボードで、作成したスタックを選択後、[**スタックの更新**] を選択します。

1. [**テンプレートの選択**] で、[**テンプレートを Amazon S3 にアップロード**] を選択し、変更したテンプレートを選択して [**次へ**] を選択します。

1. [**オプション**] ページで、[**次へ**]、[**次へ**] の順に選択します。

1. [**確認**] ページで情報を確認し、[**更新**] を選択します。

   しばらくすると、`UPDATE_COMPLETE` と表示されます。

## CloudFormation での CloudWatch エージェントのインストールのトラブルシューティング
<a name="CloudWatch-Agent-CloudFormation-troubleshooting"></a>

このセクションは、 CloudFormationによる CloudWatch エージェントのインストールおよび更新に関する問題のトラブルシューティングに役立ちます。

### 更新が失敗した場合の検出
<a name="CloudWatch-Agent-troubleshooting-Detecting-CloudFormation-update-issues"></a>

CloudFormation を使用して CloudWatch エージェントの設定を更新し、無効な設定を使用すると、エージェントは CloudWatch へのあらゆるメトリクスの送信を停止します。エージェント設定が正常に更新されたかどうかは、`cfn-init-cmd.log` ファイルで簡単に確認できます。Linux サーバーの場合、このファイルは `/var/log/cfn-init-cmd.log` にあります。Windows インスタンスの場合、このファイルは `C:\cfn\log\cfn-init-cmd.log` にあります。

### メトリクスが見つからない
<a name="CloudWatch-Agent-troubleshooting-Cloudformation-missing-metrics"></a>

エージェントのインストールまたは更新後に必要なメトリクスが表示されない場合は、そのメトリクスを収集するようにエージェントが設定されていることを確認します。そのためには、`amazon-cloudwatch-agent.json` ファイルにメトリクスが表示されていることと、正しいメトリクスの名前空間を参照していることを確認します。詳細については、「[CloudWatch エージェントファイルとロケーション](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-files-and-locations)」を参照してください。