はじめに
EC2からCloudWatchに対してカスタムメトリクスの転送を試します。
閲覧して頂いた方が実際に検証しなくともイメージが沸くことを目指します。
試したいと思い至った理由は、仕事でカスタムメトリクスの利用要件があったのですが、
触ったことが無かったため。
■CloudWatchのカスタムメトリクスとは?
AWS CLIまたはAPIを使用して、独自のメトリクスをCloudWatchに発行できるというもの。
例えば標準メトリクスはメモリ使用率が取得できない為、要件がある場合カスタムメトリクスを利用する。
※標準メトリクスには何があるのか等は本記事の趣旨から外れるので記載しない。
■費用は?
CloudWatchのカスタムメトリクスについて、以下条件は無期限で無料枠でした。
※今回のカスタムメトリクス利用範囲では無料でした。
★無料枠の条件
・10個のカスタムメトリクスと10個のアラーム
・100万件のAPIリクエスト
・5GBのログデータの取り込み及び5GBのログデータのアーカイブ
・毎月最大50メトリクスのダッシュボード3個
◼️検証シナリオ
検証内容ですが、シンプルにEC2からVPCEndpoint経由で、
CloudWacthにカスタムメトリクスを転送する。転送結果をCloudWatchから確認する。
★手順
1.EC2用IAMロール作成
2.EC2構築
3.VPCEndpoint作成(CloudWatch用)
4.カスタムメトリクス転送(put-metric-dataを何回か実行)
5.CloudWatchから転送された情報を確認
※VPCEndpointは作成時から費用かかります。(費用は変動するため、都度確認推奨)
・検証構成図
1.EC2用IAMロール作成
2.EC2構築
EC2は無料枠でAmazonLinuxを構築しました。
3.VPCEndpoint作成(CloudWatch用)
サービスはCloudWatchではなく、monitoringで検索する必要があります。
検索して選択し、エンドポイント作成します。
※Endpointポリシーはフルアクセスとしています。
4.カスタムメトリクス転送
EC2にログインし、put-metric-dataコマンドを以下引数で実行。
namespace:TestCW
metric-name:Testmemory
dimensions:TestKey=TestValue
value:数字(画像では20としている)
5.CloudWatchから転送された情報を確認
MCからCloudWatch確認するとちゃんと送られてますね。(嬉しい)
グラフも確認できました。(valueは1回目を10、2回目を20としています。)
値を変えてもう一回打鍵しました。(valueを3回目30としています。)
時刻は勝手にCloudWatch側で記録してくれるようです。
検証は以上になります。
■ミスしたところ
しょうもないところで引っかかったのですが、
VPCエンドポイント作成後、EC2からVPCエンドポイント経由で「put-metric-data」コマンドが発行できませんでした。
原因はVPCエンドポイントのセキュリティグループでEC2からの通信を許可してなかったというものでした。。よくあることだと思いますが、気を付けます。
さいごに
実践向けにはシェルやcronを組み合わせたリ、カスタムメトリクスにアラームを作成したりすることで、運用として利用できるものになると思いますので、まだまだスタートラインに立ったところです。
ただ、今回カスタムメトリクスが実際に転送できたことは自信につながる良い経験になったと思います。
また、閲覧して頂いた方が本記事を通して疑似的に経験し、カスタムメトリクスは簡単に利用できると思っていただければ良いなと思います。