AWS再入門ブログリレー Amazon EventBridge編(ECRイメージスキャン結果をSNS経由でメール通知)

『AWS 再入門ブログリレー 2020』の8日目のエントリ『Amazon EventBridge』編です。概要を押さえつつ、ECRイメージスキャン結果をEventBridgeでSNS経由でメール通知を行ってみました。
2020.08.13

こんにちは、コカコーラが大好きなカジです。

当エントリは弊社コンサルティング部による『AWS 再入門ブログリレー 2020』の 8日目のエントリです。

このブログリレーの企画は、普段 AWS サービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。

AWS をこれから学ぼう!という方にとっては文字通りの入門記事として、またすでに AWS を活用されている方にとっても AWS サービスの再発見や2020年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。

では、さっそくいってみましょう。8日目のテーマはAmazon EventBridgeです。

目次

Amazon EventBridgeとは?

Amazon EventBridgeは、雑に言うとマネージドイベントバスサービスです。

イベント駆動のアーキテクチャを容易に構築するためのもので、AWSのサービスや独自のアプリケーション、SaaSアプリケーションのデータ変更をイベントの送信元・送信先がお互いの実装を意識する必要が無く接続します。

あるサービスにおける、あるイベントを契機としたLambda処理などを丸っと構成することができます。 別システム間でのイベント連携についても、EventBridgeで一旦受けることことで、別システムの修正なく、自システム側でシステム追加に対応できるメリットがあります。

メリット

  • イベント駆動のアーキテクチャを容易に構築
  • データの取り込みフィルタ、配信が実装なしに実現可能
  • イベント連携用のサーバが不要でオートスケール
  • AWSサービスや対応SaaSアプリケーションのイベントを元に連携も可能

EventBridgeのアーキテクチャ

  • イベントソース
  • イベントバス(デフォルト/カスタム/パートナー)
  • ルール
  • ターゲット

EventBridgeのアーキテクチャ

3種類のイベントバス

イベントソース イベントバスの種類
AWSサービス デフォルト
独自アプリケーション カスタム
SaaSアプリケーション パートナー

EventBridgeでサポートされているAWSサービスからのイベント(抜粋)

かなりの量があるため、抜粋しています。

  • Application Auto Scaling イベント
  • AWS Batch イベント
  • Amazon EBS イベント
  • Amazon EC2 Auto Scaling イベント
  • Amazon EC2 スポットインスタンスの中断イベント
  • Amazon EC2 状態変更イベント
  • Amazon Elastic Container Registry (Amazon ECR) イベント
  • Amazon Elastic Container Service (Amazon ECS) イベント
  • Amazon GuardDuty イベント
  • AWS Health イベント
  • AWS マネジメントコンソール サインインイベント
  • AWS OpsWorks スタックイベント
  • Amazon SageMaker イベント
  • AWS Security Hub イベント
  • AWS リソースのタグ変更イベント
  • AWS Trusted Advisor イベント
  • Amazon WorkSpaces イベント

EventBridgeでサポートされているパートナーからのイベント

構築手順(EventBridgeでECRのスキャン結果通知をメール通知)

ECRのスキャン結果をEventBridgeでSNS経由でメール通知してみます。

構成図

前提条件

  • ECRは構築済み
  • ECRにDockerイメージをPush済み

ターゲットの準備(メール通知するためのSNSトピック作成)

トピックを作成します。

トピック名を入力しトピック作成

サブスクリプションの作成

サブスクリプションの作成でメールアドレスを登録

登録したメールアドレスに承諾メール(件名:AWS Notification - Subscription Confirmation)が届いているのでメールを開いて承諾(Confirmation)すると登録済みになります。

EventBridgeのルール作成

マネージメントコンソールでEventBridgeを選び

ルールを作成をクリック

ルール名と、サービスプロバイダにAWS、サービス名にECR、イベントタイプにECR Image Scanを選択

ターゲットに作成したSNSのトピックを選択し作成します

ECRでイメージスキャン実行

ECRを開いて、イメージスキャンを実行します。

実行した結果画面

SNS経由でのメール通知結果

SNS経由でメール送付されます。

その他

AWSアカウント間でAmazon EventBridgeイベントを送受信する場合は以下のブログが参考になります。

IAM Access AnalyzerをAmazon EventBridgeで監視してAmazon SNSで通知も以下のブログでできます

気になるレイテンシ-とSLA

2020/08/09時点

イベントの送受信の間に発生するレイテンシは約0.5秒(場合によって異なる場合あり)

EventBridge SLA(Service Level Agreement)は99.99%の月間稼働率

制限

2020/08/09時点 東京リージョンの場合(上限緩和可能なものもあり)

上限対象 上限値
イベント公開 APIリクエスト(PutEvent) デフォルトで毎秒 1200 リクエスト
その他のすべての API リクエスト PutEvents以外のすべての EventBridge APIは、デフォルトで毎秒 50リクエスト
イベントバス数 アカウントあたり最大 100 イベントバス
イベントバターン 最大2048文字
呼び出し デフォルトで毎秒 2250 リクエスト
ルール イベントバスあたり 300
ターゲット 1ルールあたり5ターゲット

詳細はAmazon EventBridge のクォータ

料金

2020/08/09時点 東京リージョン料金

課金対象(受信したイベント) 料金
AWS のサービスイベント 無料
カスタムイベント 100万件の公開済みカスタムイベントごとに 1.00USD
サードパーティー (SaaS) のイベント 100万件の公開済みイベントごとに 1.00USD
クロスアカウントイベント 100万件の送信済みクロスアカウントイベントごとに 1.00USD

スキーマレジストリとスキーマディスカバリー

スキーマレジストリとスキーマディスカバリーはEventBridgeで扱うイベントデータのスキーマ情報(あるいは型情報)を公開・共有するサービス

課金対象 料金
スキーマレジストリ 無料
スキーマディスカバリー 100万件の検出取り込みイベントごとに 0.10USD(1か月あたり500万件の取り込まれたイベントが無料)

詳細な料金はこちら

参考元

よくある質問 Amazon EventBridge

Amazon EventBridge サービスレベルアグリーメント (SLA)

Amazon EventBridge のクォータ

20200122 AWS Black Belt Online Seminar Amazon EventBridge

最後に

EventBridgeで、簡単にイベント駆動のアーキテクチャを容易に構築できることや、通知する側、通知される側を独立することができるため、受信側のシステムで同じ通知を複数のシステムで受けたい場合でも、送信元のシステムに変更依頼することなく、自分たちのシステムで完結できるので、システムの拡張しやすくなると思いました。

以上、『AWS 再入門ブログリレー 2020』の8日目のエントリ『Amazon EventBridge』編でした。 明日 (8/14) はYuiの「Amazon CloudWatch」の予定です。お楽しみに!!