サイトアイコン 協栄情報ブログ

AWS CDKによる【Health・EventBridge】の構築

皆様こんにちは。
AWS CDKを利用してマルチAZ3層アーキテクチャ構築をしていきます。
この記事ではHealth・EventBridgeの作成を行います。

目次はこちら

1.AWS Healthとは

AWS Healthは、AWSリソースの正常性や運用状態に関する情報を提供するサービスです。これは、AWSのインフラストラクチャとサービスに関するリアルタイムのアラートやガイダンスを提供し、ユーザーがシステムの健全性を維持し、問題の発見と解決を迅速に行うのに役立ちます。

主な機能

1. パーソナライズされたダッシュボード

2. リアルタイムアラート

3. 詳細なイベント情報

4. 履歴の参照

5. 統合と通知

使用例

AWS Healthは、主に以下のようなシナリオで利用されます。

1. サービスの問題の迅速な発見

2. メンテナンス情報の通知

3. アカウント関連の重要な通知

詳細は公式ドキュメントを参照ください。

2.AWS EventBridgeとは

AWS EventBridgeは、様々なAWSサービスや独自のアプリケーションからのデータストリームを統合してリアルタイムでイベント駆動型のアーキテクチャを構築するためのサービスです。EventBridgeを使用すると、アプリケーション間でデータをシームレスに連携させ、迅速かつ効率的にイベントを処理することができます。

主な機能

1. イベントバス

2. 柔軟なルーティング

3. 多様なターゲット

4. カスタムイベント

5. スキーマレジストリ

使用例

AWS EventBridgeは、主に以下のようなシナリオで利用されます。

1. リアルタイムのデータ処理

2. サービス間の統合

3. カスタムアプリケーションのイベント管理

詳細は公式ドキュメントを参照ください。

3.目的

※SNSトピックはCloudWatch・SNS構築にて作成済みのものを使用する

4.構成図

5.EventBridge構築

EventBridgeの構築のみ行います。

5-1.EventBridgeルールの作成

"events.Rule"を使用

論理ID(テンプレート内で一意)の指定をしたのち、詳細のプロパティを指定しています。

プロパティは下記

使用するプロパティ 設定値 説明
events.EventPattern "kitaya-evt-health" ルールの名前を指定します。
event_pattern events.EventPattern(下記参照) イベントパターンを定義します。イベントパターンは、ルールがトリガーされる条件を指定します。

"events.EventPattern"

使用するプロパティ 設定値 説明
source ["aws.health"] イベントソースを指定します。AWS Healthサービスからのイベントを対象としています。
detail_type ["AWS Health Event"] イベントの詳細タイプを指定します。

ソースコード

        # EventBridge ルールの作成
        rule = events.Rule(self, "HealthEventRule",
            rule_name="kitaya-evt-health",
            event_pattern=events.EventPattern(
                source=["aws.health"],
                detail_type=["AWS Health Event"]
            )
        )

5-2.SNS トピックをターゲットに追加

".add_target"メソッドを使用して追加

ルールに対してアクションのターゲットを追加するためのメソッドです。ルールがトリガーされた際に、指定したターゲットに対してアクションが実行されます。

"targets.SnsTopic"クラスでターゲットとしてSNSトピックを指定

EventBridgeのターゲットとしてSNSトピックを指定するためのクラスです。これを使用することで、指定したSNSトピックに対してイベントを送信できます。

ソースコード

# SNS トピックをターゲットに追加
rule.add_target(targets.SnsTopic(sns_topic))

6.検証

マネジメントコンソールでイベントの作成、ターゲットの指定が正しいことを確認します。

6-1.イベントの作成

6-2.ターゲットの指定

7.感想

今回でCDKでの構築作業は以上となります。
CDKでは抽象的な構築と具体的に定義し構築することの両方ができる柔軟さが強みだと実感しました。
初めてのコーディングということもあり、強みをうまく活かすことはできませんでした。
ただ、構築を進めるごとにコーディング自体には少しづつ慣れることができました。
今後、CDKを使用する際には今回の学習を活かし、柔軟な構築を意識して取り組みたいと感じました。

モバイルバージョンを終了