Cross-Region Replication Monitor
Reference Implementation

Architecture Overview

Deploying this solution with the default parameters builds the following environment in the AWS Cloud.

        CRR Monitor Architecture on AWS

Figure 1: Cross-Region Replication Monitor architecture on AWS

The primary AWS CloudFormation template deploys all solution components in the AWS Region that hosts the source Amazon S3 bucket(s) (labeled the Monitor region in the diagram). These include AWS Identity and Access Management (IAM) roles, AWS Lambda functions, an AWS CloudTrail trail, an Amazon CloudWatch event, an Amazon SNS topic, and an Amazon DynamoDB table. The solution turns on AWS CloudTrail and automatically enables the data events for the source and destination buckets that have CRR enabled.

When an object is added to a source S3 bucket in the Monitor region, AWS CloudTrail logs the data event; this activity triggers an Amazon CloudWatch alarm that delivers the status information to an Amazon SNS topic. Amazon SNS then sends the data to an Amazon SQS queue. When a replicated object is added to a destination bucket, it triggers a similar event in the Agent region, sending status information back to the Amazon SQS queue in the Monitor region. The AWS Lambda functions process the data in the queue to verify that the object was replicated successfully. If the object replication fails, an AWS Lambda function logs the event in CloudWatch, triggering a CloudWatch alarm that sends an Amazon SNS notification to the subscriber.

Once the solution’s Lambda function verifies an object was successfully replicated, it stores the data in an Amazon DynamoDB table for immediate access. Status data in the DynamoDB table is deleted and replaced every 24 hours. Customers who deploy this solution in an AWS Region that offers Amazon Kinesis Firehose can choose to archive solution data to Amazon S3. If you enable this feature, the solution uses a Firehose delivery stream to upload data to one of your existing S3 buckets for later analysis. You can use Amazon Athena, a serverless, interactive query service, to easily analyze historical data in Amazon S3.