{"id":2859,"date":"2026-02-05T14:31:00","date_gmt":"2026-02-05T06:31:00","guid":{"rendered":"https:\/\/ichwanchandra.com\/blog\/?p=2859"},"modified":"2026-08-27T15:05:56","modified_gmt":"2026-08-27T07:05:56","slug":"aws-solutions-architect-project-reliability-pillar-part-4","status":"publish","type":"post","link":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/","title":{"rendered":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4"},"content":{"rendered":"\n<p>Most production application has a storage layer to be shared with multiple EC2 instances. This layer can store logs, static content, or file uploaded by users that persists across instance replacements and always be available in all AZs. In this part, we&#8217;ll use Amazon Elastic File System (EFS) where we can mount a shared and persistent file system to all EC2 instances. This means we shall replace our dependency on the GitHub clone files which unreliable whenever any EC2 instance is terminated and replaced by Auto-scaling.<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Setup an EFS File System<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit the <strong>Amazon EFS console<\/strong><\/li>\n\n\n\n<li>Click <strong>Create file system<\/strong> <\/li>\n\n\n\n<li>Name it <code>flashsale-app-efs<\/code> <\/li>\n\n\n\n<li>Choose the <strong>same VPC<\/strong> used by your EC2\/ALB setup <\/li>\n\n\n\n<li>Select a <strong>new or existing security group<\/strong> for EFS (Skip for now, we\u2019ll configure it next) <\/li>\n\n\n\n<li>Click Create<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"822\" height=\"818\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-48.png\" alt=\"\" class=\"wp-image-2864\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-48.png 822w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-48-300x300.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-48-150x150.png 150w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-48-768x764.png 768w\" sizes=\"auto, (max-width: 822px) 100vw, 822px\" \/><\/figure>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Setup Security Groups for EFS Access<\/h2>\n\n\n\n<p>Our EC2 instances need to communicate with EFS over the <strong>NFS protocol (TCP port 2049)<\/strong>. This requires a security group rule allowing traffic from our EC2s to EFS.<\/p>\n\n\n\n<p>First, let&#8217;s find the security group attached to the EC2<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit <strong>EC2, <\/strong>click<strong> Security Groups<\/strong> <\/li>\n\n\n\n<li>Find the security group used in your <strong>Launch Template<\/strong> (e.g., <code>flashsale-sg<\/code>) <\/li>\n\n\n\n<li>Copy the <strong>Security Group ID<\/strong> (e.g., <code>sg-03f5ec5cc0c54ddcd<\/code>)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"822\" height=\"297\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-49.png\" alt=\"\" class=\"wp-image-2865\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-49.png 822w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-49-300x108.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-49-768x277.png 768w\" sizes=\"auto, (max-width: 822px) 100vw, 822px\" \/><\/figure>\n\n\n\n<p>Next, modify the EFS security group<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit <strong>EFS Console<\/strong>, go to your file system <\/li>\n\n\n\n<li>Under the <strong>Network tab<\/strong>, note the security group attached to each <strong>mount target<\/strong>. In this case the security group ID is <strong>sg-048d192887a95aa0c<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1057\" height=\"1077\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-50.png\" alt=\"\" class=\"wp-image-2866\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-50.png 1057w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-50-294x300.png 294w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-50-1005x1024.png 1005w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-50-768x783.png 768w\" sizes=\"auto, (max-width: 1057px) 100vw, 1057px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit <strong>EC2<\/strong>, click <strong>Security Groups<\/strong>, select the EFS group, Edit <strong>Inbound rules<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1057\" height=\"515\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-51.png\" alt=\"\" class=\"wp-image-2867\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-51.png 1057w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-51-300x146.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-51-1024x499.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-51-768x374.png 768w\" sizes=\"auto, (max-width: 1057px) 100vw, 1057px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add the following rule:\n<ul class=\"wp-block-list\">\n<li><strong>Type:<\/strong> NFS<\/li>\n\n\n\n<li><strong>Protocol:<\/strong> TCP<\/li>\n\n\n\n<li><strong>Port:<\/strong> 2049<\/li>\n\n\n\n<li><strong>Source:<\/strong> Custom (paste the EC2 security group ID: flashsale-sg)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1057\" height=\"1055\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-52.png\" alt=\"\" class=\"wp-image-2868\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-52.png 1057w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-52-300x300.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-52-1024x1022.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-52-150x150.png 150w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-52-768x767.png 768w\" sizes=\"auto, (max-width: 1057px) 100vw, 1057px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click Save Rule<\/li>\n<\/ul>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Update the EC2 Launch Template<\/h2>\n\n\n\n<p>Here we are going to edit the EC2 launch template and modify the user data script by installing NFS client, mounting EFS, and cloning our GitHub repository and copy files to the EFS mount.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit EC2 console, select <strong>Launch Templates<\/strong><\/li>\n\n\n\n<li>Select the <strong>flashsale-app-template<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"816\" height=\"386\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-53.png\" alt=\"\" class=\"wp-image-2871\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-53.png 816w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-53-300x142.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-53-768x363.png 768w\" sizes=\"auto, (max-width: 816px) 100vw, 816px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On the Advanced Details section, modify the following script<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\nsudo yum update -y\nsudo yum install -y httpd git amazon-efs-utils -y\n\n# Start Apache and enable on boot\nsudo systemctl start httpd\nsudo systemctl enable httpd\n\n# Create mount point for EFS\nsudo mkdir -p \/var\/www\/html\n\n# Mount the EFS file system (replace with your EFS ID)\nsudo mount -t efs fs-xxxxxxxx:\/ \/var\/www\/html\n\n# Optional: Add to \/etc\/fstab to remount on reboot\nsudo echo \"fs-xxxxxxxx:\/ \/var\/www\/html efs defaults,_netdev 0 0\" &gt;&gt; \/etc\/fstab\n\n# Clone the full repo\nsudo git clone https:\/\/github.com\/isuchan\/aws-sa-projects.git \/tmp\/fullrepo\n\n# Copy the project files into EFS-mounted directory\nsudo cp -r \/tmp\/fullrepo\/project-2\/* \/var\/www\/html\n\n# Restart Apache to serve the content\nsudo systemctl restart httpd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Replace <code>fs-xxxxxxxx<\/code> with our EFS File System ID <\/li>\n<\/ul>\n\n\n\n<p>The goal of above modification is to mount the EFS into EC2 and clone the GitHub repository into the EFS instead of into EC2 instance directly. This is commonly called a lift-and-shift process to centralized storage solution.<\/p>\n\n\n\n<p>Since EFS is a managed service, we can&#8217;t see if its storage to check if there is any files on it directly. However, we can see it from the console through the following metrics:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Metered size<br>If the total size is larger than 6Kb (the baseline), then it can guarantee it contains the file which is our customized user data from the launch template.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"967\" height=\"1024\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-55-967x1024.png\" alt=\"\" class=\"wp-image-2889\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-55-967x1024.png 967w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-55-283x300.png 283w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-55-768x814.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-55.png 1080w\" sizes=\"auto, (max-width: 967px) 100vw, 967px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Monitoring\n<ul class=\"wp-block-list\">\n<li>The IOPS shows the read and write of files being used during the EC2 instances creation.<\/li>\n\n\n\n<li>The client connections shows the mounting with 2 EC2 instances across AZ are happening.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"1024\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-56-674x1024.png\" alt=\"\" class=\"wp-image-2890\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-56-674x1024.png 674w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-56-197x300.png 197w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-56-768x1168.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-56-1010x1536.png 1010w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-56.png 1080w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/figure>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>Up to now we have create a more resilient approach to ensure the file that is being used by the auto scaling group is persistent within EFS. Mounted EFS in its multi AZ access can ensure it serves all the EC2 instances even if it&#8217;s crashed and restored by the auto scaling group.<\/p>\n\n\n\n<p>In the last part of this project, we will validate the whole application by simulating the disaster recovery scenarios.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most production application has a storage layer to be shared with multiple EC2 instances. This layer can store logs, static content, or file uploaded by users that persists across instance replacements and always be available in all AZs. In this part, we&#8217;ll use Amazon Elastic File System (EFS) where we can mount a shared and persistent file system to all EC2 instances. This means we shall replace our dependency on the GitHub clone files which unreliable whenever any EC2 instance is terminated and replaced by Auto-scaling.<\/p>\n","protected":false},"author":1,"featured_media":2919,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,10,75,8],"tags":[],"class_list":["post-2859","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backend","category-cloud","category-system-design","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4 - Ichwan Chandra<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4 - Ichwan Chandra\" \/>\n<meta property=\"og:description\" content=\"Most production application has a storage layer to be shared with multiple EC2 instances. This layer can store logs, static content, or file uploaded by users that persists across instance replacements and always be available in all AZs. In this part, we&#039;ll use Amazon Elastic File System (EFS) where we can mount a shared and persistent file system to all EC2 instances. This means we shall replace our dependency on the GitHub clone files which unreliable whenever any EC2 instance is terminated and replaced by Auto-scaling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Ichwan Chandra\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-05T06:31:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-27T07:05:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1376\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ichwan Chandra\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ichwan Chandra\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/\"},\"author\":{\"name\":\"Ichwan Chandra\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#\\\/schema\\\/person\\\/2fa69a7a1008a3369584752194b063d5\"},\"headline\":\"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4\",\"datePublished\":\"2026-02-05T06:31:00+00:00\",\"dateModified\":\"2026-08-27T07:05:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/\"},\"wordCount\":555,\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg\",\"articleSection\":[\"Backend\",\"Cloud\",\"System Design\",\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/\",\"name\":\"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4 - Ichwan Chandra\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg\",\"datePublished\":\"2026-02-05T06:31:00+00:00\",\"dateModified\":\"2026-08-27T07:05:56+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#\\\/schema\\\/person\\\/2fa69a7a1008a3369584752194b063d5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg\",\"contentUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg\",\"width\":1376,\"height\":768,\"caption\":\"aws solutions architect project reliability pillar part 4\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/\",\"name\":\"Ichwan Chandra\",\"description\":\"In a lifelong learning mode\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#\\\/schema\\\/person\\\/2fa69a7a1008a3369584752194b063d5\",\"name\":\"Ichwan Chandra\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8d8d64c76e361108ee058442df7c49c539eefd1d1e5a3e8dbcc9d70289e0bbf2?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8d8d64c76e361108ee058442df7c49c539eefd1d1e5a3e8dbcc9d70289e0bbf2?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8d8d64c76e361108ee058442df7c49c539eefd1d1e5a3e8dbcc9d70289e0bbf2?s=96&d=retro&r=g\",\"caption\":\"Ichwan Chandra\"},\"sameAs\":[\"https:\\\/\\\/ichwanchandra.com\\\/blog\"],\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/author\\\/isuchan193\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4 - Ichwan Chandra","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/","og_locale":"en_US","og_type":"article","og_title":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4 - Ichwan Chandra","og_description":"Most production application has a storage layer to be shared with multiple EC2 instances. This layer can store logs, static content, or file uploaded by users that persists across instance replacements and always be available in all AZs. In this part, we'll use Amazon Elastic File System (EFS) where we can mount a shared and persistent file system to all EC2 instances. This means we shall replace our dependency on the GitHub clone files which unreliable whenever any EC2 instance is terminated and replaced by Auto-scaling.","og_url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/","og_site_name":"Ichwan Chandra","article_published_time":"2026-02-05T06:31:00+00:00","article_modified_time":"2026-08-27T07:05:56+00:00","og_image":[{"width":1376,"height":768,"url":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg","type":"image\/jpeg"}],"author":"Ichwan Chandra","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ichwan Chandra","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/#article","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/"},"author":{"name":"Ichwan Chandra","@id":"https:\/\/ichwanchandra.com\/blog\/#\/schema\/person\/2fa69a7a1008a3369584752194b063d5"},"headline":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4","datePublished":"2026-02-05T06:31:00+00:00","dateModified":"2026-08-27T07:05:56+00:00","mainEntityOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/"},"wordCount":555,"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg","articleSection":["Backend","Cloud","System Design","Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/","url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/","name":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4 - Ichwan Chandra","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/#primaryimage"},"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg","datePublished":"2026-02-05T06:31:00+00:00","dateModified":"2026-08-27T07:05:56+00:00","author":{"@id":"https:\/\/ichwanchandra.com\/blog\/#\/schema\/person\/2fa69a7a1008a3369584752194b063d5"},"breadcrumb":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/#primaryimage","url":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg","contentUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-4.jpeg","width":1376,"height":768,"caption":"aws solutions architect project reliability pillar part 4"},{"@type":"BreadcrumbList","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ichwanchandra.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 4"}]},{"@type":"WebSite","@id":"https:\/\/ichwanchandra.com\/blog\/#website","url":"https:\/\/ichwanchandra.com\/blog\/","name":"Ichwan Chandra","description":"In a lifelong learning mode","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ichwanchandra.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/ichwanchandra.com\/blog\/#\/schema\/person\/2fa69a7a1008a3369584752194b063d5","name":"Ichwan Chandra","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8d8d64c76e361108ee058442df7c49c539eefd1d1e5a3e8dbcc9d70289e0bbf2?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8d8d64c76e361108ee058442df7c49c539eefd1d1e5a3e8dbcc9d70289e0bbf2?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d8d64c76e361108ee058442df7c49c539eefd1d1e5a3e8dbcc9d70289e0bbf2?s=96&d=retro&r=g","caption":"Ichwan Chandra"},"sameAs":["https:\/\/ichwanchandra.com\/blog"],"url":"https:\/\/ichwanchandra.com\/blog\/author\/isuchan193\/"}]}},"_links":{"self":[{"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/comments?post=2859"}],"version-history":[{"count":15,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2859\/revisions"}],"predecessor-version":[{"id":2900,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2859\/revisions\/2900"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/media\/2919"}],"wp:attachment":[{"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/media?parent=2859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/categories?post=2859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/tags?post=2859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}