6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【EC2】EventBridgeでSlackに通知を飛ばしてみた

Last updated at Posted at 2025-07-19

こんにちは、駆け出しエンジニアのおちです。
この記事は「2025 Japan AWS Jr. Chanpions 夏のQiitaリレー 」の16日目の記事です。

過去の投稿はこちらからご覧ください!

はじめに

EC2インスタンスの状態監視、みなさんはどうしていますか?

今回は、EventBridgeを利用してEC2のステータス変更を検知してSlackに通知する仕組みを作ってみました。
LambdaやSNSは使わず、最小限の構成で実現できるのがポイントです。

構成

slack-EC2.drawio.png
仕組みは極力シンプルにしました。
EC2インスタンスのステータス(起動・停止など)を EventBridge で検知し、SlackのWebhook を使って、指定したチャンネルへ自動で通知を送る流れになっています。

構築手順

1. Slackの準備

SlackのWebhooksを有効化するためにSlack AppとIncoming Webhookを作成していきます。

Slack Appの作成

以下のURLにアクセスして、「Create New App」をクリックします。
https://api.slack.com/apps

スクリーンショット 2025-07-17 102350.png

今回は細かい設定はしないので、「From a manifest」をクリックして、Appの名前を入力します。

スクリーンショット 2025-07-17 102405.png

設定がJSON形式で表示されるので、確認して「Next」→「Create」の順でクリックします。

スクリーンショット 2025-07-17 102441.png

Slack Webhookの作成

次に、Webhookを作っていきます。
Your Apps ページに作成したアプリが表示されるので、対象の App Name をクリックします。
メニューから 「Incoming Webhooks」 を選択し、画面下の 「Add New Webhook」 をクリックします。

スクリーンショット 2025-07-17 102614.png

チャンネルへのアクセス権限の許可画面に移るので、通知を送りたいチャンネルを選択します。

スクリーンショット 2025-07-17 104028.png

これでSlackの準備ができました!

2. EventBridgeの設定

次に、EventBridgeのルールを作成していきます。
ルールを作成」をクリックします。

スクリーンショット 2025-07-17 104454.png

今回はデフォルトのイベントパスを利用します。
各項目を設定したらイベントパターンの構築に移ります。

スクリーンショット 2025-07-17 104652.png

EC2インスタンスの停止時・起動時に通知するように設定します。
イベントパターンは、左側の選択欄を設定していくと右側も自動で埋めてくれます。

ap-northeast-1.console.aws.amazon.com_events_home_region=ap-northeast-1 (3).png

続いてターゲット選択画面です。

API送信エンドポイントの欄はWebhookのURLを入れます。

「認証を設定」のAPIは必要ないので、適当に「sample」「test」等で埋めます。

追加設定のトグルをクリックして「入力トランスフォーマーを設定」をクリックします。

ap-northeast-1.console.aws.amazon.com_events_home_region=ap-northeast-1 (4).png

入力パス、テンプレートは以下を入力しました。
必要に応じて変更してください。

入力パス
{
  "instanceId": "$.detail.instance-id",
  "state": "$.detail.state",
  "region": "$.region",
  "time": "$.time",
  "account": "$.account"
}
テンプレート
{
  "text": "*🖥 EC2 インスタンスステート変更通知*\n• インスタンスID: <instanceId>\n• 状態: <state>\n• リージョン: <region>\n• アカウント: <account>\n• 時刻: <time>"
}

スクリーンショット 2025-07-17 125753.png

項目の設定が終わればルール完成です!

3. 動作確認

準備ができたので、実際にEC2を起動・停止させてみました。

スクリーンショット 2025-07-17 143437.png

ばっちり通知が来ていますね!

おわりに

今回はEC2で試しましたが、他のサービスにも応用することもできそうなので、色々と試してみようと思います!

最後まで読んでいただきありがとうございました!
この記事がどなたかのAWS運用自動化のヒントになれば嬉しいです。

6
0
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
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?