S3 Replication Time Control (RTC): SLA-Backed Replication in Under 15 Minutes

Ned
Ned Cloud Engineer
· Updated · 4 min read
S3 Replication Time Control (RTC): SLA-Backed Replication in Under 15 Minutes

The Problem

Your compliance and DR policy requires that every object written to your primary bucket is available in a second region within 15 minutes. You need this in writing: a contractual guarantee, not “usually fast.”

Standard Cross-Region Replication (CRR) is best-effort. Objects usually copy within minutes, but on a bad day it can be hours. That is not what you can put in front of an auditor.

The Solution

Enable S3 Replication Time Control (RTC) on your replication rule. RTC replicates 99.99% of new objects within 15 minutes, backed by an actual AWS Service Level Agreement. It also enables S3 Replication Metrics so you can alarm on any object that misses the window.

How It Works

What RTC Guarantees

  • 99.99% of objects replicated within 15 minutes: measured monthly, backed by an SLA with service credits
  • The other 0.01% must still complete, most in a matter of seconds beyond the window
  • Metrics automatically published to CloudWatch: ReplicationLatency, BytesPendingReplication, OperationsPendingReplication
  • Event notifications when objects miss the 15-minute threshold

Enabling RTC on a Replication Rule

RTC is a property of the destination configuration inside a replication rule. Both source and destination buckets need versioning enabled.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
aws s3api put-bucket-replication \
  --bucket source-us-east-1 \
  --replication-configuration '{
    "Role": "arn:aws:iam::111122223333:role/S3ReplicationRole",
    "Rules": [{
      "ID": "rtc-to-eu-west-1",
      "Status": "Enabled",
      "Priority": 1,
      "DeleteMarkerReplication": { "Status": "Disabled" },
      "Filter": {},
      "Destination": {
        "Bucket": "arn:aws:s3:::destination-eu-west-1",
        "ReplicationTime": {
          "Status": "Enabled",
          "Time": { "Minutes": 15 }
        },
        "Metrics": {
          "Status": "Enabled",
          "EventThreshold": { "Minutes": 15 }
        }
      }
    }]
  }'

The two blocks that matter:

  • ReplicationTime: turns RTC on with the 15-minute SLA
  • Metrics: publishes replication metrics and fires events at the threshold

Alarming on Missed Replication

Create a CloudWatch alarm on s3:Replication:OperationMissedThreshold:

1
2
3
4
5
6
7
8
9
10
aws cloudwatch put-metric-alarm \
  --alarm-name s3-rtc-missed-threshold \
  --metric-name OperationsPendingReplication \
  --namespace AWS/S3 \
  --statistic Maximum \
  --period 60 \
  --evaluation-periods 3 \
  --threshold 0 \
  --comparison-operator GreaterThanThreshold \
  --dimensions Name=SourceBucket,Value=source-us-east-1 Name=DestinationBucket,Value=destination-eu-west-1

Any object pending beyond 15 minutes triggers the alarm. Wire it to SNS and route to your on-call.

The Cost of RTC

RTC is not free. You pay:

  • Standard replication charges (PUT requests, storage in destination, inter-region data transfer)
  • RTC data transfer fee: a per-GB premium on top of standard inter-region transfer
  • Replication Metrics: priced like CloudWatch custom metrics

For a compliance workload where the SLA is the point, this is worth it. For a bulk backup with loose timing, standard CRR is fine.

RTC vs Standard Replication

Feature Standard CRR/SRR RTC
SLA on time None 99.99% within 15 min
CloudWatch metrics Optional Included
Event notifications No Yes (missed threshold)
Additional cost None extra Per-GB RTC fee
Use case Backup, analytics Compliance, DR RPO

Prerequisites

  • Versioning enabled on both source and destination buckets
  • IAM role with s3:Replicate* permissions
  • Destination in a different region (RTC also works with same-region replication)
  • Objects existing before the rule was created are not replicated unless you run a batch replication job

Why Not the Alternatives?

Standard Cross-Region Replication: Usually fast, but no SLA. Cannot satisfy a “within 15 minutes” contractual requirement.

S3 Batch Replication: Great for one-time backfills of existing objects. Not for ongoing streaming replication with tight timing.

Custom Lambda-based copy via S3 events: Fragile, requires DLQs, retries, monitoring, and still gives you no AWS SLA.

AWS DataSync between buckets: Scheduled or on-demand, not continuous. Wrong tool for streaming replication.

Key Takeaways

  • S3 RTC replicates 99.99% of objects within 15 minutes, backed by an AWS SLA with service credits
  • Enable via the ReplicationTime and Metrics blocks in the destination configuration
  • Replication Metrics publish to CloudWatch. Alarm on OperationsPendingReplication
  • Both source and destination buckets need versioning enabled
  • Pay the RTC premium only where the SLA is required. Standard CRR is fine for bulk backup
Rating:
Share
Previous S3 Presigned POST: Enforcing File Size and Content-Type at Upload Time Next S3 Event Notifications to Lambda: Serverless Image Processing on Upload