AWS CLIで自動でCloudWatchのアラームを登録したい

背景

インスタンスIDって控えておくのめんどくさいですよね。

今回はタグでNameを「Sample」というインスタンスのアラームの設定を行っていきます。

なので、今回は2パートに分かれます。

1、「sample」のインスタンスIDの取得

2、取得したインスタンスIDからアラームの設定

準備

必要なパッケージのインストール

yum install python3 jq
pip3 install awscli

自分のアカウントへのアクセスの設定

aws configure

アラームをセットする。

#./auto_alarm.sh

#!/bin/bash

instance_ID=`aws ec2 describe-instances --filter "Name=tag:Name,Values=Sample" | jq '.Reservations[].Instances[].InstanceId' | cut -c 2-20`

#いじりそうな設定だけ変数にしておく

#アラーム名
alarm_name="CPU-Utilization80%"
#閾値
threshold_NUM=80
#監視間隔(sec)
chk_period=300
#OKアクションはほしければコメント外してください。うるさいのでコメントアウトにしてます。

aws cloudwatch put-metric-alarm --alarm-name "$alarm_name" --namespace AWS/EC2 --metric-name CPUUtilization --dimensions "Name=InstanceId,Value=$instance_ID" --period $chk_period --statistic Average --threshold $threshold_NUM --comparison-operator GreaterThanOrEqualToThreshold --evaluation-periods 1 --alarm-actions arn:aws:sns:ap-northeast-1:xxxxxxxxxxxxxx #--ok-actions arn:aws:sns:ap-northeast-1:xxxxxxxxxxxxxxx

GUIを確認すると、アラームがセット出来ていると思います。

おまけ

ある日のCPU稼働率の値を参照するコマンドです。

日付のところとインスタンスIDのところを調整すれば使えます。

大量のデータをただただ吐かれるのでリダイレクトしてどこかに保存したほうがいいと思います。

aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --start-time 2018-09-20T00:00:00 --end-time 2018-09-20T23:59:59 --period 300 --statistics Average --dimensions Name=InstanceId,Value=i-xxxxxxxxxxx

ハックノートをフォローして
最新情報をチェックしよう

AWS構築サービスの全てをまとめた資料を公開中

ハックノート(TOWN株式会社)では、AWSの導入や構築支援を行っています。AWS導入メニューやサービス詳細、構成例や費用を掲載した資料をダウンロードできます。

AWSの新規導入やAWSへの移行を検討の際は、ぜひご参考ください。


APNコンサルティングパートナー

TOWN株式会社はAmazon公認コンサルティングパートナーです。