AWS認定資格 WEB問題集&徹底解説
クラウドプラクティショナー
AWSサービスの一つであるAmazon EventBridgeはどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
Amazon EventBridge は、AWS サービス・SaaS アプリ・独自アプリから発生するイベントを受け取り、ルールに基づいて各種ターゲットにルーティングするサーバーレスのイベントバスサービスです。 旧名「CloudWatch Events」の拡張版で、SaaS 統合・スキーマ管理・パイプ・スケジューラーが追加されています。
疎結合なイベント駆動アーキテクチャを宣言的に構築でき、プロデューサーとコンシューマーが互いを意識せずに連携できます。 主なユースケース: マイクロサービス間連携、SaaS 統合、リアルタイムイベント処理、スケジュール実行、ワークフロートリガー。
2. 主な特徴と機能
2.1 イベントバスの種類
- デフォルトイベントバス: 同一アカウント内の AWS サービス(EC2・S3・CodePipeline 等)のイベントを自動受信。
- カスタムイベントバス: 独自アプリの PutEvents API で送信するイベント用。アプリやドメインごとに分離可能。
- パートナーイベントバス: Zendesk・Salesforce・Datadog 等の SaaS パートナーからのイベントを直接受信。
2.2 ルールとイベントパターン
- ルールはイベントパターン(source / detail-type / detail フィールドのフィルタ)またはスケジュール(cron/rate)でトリガー。
- 1 ルールに最大 5 つのターゲットを設定可能。一致したイベントを並列に複数ターゲットへ送信。
- Input Transformer: ターゲットに渡す前にイベント JSON を変換・整形できる。
2.3 ターゲット
- Lambda・SQS・SNS・Step Functions・ECS タスク・Kinesis Data Streams・API Destinations など多数。
- API Destinations: HTTP エンドポイントへの安全なルーティング。OAuth / APIキー認証を管理するコネクション機能付き。
2.4 EventBridge Pipes(2022年〜)
- ソース(SQS・Kinesis・DynamoDB Streams・Kafka 等)とターゲットを1対1のパイプで接続。フィルタリング・エンリッチメント・変換を途中で実施可能。
- EventBridge Pipes は Lambda なしで Source→Filter→Enrich→Target の単純なフローを実装できる。
2.5 EventBridge Scheduler(2022年〜)
- 数百万のスケジュールタスクを管理できるフルマネージドスケジューラー。
- cron/rate 式でターゲット(Lambda・SQS・Step Functions 等)を定期実行。CloudWatch Events スケジュールより柔軟でスケーラブル。
2.6 スキーマレジストリとディスカバリー
- 流れるイベントのスキーマを自動検出してレジストリに登録。
- Java・Python・TypeScript の型安全なコードバインディングを自動生成。
3. アーキテクチャおよび技術要素
- プロデューサー(AWS サービス / 独自アプリ / SaaS)がイベントバスにイベントを送信。
- ルールのイベントパターンがペイロードをフィルタリング。
- マッチしたイベントが並列に複数ターゲットへルーティング。
- Input Transformer でペイロードを変換してからターゲットに渡す。
- ターゲット(Lambda / SQS / Step Functions 等)がイベントを処理。
典型パターン: EC2 状態変化イベント → EventBridge ルール → Lambda(Slack 通知)+ SQS(ジョブキュー)。 クロスアカウント連携ではイベントバスにリソースポリシーを設定し、別アカウントの EventBridge ルールからイベントを受信する。
4. セキュリティと認証・認可
- IAM ポリシー: PutEvents・PutRule・PutTargets 等の API 操作を制御。
- リソースポリシー(イベントバス): クロスアカウントでのイベント送受信を制御。他アカウントからのPutEvents を許可する場合に設定。
- ターゲット用 IAM ロール: EventBridge がターゲット(Lambda Invoke / SQS SendMessage 等)を呼び出す権限。
- API Destinations コネクション: OAuthトークン・APIキー等をSecrets Managerで安全管理。
- CloudTrail 統合: API 操作の監査ログを自動記録。
5. 料金形態
- デフォルトイベントバス(AWS サービスイベント): 無料。
- カスタム / パートナーイベントバス: PutEvents で送信したイベント数(64KB 単位)に応じて課金。
- EventBridge Pipes: 処理したイベント数で課金。
- EventBridge Scheduler: スケジュール実行回数で課金(一定の無料枠あり)。
- スキーマディスカバリー: 検出・登録イベント数で課金(無料枠あり)。
6. よくあるアーキテクチャ・設計パターン
- マイクロサービス間の疎結合: サービス A がカスタムイベントバスにイベント送信 → サービス B の Lambda がルールでキャッチ。直接呼び出しを排除。
- SaaS 統合: Salesforce / Zendesk → パートナーイベントバス → Lambda(CRM データ同期)。
- ワークフロートリガー: S3 オブジェクト作成イベント → EventBridge → Step Functions で処理パイプライン起動。
- クロスアカウントイベント集約: 複数アカウントの EventBridge → セントラルアカウントのカスタムイベントバス → 集中監視 Lambda。
- 定期スケジュール実行: EventBridge Scheduler で Lambda・ECS タスクを cron/rate で起動。CloudWatch Events より大規模対応。
- Pipes による ETL: DynamoDB Streams → EventBridge Pipes(フィルタ+Lambda変換) → Kinesis Data Streams。
7. 設定・デプロイ手順(ハンズオン例)
- EventBridge コンソールでカスタムイベントバスを作成する。
- ルールを作成し、イベントパターン(例:
{"source": ["my-app"], "detail-type": ["OrderPlaced"]})を定義する。 - ターゲットとして Lambda 関数と SQS キューを設定し、Input Transformer でペイロードを変換する。
- アプリケーションから PutEvents API でカスタムイベントを送信して動作確認。
- EventBridge Scheduler でスケジュール(毎日 9時 =
cron(0 0 * * ? *))を作成し、Lambda を定期実行する。 - CloudWatch Metrics で FailedInvocations・ThrottledRules を監視する。
8. 試験で問われやすいポイント
8.1 イベントバス種別の選択(最頻出)
Q: Salesforce や Zendesk から AWS にイベントを受け取りたい場合は?
A: パートナーイベントバス。SaaS パートナーからのイベントを直接受信するために使用。
Q: 独自アプリのイベントを別のマイクロサービスに送るには?
A: カスタムイベントバスに PutEvents API でイベントを送信し、ルールでターゲットへルーティング。
8.2 CloudWatch Events との関係
Q: CloudWatch Events と Amazon EventBridge の違いは?
A: EventBridge は CloudWatch Events の拡張版(上位互換)。同じ API を使いつつ、SaaS 統合・スキーマ管理・Pipes・Scheduler が追加された。新規開発では EventBridge を使う。
8.3 EventBridge vs SNS vs SQS
Q: イベントのフィルタリング・ルーティングが主目的で複数ターゲットへの並列配信が必要な場合は?
A: EventBridge。SNS のフィルタは属性ベース、EventBridge はイベント JSON 全体に対して詳細フィルタが可能。
8.4 クロスアカウントイベント共有
Q: 別 AWS アカウントのイベントを自アカウントの EventBridge で受け取るには?
A: 受信側のイベントバスにリソースポリシーを設定して送信元アカウントからの PutEvents を許可する。
8.5 EventBridge Scheduler vs CloudWatch Events スケジュール
Q: 大量のスケジュールタスクを効率的に管理したい場合は?
A: EventBridge Scheduler。CloudWatch Events のスケジュールより大規模に対応し、タイムゾーン指定やフレキシブルウィンドウもサポート。