CloudWatchのカスタムメトリクスでEC2のL7ヘルスチェック(HTTPステータスチェック)
最近MySQLの調子が悪く、 Apacheは生きているがブログは見れないという 恥ずかしい事態が結構起きるため、 CloudWatchでL7ヘルスチェックを実装することにした。 1、IAMロールの設定 EC2上にアクセスキーとシークレットキーを配置しなくてもいいように、 事前にEC2にIAMロールを割り当て、 そのポリシーでCloudWatchの”PutMetricData”をAllowしておきましょう。 2、EC2にシェルを配置 HTTPステータスコードをチェックするシェル [http_status_check.sh] #!/bin/sh curl -s $1 -o /dev/null -w “%{http_code}” CloudWatchに監視データをputするシェル [put_mon_http_custom_metric.sh] #!/bin/bash export AWS_REGION=us-west-1 instanceid=i-xxxxxxxa monitored_url=https://www.cyberarchitect.net/blog/ # http status check status=`/home/ec2-user/bin/http_status_check.sh $monitored_url` if [ $status -eq 200 ]; then Fail=0 else Fail=1 fi aws cloudwatch put-metric-data –metric-name “HttpStatusFailed” –namespace “Custom Metrics”.