{"id":18780,"date":"2024-08-27T18:09:25","date_gmt":"2024-08-27T12:39:25","guid":{"rendered":"https:\/\/opstree.com\/blog\/?p=18780"},"modified":"2024-08-27T18:09:25","modified_gmt":"2024-08-27T12:39:25","slug":"setup-cross-region-replication-in-s3","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2024\/08\/27\/setup-cross-region-replication-in-s3\/","title":{"rendered":"Setup Cross Region Replication in S3"},"content":{"rendered":"<h1 data-selectable-paragraph=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-19074\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/amazon-s3_hu16c13bdf9edfa6250574be72c0d27a6e_39974_1200x675_fill_box_smart1_2-300x169.png\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/amazon-s3_hu16c13bdf9edfa6250574be72c0d27a6e_39974_1200x675_fill_box_smart1_2-300x169.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/amazon-s3_hu16c13bdf9edfa6250574be72c0d27a6e_39974_1200x675_fill_box_smart1_2-1024x576.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/amazon-s3_hu16c13bdf9edfa6250574be72c0d27a6e_39974_1200x675_fill_box_smart1_2-768x432.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/amazon-s3_hu16c13bdf9edfa6250574be72c0d27a6e_39974_1200x675_fill_box_smart1_2.png 1200w\" sizes=\"(max-width: 300px) 85vw, 300px\" \/><\/h1>\n<h3>Problem Statement:<\/h3>\n<p>A leading online travel platform, relies heavily on delivering high-quality images of holiday destinations, hotels, and packages to its users. These images are currently stored in an Amazon S3 bucket located in the North Virginia region. However, users accessing the site from regions far from North Virginia, particularly from Asia-Pacific areas, are experiencing significant latency issues. This latency negatively impacts the user experience, as images load slowly, leading to potential customer dissatisfaction and reduced engagement on the platform.<br \/>\n<!--more--><\/p>\n<h3>Solution:<\/h3>\n<p>To address this latency issue, the management at Travel Triangle decided to implement <strong>Amazon S3 Cross-Region Replication (CRR)<\/strong>. By replicating the images from the North Virginia S3 bucket to a new S3 bucket in the Mumbai region, users in the Asia-Pacific region will experience faster load times, as the images will be served from a geographically closer location.<\/p>\n<p>The replication setup ensures that any new images uploaded to the North Virginia bucket are automatically replicated to the Mumbai bucket. This solution not only improves the user experience by reducing latency but also provides an additional layer of data redundancy, enhancing the overall availability and resilience of the application.<\/p>\n<p>By implementing S3 Cross-Region Replication, Travel Triangle can now offer a seamless and faster browsing experience to its global user base, thereby maintaining its competitive edge in the travel industry.<\/p>\n<h1 id=\"2fe0\" class=\"nk nl fr be nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh bj\" data-selectable-paragraph=\"\">Introduction<\/h1>\n<h2 id=\"5d8d\" class=\"oi nl fr be nm oj ok ol nq om on oo nu mx op oq or nb os ot ou nf ov ow ox oy bj\" data-selectable-paragraph=\"\">What\u2019s Cross-Region Replication (CRR) ?<\/h2>\n<ul class=\"\">\n<li id=\"79bb\" class=\"mm mn fr mo b mp oz mr ms mt pa mv mw mx pb mz na nb pc nd ne nf pd nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">Cross-Region Replication allows you to\u00a0<strong class=\"mo fs\">automatically replicate data from one S3 bucket to another in a different AWS region<\/strong>. This helps in\u00a0<strong class=\"mo fs\">achieving compliance requirements<\/strong>,\u00a0<strong class=\"mo fs\">minimizing latency<\/strong>\u00a0for geographically dispersed users, and\u00a0<strong class=\"mo fs\">enhancing disaster recovery capabilities.<\/strong><\/li>\n<li id=\"cce5\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">With CRR, you can replicate the entire bucket or just specific objects, and you have control over which objects get replicated.<\/li>\n<li id=\"6895\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\"><strong class=\"mo fs\">Replication is asynchronous<\/strong>, meaning changes to the source bucket are eventually replicated to the destination bucket. However, it\u2019s important to note that replication does not retroactively replicate objects already in the source bucket before replication was enabled.<\/li>\n<li id=\"989c\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">You can use CRR to\u00a0<strong class=\"mo fs\">maintain redundant copies of your data in different geographic locations<\/strong>, improving<strong class=\"mo fs\">\u00a0data durability<\/strong>\u00a0and\u00a0<strong class=\"mo fs\">availability<\/strong>.<\/li>\n<\/ul>\n<h2 id=\"7ec4\" class=\"oi nl fr be nm oj ok ol nq om on oo nu mx op oq or nb os ot ou nf ov ow ox oy bj\" data-selectable-paragraph=\"\"><strong class=\"al\">What\u2019s Versioning ?<\/strong><\/h2>\n<ul class=\"\">\n<li id=\"6f6f\" class=\"mm mn fr mo b mp oz mr ms mt pa mv mw mx pb mz na nb pc nd ne nf pd nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">Versioning in S3 allows you to\u00a0<strong class=\"mo fs\">keep multiple variants of an object in the same bucket and it is essential for CRR in both buckets. <\/strong>Each time you overwrite an object or delete it, a new version is created, which you can retrieve later if needed.<\/li>\n<li id=\"60ae\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">Versioning helps\u00a0<strong class=\"mo fs\">protect against accidental deletion or overwriting of objects.<\/strong>\u00a0Even if an object is deleted or overwritten, previous versions remain accessible.<\/li>\n<li id=\"35f7\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">By enabling versioning, you can\u00a0<strong class=\"mo fs\">create a reliable versioned backup system within a single bucket<\/strong>, without the need for additional replication or backup solutions.<\/li>\n<li id=\"146b\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">It\u2019s important to note that\u00a0<strong class=\"mo fs\">versioning does not protect against all types of data loss scenarios<\/strong>, such as the\u00a0<strong class=\"mo fs\">accidental deletion of an entire bucket with versioning disabled.<\/strong><\/li>\n<\/ul>\n<h1 id=\"cfc9\" class=\"nk nl fr be nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh bj\" data-selectable-paragraph=\"\">Architecture Diagram<\/h1>\n<p><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:621\/1*s81ZDwsI_htZLBW2YUn5-Q.png\" \/><\/p>\n<h2 id=\"ddea\" class=\"nk nl fr be nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh bj\">Task Steps<\/h2>\n<h2 class=\"nk nl fr be nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh bj\">Step 1: Sign in to AWS Management Console<\/h2>\n<ul>\n<li id=\"d71e\" class=\"mm mn fr mo b mp oz mr ms mt pa mv mw mx pb mz na nb pc nd ne nf pd nh ni nj ps pf pg bj\" data-selectable-paragraph=\"\">On the AWS sign-in page ,enter your credentials to log in to your AWS account and click on the Sign in button.<\/li>\n<li id=\"e449\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj ps pf pg bj\" data-selectable-paragraph=\"\">Once Signed In to the AWS Management Console, Make the default AWS Region as US East (N. Virginia) us-east-1<\/li>\n<li id=\"c468\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj ps pf pg bj\" data-selectable-paragraph=\"\">Navigate to the\u00a0<strong class=\"mo fs\">Services menu\u00a0<\/strong>at the top. Click on\u00a0<strong class=\"mo fs\">S3<\/strong>\u00a0in the Storage section.<\/li>\n<\/ul>\n<h2 class=\"oi nl fr be nm oj ok ol nq om on oo nu mx op oq or nb os ot ou nf ov ow ox oy bj\" data-selectable-paragraph=\"\">Step 2: Source Bucket<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18890\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-28-57.png\" alt=\"\" width=\"1366\" height=\"696\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-28-57.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-28-57-300x153.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-28-57-1024x522.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-28-57-768x391.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-28-57-1200x611.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p>This is the source bucket &#8221; tt-stage-docs &#8221; along with the path &#8220;<span class=\"awsui_text_1kosq_1p057_169\">attachments\/<\/span><span class=\"awsui_anchor_1kosq_1p057_109\"><span class=\"awsui_text_1kosq_1p057_169\" data-analytics-funnel-key=\"funnel-name\"> pictures\/ &#8221; <\/span><\/span>in which images get uploaded . Create the appropriate bucket policy in order to provide required permissions for CRR.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18903\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-08-42.png\" alt=\"\" width=\"1353\" height=\"700\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-08-42.png 1353w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-08-42-300x155.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-08-42-1024x530.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-08-42-768x397.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-08-42-1200x621.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18904\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-09-12.png\" alt=\"\" width=\"1366\" height=\"700\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-09-12.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-09-12-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-09-12-1024x525.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-09-12-768x394.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-09-12-1200x615.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<h2 class=\"oi nl fr be nm oj ok ol nq om on oo nu mx op oq or nb os ot ou nf ov ow ox oy bj\" data-selectable-paragraph=\"\">Step 3: Target Bucket<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18891\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-59-42.png\" alt=\"\" width=\"1366\" height=\"702\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-59-42.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-59-42-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-59-42-1024x526.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-59-42-768x395.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-10-59-42-1200x617.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p>This is the destination bucket &#8221; tt-stage-json-apis &#8221; in which we want to replicate images from source bucket as described above. Here we need to create appropriate bucket policy in order to provide required permissions for CRR.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18905\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-12-25.png\" alt=\"\" width=\"1366\" height=\"700\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-12-25.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-12-25-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-12-25-1024x525.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-12-25-768x394.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-12-25-1200x615.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<h2 class=\"oi nl fr be nm oj ok ol nq om on oo nu mx op oq or nb os ot ou nf ov ow ox oy bj\" data-selectable-paragraph=\"\">Step 4: Enable Replication in Source Bucket and add a rule<\/h2>\n<p id=\"2f05\" class=\"pw-post-body-paragraph mm mn fr mo b mp oz mr ms mt pa mv mw mx pb mz na nb pc nd ne nf pd nh ni nj fk bj\" data-selectable-paragraph=\"\">In this step, we are going to\u00a0<strong class=\"mo fs\">create a replication rule for the source bucket<\/strong>\u00a0and will<strong class=\"mo fs\">\u00a0specify the destination bucket<\/strong>.<\/p>\n<ul>\n<li id=\"a6a6\" class=\"mm mn fr mo b mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj ps pf pg bj\" data-selectable-paragraph=\"\">Now go to\u00a0<strong class=\"mo fs\">Source Bucket<\/strong>\u00a0and click on\u00a0<strong class=\"mo fs\">Management<\/strong>. Scroll down and select\u00a0<strong class=\"mo fs\">Create replication rule<\/strong>\u00a0button.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18892\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-04-49.png\" alt=\"\" width=\"1366\" height=\"700\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-04-49.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-04-49-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-04-49-1024x525.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-04-49-768x394.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-04-49-1200x615.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18893\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-05-13.png\" alt=\"\" width=\"1355\" height=\"697\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-05-13.png 1355w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-05-13-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-05-13-1024x527.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-05-13-768x395.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-05-13-1200x617.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<ul>\n<li>Enter a<strong class=\"mo fs\">\u00a0rule name<\/strong>\u00a0of your choice and keep the status as Enabled.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18894\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-28-37.png\" alt=\"\" width=\"1366\" height=\"701\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-28-37.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-28-37-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-28-37-1024x525.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-28-37-768x394.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-28-37-1200x616.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<ul>\n<li data-selectable-paragraph=\"\">Choose the source bucket &amp; a <strong class=\"mo fs\">rule scope<\/strong>\u00a0: Select<strong class=\"mo fs\"> Limit the scope of this rule using one or more filters since we want to replicate all the images uploaded in the given folder path as &#8221; attachments\/pictures\/&#8221;<\/strong><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18895\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-30-37.png\" alt=\"\" width=\"1366\" height=\"698\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-30-37.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-30-37-300x153.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-30-37-1024x523.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-30-37-768x392.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-30-37-1200x613.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<ul>\n<li data-selectable-paragraph=\"\">Under <strong class=\"mo fs\">Destination<\/strong>, select\u00a0<strong class=\"mo fs\">choose a bucket in this account\u00a0<\/strong>and click on\u00a0<strong class=\"mo fs\">Browse S3.<\/strong><\/li>\n<li data-selectable-paragraph=\"\">Select the<strong class=\"mo fs\"> target bucket &#8221; tt-stage-json-apis &#8220;<\/strong>\u00a0and click on\u00a0<strong class=\"mo fs\">Choose path\u00a0<\/strong>button.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18896\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-34-52.png\" alt=\"\" width=\"1366\" height=\"698\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-34-52.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-34-52-300x153.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-34-52-1024x523.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-34-52-768x392.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-34-52-1200x613.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<ul>\n<li data-selectable-paragraph=\"\">Under <strong class=\"mo fs\">IAM Role<\/strong>, select\u00a0<strong class=\"mo fs\">Create new role and add essential permission &amp; policy as shown below.<\/strong><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18897\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-37-49.png\" alt=\"\" width=\"1366\" height=\"699\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-37-49.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-37-49-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-37-49-1024x524.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-37-49-768x393.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-37-49-1200x614.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18906\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-14-35.png\" alt=\"\" width=\"1366\" height=\"697\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-14-35.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-14-35-300x153.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-14-35-1024x522.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-14-35-768x392.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-14-35-1200x612.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18907\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-24.png\" alt=\"\" width=\"1366\" height=\"701\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-24.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-24-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-24-1024x525.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-24-768x394.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-24-1200x616.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18908\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-50.png\" alt=\"\" width=\"1366\" height=\"703\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-50.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-50-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-50-1024x527.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-50-768x395.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-16-50-1200x618.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18909\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-13.png\" alt=\"\" width=\"1366\" height=\"703\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-13.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-13-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-13-1024x527.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-13-768x395.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-13-1200x618.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18910\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-23.png\" alt=\"\" width=\"1366\" height=\"702\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-23.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-23-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-23-1024x526.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-23-768x395.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-12-17-23-1200x617.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<ul>\n<li data-selectable-paragraph=\"\">\n<p id=\"d3fa\" class=\"pw-post-body-paragraph mm mn fr mo b mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj fk bj\" data-selectable-paragraph=\"\">Under the <strong class=\"mo fs\">Destination Storage Class<\/strong>, select<strong class=\"mo fs\">\u00a0Change the storage class for the replicated objects<\/strong>\u00a0and choose<strong class=\"mo fs\"> Standard<\/strong><\/p>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18898\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-05.png\" alt=\"\" width=\"1365\" height=\"699\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-05.png 1365w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-05-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-05-1024x524.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-05-768x393.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-05-1200x615.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p id=\"415e\" class=\"pw-post-body-paragraph mm mn fr mo b mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj fk bj\" data-selectable-paragraph=\"\"><strong class=\"mo fs\">Note :<\/strong><\/p>\n<ul class=\"\">\n<li id=\"12df\" class=\"mm mn fr mo b mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">AWS S3 provides the ability to<strong class=\"mo fs\">\u00a0specify a replication time control (RTC) for cross-region replication.<\/strong><\/li>\n<li id=\"8de7\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">RTC allows you to<strong class=\"mo fs\">\u00a0define a service level agreement (SLA) for object replication<\/strong>, specifying the\u00a0<strong class=\"mo fs\">maximum time it should take for an object to be replicated to the destination bucket<\/strong>.<\/li>\n<li id=\"5b07\" class=\"mm mn fr mo b mp ph mr ms mt pi mv mw mx pj mz na nb pk nd ne nf pl nh ni nj pe pf pg bj\" data-selectable-paragraph=\"\">This feature\u00a0<strong class=\"mo fs\">helps you ensure timely replication<\/strong>\u00a0and\u00a0<strong class=\"mo fs\">maintain data consistency across regions.<\/strong><\/li>\n<li data-selectable-paragraph=\"\"><strong>Delete marker replication<\/strong> allows if we delete an image from source bucket then it will automatically gets deleted from destination bucket too.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18899\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-45.png\" alt=\"\" width=\"1366\" height=\"700\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-45.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-45-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-45-1024x525.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-45-768x394.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-38-45-1200x615.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<ul>\n<li>Now <strong class=\"mo fs\">navigate to the source bucket<\/strong>\u00a0and\u00a0<strong class=\"mo fs\">upload an Object(1106816) in the Source bucket <\/strong>by clicking on\u00a0<strong class=\"mo fs\">Add Files<\/strong>. Click on\u00a0<strong class=\"mo fs\">Upload<\/strong>.<\/li>\n<\/ul>\n<p data-selectable-paragraph=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18900\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-24.png\" alt=\"\" width=\"1366\" height=\"703\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-24.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-24-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-24-1024x527.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-24-768x395.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-24-1200x618.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<ul>\n<li><strong class=\"mo fs\">Navigate to your Target Bucket to see the replication<\/strong>. It may take up to 3\u20135 minutes for replication.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18901\" src=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-50.png\" alt=\"\" width=\"1366\" height=\"700\" srcset=\"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-50.png 1366w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-50-300x154.png 300w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-50-1024x525.png 1024w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-50-768x394.png 768w, https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Screenshot-from-2024-08-17-11-43-50-1200x615.png 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p>Now we have successfully configured the Cross-Region Replication in S3 Bucket.<\/p>\n<p id=\"e497\" class=\"pw-post-body-paragraph mm mn fr mo b mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj fk bj\" data-selectable-paragraph=\"\">You\u2019re all done! Congratulations!<\/p>\n<p id=\"85b8\" class=\"pw-post-body-paragraph mm mn fr mo b mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj fk bj\" data-selectable-paragraph=\"\">That\u2019s all I have for today folks. Thank you for reading and\/or following along! I hope this project was helpful and worth your while. Stay tuned for my next project on this journey into the cloud.<\/p>\n<div class=\"group\/conversation-turn relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex-col gap-1 md:gap-3\">\n<div class=\"flex max-w-full flex-col flex-grow\">\n<div class=\"min-h-[20px] text-message flex w-full flex-col items-end gap-2 break-words [.text-message+&amp;]:mt-5 overflow-x-auto whitespace-normal\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"c86ff51c-9686-43a8-b226-65c5dac95afc\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<p><strong>OpsTree is an End-to-End <a href=\"https:\/\/opstree.com\/services\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps Solution<\/a> Provider.<\/strong><\/p>\n<div class=\"wp-block-buttons\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/opstree.com\/contact-us\/?utm_source=WordPress&amp;utm_medium=Blog&amp;utm_campaign=CI%2FCD+with+GitHub+Actions+-+Concepts\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Us<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Problem Statement: A leading online travel platform, relies heavily on delivering high-quality images of holiday destinations, hotels, and packages to its users. These images are currently stored in an Amazon S3 bucket located in the North Virginia region. However, users accessing the site from regions far from North Virginia, particularly from Asia-Pacific areas, are experiencing &hellip; <a href=\"https:\/\/opstree.com\/blog\/2024\/08\/27\/setup-cross-region-replication-in-s3\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Setup Cross Region Replication in S3&#8221;<\/span><\/a><\/p>\n","protected":false},"author":244582671,"featured_media":19080,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2024\/08\/Setup-Cross-Region-Replication-in-S3-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-4SU","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/18780"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/244582671"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=18780"}],"version-history":[{"count":11,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/18780\/revisions"}],"predecessor-version":[{"id":19081,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/18780\/revisions\/19081"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/19080"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=18780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=18780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=18780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}