Amazon S3 replication allows you to automatically copy objects from one bucket to another.
There are two types:
π CRR β Cross-Region Replication
π SRR β Same-Region Replication
<div class="infographic-s3repl">
<style>
.infographic-s3repl {
--ink: #1a1a1a;
--ink-soft: #5c5c5c;
--paper: #ffffff;
--bucket: #1f7a4d;
max-width: 780px;
margin: 0 auto;
box-sizing: border-box;
font-family: 'Inter', system-ui, sans-serif;
color: var(--ink);
background: var(--paper);
}
.infographic-s3repl[data-theme="dark"] {
--ink: #e8e6e1;
--ink-soft: #9a968c;
--paper: #121212;
--bucket: #4fbf85;
}
.infographic-s3repl * { box-sizing: border-box; }
.s3repl-scroller { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.s3repl-canvas { width: 100%; height: auto; display: block; min-width: 480px; }
.s3repl-bucket { fill: none; stroke: var(--bucket); stroke-width: 3.5; stroke-linejoin: round; }
.s3repl-title { font-size: 26px; fill: var(--ink); text-anchor: middle; }
.s3repl-sub { font-size: 26px; font-weight: 700; fill: var(--ink); text-anchor: middle; }
.s3repl-arrow { fill: none; stroke: var(--ink); stroke-width: 2.5; }
.s3repl-arrowhead { fill: var(--ink); }
.s3repl-label { font-size: 20px; fill: var(--ink); text-anchor: middle; }
</style>
<div class="s3repl-scroller">
<svg class="s3repl-canvas" viewBox="0 0 820 547" xmlns="http://www.w3.org/2000/svg">
<defs>
<marker id="s3repl-head" markerWidth="9" markerHeight="9" refX="6" refY="4.5" orient="auto">
<path d="M0,0 L9,4.5 L0,9 Z" class="s3repl-arrowhead"/>
</marker>
</defs>
<!-- left bucket: ap-south-1 -->
<g transform="translate(150,148)">
<ellipse class="s3repl-bucket" cx="105" cy="0" rx="105" ry="28"/>
<path class="s3repl-bucket" d="M6,4 L32,220 Q105,246 178,220 L204,4"/>
<path class="s3repl-bucket" d="M178,92 Q240,92 240,128 Q240,160 184,148"/>
</g>
<text class="s3repl-title" x="255" y="422">S3 Bucket</text>
<text class="s3repl-sub" x="255" y="454">(ap-south-1)</text>
<!-- arrow with replication label -->
<text class="s3repl-label" x="470" y="228">asynchronous</text>
<text class="s3repl-label" x="470" y="252">replication</text>
<line class="s3repl-arrow" x1="370" y1="270" x2="565" y2="270" marker-end="url(#s3repl-head)"/>
<!-- right bucket: ap-south-2 -->
<g transform="translate(580,148)">
<ellipse class="s3repl-bucket" cx="105" cy="0" rx="105" ry="28"/>
<path class="s3repl-bucket" d="M6,4 L32,220 Q105,246 178,220 L204,4"/>
<path class="s3repl-bucket" d="M178,92 Q240,92 240,128 Q240,160 184,148"/>
</g>
<text class="s3repl-title" x="685" y="422">S3 Bucket</text>
<text class="s3repl-sub" x="685" y="454">(ap-south-2)</text>
</svg>
</div>
<script>
(function () {
const wrapper = document.currentScript.closest('.infographic-s3repl')
|| document.querySelector('.infographic-s3repl');
const bodyAttr = document.body.getAttribute('data-darkmode');
let dark;
if (bodyAttr === 'true') { dark = true; }
else if (bodyAttr === 'false') { dark = false; }
else {
const match = document.cookie.match(/(?:^|;\s*)darkMode=([^;]+)/);
dark = match ? match[1] === 'true' : false;
}
if (dark) wrapper.setAttribute('data-theme', 'dark');
})();
</script>
</div>1οΈβ£ How Replication Works
Source bucket β the original bucket
Destination bucket β the target bucket
Both buckets must have versioning enabled π
Replication is asynchronous β³ β happens in the background
IAM permissions must allow S3 to read from source and write to destination π‘οΈ
For CRR, buckets are in different regions π
For SRR, buckets are in the same region π
2οΈβ£ Replication Across Accounts
Buckets can belong to different AWS accounts π₯
S3 handles replication automatically once permissions are set
3οΈβ£ Use Cases
Cross-Region Replication (CRR) π
Compliance & regulatory requirements β
Lower latency access in another region β‘
Replicate data across accounts π
Same-Region Replication (SRR) ποΈ
Aggregate logs from multiple buckets π
Live replication for production β test environments βοΈ
4οΈβ£ Key Points
Versioning is required on both source and destination π
Replication is asynchronous, not instant β³
IAM permissions are critical for S3 to read/write π
Replication ensures data redundancy, compliance, and operational efficiency across regions and accounts.