AWS S3 replication setup guide: Key concepts, types and key steps
AWS S3 replication setup guide: Key concepts, types and key steps

Manually scripting object transfers between Amazon S3 buckets is operationally complex, error-prone, and fails to scale. This level of availability and compliance depends on an automated, observable, and auditable process for distributing data.
Amazon S3 replication is the managed feature that automates this data movement to withstand regional outages, deliver low-latency access for global users, and satisfy data sovereignty laws. It copies objects from a source bucket to a destination based on a defined configuration. There are different methods for specific scenarios:
- Cross-region replication (CRR) which copies objects to a bucket in a different region.
- Same-region replication (SRR) which copies objects to a bucket in the same region.
- S3 batch replication, which copies existing database objects.
This guide details the technical configuration for each of these replication methods, including how to implement S3 Replication Time Control (RTC) 's SLA-backed performance.
What is Amazon S3 replication?
Amazon S3 replication automatically copies objects from a source S3 bucket to another. One or more replication rules, applied to the source bucket, control the scope of the replication. A rule can target an entire bucket or filter objects by a specific prefix, object tags, or a combination of both. A configured IAM role grants S3 the necessary permissions to read and write objects for the transfer.
Once it’s active, a rule triggers S3 to asynchronously copy any new or modified object that matches its criteria. This process preserves most metadata, including object tags and access control lists (ACLs). Standard replication rules have a critical limitation: they only apply to objects created after the configuration is saved and do not synchronize data that already exists in the bucket.
The service provides 3 replication methods for different use cases:
Primary use cases for S3 replication
Engineers use S3 replication to address 4 primary operational and business requirements. The specific method, Cross-Region Replication (CRR) or Same-Region Replication (SRR), depends directly on the technical or compliance goal.
Business continuity
To protect against a regional AWS outage, engineers use:
- CRR to maintain a complete, off-site copy of critical data.
- By replicating objects to a bucket in a second, geographically distant AWS Region, CRR provides a redundant data source for failover.
- This strategy forms a foundational component of disaster recovery plans that must meet specific Recovery Time Objectives (RTOs) and Recovery Point Objectives (RPOs).
Latency
Latency is a primary concern for applications with a global user base or distributed compute workloads.
- CRR reduces latency by placing object copies closer to the end users or servers that need them.
- Instead of routing all requests to a single, distant S3 bucket, applications access a replica in a local AWS Region, which improves access times and application performance.
Compliance
Data sovereignty laws often require that specific data, such as financial records or personal information, remain within a country's borders.
- SRR meets these requirements by creating a backup copy of the data within the same AWS Region but in a separate AWS account, which adds a layer of protection against accidental deletion.
- CRR also satisfies compliance rules that require data to be stored in geographically separate locations, a minimum distance apart.
Analysis
Storing operational logs from multiple applications in separate S3 buckets complicates analysis.
- SRR solves this by replicating logs from many source buckets into a single, centralized destination bucket in the same region.
- This creates a unified dataset for analytics, security monitoring, or auditing without the data transfer costs associated with moving data across regions.
Types of S3 replication
AWS S3 provides 2 methods for live data replication:
- Cross-Region Replication (CRR)
- Same-Region Replication (SRR).
The choice between them depends entirely on the architectural goal, as each addresses a distinct set of operational requirements and has different cost implications.
Cross-Region Replication (CRR)
CRR copies objects to a destination bucket in a different AWS Region, creating geographic separation between the source and destination data. The need for business continuity, latency reduction, or specific compliance mandates that require geographic distance drives the selection of CRR.
The primary architectural consideration for CRR involves the cost of inter-region data transfer. AWS charges for data transferred out of the source region and for the PUT requests that write objects to the destination bucket. For large-scale or high-throughput replication, these costs become a significant factor in the overall design.
Same-Region Replication (SRR)
SRR copies objects to a destination bucket within the same AWS Region. This method does not support disaster recovery from a regional outage. Instead, SRR provides data management and operational efficiency within a single geographic area. Engineers use SRR to centralize log files for analysis or to replicate production data to a separate account for development and testing.
Because the data never leaves the source AWS Region, SRR eliminates inter-region data transfer fees. The simpler cost model consists of storage for the replicated data and standard charges for S3 PUT requests. This lack of transfer fees makes SRR a cost-effective method for data aggregation and creating logically separate, redundant copies.
Key concepts and prerequisites
S3 replication requires 3 prerequisites to function. An engineer must configure them before creating a replication rule, as misconfiguration is the primary cause of replication errors.
Bucket versioning
Versioning must be enabled on both the source and destination S3 buckets. S3 replication tracks and copies every version of an object, including updates, delete markers, and metadata changes.
This versioning creates a complete object history, prevents data loss from accidental overwrites, and ensures the replica is an exact copy of the source. Once an engineer enables versioning on a bucket, they cannot disable it; they can only suspend it.
IAM role and permissions
The S3 service requires explicit permission to replicate objects. An engineer grants these permissions by creating and assigning a specific AWS Identity and Access Management (IAM) role to the replication configuration. S3 then assumes this role to gain the necessary permissions for the data transfer.
The role’s trust policy must allow the S3 service principal (s3.amazonaws.com) to assume it. The associated permissions policy must grant, at the very minimum, permissions to:
- Read objects and their versions from the source bucket.
- Replicate objects, delete markers, and tags to the destination bucket.
Object ownership and bucket policies
S3 only replicates objects owned by the source bucket owner. In cross-account uploads, replication fails unless ownership is transferred.
Engineers can enforce ownership using 1 of 2 methods:
- Canned ACL (bucket-owner-full-control): The uploading account grants full control to the bucket owner at the time of upload.
- Object Ownership setting (Bucket Owner Enforced): This bucket-level configuration automatically overrides ACLs and ensures the bucket owner owns all uploaded objects.
For cross-account replication, the destination bucket’s policy must also allow the source account’s IAM role to write objects.
Configuring new objects with AWS S3 replication
The process involves defining the replication scope, choosing a destination, and creating an IAM role to grant S3 the necessary permissions.
The steps below assume both source and destination buckets exist and have versioning enabled.
Step 1: Create the replication rule
- Navigate to the Amazon S3 console and select the source bucket.
- Choose the Management tab.
- Under Replication rules, choose Create replication rule.
Step 2: Define the source and destination
- Enter a Replication rule name (e.g., crr-to-backup-region) and set the Status to Enabled.
- In the Source bucket section, define the scope. Choose between applying the rule to all objects or limiting it by prefix or object tags. Select Apply to all objects in the bucket.
- In the Destination section, select a bucket in the current account or specify a destination bucket in another AWS account.
Step 3: Create the IAM role
- In the IAM role section, select Create a new role.
- AWS automatically generates a new IAM role with the correct trust policy and a permissions policy that grants S3 access to read objects from the source and replicate them to the destination.
- Note the automatically generated name for the role.
Step 4: Set destination options
- Configure options for the replicated objects. Change the storage class to optimize costs (e.g., from Standard to Infrequent Access) or enable S3 Replication Time Control (RTC) for an SLA-backed replication time.
- Enable Delete marker replication to synchronize deletions. Enabling this option creates a delete marker in the destination when an object is deleted from the source. Disabling it leaves the replica object in the destination after a source deletion.
Step 5: Save and verify
- Review the Replication configuration summary and choose Save.
- To verify the rule, upload a new file to the source bucket. Navigate to the destination bucket to confirm the object appears. The replication process is asynchronous, so the copy will not be instantaneous.
How to replicate existing objects with S3 Batch Replication
Standard replication rules only apply to new objects created after the rule is enabled. To replicate objects that existed in the S3 bucket before you configured replication, an engineer must use S3 Batch Replication. This feature runs a one-time Batch Operations job to process and copy a large number of existing objects, synchronizing the source and destination buckets.
Step 1: Navigate to Batch Operations
- From the S3 console, select Batch operations from the left-side navigation menu.
- Choose Create job.
Step 2: Select the job region and manifest
- Choose the AWS region where you want to create and manage the job.
- In the Manifest section, select Create manifest using S3 replication configuration. This instructs Batch operations to generate a list of all objects in the source bucket that fall under the scope of an existing replication rule but have not yet been replicated.
Step 3: Choose the job operation
- Select Replicate as the operation type.
- Choose the specific replication rule to apply to the existing objects. This ensures the batch job uses the same destination and IAM role defined in the live replication configuration.
Step 4: Configure additional options
- Enter a Description for the job (e.g., backfill-replication-q3-logs).
- Set a Priority level for the job. Higher numbers give the job priority over other Batch Operations jobs running in the same account.
- Configure a Completion report. This is a required step. Specify a bucket where S3 will deliver a report detailing the success or failure of each object replication task. Select Generate completion report for all tasks.
Step 5: Configure permissions
- Select the IAM role that batch operations will use to run the job. This role requires permission to read the manifest from the source bucket and write the completion report for its destination.
- Choose an existing S3 batch operations role or create a new 1 based on the replication rule.
Step 6: Review and create the job
- Review the job details, including the source, operation, and permissions.
- Choose Create job.
- The job will be created in a Preparing state while S3 generates the manifest. Once it moves to the Awaiting your confirmation state, select the job and choose Run job to begin the replication.
S3 Replication time control
Standard S3 replication proceeds asynchronously and offers no completion time guarantee. When business or compliance requirements demand a predictable replication window, engineers enable S3 Replication Time Control (RTC). This feature adds a Service Level Agreement (SLA) for replication performance at an additional cost.
The S3 RTC SLA guarantees the replication of 99.9% of objects within 15 minutes during any billing month. Enabling RTC on a replication rule publishes detailed performance metrics to Amazon CloudWatch. Engineers can then use these metrics to monitor replication latency, the number of pending objects, and the total size of pending data in real time.
This monitoring capability is critical for auditing compliance and confirming that the system meets disaster recovery objectives.
Engineers use RTC for time-critical workloads, which have a higher data transfer cost than standard replication. RTC is only available for Cross-Region Replication (CRR). The SLA does not apply if replication rates exceed the default S3 performance guidelines or data transfer limits.
Simplify data ingestion and S3 replication with Fivetran
A complete S3 replication strategy protects data, reduces latency, and supports security and compliance efforts.
However, a reliable S3 replication strategy starts with reliable data ingestion. That’s where Fivetran comes in.
Fivetran automates movement from 700+ sources into Amazon S3, so your replication pipeline starts with clean, consistent inputs.
[CTA_MODULE]
Related posts
Start for free
Join the thousands of companies using Fivetran to centralize and transform their data.
