Which solution will meet these requirements with the LEAST operational overhead?
Configure the application to write each object to both S3 buckets. Set up an Amazon Route 53 public hosted zone with a record set by using a weighted routing policy for each S3 bucket. Configure the application to reference the objects by using the Route 53 DNS name.
Create an AWS Lambda function to copy objects from the S3 bucket in us-east-1 to the S3 bucket in the second Region. Invoke the Lambda function each time an object is written to the S3 bucket in us-east-1. Set up an Amazon CloudFront distribution with an origin group that contains the two S3 buckets as origins.
Configure replication on the S3 bucket in us-east-1 to replicate objects to the S3 bucket in the second Region. Set up an Amazon CloudFront distribution with an origin group that contains the two S3 buckets as origins.
Configure replication on the S3 bucket in us-east-1 to replicate objects to the S3 bucket in the second Region. If failover is required, update the application code to load S3 objects from the S3 bucket in the second Region.
Explanations:
This option introduces manual management of S3 object writing and relies on Route 53 for load balancing. It increases operational overhead due to the complexity of managing multiple buckets and DNS records.
While this option uses a Lambda function for copying objects, it adds operational overhead by requiring manual invocation for every write operation. It also does not ensure immediate failover capabilities.
This option uses S3 cross-region replication, which automates the replication of objects to the second S3 bucket, ensuring resiliency with minimal operational overhead. The CloudFront distribution allows seamless access to both buckets.
Although this option uses replication, it requires the application code to handle failover, which increases operational complexity. This approach does not leverage the benefits of CloudFront for better performance and availability.