CloudWatchエージェントがEC2サービスエンドポイントのデュアルスタックに対応したのでIPv6だけでカスタムメトリクス送信できた!
目次
CloudWatchエージェントがEC2サービスデュアルスタックエンドポイントに送信できない
昨日のCloudWatchエンドポイントがIPv6に対応したのでCloudWatchエージェントからカスタムメトリクスを送信しましたに書いた通り、CloudWatchエージェントがEC2サービスエンドポイントでデュアルスタックエンドポイントを使ってくれないので、このブログのIPv6ありパブリックIPv4なしのEC2インスタンスからはカスタムメトリクスのディメンションを設定できませんでした。
CloudWatchエージェントv1.300061.0で解決
そこでAmazon Q Developerに何かやり方がないかなと思って色々聞いてみたのですが、これといって信頼性のある回答もありませんでした。
その中で、override_endpointに複数のエンドポイント設定ができるという誤った情報がありまして、試したところエラーが発生したので、エラーメッセージを見せると「CloudWatchエージェントのバージョンが古いからです」などと言われました。
本当かなと思って、リリースノートをリリースノートを確認しました。
aws/amazon-cloudwatch-agent Releases
すると、最新バージョンの1つ前のバージョンv1.300061.0に次の記述がありました。
[Agent] IPv6 Support on EC2
Adds CloudWatch Agent support for IPv6 on EC2 INSTANCES
リンク先のPull Requestsを見に行くと、サンプルのパラメーター設定と合わせて使い方が書かれていました。
Cloudwatch Agent IPv6 support (#1864) #1871
logsとmetricsで個別にoverride_endpointは使わなくて良いようです。
use_dualstack_endpoint=trueをagentセクションに設定すれば良いだけです。
append_dimensionsと併用しているサンプルもあったのでできそうでした。
設定
今動いているCloudWatchエージェントを停止
|
1 2 |
amazon-cloudwatch-agent-ctl -a stop |
最新のCloudWatchエージェントのパッケージをダウンロード
まだdnf updateなどではv1.300060.0までしか取得できませんでした。
|
1 2 |
wget https://amazoncloudwatch-agent.s3.amazonaws.com/amazon_linux/arm64/latest/amazon-cloudwatch-agent.rpm |
ダウンロードしたパッケージのバージョンを確認
|
1 2 |
rpm -qp amazon-cloudwatch-agent.rpm |
最新バージョンであることを確認できました。
amazon-cloudwatch-agent-1.300062.0b1304-1.aarch64
最新のCloudWatchエージェントをインストール
|
1 2 |
rpm -U ./amazon-cloudwatch-agent.rpm |
状態を確認
|
1 2 |
amazon-cloudwatch-agent-ctl -a status |
最新バージョンがインストールされて停止中であることを確認しました。
{
“status”: “stopped”,
“starttime”: “”,
“configstatus”: “configured”,
“version”: “1.300062.0b1304”
}
パラメータ設定ファイルを作成
|
1 2 |
vim /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json |
次の設定にしました。
EC2エンドポイントを必要とする${aws:InstanceId}などもappend_dimensionsで設定しています。
“use_dualstack_endpoint”: trueを設定しています。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
{ "agent": { "metrics_collection_interval": 60, "run_as_user": "root", "use_dualstack_endpoint": true }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/cloud-init-output.log", "log_group_name": "/blog/cloud-init-output", "log_stream_name": "{instance_id}" }, { "file_path": "/var/log/nginx/access.log", "log_group_name": "/blog/nginx-access", "log_stream_name": "{instance_id}" }, { "file_path": "/var/log/nginx/error.log", "log_group_name": "/blog/nginx-error", "log_stream_name": "{instance_id}" }, { "file_path": "/var/log/php-fpm/error.log", "log_group_name": "/blog/php-fpm-error", "log_stream_name": "{instance_id}" }, { "file_path": "/var/log/php-fpm/www-error.log", "log_group_name": "/blog/php-fpm-www-error", "log_stream_name": "{instance_id}" }, { "file_path": "/var/log/amazon/ssm/amazon-ssm-agent.log", "log_group_name": "/blog/amazon-ssm-agent", "log_stream_name": "{instance_id}" }, { "file_path": "/var/log/secure", "log_group_name": "/blog/secure", "log_stream_name": "{instance_id}" }, { "file_path": "/var/log/cloud-init.log", "log_group_name": "/blog/cloud-init", "log_stream_name": "{instance_id}" }, { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "log_group_name": "/blog/cwagent", "log_stream_name": "{instance_id}" } ] } } }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "collectd": { "metrics_aggregation_interval": 60 }, "disk": { "measurement": [ "used_percent" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 }, "statsd": { "metrics_aggregation_interval": 60, "metrics_collection_interval": 10, "service_address": ":8125" } } } } |
パラメータを読み込んでCloudWatchエージェントを開始。
|
1 2 |
amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json |
状態を確認
|
1 2 |
amazon-cloudwatch-agent-ctl -a status |
起動中になっています。
{
“status”: “running”,
“starttime”: “2026-01-02T13:53:38+00:00”,
“configstatus”: “configured”,
“version”: “1.300062.0b1304”
}
確認
ちゃんとディメンション付きでカスタムメトリクスが送信されていました。
ディメンションを使った次の検索式でAutoScalingGroupNameごとに検索できました。
|
1 2 |
SEARCH('{CWAgent,AutoScalingGroupName,ImageId,InstanceId,InstanceType} AutoScalingGroupName="blog-asg-1"', 'Average', 300) |
ついでにストレージ使用率も確認する検索式を設定しました。
|
1 2 |
SEARCH('{CWAgent,AutoScalingGroupName,ImageId,InstanceId,InstanceType,device,fstype,path} path ="/" AutoScalingGroupName="blog-asg-1"', 'Average', 300) |
ダッシュボードに追加しました。
現在のブログ構成
2026年1月はこちらの構成になりました。
また、何か構成変更しましたら記録します。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
ブログ画像のシンガポールリージョンへのレプリケーションはじめました
このブログの画像はS3バケットに保存して、CloudFront経由で配信していま …
-
-
WordPressで画像アップロードができなくなった(AWS WAFでブロックしていた)
WordPressで画像がアップロードできなくなりました。 こんなメッセージです …
-
-
AWS CDK とにかくサンプルでやってみる
Cloud9でAWS CDK環境で作った環境でサンプルプロジェクトからのデプロイ …
-
-
Aurora Serverless Data APIを有効にしてQuery Editorを使ってみました
Aurora ServerlessのMySQLでData APIを有効にして作成 …
-
-
AWS Certificate Manager(ACM)メール検証をDNS検証の証明書に差し替えました
ブログの証明書 このブログの証明書の有効期限があと1週間です。 証明書はAWS …
-
-
WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する
このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …
-
-
AWS Savings Plansを検討しました
今、個人でAWSアカウントを7つ使っています。 Savings Plansが使え …
-
-
webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda)
先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから …
-
-
S3インベントリ設定でインベントリファイルの作成を設定
インベントリレポートファイルはオブジェクトの一覧情報です。 日次、週次で定期作成 …
-
-
API GatewayからLambdaを介さずにSNSトピックへ送信
やりたいこと APIリクエストをまずLambdaで受けて、SNSトピックへ送信す …




