メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

例: カスタム Amazon CloudWatch メトリクスの使用

Amazon CloudWatch は、さまざまなメトリクスをモニタリング、管理、発行し、メトリクスからのデータに基づいてアラームアクションを設定できるウェブサービスです。独自に使用するカスタムメトリクスを定義でき、Elastic Beanstalk はそのようなメトリクスを Amazon CloudWatch にプッシュします。Amazon CloudWatch に組み込まれたカスタムメトリクスは、Amazon CloudWatch コンソールで表示できます。

Amazon CloudWatch の Linux 用モニタリングスクリプトを使用して、Amazon CloudWatch カスタムメトリクスの作成方法と使用方法を確認できます。このスクリプトは、Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスのメモリ、スワップ、およびディスクスペースの使用状況メトリクスをレポートする、完全に機能する例で構成されます。Amazon CloudWatch モニタリングスクリプトの詳細については、『Amazon CloudWatch Developer Guide』の「Amazon CloudWatch Monitoring Scripts for Linux」を参照してください。

注記

Elastic Beanstalk の拡張ヘルスレポートでは、CloudWatch への幅広いインスタンスと環境メトリクスの発行がネイティブでサポートされています。詳細については、「環境の Amazon CloudWatch カスタムメトリクスのパブリッシュ」を参照してください。

.ebextensions 設定ファイル

この例では、.ebextensions 設定ファイルでコマンドおよびオプション設定を使用して、Amazon CloudWatch で提供されているモニタリングスクリプトをダウンロード、インストール、および実行しています。

このサンプルを使用するには、プロジェクトディレクトリの最上位にある .ebextensions ディレクトリに cloudwatch.config というファイル名で保存した後、AWS マネジメントコンソール (ソースバンドルに .ebextensions ディレクトリを含める) または EB CLI を使用してアプリケーションをデプロイします。

設定ファイルについて詳しくは、設定ファイル (.ebextensions) による高度な環境のカスタマイズ を参照してください。

.ebextensions/cloudwatch.config

packages:
  yum:
    perl-DateTime: []
    perl-Sys-Syslog: []
    perl-LWP-Protocol-https: []
    perl-Switch: []
    perl-URI: []
    perl-Bundle-LWP: []

sources: 
  /opt/cloudwatch: http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip
  
container_commands:
  01-setupcron:
    command: |
      echo '*/5 * * * * root perl /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl `{"Fn::GetOptionSetting" : { "OptionName" : "CloudWatchMetrics", "DefaultValue" : "--mem-util --disk-space-util --disk-path=/" }}` >> /var/log/cwpump.log 2>&1' > /etc/cron.d/cwpump
  02-changeperm:
    command: chmod 644 /etc/cron.d/cwpump
  03-changeperm:
    command: chmod u+x /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl

option_settings:
  "aws:autoscaling:launchconfiguration" :
    IamInstanceProfile : "aws-elasticbeanstalk-ec2-role"
  "aws:elasticbeanstalk:customoption" :
    CloudWatchMetrics : "--mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --disk-path=/ --auto-scaling"

設定ファイルが正しく動作することを確認したら、ログファイル (>> /var/log/cwpump.log 2>&1') から /dev/null (> /dev/null) にリダイレクトされるコマンドを変更して、ディスク使用率を一定に保つことができます。

アクセス許可

カスタム Amazon CloudWatch メトリクスを発行するには、環境内のインスタンスに CloudWatch を使用するためのアクセス権限が必要です。環境のインスタンスプロファイルにアクセス権限を追加することにより、その環境のインスタンスにアクセス権限を付与できます。アプリケーションをデプロイする前または後のどちらでも、インスタンスプロファイルにアクセス権限を追加できます。

CloudWatch メトリックを発行する許可を付与するには

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. 環境のインスタンスプロファイルのロールを選択します。デフォルトでは、AWS マネジメントコンソール または EB CLI を使用して環境を作成する場合のロールは aws-elasticbeanstalk-ec2-role です。

  4. [Permissions] タブを選択します。

  5. [Permissions] の [Inline Policies(インラインポリシー)] で、[Create Role Policy(ロールポリシーの作成)] を選択します。

  6. [Custom Policy] を選択し、[Select] を選択します。

  7. 次のフィールドに入力し、[Apply Policy(ポリシーの適用)] を選択します。

    ポリシー名

    ポリシーの名前。

    ポリシードキュメント

    次のテキストをコピーしてポリシードキュメントに貼り付けます。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
            "cloudwatch:PutMetricData",
            "ec2:DescribeTags"
          ],
          "Effect": "Allow",
          "Resource": [
            "*"
          ]
        }
      ]
    }

    ポリシーの管理の詳細については、IAM ユーザーガイドの「ポリシーの使用」を参照してください。

CloudWatch コンソールでのメトリクスの表示

CloudWatch の設定ファイルを環境にデプロイした後、Amazon CloudWatch コンソールを確認してメトリクスを表示します。カスタムメトリクスには Linux System というプレフィックスが付きます。