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

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

Amazon は、新しい Amazon EC2 インスタンスへの CloudWatch エージェントのインストールおよび更新に役立つ複数の AWS CloudFormation テンプレートを GitHub にアップロードしています。AWS CloudFormation の使用の詳細については、「AWS CloudFormation とは」を参照してください。

テンプレートの場所は、AWS CloudFormation を使用して Amazon CloudWatch エージェントを EC2 インスタンスにデプロイするです。この場所には、inline ディレクトリと ssm ディレクトリの両方が含まれます。各ディレクトリに Linux インスタンスと Windows インスタンスの両方のテンプレートが含まれています。

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

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

    { "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 テンプレートの場合、すべてのプレースホルダ変数の先頭にエスケープ文字として感嘆符 (!) が必要です。これは、サンプルテンプレートで確認できます。他のプレースホルダ変数を追加する場合は、変数名の前に感嘆符を追加します。

  • ssm ディレクトリのテンプレートでは、エージェント設定ファイルを Parameter Store からロードします。これらのテンプレートを使用するには、最初に設定ファイルを作成して Parameter Store にアップロードする必要があります。次に、このファイルの Parameter Store 名をテンプレート内で指定します。設定ファイルは手動で作成するか、ウィザードで作成できます。詳細については、「CloudWatch エージェント設定ファイルを作成する」を参照してください。

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

チュートリアル: AWS CloudFormation inline テンプレートを使用して CloudWatch エージェントをインストールおよび設定する

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

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

AWS CloudFormation を使用して新しいインスタンスに CloudWatch エージェントをインストールするには
  1. GitHub からテンプレートをダウンロードします。このチュートリアルでは、次のように Amazon Linux 2 の inline テンプレートをダウンロードします。

    curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/inline/amazon_linux.template
  2. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

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

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

  5. [詳細の指定] ページで、以下のパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。

    • IAMRole: CloudWatch メトリクス、ログ、トレースを書き込むアクセス許可を持つ IAM ロールを選択します。詳細については、「Amazon EC2 インスタンスの CloudWatch エージェントで使用する IAM ロールを作成する」を参照してください。

    • InstanceAMI: スタックを起動するリージョンで有効な AMI を選択します。

    • InstanceType: 有効なインスタンスタイプを選択します。

    • KeyName: 新しいインスタンスへの SSH アクセスを有効にするには、既存の Amazon EC2 キーペアを選択します。Amazon EC2 キーペアをまだ持っていない場合は、 で作成できますAWS Management Console 詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のキーペア」を参照してください。

    • SSHLocation: SSH を使用してインスタンスに接続するために使用できる IP アドレス範囲を指定します。デフォルトでは、任意の IP アドレスからのアクセスを許可します。

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

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

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

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

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

    rpm -qa amazon-cloudwatch-agent

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

    ps aux | grep amazon-cloudwatch-agent

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

AWS CloudFormation を使用して CloudWatch エージェントを更新するには
  1. 前の手順でダウンロードしたテンプレートで、以下の行を削除し、テンプレートを保存します。

    "mem": { "measurement": [ "mem_used_percent" ] },
  2. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

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

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

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

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

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

チュートリアル: AWS CloudFormation と Parameter Store を使用して CloudWatch エージェントをインストールする

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

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

AWS CloudFormation を使用して、Parameter Store の設定により CloudWatch エージェントを新しいインスタンスにインストールするには
  1. まだ行っていない場合は、CloudWatch エージェントパッケージをコンピュータにダウンロードし、エージェント設定ファイルを作成できるようにします。Parameter Store を使用したエージェントの詳細とダウンロードについては、「CloudWatch エージェントをダウンロードして設定する」を参照してください。コマンドラインを使用したパッケージの詳細とダウンロードについては、「コマンドラインを使用して CloudWatch エージェントをダウンロードおよび設定する」を参照してください。

  2. Parameter Store でエージェント設定ファイルを作成して保存します。詳細については、「CloudWatch エージェント設定ファイルを作成する」を参照してください。

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

    curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/ssm/amazon_linux.template
  4. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

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

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

  7. [詳細の指定] ページで、必要に応じて以下のパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。

    • IAMRole: CloudWatch メトリクス、ログ、トレースを書き込むアクセス許可を持つ IAM ロールを選択します。詳細については、「Amazon EC2 インスタンスの CloudWatch エージェントで使用する IAM ロールを作成する」を参照してください。

    • InstanceAMI: スタックを起動するリージョンで有効な AMI を選択します。

    • InstanceType: 有効なインスタンスタイプを選択します。

    • KeyName: 新しいインスタンスへの SSH アクセスを有効にするには、既存の Amazon EC2 キーペアを選択します。Amazon EC2 キーペアをまだ持っていない場合は、 で作成できますAWS Management Console 詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のキーペア」を参照してください。

    • SSHLocation: SSH を使用してインスタンスに接続するために使用できる IP アドレス範囲を指定します。デフォルトでは、任意の IP アドレスからのアクセスを許可します。

    • SSMKey: Parameter Store で作成して保存したエージェント設定ファイルを指定します。

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

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

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

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

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

    rpm -qa amazon-cloudwatch-agent

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

    ps aux | grep amazon-cloudwatch-agent

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

AWS CloudFormation を使用して、Parameter Store の設定により CloudWatch エージェントを更新するには
  1. 必要に応じて、Parameter Store に保存したエージェント設定ファイルを新しい設定に変更します。

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

  3. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

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

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

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

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

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

AWS CloudFormation での CloudWatch エージェントのインストールのトラブルシューティング

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

更新が失敗した場合の検出

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

メトリクスが見つからない

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