
【VPC外リージョンサービス】
EventBridge は、サーバーレスの Event Bus(イベントバス) サービスです。
AWS Service Events(AWSサービスイベント)、Partner Events(パートナーイベント)、および Custom Events(カスタムイベント) を統合的に受け取ることができます。また、アプリケーションから PutEvents API を使用して独自の Event を送信することも可能です。
受信したEvent(イベント) は、Event Pattern(イベントパターン) を定義した Rule(ルール) に基づいて評価され、指定された Target(ターゲット) へルーティングされます。 Target には、Lambda、Step Functions、SNS、SQS、ECS、EKS、Kinesis Data Streams/Firehose、および外部API連携を行う API Destination などを指定することができます。
EventBridge は、Schema Registry(スキーマレジストリ) によりイベント構造をスキーマとして自動検出・管理し、型定義に基づいた開発を支援します。さらに、Event Archive(イベントアーカイブ) によって過去のイベントを保存し、Event Replay(イベント再送信) を利用して再処理やテストに活用することができます。また、イベント処理に失敗した場合には DLQ(Dead Letter Queue) に退避し、再試行や原因分析を行うことが可能です。
EventBridge は疎結合でスケーラブルなイベント駆動アーキテクチャを容易に実現し、監査・再処理・SaaS統合など多様なユースケースに柔軟に対応します。
重要用語
ユースケース
| イベント駆動の運用自動化 | EC2インスタンスの状態変化やスケジュール(cron)などをトリガーにしてLambdaやSSM Automationを起動し、障害対応や定期処理を自動化する。 |
| SaaSとのイベント連携 | ZendeskやGitHubなどのSaaSアプリからのイベントを受け取り、チケット作成や通知、社内システムとの連携フローを構築する。 |
| マイクロサービス間の疎結合連携 | 注文完了やユーザー登録などのビジネスイベントをバスに流し、複数のサービスがそれぞれ必要な処理をサブスクライブする形で連携させる。 |
ベストプラクティス
| 疎結合なイベント設計 | イベント駆動でサービス間を連携し、依存関係を減らす。 |
| デッドレターキューの設定 | 配信失敗イベントをSQSなどに退避し、再処理や調査を可能にする。 |
| スキーマレジストリの利用 | イベントスキーマを管理し、契約ベースの開発を促進する。 |
高可用性・バックアップ・リトライ
| 高可用性・バックアップ・リトライ設計のポイント |
|---|
| 【デフォルト】AWS内部で冗長化 ・イベントバス(Event Bus) ・ルール処理エンジン ・イベントの一時保存層 ・配信メカニズム |
| 【自動リトライ 】デフォルトでオン ターゲットへの配信を最大24時間、指数バックオフで自動リトライ |
セキュリティ
| 関連サービス | 設定内容 |
|---|---|
| KMS(データの暗号化と鍵の安全管理) | 【イベントデータをKMSで暗号化が必要】 独自KMSキーを使うことを推奨(鍵操作、監査) |
| Secrets Manager(機密情報の安全管理) | - |
| SSM Parameter Store(設定情報の一元管理) | - |
| CloudTrail(操作履歴の記録・監査・追跡) | 【自動記録】 作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI) データ操作は追跡できない(データプレーンAPI) |
| Config(リソースの構成状態・設定変更を記録) | 【Configが有効な場合】 ルール/バス設定の変更履歴・DLQ/暗号化準拠評価(対象に限る) |
| GuardDuty(脅威を自動検出) | 【GuardDutyが有効な場合】 ルール追加・削除などのAPI異常検知 |
EventBridge が実行ロールを引き受ける典型的な連携パターン
| 実行ロールの連携先サービス | 実行ロールにアタッチするポリシー |
|---|---|
| CloudWatch Logs | logs:CreateLogGroup logs:CreateLogStream logs:PutLogEvents |
| ECS | ecs:RunTask iam:PassRole |
| EC2 | ec2:StopInstances ec2:StartInstances ec2:RebootInstances |
| DynamoDB | dynamodb:GetItem dynamodb:PutItem dynamodb:UpdateItem dynamodb:DeleteItem dynamodb:Query dynamodb:Scan |
| S3 | s3:ListBucket s3:GetObject s3:PutObject s3:DeleteObject |
| Lambda | lambda:InvokeFunction |
| Step Functions | states:StartExecution |
| SQS(送信) | sqs:SendMessage |
| SNS | sns:Publish |
| Kinesis Data Streams | kinesis:PutRecord kinesis:PutRecords |
| Kinesis Data Firehose | firehose:PutRecord firehose:PutRecordBatch |
| CodePipeline | codepipeline:StartPipelineExecution |
| CodeBuild | codebuild:StartBuild |
| EventBridge | events:PutEvents |
| EventBridge Scheduler | scheduler:CreateSchedule scheduler:UpdateSchedule scheduler:DeleteSchedule |
| Glue | glue:StartJobRun |
| Batch | batch:SubmitJob |
| API Gateway | execute-api:Invoke |
| Backup | backup:StartBackupJob |
| Redshift Data API | redshift-data:ExecuteStatement |
| Inspector | inspector2:StartAssessmentRun |
| SageMaker | sagemaker:StartPipelineExecution |
| Secrets Manager | secretsmanager:RotateSecret |
| SSM Parameter Store | ssm:PutParameter |
| SSM Run Command | ssm:SendCommand |
| SSM Automation | ssm:StartAutomationExecution iam:PassRole |
信頼ポリシー: EventBridge
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
リソースベースポリシーによる補完
実行ロールで不足する権限をEventBridge のリソースベースポリシーで補うパターン
| リソースベースポリシーのPrincipal | リソースベースポリシーのAction |
|---|---|
| 【他のAWSアカウント】 arn:aws:iam::123456789012:root | events:PutEvents |
| 【Organizations】 *(条件付き) | events:PutEvents |
| 【SaaSパートナー】 events.amazonaws.com | events:PutEvents |
ログ・監視
| ログ出力先 | ログの種類 |
|---|---|
| CloudWatch Logs | イベント配信ログ |
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
| Invocations | ターゲット呼び出し回数 |
| MatchedEvents | ルールにマッチしたイベント数 |
| TriggeredRules | トリガーされたルール数 |
| DLQDeliveryFailed | DLQ配信失敗数 |
| DroppedEvents | ドロップされたイベント数 |
| FailedInvocations | 失敗した呼び出し回数 |
| FailedInvocationsToDLQ | DLQへの書き込み失敗数 |
| InvocationsThrottled | スロットルされた呼び出し数 |
| RuleProcessingFailed | ルール処理の失敗数 |
| ThrottledRules | スロットルされたルール数 |
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| スケジュール式の数 | 制限なし(ルール内) |
| ハードリミット | 制限値 |
|---|---|
| イベントサイズ | 256 KB |
| イベントバッチサイズ | 10イベント |
| ソフトリミット | 制限値 |
|---|---|
| ルール数/イベントバス | 300 |
| イベントバス数/アカウント | 100 |
| ターゲット数/ルール | 5 |
| PutEvents スループット | 10,000 RPS(デフォルト) |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| カスタムイベント | 発行されるカスタムイベント数 |
| クロスリージョン | クロスリージョン、クロスアカウント転送 |
| スキーマレジストリ | スキーマレジストリの使用 |
| API Destinations | API Destinationsへの呼び出し |