概要

マルチリージョン構成におけるCloudWatch Metric Streamsの設定について。

CloudWatch Metric Streamsについて

CloudWatch Metric Streamsは、CloudWatchメトリクスの情報を外からポーリングして取得するのではなく、AWS側からプッシュするような形でストリームさせる機能。
AWS Blog : https://aws.amazon.com/jp/blogs/aws/cloudwatch-metric-streams-send-aws-metrics-to-partners-and-to-your-apps-in-real-time/

New Relicも対応しており、通常のポーリング形式よりも早くメトリクス情報が反映されるため、Violationも素早く検知される。

New Relic Blog : https://blog.newrelic.com/product-news/aws-cloudwatch-metric-streams/

構成

構成としては、

AWS [ Metric → Metric Stream → Kinesis Data Firehose ] → New Relic

という流れであるが、AWS側の各リソースはリージョンリソースである。

ポーリング形式の場合、IAMロール/ユーザーを通して取得されるため、グローバル単位でのメトリクス収集が可能であったが、CloudWatch Metric Streamsの場合は、リージョン単位でのメトリクス収集となる。

そのため、マルチリージョン構成のシステムのメトリクスを連携するにはそれぞれのリージョンにMetric Streamの設定をする必要がある。

New Relicのドキュメントにもその旨は記載されている。

If you manage multiple regions within those accounts, then each region needs to be configured with a different Kinesis Data Firehose pointing to New Relic

https://docs.newrelic.com/docs/integrations/amazon-integrations/aws-integrations-list/aws-metric-stream/#map-accounts-regions

マルチリージョンへの設定

New Relic側

AWS Integrationの設定は、アカウントごとに1つで問題ない。リージョンごとにインテグレーションを設定する必要はない。

AWS側

リージョンごとにCloudWatch Metric StreamsおよびKinesis Data Firehoseの設定が必要。

New Relic側の手順にもあるCloudFormationを使ったセットアップを利用する場合は、リージョンそれぞれにスタック作成を行う。
https://docs.newrelic.com/docs/integrations/amazon-integrations/aws-integrations-list/aws-metric-stream/#setup-cloudformation

※ Kinesis Data Firehoseのエラーイベント保存のためのS3バケットはリージョンごとに分ける。その他の値は同じでOK。

確認

それぞれで設定ができていれば、New Relic側のAWS IntegrationのAccount Statusダッシュボードの「Total Metric by AWS Region」でリージョンごとの収集メトリクス数合計を確認できる。

まとめ

New Relicとの連携に限らず、CloudWatch Metric Streamsは各リージョンごとへの設定が必要ということが注意点。マルチリージョン 構成の場合は忘れずそれぞれに設定する。

New Relic側はリージョンごとに設定は特に必要ないので、形としてはシンプル。

元記事はこちら

【New Relic】CloudWatch Metric Streamsをマルチリージョンに設定する