翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Elastic Beanstalk 拡張ヘルスレポートによって収集されたデータをカスタムメトリクスとして Amazon CloudWatch に公開できます。CloudWatch にメトリクスをパブリッシュすることにより、時間の経過に伴うアプリケーションのパフォーマンスの変化をモニタリングできるほか、リソースの使用状況やリクエストのレイテンシーが負荷に応じてどのようにスケーリングするかを追跡することによって、発生する可能性のある問題を特定できます。
また、CloudWatch にメトリクスをパブリッシュすることにより、モニタリンググラフとアラームでメトリクスを使用できます。無料のメトリクスである EnvironmentHealth は、拡張ヘルスレポートを使用するとき、自動的に有効になります。EnvironmentHealth 以外のカスタムメトリクスを使用する場合、CloudWatch の標準料金
環境の CloudWatch カスタムメトリクスをパブリッシュするには、まず環境で拡張ヘルスレポートを有効にする必要があります。手順については「Elastic Beanstalk の拡張ヘルスレポートの有効化」を参照してください。
トピック
拡張ヘルスレポートのメトリクス
環境で拡張ヘルスレポートを有効にすると、拡張ヘルスレポートシステムが CloudWatch カスタムメトリクスの 1 つである EnvironmentHealth を自動的にパブリッシュします。追加のメトリクスを CloudWatch にパブリッシュするには、Elastic Beanstalk コンソール、EB CLI、または .ebextensions を使用して、これらのメトリクスで環境を設定します。
環境から、次の拡張ヘルスメトリクスを CloudWatch にパブリッシュすることができます。
使用可能なメトリクス - すべてのプラットフォーム
EnvironmentHealth
-
環境のみが対象。他のメトリクスを設定していなければ、拡張ヘルスレポートシステムからパブリッシュされる唯一の CloudWatch メトリクスです。環境の状態は、7 種類のステータスのいずれかで表されます。CloudWatch コンソールでは、これらのステータスは以下の値にマッピングされます。
-
0 – OK
-
1 – Info
-
5 – Unknown
-
10 – No data
-
15 – Warning
-
20 – Degraded
-
25 – Severe
-
InstancesSevere
InstancesDegraded
InstancesWarning
InstancesInfo
InstancesOk
InstancesPending
InstancesUnknown
InstancesNoData
-
環境のみが対象。これらのメトリクスは、各ヘルスステータスにある環境内のインスタンスの数を示します。
InstancesNoData
は、データを受け取っていないインスタンスの数を示します (該当する場合)。 ApplicationRequestsTotal
ApplicationRequests5xx
ApplicationRequests4xx
ApplicationRequests3xx
ApplicationRequests2xx
-
インスタンスと環境が対象。インスタンスまたは環境で完了したリクエストの総数と、各ステータスコードカテゴリで完了したリクエストの数を示します。
ApplicationLatencyP10
ApplicationLatencyP50
ApplicationLatencyP75
ApplicationLatencyP85
ApplicationLatencyP90
ApplicationLatencyP95
ApplicationLatencyP99
ApplicationLatencyP99.9
-
インスタンスと環境が対象。リクエストのうち、早い方から x パーセントの完了にかかった平均時間を直ちに示します。
InstanceHealth
-
インスタンスのみが対象。インスタンスの現在のヘルスステータスを示します。インスタンスの状態は、7 種類のステータスのいずれかで表されます。CloudWatch コンソールでは、これらのステータスは以下の値にマッピングされます。
-
0 – OK
-
1 – Info
-
5 – Unknown
-
10 – No data
-
15 – Warning
-
20 – Degraded
-
25 – Severe
-
使用可能なメトリクス - Linux
CPUIrq
CPUIdle
CPUUser
CPUSystem
CPUSoftirq
CPUIowait
CPUNice
-
インスタンスのみが対象。過去 1 分間に CPU が各状態で消費した時間の割合を示します。
LoadAverage1min
-
インスタンスのみが対象。インスタンスに関する過去 1 分間の CPU 負荷の平均値。
RootFilesystemUtil
-
インスタンスのみが対象。使用中のディスク容量の割合を示します。
利用可能なメトリクス - Windows
CPUIdle
CPUUser
CPUPrivileged
-
インスタンスのみが対象。過去 1 分間に CPU が各状態で消費した時間の割合を示します。
Elastic Beanstalk コンソールを使用した CloudWatch メトリクスの設定
Elastic Beanstalk コンソールを使用して、拡張ヘルスレポートのメトリクスを CloudWatch にパブリッシュし、モニタリンググラフとアラームで使用できるように環境を設定できます。
Elastic Beanstalk コンソールで CloudWatch カスタムメトリクスを設定するには
Elastic Beanstalk コンソール
を開き、リージョンリストで を選択します AWS リージョン。 -
ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。
注記
環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。
ナビゲーションペインで、[設定] を選択します。
-
[モニタリング] 設定カテゴリで、[編集] を選択します。
-
[Health reporting (ヘルプレポート)] で、CloudWatch に公開するインスタンスと環境のメトリクスを選択します。複数のメトリクスを選択するには、Ctrl キーを押して選択します。
-
ページの最下部で [適用] を選択し変更を保存します。
CloudWatch カスタムメトリクスを有効にすると、[Monitoring (モニタリング)] ページで使用できるメトリクスのリストにこれらのメトリクスが追加されます。
EB CLI を使用した CloudWatch カスタムメトリクスの設定
EB CLI を使用すると、環境の設定をローカルに保存し、パブリッシュするメトリクスを定義するエントリを追加してから、その設定を Elastic Beanstalk にアップロードすることによって、カスタムメトリクスを設定できます。保存した設定は、環境を作成する前または作成した後に環境に適用できます。
EB CLI と保存した設定を使用して CloudWatch カスタムメトリクスを設定するには
-
eb init でプロジェクトフォルダを初期化します。
-
eb create コマンドを実行して、環境を作成します。
-
eb config save コマンドを実行して、設定テンプレートをローカルに保存します。次の例では、
--cfg
オプションを使用して、設定の名前が指定されています。$
eb config save --cfg
Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml01-base-state
-
保存した設定ファイルをテキストエディタで開きます。
-
OptionSettings
>aws:elasticbeanstalk:healthreporting:system:
で、CloudWatch メトリクスを個別に有効にするConfigDocument
キーを追加します。たとえば、次に示すConfigDocument
は、環境レベルでApplicationRequests5xx
メトリクスとApplicationRequests4xx
メトリクスをパブリッシュし、インスタンスレベルでApplicationRequestsTotal
メトリクスをパブリッシュします。OptionSettings: ... aws:elasticbeanstalk:healthreporting:system:
ConfigDocument: CloudWatchMetrics: Environment: ApplicationRequests5xx: 60 ApplicationRequests4xx: 60 Instance: ApplicationRequestsTotal: 60 Version: 1
SystemType: enhanced ...この例では、60 は測定間隔の秒数を示しています。これは、現在サポートされている唯一の値です。
注記
同じ
ConfigDocument
オプション設定で、CloudWatchMetrics
とRules
を組み合わせることができます。Rules
については、「環境の拡張ヘルスルールの設定」で説明しています。以前に
Rules
を使用して拡張ヘルスルールを設定している場合、eb config save コマンドを使用して取得される設定ファイルには、既にConfigDocument
キーがRules
セクションにあります。削除しないでください。同じConfigDocument
オプション値にCloudWatchMetrics
セクションを追加します。 -
設定ファイルを保存し、テキストエディタを閉じます。この例では、更新した設定ファイルは、ダウンロードした設定ファイルとは異なる名前 (
02-cloudwatch-enabled.cfg.yml
) で保存されています。このファイルがアップロードされると、別の保存済み設定が作成されます。ダウンロードしたファイル同じ名前を使用すると、新しいキーペアを作成せずに既存の設定を上書きできます。 -
eb config put コマンドを使用して、更新した設定ファイルを Elastic Beanstalk にアップロードします。
$
eb config put
02-cloudwatch-enabled
保存した設定に対して eb config
get
コマンドとput
コマンドを使用するときは、ファイル拡張子を含めないでください。 -
実行中の環境に、保存済みの設定を適用します。
$
eb config --cfg
02-cloudwatch-enabled
--cfg
オプションは、環境に適用される名前付き設定ファイルを指定します。設定ファイルはローカルまたは Elastic Beanstalk に保存できます。指定した名前を持つ設定ファイルが両方の場所に存在する場合、EB CLI はローカルファイルを使用します。
カスタムメトリクス設定ドキュメントの提供
Amazon CloudWatch カスタムメトリクスの設定 (config) ドキュメントは、環境レベルとインスタンスレベルでパブリッシュするメトリクスを一覧表示する JSON ドキュメントです。次の例は、すべての利用可能なカスタムメトリクスを Linux で有効にする設定ドキュメントを示しています。
{
"CloudWatchMetrics": {
"Environment": {
"ApplicationLatencyP99.9": 60,
"InstancesSevere": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"InstancesUnknown": 60,
"ApplicationLatencyP85": 60,
"InstancesInfo": 60,
"ApplicationRequests2xx": 60,
"InstancesDegraded": 60,
"InstancesWarning": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"InstancesNoData": 60,
"InstancesPending": 60,
"ApplicationLatencyP10": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"InstancesOk": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60
},
"Instance": {
"ApplicationLatencyP99.9": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"ApplicationLatencyP85": 60,
"CPUUser": 60,
"ApplicationRequests2xx": 60,
"CPUIdle": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"RootFilesystemUtil": 60,
"LoadAverage1min": 60,
"CPUIrq": 60,
"CPUNice": 60,
"CPUIowait": 60,
"ApplicationLatencyP10": 60,
"LoadAverage5min": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"CPUSystem": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60,
"InstanceHealth": 60,
"CPUSoftirq": 60
}
},
"Version": 1
}
では AWS CLI、 ドキュメントをValue
キーの値としてオプション設定引数に渡します。これは、それ自体が JSON オブジェクトです。この場合、埋め込まれているドキュメントの引用符はエスケープする必要があります。
$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[
{
"Namespace": "aws:elasticbeanstalk:healthreporting:system",
"OptionName": "ConfigDocument",
"Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": 60,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": 60,\"ApplicationRequests2xx\": 60,\"InstancesDegraded\": 60,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"InstancesNoData\": 60,\"InstancesPending\": 60,\"ApplicationLatencyP10\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"InstancesOk\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60},\"Instance\": {\"ApplicationLatencyP99.9\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"ApplicationLatencyP85\": 60,\"CPUUser\": 60,\"ApplicationRequests2xx\": 60,\"CPUIdle\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": 60,\"LoadAverage1min\": 60,\"CPUIrq\": 60,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": 60,\"LoadAverage5min\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60,\"InstanceHealth\": 60,\"CPUSoftirq\": 60}},\"Version\": 1}"
}
]'
YAML の .ebextensions
設定ファイルの場合は、JSON ドキュメントをそのまま提供できます。
option_settings:
- namespace: aws:elasticbeanstalk:healthreporting:system
option_name: ConfigDocument
value: {
"CloudWatchMetrics": {
"Environment": {
"ApplicationLatencyP99.9": 60,
"InstancesSevere": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"InstancesUnknown": 60,
"ApplicationLatencyP85": 60,
"InstancesInfo": 60,
"ApplicationRequests2xx": 60,
"InstancesDegraded": 60,
"InstancesWarning": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"InstancesNoData": 60,
"InstancesPending": 60,
"ApplicationLatencyP10": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"InstancesOk": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60
},
"Instance": {
"ApplicationLatencyP99.9": 60,
"ApplicationLatencyP90": 60,
"ApplicationLatencyP99": 60,
"ApplicationLatencyP95": 60,
"ApplicationLatencyP85": 60,
"CPUUser": 60,
"ApplicationRequests2xx": 60,
"CPUIdle": 60,
"ApplicationLatencyP50": 60,
"ApplicationRequestsTotal": 60,
"RootFilesystemUtil": 60,
"LoadAverage1min": 60,
"CPUIrq": 60,
"CPUNice": 60,
"CPUIowait": 60,
"ApplicationLatencyP10": 60,
"LoadAverage5min": 60,
"ApplicationRequests5xx": 60,
"ApplicationLatencyP75": 60,
"CPUSystem": 60,
"ApplicationRequests3xx": 60,
"ApplicationRequests4xx": 60,
"InstanceHealth": 60,
"CPUSoftirq": 60
}
},
"Version": 1
}