- Newest
- Most votes
- Most comments
Based on your requirements and the options you've outlined, the most suitable approach for your scenario would be to use cross-account targets with Amazon EventBridge (option 2). This solution offers several advantages that align well with your needs:
-
Simplicity and Cost-Effectiveness: EventBridge is a serverless service, which means you don't have to manage any infrastructure. It's also very cost-effective, especially for your low volume of events (estimated 100 messages/day).
-
Flexibility and Future-Proofing: By sending events to your own EventBridge bus in your account, you maintain the flexibility to change your event processing architecture in the future without requiring changes in your customers' accounts. You can easily add or modify targets for your EventBridge bus as your needs evolve.
-
Minimal Security Footprint: This approach requires minimal permissions in the customer accounts. You only need to allow the EventBridge in the customer account to send events to your account's EventBridge bus.
-
Built-in Retry Mechanism: EventBridge has a built-in retry mechanism for failed event deliveries, which addresses your concern about potential processing failures.
-
Replay Capability: EventBridge supports event replay, which can be useful if your receiver breaks and you need to reprocess events.
-
Decoupling: This approach decouples the event source from the event processing, allowing you to change your processing logic or infrastructure without affecting the customer setup.
-
Scalability: While not a primary concern for your current volume, using EventBridge provides built-in scalability if your needs grow in the future.
To implement this:
- Create an EventBridge bus in your account to receive events.
- Set up the necessary permissions on your EventBridge bus to allow events from customer accounts.
- In each customer account, create an EventBridge rule that matches the desired events (CloudFormation stack updates, specific CloudTrail API calls) and set the target as your EventBridge bus.
- In your account, create rules on your EventBridge bus to process the incoming events as needed (e.g., triggering a Lambda function, sending to SQS, etc.).
This approach provides a good balance of simplicity, flexibility, and security for your use case, while also allowing for easy modifications and scaling in the future if needed.
Sources
Introducing cross-account targets for Amazon EventBridge Event Buses | AWS Compute Blog
Shall we use default eventbus or Custom eventbus for cross account aws event transfer | AWS re:Post
Sending events to an AWS service in another account in EventBridge - Amazon EventBridge
Create a cross-account Amazon EventBridge connection in an organization - AWS Prescriptive Guidance
Relevant content
- AWS OFFICIALUpdated 5 months ago
