12
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LIFULLAdvent Calendar 2024

Day 22

AWS Health Dashboard と AWS User Notifications を活用した Slackへの通知設定

Last updated at Posted at 2024-12-21

LIFULL Advent Calendar 2024 22日目の記事です。

10月からLIFULLで基盤グループのマネージャーを担当している磯野です。

それまでは別チームのマネージャーを担当していましたが、10月からロールが変わってAWSを中心としたサービスの基盤を担当することになりました。そこで今回は異動後取り組んでいる運用の改善・自動化、及び日常のノイズ削減に関連するAWS Health DashboardとSlackの連携について紹介します。

まとめ

  • AWS User Notifications を使って AWS Health Dashboard の通知を Slack に流すと便利
  • AWSアカウントのHealthイベントが以下のようにSlackに送信される
    スクリーンショット 2024-12-21 205724.png

背景

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 時のおすすめの設定を記載します。

  1. Name を QuickSetup からわかりやすい名前に変更する
  2. Aggregation settings で Do not aggregateを選択
  3. Delivery channelsでChat channelsを選び、事前準備で作ったAWS Chatbotを選択

Slackへの通知確認

設定が正しく行われていれば、AWS Health Dashboardからの通知がSlackに届きます。

スクリーンショット 2024-12-21 205724.png

不要な通知フィルタリング

上で作成した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 BridgeAWS Chatbot をいい感じにつないでくれるサービスですので、AWS Event BridgeEvent Busesのルール にマネージドルールが有効化したリージョン毎に作られています。

そのルールと同等のルールをEvent Buses作成し、CloudWatch Logsに流すことができますので、それを確認することで細かいルールにまで対応することができます。

最後に

AWSにはこのようにちょっとした作業で簡単に運用を改善できる仕組みがたくさんあります。
これらを活用して運用を改善し、自社の提供するサービスの改善に集中できる環境となるよう取り組んでまいります。

最後まで読んでいただきありがとうございました!
普段はCDKを活用してIaCを推進しているので、そちらのことも今後書きたいと思います。

また次の記事でお会いしましょう。

12
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?