{"id":2817,"date":"2026-02-04T23:26:00","date_gmt":"2026-02-04T15:26:00","guid":{"rendered":"https:\/\/ichwanchandra.com\/blog\/?p=2817"},"modified":"2026-09-10T09:19:41","modified_gmt":"2026-09-10T01:19:41","slug":"aws-solutions-architect-project-reliability-part-3","status":"publish","type":"post","link":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/","title":{"rendered":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 3"},"content":{"rendered":"\n<p>Apart from the multi-AZ infrastructure, we also need a way to intelligently route user traffic according to the system health. This means by configuring Route 53 DNS with health check ability to route traffic to our application via ALB and automatically failover once the ALB becomes unhealthy. This way, we can protect the user from seeing downtime during outages by routing them to a backup error page.<\/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 a Hosted Zone<\/h2>\n\n\n\n<p>A hosted zone represents our domain in Route 53 and lets us manage DNS records programmatically and securely.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit to <strong>Route 53, <\/strong>click<strong> Hosted Zones, <\/strong>click<strong> Create hosted zone<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Enter our domain name<\/strong>: (e.g., <a href=\"http:\/\/flashsalehub.com\" target=\"_blank\" rel=\"noreferrer noopener\">flashsalehub.com<\/a>) <\/li>\n\n\n\n<li><strong>Type<\/strong>: Public hosted zone <\/li>\n\n\n\n<li>Click <strong>Create hosted zone<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"860\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-33.png\" alt=\"\" class=\"wp-image-2824\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-33.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-33-300x243.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-33-1024x829.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-33-768x622.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/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 a Health Check<\/h2>\n\n\n\n<p>Health checks allow Route 53 to detect when our application is down and automatically fail over to a backup record.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit to <strong>Route 53, <\/strong>click<strong> Health Checks, <\/strong>click<strong> Create Health Check<\/strong> <\/li>\n\n\n\n<li>Configuration:\n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>: <code>flashsale-app-alb-health<\/code><\/li>\n\n\n\n<li><strong>What to monitor<\/strong>: Endpoint<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Specify endpoint:\n<ul class=\"wp-block-list\">\n<li><strong>Protocol<\/strong>: HTTP<\/li>\n\n\n\n<li><strong>Domain name<\/strong>: Use our <strong>ALB DNS name<\/strong> (e.g., <code>flashsale-app-alb-1434623095.us-east-1.elb.amazonaws.com<\/code>)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Advance Configuration:\n<ul class=\"wp-block-list\">\n<li>Request interval: <code>30 seconds<\/code><\/li>\n\n\n\n<li>Failure threshold: <code>3<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Create health check<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"1214\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-36.png\" alt=\"\" class=\"wp-image-2831\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-36.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-36-262x300.png 262w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-36-896x1024.png 896w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-36-768x878.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/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 3: Setup Primary DNS Record (with Health Check)<\/h2>\n\n\n\n<p>This DNS record routes users to our live app hosted on EC2 behind the ALB <strong>only if it&#8217;s healthy<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In our <strong>Hosted Zone<\/strong>, click <strong>Create record<\/strong><\/li>\n\n\n\n<li><strong>Record type<\/strong>: A \u2013 IPv4 address <\/li>\n\n\n\n<li><strong>Alias<\/strong>: Enabled <\/li>\n\n\n\n<li><strong>Alias to Application Load Balancer<\/strong><\/li>\n\n\n\n<li><strong>Region<\/strong>: Select the correct region (e.g., <code>us-east-1<\/code>) <\/li>\n\n\n\n<li><strong>Alias target<\/strong>: Select <code>flashsale-app-alb<\/code><\/li>\n\n\n\n<li><strong>Routing policy<\/strong>: Failover <\/li>\n\n\n\n<li><strong>Failover record type<\/strong>: Primary<\/li>\n\n\n\n<li>Associate the <strong>health check<\/strong> created in Step 2 <\/li>\n\n\n\n<li>Record ID &#8211; <strong><em>failover-primary-record<\/em><\/strong> <\/li>\n\n\n\n<li>Enable &#8211; Evaluate health targets <\/li>\n\n\n\n<li>Click <strong>Create records<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"977\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-37.png\" alt=\"\" class=\"wp-image-2834\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-37.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-37-300x276.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-37-1024x942.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-37-768x707.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p>Based on the configuration above, the traffic will only be forwarded to the ALB if it&#8217;s passing the health check.<\/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 4: Create The Backup DNS Record<\/h2>\n\n\n\n<p>If our app fails (ALB is unhealthy), Route 53 can send traffic to a static backup page typically hosted on Amazon S3. This helps ensure users still receive a proper message, even if our application stack is down.<\/p>\n\n\n\n<p>Firstly, let&#8217;s setup the S3 static backup site<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit the <strong>S3 Console<\/strong>, Click <strong>Create bucket<\/strong> <\/li>\n\n\n\n<li>Bucket name: e.g., <code>flashsale-failover-site<\/code> <\/li>\n\n\n\n<li>Region: Same as your app (recommended)<\/li>\n\n\n\n<li>Uncheck <strong>Block all public access<\/strong> \u2192 Acknowledge the warning <\/li>\n\n\n\n<li>Object Ownership \u2192 <strong>ACLs enabled<\/strong><\/li>\n\n\n\n<li>Click <strong>Create bucket<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"1694\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-38.png\" alt=\"\" class=\"wp-image-2840\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-38.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-38-188x300.png 188w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-38-642x1024.png 642w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-38-768x1225.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-38-963x1536.png 963w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p>With your text editor, create the following dummy index.html file<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"en\">\n&lt;head>\n    &lt;meta charset=\"UTF-8\">\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    &lt;title>Flashsale App&lt;\/title>\n    &lt;style>\n        body {\n            font-family: Arial, sans-serif;\n            text-align: center;\n            margin-top: 100px;\n            background-color: #f4f4f9;\n            color: #333;\n        }\n        h1 {\n            color: #2c3e50;\n        }\n        p {\n            font-size: 1.2rem;\n        }\n    &lt;\/style>\n&lt;\/head>\n&lt;body>\n    &lt;h1>Hello!&lt;\/h1>\n    &lt;p>We'll come back soon&lt;\/p>\n&lt;\/body>\n&lt;\/html><\/code><\/pre>\n\n\n\n<p>Save it and upload it to the S3 bucket<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"814\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-39.png\" alt=\"\" class=\"wp-image-2843\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-39.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-39-300x230.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-39-1024x785.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-39-768x589.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>After upload, go to the file, click <strong>Actions \u2192 Make public using ACL<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"669\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-40.png\" alt=\"\" class=\"wp-image-2844\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-40.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-40-300x189.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-40-1024x645.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-40-768x484.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Properties, <\/strong>click<strong> Static website hosting<\/strong><\/li>\n\n\n\n<li>Enable <strong>Static website hosting<\/strong><\/li>\n\n\n\n<li>Hosting type: <strong>Host a static website<\/strong><\/li>\n\n\n\n<li>Index document: <code>index.html<\/code><\/li>\n\n\n\n<li>Click <strong>Save<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"1345\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-41.png\" alt=\"\" class=\"wp-image-2845\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-41.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-41-237x300.png 237w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-41-809x1024.png 809w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-41-768x973.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p>We shall see the static website hosting is enabled with the new endpoint<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"418\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-42.png\" alt=\"\" class=\"wp-image-2846\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-42.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-42-300x118.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-42-1024x403.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-42-768x302.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;flashsale-failover-site.s3-website-us-east-1.amazonaws.com<\/code><\/pre>\n\n\n\n<p>Next, we&#8217;ll configure the Backup CNAME Record in Route 53<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit to <strong>Route 53 \u2192 Hosted Zones<\/strong> Click on your domain (e.g., <code>flashsalehub.com<\/code>) <\/li>\n\n\n\n<li>Click <strong>Create record<\/strong> Fill in the record details:\n<ul class=\"wp-block-list\">\n<li><strong>Record name<\/strong>: <code>backup<\/code> (this becomes <code>backup.medicarehub.com<\/code>)<\/li>\n\n\n\n<li><strong>Record type<\/strong>: <strong>CNAME<\/strong><\/li>\n\n\n\n<li><strong>Value<\/strong>: <code><a href=\"http:\/\/flashsale-failover-site.s3-website-us-east-1.amazonaws.com\">http:\/\/flashsale-failover-site.s3-website-us-east-1.amazonaws.com<\/a><\/code> <em>(your S3 static website endpoint)<\/em><\/li>\n\n\n\n<li><strong>Routing policy<\/strong>: <strong>Failover<\/strong><\/li>\n\n\n\n<li><strong>Failover record type<\/strong>: <strong>Secondary<\/strong><\/li>\n\n\n\n<li><strong>Record ID<\/strong>: <code>s3-backup-record<\/code><\/li>\n\n\n\n<li><strong>Health check<\/strong>: <em>Not required for Secondary record<\/em><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Create records<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"911\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-43.png\" alt=\"\" class=\"wp-image-2850\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-43.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-43-300x257.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-43-1024x878.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-43-768x659.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p>Next, we can test the fail-over by temporarily deregister all EC2 instances within the target group<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"964\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-45.png\" alt=\"\" class=\"wp-image-2855\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-45.png 1062w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-45-300x272.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-45-1024x930.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-45-768x697.png 768w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"811\" height=\"447\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-46.png\" alt=\"\" class=\"wp-image-2856\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-46.png 811w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-46-300x165.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-46-768x423.png 768w\" sizes=\"auto, (max-width: 811px) 100vw, 811px\" \/><\/figure>\n\n\n\n<p>The ALB health check to fail (approx. 2\u20133 minutes)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1063\" height=\"791\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-47.png\" alt=\"\" class=\"wp-image-2857\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-47.png 1063w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-47-300x223.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-47-1024x762.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-47-768x571.png 768w\" sizes=\"auto, (max-width: 1063px) 100vw, 1063px\" \/><\/figure>\n\n\n\n<p>Next, we can test the failover with one of these 2 methods<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If we have purchased the real domain (i.e. flashsalehub.com)\n<ul class=\"wp-block-list\">\n<li>Visit our domain (e.g., <a href=\"http:\/\/flashsalehub.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">flashsalehub.com\/<\/a>) in the browser <\/li>\n\n\n\n<li>We should be redirected to the static S3 page via <code>backup.flashsalehub.com<\/code> <\/li>\n\n\n\n<li>Once tested, re-register our EC2 instances to bring the app back online.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>if we have NOT purchased the real-domain (like we are doing here)\n<ul class=\"wp-block-list\">\n<li>Use the <strong>ALB DNS name<\/strong> or <strong>S3 website endpoint<\/strong> directly to confirm failover behavior.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\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>In this part, we have implemented a failover handling with Route 53 DNS where it can<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>route user and traffic to the app only if it\u2019s healthy<\/li>\n\n\n\n<li>automate redirection in case of ALB failure<\/li>\n\n\n\n<li>minimize downtime with optional static backup<\/li>\n<\/ul>\n\n\n\n<p>We have demonstrated a highly available systems that maintain user trust even during infrastructure issues as part of <strong>high availability<\/strong> pillar. In part 4, we&#8217;ll continue to ensure the content file availability between EC2 instances.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apart from the multi-AZ infrastructure, we also need a way to intelligently route user traffic according to the system health. This means by configuring Route 53 DNS with health check ability to route traffic to our application via ALB and automatically failover once the ALB becomes unhealthy. This way, we can protect the user from seeing downtime during outages by routing them to a backup error page, too.<\/p>\n","protected":false},"author":1,"featured_media":2920,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,20,85,75,8],"tags":[],"class_list":["post-2817","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","category-backend","category-projects","category-system-design","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 3 - 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-part-3\/\" \/>\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 3 - Ichwan Chandra\" \/>\n<meta property=\"og:description\" content=\"Apart from the multi-AZ infrastructure, we also need a way to intelligently route user traffic according to the system health. This means by configuring Route 53 DNS with health check ability to route traffic to our application via ALB and automatically failover once the ALB becomes unhealthy. This way, we can protect the user from seeing downtime during outages by routing them to a backup error page, too.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Ichwan Chandra\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-04T15:26:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-10T01:19:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-3.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=\"6 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-part-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/\"},\"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 3\",\"datePublished\":\"2026-02-04T15:26:00+00:00\",\"dateModified\":\"2026-09-10T01:19:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/\"},\"wordCount\":682,\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg\",\"articleSection\":[\"AWS\",\"Backend\",\"Projects\",\"System Design\",\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/\",\"name\":\"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 3 - Ichwan Chandra\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg\",\"datePublished\":\"2026-02-04T15:26:00+00:00\",\"dateModified\":\"2026-09-10T01:19:41+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#\\\/schema\\\/person\\\/2fa69a7a1008a3369584752194b063d5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg\",\"contentUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg\",\"width\":1376,\"height\":768,\"caption\":\"aws solutions architect project reliability pillar part 3\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-part-3\\\/#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 3\"}]},{\"@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 3 - 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-part-3\/","og_locale":"en_US","og_type":"article","og_title":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 3 - Ichwan Chandra","og_description":"Apart from the multi-AZ infrastructure, we also need a way to intelligently route user traffic according to the system health. This means by configuring Route 53 DNS with health check ability to route traffic to our application via ALB and automatically failover once the ALB becomes unhealthy. This way, we can protect the user from seeing downtime during outages by routing them to a backup error page, too.","og_url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/","og_site_name":"Ichwan Chandra","article_published_time":"2026-02-04T15:26:00+00:00","article_modified_time":"2026-09-10T01:19:41+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-3.jpeg","type":"image\/jpeg"}],"author":"Ichwan Chandra","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ichwan Chandra","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/#article","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/"},"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 3","datePublished":"2026-02-04T15:26:00+00:00","dateModified":"2026-09-10T01:19:41+00:00","mainEntityOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/"},"wordCount":682,"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg","articleSection":["AWS","Backend","Projects","System Design","Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/","url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/","name":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 3 - Ichwan Chandra","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/#primaryimage"},"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg","datePublished":"2026-02-04T15:26:00+00:00","dateModified":"2026-09-10T01:19:41+00:00","author":{"@id":"https:\/\/ichwanchandra.com\/blog\/#\/schema\/person\/2fa69a7a1008a3369584752194b063d5"},"breadcrumb":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/#primaryimage","url":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg","contentUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/08\/aws-solutions-architect-project-reliability-pillar-part-3.jpeg","width":1376,"height":768,"caption":"aws solutions architect project reliability pillar part 3"},{"@type":"BreadcrumbList","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-part-3\/#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 3"}]},{"@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\/2817","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=2817"}],"version-history":[{"count":13,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2817\/revisions"}],"predecessor-version":[{"id":2858,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2817\/revisions\/2858"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/media\/2920"}],"wp:attachment":[{"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/media?parent=2817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/categories?post=2817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/tags?post=2817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}