ヤマムギ

growing hard days.

*

CloudWatchエンドポイントがIPv6に対応したのでCloudWatchエージェントからカスタムメトリクスを送信しました

      2026/01/03

追記

翌日のブログで、CloudWatchエージェントのアップデートにより、CloudWatchとEC2両方のデュアルスタックエンドポイントを使用できる方法を記録しています。
素早く対応方法を知りたい方はそちらをご覧ください。

CloudWatchエージェントがEC2サービスエンドポイントのデュアルスタックに対応したのでIPv6だけでカスタムメトリクス送信できた!

ブログの状況

昨年の1月頃にこのブログのパブリックIPv4アドレスをなくしました。
当時はPutMetricDataの送信先のCloudWatchエンドポイントがIPv6に対応していなかったので、カスタムメトリクスは諦めました。
CloudWatch Logsは当時からIPv6に対応していたので、CloudWatchエージェントはログだけを送信していました。

CloudWatchエンドポイントのIPv6対応

Amazon CloudWatch が IPv6 のサポートを開始
昨年7月にCloudWatchエンドポイントがIPv6に対応しました!

他のサービス同様に既存のIPv4エンドポイントとは別に、IPv4とIPv6の両方に対応したデュアルスタックエンドポイントが追加されました。

東京リージョンの場合、既存エンドポイントはmonitoring.ap-northeast-1.amazonaws.comで、デュアルスタックエンドポイントはmonitoring.ap-northeast-1.api.awsです。

CloudWatchエージェントの設定

CloudWatchエージェントのパラメータのmetricsセクションで、endpoint_overrideを設定して、デュアルスタックエンドポイントに送信するようにしました。

上記の設定を/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.jsonに追記して、CloudWatchエージェントを停止して、開始しました。

停止

開始

動的なディメンションが追加できない問題が残りました

従来、カスタムメトリクスではmetricsセクションにディメンションとして、オートスケーリンググループの名前やインスタンスIDを設定します。

こうしておかないと、例えば次のようなメモリ使用量を取得した場合、その次の画面のようにすべてのインスタンスから送信されたカスタムメトリクスが区別なく表示されるので本来のモニタリングの目的を果たせなくなります。

そこで、append_dimensionsを設定します。
すると、次のエラーが/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.logに出力されました。

EC2のサービスエンドポイントhttps://ec2.ap-northeast-1.amazonaws.com/へリクエスト送信してエラーになっています。
EC2にもec2.ap-northeast-1.api.awsというIPv6対応のデュアルスタックエンドポイントはありますが、${aws:InstanceId}などを設定した際に、CloudWatchエージェントのリクエスト先をそちらへ向ける方法がわかりません。

CloudWatch Logsのログストリームのように、”{instance_id}”と設定してメタデータから取得してくれればいいのですが、これもできないようです。

このAWSアカウントの東京リージョンでは、このブログのオートスケーリンググループしか起動していないので、ディメンションなしでもいいかもしれませんが、ひとまず今日はここまでとして、また解決しましたら別ブログに記録します。
最終的に現在のamazon-cloudwatch-agent.jsonのパラメータは次のようになりました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

  関連記事

S3インベントリ設定でインベントリファイルの作成を設定

インベントリレポートファイルはオブジェクトの一覧情報です。 日次、週次で定期作成 …

AWS Wavelengthゾーンを有効にする

画面上で確認しておきたかったので有効にしておきました。 AWS Waveleng …

特定AWSアカウント特定リージョンのSNSトピックを削除するLambda(Python)

やりたいこと 特定アカウント内特定リージョン内のSNSトピックを全部削除したいで …

Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する

EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …

EC2にSystems MangerからCloudWatchエージェントをインストール

CloudWatchエージェント EC2の標準メトリクスでは収集できないメモリの …

AWSエンコードされたエラーメッセージをデコードするコマンドのメモ

Stdout: couldn’t create ENI: Unaut …

AWS Systems Manager AutomationでEC2の自動停止

Systems Manager Automationがない時代に、Lambdaを …

slackのbotに天気を教えてもらう(Python on AWS Lambda + API Gateway)

slackのbotにAPIの定番ともいえる天気情報を教えてもらいました。 環境は …

AWS Storage Gatewayボリュームゲートウェイを作成してWindowsから使用

ボリュームゲートウェイの作成 Storage Gateway作成メニューからボリ …