Use S3 Batch Operations replication to retry objects that failed to replicate
A company deploys an application to two AWS Regions. The application creates and stores objects in an Amazon S3 bucket that is in the same Region as the application. Both deployments of the application need to have access to all the objects and their metadata from both Regions. The company has configured two-way replication between the S3 buckets and has enabled S3 Replication metrics on each S3 bucket. A DevOps engineer needs to implement a solution that retries the replication process if an object fails to replicate. Which solution will meet these requirements?
Community Votes
85% of anonymous learners picked answer D. Votes are pick records left by other test-takers — they are not the verified answer.
Community Insight
S3 Batch Replication exists specifically to retry failed replications, producing a manifest of failed objects and re-replicating them, which is exactly the requirement (D). Option A wires EventBridge to a Lambda that downloads and re-Puts the failed object, but S3 does not emit an EventBridge event for replication failures, so the trigger described does not exist; option B routes notifications through SQS with the Lambda polling, adding queue infrastructure for the same manual re-Put logic.
With two-way S3 replication configured and replication metrics enabled, the requirement is to retry replication for objects that failed. Amazon S3 Batch Operations provides a dedicated Batch Replication capability that generates a replication manifest for objects that previously failed to replicate and re-replicates them in batches, which is the purpose-built retry mechanism. A Lambda plus EventBridge or SQS would have to reimplement the retry logic and would still have to identify failed objects.
Building an EventBridge rule that listens for S3 replication failure events (A and C)—S3 does not publish replication failure events to EventBridge, so the trigger would never fire; this was the decisive objection raised against option A. Polling an SQS queue with a Lambda that re-Puts the object (B)—it re-creates the retry logic manually and requires the queue to be polled, whereas the built-in operation handles manifest generation and retries.
Community Discussion (8 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Why the Answer Is Correct
Amazon S3 Batch Replication is an S3 Batch Operations job type built specifically for this situation: it creates a replication manifest covering objects that existed before replication was configured, objects already replicated, and objects that failed to replicate, then re-replicates them. That is precisely the requested retry of failed replications, and it is a native, managed operation rather than custom code, which also aligns with the stated use of replication metrics.Why the Other Options Are Wrong
A and C both propose an EventBridge rule that listens for S3 event notifications for failed replications. S3 does not emit an EventBridge event for replication failures, so no such event would ever trigger the rule, and C additionally omits the step that invokes the Lambda. B routes the notifications through an SQS queue and has a Lambda poll it and re-Put the object, which reimplements the retry manually and adds a queue to operate. D is the purpose-built choice.Community Comment Notes
Community voted D (85), with A a 15 percent minority. Commenters quoted the AWS documentation that S3 Batch Replication replicates objects that existed before replication was configured, objects previously replicated, and objects that failed to replicate. One commenter favored A for being streamlined, but the mechanism it depends on does not exist.Official Reference
Related Analysis
Practice All DOP-C02 Questions
Access 85 questions with complete answers and detailed explanations.
View Full DOP-C02 Practice Test →