こんにちは、ちゃりおです。
Personal Health Dashboard(以下PHD)でSlackに通知する設定についてです。
AWSアカウント内の影響のあるリソースも通知してくれるので、AWSアカウントごとにやっておくと良さそうです。
GUIからやるのも簡単ですが、せっかくなのでAWS CLIでやってみます。
AWS Personal Health Dashboardとは
AWS Personal Health Dashboard では、お客様に影響するイベントが AWS で発生している場合に、アラートおよび改善のためのガイダンスを提供します。Service Health Dashboard は AWS の サービスの全般的なステータスを表示しますが、Personal Health Dashboard では、ご利用の AWS リソースの基礎となる AWS のサービスのパフォーマンスおよび可用性に関するパーソナライズされた表示を利用できます。
ダッシュボードには、関連する情報が適切なタイミングで表示されるため、進行中のイベントを管理するのに役立ちます。また、積極的な通知は、スケジュールされたアクティビティを計画するのに役立ちます。Personal Health Dashboard を使用すると、AWS リソースの状態の変化によってアラートがトリガーされるため、イベントが可視化され、問題をすばやく診断して解決するのに役立つガイダンスを得られます。
利用者に影響するAWS側のイベントを通知してくれるサービスです。
マネジメントコンソールで「PHD」で検索すると確認できます。
AWS CILでPHDのSlack通知を設定する
事前準備
通知するSlackのチャンネルの転送用メールアドレスを用意しておきます。
今回は、Slackの転送用メールアドレスを使いますがAWS Chatbotでもできそうです。
AWS Personal Health Dashboardのslack通知
SNSトピックの作成
$ TOPIC_NAME="" #Slack転送メールアドレス
$ EMAIL_ADDR="" #Slack転送メールアドレス
$ aws sns create-topic --name $TOPIC_NAME
$ aws sns list-topics | grep $TOPIC_NAME #ARN取得
$ TOPIC_ARN="" #TOPIC ARN
$ aws sns subscribe --topic-arn $TOPIC_ARN --protocol email --notification-endpoint $EMAIL_ADDR
コマンドを最後まで実行すると、Slackにサブスクライブのメッセージが届いていると思うのでサブスクライブします。
CloudwatchEventの作成
$ RULE_NAME="" #cloudwatchevent rule
$ aws events put-rule --name $RULE_NAME --event-pattern "{\"source\":[\"aws.health\"]}"
$ aws events put-targets --rule $RULE_NAME --targets "Id"="1","Arn"="${TOPIC_ARN}"
コマンドが成功したら、下記でターゲットが割り当てられているか確認します。
$ aws events list-targets-by-rule --rule $RULE_NAME
{
"Targets": [
{
"Id": "1",
"Arn": "arn:aws:sns:ap-northeast-1:11111111111:hoge_alert"
}
]
}
手動でPHDのイベント作成してテストなどは現在できないため、事前に設定しておいて通知されたら確認します。
AWS側の障害だけではなく、メンテナンスの情報も(EC2再起動など)来るので割と早く確認できると思います。
まとめ
PHDの通知設定をやってみました。
設定しておくことで、AWS側の障害時に気づくのが早くなると思います。
あとはメンテナンス情報とかも拾えるので、メールに気づかず勝手に再起動されてしまったという事態も
避けれると思います。
影響を受けるリソースもメッセージに含んでくれるので便利ですね。
ぜひ設定してみてください。