LIFULL Advent Calendar 2024 22日目の記事です。
10月からLIFULLで基盤グループのマネージャーを担当している磯野です。
それまでは別チームのマネージャーを担当していましたが、10月からロールが変わってAWSを中心としたサービスの基盤を担当することになりました。そこで今回は異動後取り組んでいる運用の改善・自動化、及び日常のノイズ削減に関連するAWS Health DashboardとSlackの連携について紹介します。
まとめ
- AWS User Notifications を使って AWS Health Dashboard の通知を Slack に流すと便利
- AWSアカウントのHealthイベントが以下のようにSlackに送信される
背景
LIFULLではAWS Organizationsを利用して多くのアカウントを管理しています。
各部署が持っているアカウントも含め、必要な対応を管理するのは大変な作業です。
そこで、AWS Health DashboardのOrganization Viewを有効にし、それらをSlackに通知することで、全アカウントのHealth Eventを一元管理する方法を模索しました。
AWS Health DashboardのOrganization Viewの有効化
Organization全体のHealth Eventを受け取るには管理アカウントで以下のコマンドを実行する必要があります。
(個別のアカウントで設定する場合には本設定は不要です。)
aws health enable-health-service-access-for-organization --region us-east-1
コンソールからも実行可能です。詳しくはドキュメントを参照してください。
AWS User Notificationsの有効化
AWS User Notifications はAWSコンソールから手動で設定する必要があります。
事前準備
- Slack通知用の準備
- 通知用のチャネルでAWS Chatbotを作成する
- プライベートチャネルの場合、
@aws
チャネルにを招待することも忘れずに
- メール通知の場合
- 特に事前準備は不要
Quick Setupの実行
-
AWS User Notificationsを開き、Quick Setupから
Health
を選択 - 必要なリージョンを選択し、
Edit configuration
で詳細設定に遷移 - 必要な設定を行い、
Create notification configuration
をクリックして終了
以下に Edit configuration
時のおすすめの設定を記載します。
- Name を
QuickSetup
からわかりやすい名前に変更する - Aggregation settings で
Do not aggregate
を選択 - Delivery channelsで
Chat channels
を選び、事前準備で作ったAWS Chatbotを選択
Slackへの通知確認
設定が正しく行われていれば、AWS Health Dashboardからの通知がSlackに届きます。
不要な通知フィルタリング
上で作成したNotificationの設定をにおいてEvent pattern JSON
を使用して、ノイズとなる通知をフィルタリング可能です。現在は以下の設定を行っています。
{
"detail": {
"statusCode": ["open", "upcoming"],
"eventArn": [{
"anything-but": ["arn:aws:health:ap-northeast-1::event/xxxx"]
}],
"eventTypeCode": [{
"anything-but": ["AWS_CLOUDSHELL_PERSISTENCE_EXPIRING"]
}]
}
}
ルール説明
- eventArn にマッチするイベントを除外する
- CloudShellの削除処理前の通知を除外する
さらに細かいフィルタ設定
eventTypeCodeやeventArnについてはSlackの通知に含まれるため、そちらを使ってフィルタを更新することが可能です。
とはいえ、Slack通知に含まれていない要素も含めてフィルタを検討したい場合には対応することが難しくなっています
AWS User Notificationsは AWS Event Bridge
と AWS Chatbot
をいい感じにつないでくれるサービスですので、AWS Event Bridge
の Event Busesのルール にマネージドルールが有効化したリージョン毎に作られています。
そのルールと同等のルールをEvent Buses
作成し、CloudWatch Logs
に流すことができますので、それを確認することで細かいルールにまで対応することができます。
最後に
AWSにはこのようにちょっとした作業で簡単に運用を改善できる仕組みがたくさんあります。
これらを活用して運用を改善し、自社の提供するサービスの改善に集中できる環境となるよう取り組んでまいります。
最後まで読んでいただきありがとうございました!
普段はCDKを活用してIaCを推進しているので、そちらのことも今後書きたいと思います。
また次の記事でお会いしましょう。