search
LoginSignup
0
Help us understand the problem. What are the problem?

posted at

updated at

AWS EventBridgeとSNSの連携

はじめに

SOAの資格試験対策のために学んだことを記録として残します。
SOAの試験は、C02に改訂されてからマネジメントコンソールで回答する問題も追加され、ハンズオンで学習することが今まで以上に重要となりました。
この記事では、実際にEventBridgeを動かして使い方を説明します。

EventBridgeとは?

状態の変化(イベント)に対し、あらかじめ設定したルールに基づいて、ターゲット(他のAWSサービスなど)に対して何らかのアクションを実行させるサービスです。
イベントは、AWS Config、CloudWatch、CloudTrailなどによって検知されます。
今回はEC2インスタンスの状態変化を検知して、SNSを起動し、メール通知を行うという仕組みを構築します。
EventBridge-SNS.png

手順

  1. EC2インスタンスの作成
  2. SNSトピック/サブスクリプションの作成
  3. EventBridgeの作成
  4. 実行

1. EC2インスタンスの作成

テスト用に適当なインスタンスを作成しておきます。
インスタンスは停止したり、終了したりするために作成するだけなのでデフォルト設定でOKです。

  • OS:Amazon Linux 2
  • インスタンスタイプ:t2.micro、
  • キーペア:なし

2. SNSトピック/サブスクリプションの作成

ここでは、Eメールでの通知設定を行います。
まずはSNSトピックを作成します。SNSのコンソール画面から「トピック」を選択して、「トピックの作成」を行います。
トピック名は任意の名前を入力しておきます。
01-create-topic-01.png

トピックの名前だけ入力し、あとはデフォルト設定のままにします。
01-create-topic-02.png

トピック作成後、「サブスクリプション」を選択し、「サブスクリプションの作成」を行います。
02-create-subscription-01.png
02-create-subscription-02.png

サブスクリプションの設定画面で次のように設定します。それ以外は特に設定しません。

  • トピックARN:先ほど作成したトピックを選択
  • プロトコル:Eメール
  • エンドポイント:送信先のメールアドレス
    サブスクリプション作成後、指定したアドレスに確認メールが届くので、Confirm Subscriptionを押して認証します。
    03-validate-address-01.png

認証すると、Subscription confirmedというメッセージが表示されます。
03-validate-address-02.png
設定内容を確認しておきます。
04-check-sns-settings.png

3. EventBridgeの作成

マネジメントコンソールからEventBridgeの画面に移動し、「ルール」の選択→「ルールの作成」をクリックします。
ルールの設定画面で任意のルール名を設定します。
05-eventbridge.png
06-create-rule-01.png

イベントバスはデフォルト、ルールタイプは「イベントパターンを持つルールタイプ」を選択します。
イベントパターンの設定画面で以下のように設定します。

  • イベントソース:AWSのサービス
  • AWSのサービス:EC2
  • イベントタイプ:EC2 Instance State-change Notification
    • 任意の状態
    • 任意のインスタンス
      06-create-rule-02.png

続いて、ターゲットの設定画面でターゲットタイプを「AWSのサービス」を選択します。
ターゲットに「SNSトピック」を選択し、トピックは上で作成したSNSトピックを選びます。
06-create-rule-03.png

後の設定は全てデフォルトのままでOKです。
上記の設定をしたら、「ルールの作成」をクリックして作成します。

4. 実行

EventBridgeがEC2インスタンスの状態変化を検知できているか確認してみます。
EC2インスタンスの一覧画面から作成したインスタンスを選択し、インスタンスを停止(終了でも可)します。
すると、インスタンスの状態が「stopped」に変更されます。
インスタンスが停止されたら、SNSでエンドポイントに指定したアドレスを確認してください。
以下のように、インスタンスの状態が停止になったことを通知するメールが届いていれば成功となります。
07-check-change-state-notification.png

試したあとは、インスタンスやSNSトピック、EventBridgeのルールを削除しておきましょう。

まとめ

EventBridgeを利用することで、あるイベントの発生をトリガーとして、さまざまなAWSサービスを起動させることができます。
今回の例ではSNSからのメール通知を行いましたが、例えばEC2インスタンスの状態がterminatedになったら、Lambdaを起動してインスタンスを再起動するという仕組みを構築することもできます。
このように、EventBridgeを利用することで運用にまつわる作業を自動化することができます。

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
What you can do with signing up
0
Help us understand the problem. What are the problem?