https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 2. 確認用EC2インスタンス作成
aws ec2 run-instances \
--image-id ami-0404778e217f54308 \
--instance-type t3.nano \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=instance01}]'
-- 3. アラーム作成
-- 3.1 停止アクション
aws cloudwatch put-metric-alarm \
--alarm-name alarm11 \
--alarm-description "alarm11" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 95 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=InstanceId,Value=i-11111111111111111 \
--evaluation-periods 2 \
--alarm-actions arn:aws:swf:ap-northeast-1:999999999999:action/actions/AWS_EC2.InstanceId.Stop/1.0 \
--unit Percent
-- 3.2 再起動アクション
aws cloudwatch put-metric-alarm \
--alarm-name alarm12 \
--alarm-description "alarm12" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 95 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=InstanceId,Value=i-11111111111111111 \
--evaluation-periods 2 \
--alarm-actions arn:aws:swf:ap-northeast-1:999999999999:action/actions/AWS_EC2.InstanceId.Reboot/1.0 \
--unit Percent
-- 3.3 復旧アクション
aws cloudwatch put-metric-alarm \
--alarm-name alarm13 \
--alarm-description "alarm13" \
--metric-name StatusCheckFailed_System \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 95 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=InstanceId,Value=i-11111111111111111 \
--evaluation-periods 2 \
--alarm-actions arn:aws:automate:ap-northeast-1:ec2:recover \
--unit Percent
-- 3.4 終了アクション
aws cloudwatch put-metric-alarm \
--alarm-name alarm14 \
--alarm-description "alarm14" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 95 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=InstanceId,Value=i-11111111111111111 \
--evaluation-periods 2 \
--alarm-actions arn:aws:swf:ap-northeast-1:999999999999:action/actions/AWS_EC2.InstanceId.Terminate/1.0 \
--unit Percent
aws cloudwatch describe-alarms
-- 4. アラームテスト
aws cloudwatch set-alarm-state \
--alarm-name alarm11 \
--state-reason "test" \
--state-value ALARM
aws cloudwatch set-alarm-state \
--alarm-name alarm12 \
--state-reason "test" \
--state-value ALARM
aws cloudwatch set-alarm-state \
--alarm-name alarm13 \
--state-reason "test" \
--state-value ALARM
aws cloudwatch set-alarm-state \
--alarm-name alarm14 \
--state-reason "test" \
--state-value ALARM
aws cloudwatch describe-alarm-history --alarm-name "alarm11"
aws cloudwatch describe-alarm-history --alarm-name "alarm12"
aws cloudwatch describe-alarm-history --alarm-name "alarm13"
aws cloudwatch describe-alarm-history --alarm-name "alarm14"
-- 5. クリーンアップ
-- アラームの削除
aws cloudwatch describe-alarms
aws cloudwatch delete-alarms --alarm-names alarm11
aws cloudwatch delete-alarms --alarm-names alarm12
aws cloudwatch delete-alarms --alarm-names alarm13
aws cloudwatch delete-alarms --alarm-names alarm14
-- EC2インスタンスの削除
aws ec2 describe-instances
aws ec2 terminate-instances --instance-ids i-11111111111111111