{"id":2664,"date":"2026-02-02T10:32:00","date_gmt":"2026-02-02T02:32:00","guid":{"rendered":"https:\/\/ichwanchandra.com\/blog\/?p=2664"},"modified":"2026-07-17T21:55:40","modified_gmt":"2026-07-17T13:55:40","slug":"aws-solutions-architect-project-reliability-pillar-part-1","status":"publish","type":"post","link":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/","title":{"rendered":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 1"},"content":{"rendered":"\n<p>Reliability pillar is an architecture guideline that focuses on the ability of a workload to perform its intended function correctly and consistently when it is expected to. In this project we will re-architect a traditional application deployment where it lacks of fault-tolerance and high-availability. We will start by deploying a flash-sale application for an e-commerce flash campaign without fault-tolerance where if any of EC2 or RDS instance is down there will be a loss of access to customer transaction data.<\/p>\n\n\n\n<p>To start of with, here is the to-be architecture diagram for this project:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"592\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png\" alt=\"\" class=\"wp-image-2670\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png 751w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio-300x236.png 300w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><\/figure>\n\n\n\n<p>Below is the explanation of above architecture diagram:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>User makes a HTTPS request via browser<\/li>\n\n\n\n<li>Route53 resolves the domain and forward the request to ALB<\/li>\n\n\n\n<li>ALB forward the traffic to the healthy EC2 instances<\/li>\n\n\n\n<li>EC2 on the AZ-1 processes the request and read from EFS<\/li>\n\n\n\n<li>EC2 on the AZ-2 ensures high-availability via auto-scaling<\/li>\n\n\n\n<li>EC2 connects to the RDS primary for the data<\/li>\n\n\n\n<li>RDS standby provides automated fail-over<\/li>\n\n\n\n<li>EFS allows shared storage across both EC2s<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Launch EC2 With Launch Template<\/h2>\n\n\n\n<p>The launch template stores the configuration for launching EC2 instances (AMI, instance type, key pair, security groups, and user data scripts)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to the <strong>EC2 Dashboard<\/strong>, click <strong>Launch Templates<\/strong>, click <strong>Create launch template<\/strong> <\/li>\n\n\n\n<li>Fill in the following details:\n<ul class=\"wp-block-list\">\n<li><strong>Launch template name<\/strong>: <code>flashsale-app-template<\/code><\/li>\n\n\n\n<li><strong>Launch template version description:<\/strong> <code>app-template<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"559\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-8.png\" alt=\"\" class=\"wp-image-2692\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-8.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-8-300x158.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-8-1024x540.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-8-768x405.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AMI ID<\/strong>: Use the latest <strong>Amazon Linux 2 AMI<\/strong><\/li>\n\n\n\n<li><strong>Instance type<\/strong>: <code>t2.micro<\/code><\/li>\n\n\n\n<li><strong>Key pair<\/strong>: Select an existing one (i.e. form previous project)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1266\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-9.png\" alt=\"\" class=\"wp-image-2693\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-9.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-9-251x300.png 251w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-9-857x1024.png 857w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-9-768x917.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click on create security group and name it: <code>flashsale-sg<\/code><\/li>\n\n\n\n<li><strong>Security group<\/strong>: Allow <strong>HTTP (80)<\/strong> and <strong>SSH (22)<\/strong> access<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1307\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-10.png\" alt=\"\" class=\"wp-image-2694\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-10.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-10-243x300.png 243w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-10-830x1024.png 830w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-10-768x947.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<p>Leave both outbound and inbound rules for the moment as we will update it later.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Advanced details<\/strong> &gt; <strong>UserData &gt;<\/strong> Paste 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 -y\n\n# Start Apache and enable it on boot\nsudo systemctl start httpd\nsudo systemctl enable httpd\n\n# Clone the full repo to a temporary directory\nsudo git clone https:\/\/github.com\/isuchan\/aws-sa-projects.git \/tmp\/fullrepo\n\n# Copy only the project2 from master branch folder to Apache's web root\nsudo cp -r \/tmp\/fullrepo\/project-2\/* \/var\/www\/html\n\n# Restart Apache to serve the new content\nsudo systemctl restart httpd<\/code><\/pre>\n\n\n\n<p><strong>Remember:<\/strong> please change the github repository URL above with your own<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"933\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-23.png\" alt=\"\" class=\"wp-image-2722\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-23.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-23-300x273.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-23-768x700.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Create a Target Group<\/h2>\n\n\n\n<p>A target group is used by the load balancer to route traffic only to healthy EC2 instances. It performs continuous health checks.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to EC2, click Target Groups, click <strong>Create target group<\/strong> <\/li>\n\n\n\n<li>Choose:\n<ul class=\"wp-block-list\">\n<li><strong>Target type<\/strong>: Instance<\/li>\n\n\n\n<li><strong>Protocol<\/strong>: HTTP<\/li>\n\n\n\n<li><strong>Port<\/strong>: 80<\/li>\n\n\n\n<li><strong>VPC<\/strong>: Select your default or custom VPC<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Name the group: <code>flashsale-app-tg<\/code><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1660\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-12.png\" alt=\"\" class=\"wp-image-2696\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-12.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-12-192x300.png 192w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-12-654x1024.png 654w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-12-768x1203.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-12-981x1536.png 981w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Health Check Settings:\n<ul class=\"wp-block-list\">\n<li><strong>Path<\/strong>: <code>\/<\/code><\/li>\n\n\n\n<li><strong>Interval<\/strong>: 30 seconds<\/li>\n\n\n\n<li><strong>Healthy threshold<\/strong>: 3<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Unhealthy threshold<\/strong>: 2<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1128\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-13.png\" alt=\"\" class=\"wp-image-2697\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-13.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-13-282x300.png 282w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-13-962x1024.png 962w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-13-768x817.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Create an Application Load Balancer (ALB)<\/h2>\n\n\n\n<p>The ALB receives traffic from the internet and forwards it to healthy EC2 instances across multiple AZs, ensuring both availability and load distribution.<\/p>\n\n\n\n<p>Firstly, let&#8217;s create the security group for the ALB.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit <strong>EC2,<\/strong> click <strong>Security Groups<\/strong>, click <strong>Create security group<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Name:<\/strong> alb-sg<\/li>\n\n\n\n<li>Setup the following <strong>inbound<\/strong> rules for port 80:\n<ul class=\"wp-block-list\">\n<li><strong>Type<\/strong>: HTTP<\/li>\n\n\n\n<li><strong>Port<\/strong>: 80<\/li>\n\n\n\n<li><strong>Source<\/strong>:&nbsp;<code>0.0.0.0\/0<\/code>&nbsp;(allows public access to ALB)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>And for port 443\n<ul class=\"wp-block-list\">\n<li><strong>Type<\/strong>: HTTPS<\/li>\n\n\n\n<li><strong>Port<\/strong>: 443<\/li>\n\n\n\n<li><strong>Source<\/strong>:&nbsp;<code>0.0.0.0\/0<\/code>&nbsp;(allows public access to ALB)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Setup the following <strong>outbound<\/strong> rules <strong>(important!)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Type<\/strong>: HTTP<\/li>\n\n\n\n<li><strong>Port<\/strong>: 80<\/li>\n\n\n\n<li><strong>Source<\/strong>:&nbsp;select flashsale-sg (ensure the outbound traffic only goes to ASG)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"890\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-24.png\" alt=\"\" class=\"wp-image-2726\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-24.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-24-300x252.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-24-1024x860.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-24-768x645.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"579\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-25.png\" alt=\"\" class=\"wp-image-2727\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-25.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-25-300x164.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-25-1024x559.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-25-768x420.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<p>After that, we return back to the flashsale-sg and edit it the inbound rule to only accept the traffic from the chosen ALB<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit <strong>EC2,<\/strong> click <strong>Security Groups<\/strong>, click <strong>flashsale-sg<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Type<\/strong>: HTTP<\/li>\n\n\n\n<li><strong>Port<\/strong>: 80<\/li>\n\n\n\n<li><strong>Source Type:<\/strong> Custom<\/li>\n\n\n\n<li><strong>Source<\/strong>:&nbsp;(select from source list alb-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=\"1060\" height=\"908\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-26.png\" alt=\"\" class=\"wp-image-2729\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-26.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-26-300x257.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-26-1024x877.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-26-768x658.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<p>Next, we start to create the load balancer (ALB)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Visit <strong>EC2, <\/strong>click <strong>Load Balancers, <\/strong>click <strong>Create Load Balancer<\/strong><\/li>\n\n\n\n<li>Choose <strong>Application Load Balancer<\/strong> and then fill in the following:\n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>: <code>flashsale-app-alb<\/code><\/li>\n\n\n\n<li><strong>Scheme<\/strong>: Internet-facing<\/li>\n\n\n\n<li><strong>IP address type<\/strong>: IPv4<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"818\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-14.png\" alt=\"\" class=\"wp-image-2699\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-14.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-14-300x232.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-14-1024x790.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-14-768x593.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Availability Zones<\/strong>: Select <strong>at least two AZs<\/strong><\/li>\n\n\n\n<li><strong>Listeners<\/strong>: Add one listener on <strong>HTTP (port 80)<\/strong> <\/li>\n\n\n\n<li>Under <strong>Target Group<\/strong>, select <code>flashsale-app-tg<\/code><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1695\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-15.png\" alt=\"\" class=\"wp-image-2700\" style=\"width:640px;height:auto\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-15.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-15-188x300.png 188w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-15-640x1024.png 640w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-15-768x1228.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-15-961x1536.png 961w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Create the Auto Scaling Group (ASG)<\/h2>\n\n\n\n<p>Auto Scaling helps maintain the desired number of EC2 instances at all times. If an instance becomes unhealthy, it is automatically replaced. If traffic increases, more instances can be added based on defined rules.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>EC2, <\/strong>click<strong> Auto Scaling Groups, <\/strong>click<strong> Create Auto Scaling Group<\/strong> and then Fill in: \n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>: <code>flashsale-app-asg<\/code><\/li>\n\n\n\n<li><strong>Launch Template<\/strong>: Select <code>flashsale-app-template<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1186\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-16.png\" alt=\"\" class=\"wp-image-2702\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-16.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-16-268x300.png 268w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-16-915x1024.png 915w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-16-768x859.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Availability Zones<\/strong>: Select two AZs in our region<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1275\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-17.png\" alt=\"\" class=\"wp-image-2703\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-17.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-17-249x300.png 249w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-17-851x1024.png 851w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-17-768x924.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In the <strong>Load Balancing<\/strong> section: \n<ul class=\"wp-block-list\">\n<li>Attach to an existing <strong>Application Load Balancer<\/strong> <\/li>\n\n\n\n<li>Choose <code>flashsale-app-alb<\/code> and select <code>flashsale-app-tg<\/code> as the target group<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"1125\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-18.png\" alt=\"\" class=\"wp-image-2704\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-18.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-18-283x300.png 283w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-18-965x1024.png 965w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-18-768x815.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configure desired capacity:\n<ul class=\"wp-block-list\">\n<li><strong>Desired<\/strong>: 2 instances<\/li>\n\n\n\n<li><strong>Minimum<\/strong>: 1 instance<\/li>\n\n\n\n<li><strong>Maximum<\/strong>: 3 instances<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Leave advanced scaling policies as default (we\u2019ll configure CloudWatch later)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"888\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-19.png\" alt=\"\" class=\"wp-image-2705\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-19.png 1060w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-19-300x251.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-19-1024x858.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-19-768x643.png 768w\" sizes=\"auto, (max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click <strong>Create Auto Scaling Group<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Verify the Application<\/h2>\n\n\n\n<p>Once the Auto Scaling Group and its EC2 instances are active, we can verify if the application is running by accessing them through ALB<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Select to <strong>EC2, <\/strong>click<strong> Load Balancers<\/strong> \n<ul class=\"wp-block-list\">\n<li>Select <code>flashsale-app-alb<\/code> <\/li>\n\n\n\n<li>In the <strong>Description tab<\/strong>, copy the <strong>DNS name<\/strong> (e.g., <code>flashsale-app-alb-1434623095.us-east-1.elb.amazonaws.com<\/code>)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"802\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-21.png\" alt=\"\" class=\"wp-image-2717\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-21.png 820w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-21-300x293.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-21-768x751.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/figure>\n\n\n\n<p>And open it on the browser<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;flashsale-app-alb-1434623095.us-east-1.elb.amazonaws.com\/<\/code><\/pre>\n\n\n\n<p>And the application should be showing like below<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1074\" height=\"1530\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-22.png\" alt=\"\" class=\"wp-image-2718\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-22.png 1074w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-22-211x300.png 211w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-22-719x1024.png 719w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/02\/image-22-768x1094.png 768w\" sizes=\"auto, (max-width: 1074px) 100vw, 1074px\" \/><\/figure>\n\n\n\n<p><\/p>\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 setup the foundation for a highly available and auto-healing compute layer.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If one instance failes, ASG will replace it<\/li>\n\n\n\n<li>If demand spikes, more instances can be added automatically <\/li>\n\n\n\n<li>The ALB keeps traffic flowing only to healthy instances <\/li>\n\n\n\n<li>The setup spans multiple AZs for fault tolerance<\/li>\n<\/ul>\n\n\n\n<p>In part 2, we\u2019ll build the application backend by deploying a multi-AZ RDS instance as the database to simulate the whole architecture<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reliability pillar is an architecture guideline that focuses on the ability of a workload to perform its intended function correctly and consistently when it is expected to. In this project we will re-architect a traditional application deployment where it lacks of fault-tolerance and high-availability. We will start by deploying a flash-sale application for an e-commerce flash campaign without fault-tolerance where if any of EC2 or RDS instance is down there will be a loss of access to customer transaction data.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,10,75,8],"tags":[],"class_list":["post-2664","post","type-post","status-publish","format-standard","hentry","category-backend","category-cloud","category-system-design","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 1 - 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-1\/\" \/>\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 1 - Ichwan Chandra\" \/>\n<meta property=\"og:description\" content=\"Reliability pillar is an architecture guideline that focuses on the ability of a workload to perform its intended function correctly and consistently when it is expected to. In this project we will re-architect a traditional application deployment where it lacks of fault-tolerance and high-availability. We will start by deploying a flash-sale application for an e-commerce flash campaign without fault-tolerance where if any of EC2 or RDS instance is down there will be a loss of access to customer transaction data.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Ichwan Chandra\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-02T02:32:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-17T13:55:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png\" \/>\n\t<meta property=\"og:image:width\" content=\"751\" \/>\n\t<meta property=\"og:image:height\" content=\"592\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"8 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-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/\"},\"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 1\",\"datePublished\":\"2026-02-02T02:32:00+00:00\",\"dateModified\":\"2026-07-17T13:55:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/\"},\"wordCount\":811,\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/reliability-pillar-diagram.drawio.png\",\"articleSection\":[\"Backend\",\"Cloud\",\"System Design\",\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/\",\"name\":\"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 1 - Ichwan Chandra\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/reliability-pillar-diagram.drawio.png\",\"datePublished\":\"2026-02-02T02:32:00+00:00\",\"dateModified\":\"2026-07-17T13:55:40+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#\\\/schema\\\/person\\\/2fa69a7a1008a3369584752194b063d5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/reliability-pillar-diagram.drawio.png\",\"contentUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/reliability-pillar-diagram.drawio.png\",\"width\":751,\"height\":592},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-reliability-pillar-part-1\\\/#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 1\"}]},{\"@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 1 - 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-1\/","og_locale":"en_US","og_type":"article","og_title":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 1 - Ichwan Chandra","og_description":"Reliability pillar is an architecture guideline that focuses on the ability of a workload to perform its intended function correctly and consistently when it is expected to. In this project we will re-architect a traditional application deployment where it lacks of fault-tolerance and high-availability. We will start by deploying a flash-sale application for an e-commerce flash campaign without fault-tolerance where if any of EC2 or RDS instance is down there will be a loss of access to customer transaction data.","og_url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/","og_site_name":"Ichwan Chandra","article_published_time":"2026-02-02T02:32:00+00:00","article_modified_time":"2026-07-17T13:55:40+00:00","og_image":[{"width":751,"height":592,"url":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png","type":"image\/png"}],"author":"Ichwan Chandra","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ichwan Chandra","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/#article","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/"},"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 1","datePublished":"2026-02-02T02:32:00+00:00","dateModified":"2026-07-17T13:55:40+00:00","mainEntityOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/"},"wordCount":811,"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png","articleSection":["Backend","Cloud","System Design","Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/","url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/","name":"AWS Solutions Architect Project (Reliability Pillar) \u2013 High Availability Design \u2013 Part 1 - Ichwan Chandra","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/#primaryimage"},"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png","datePublished":"2026-02-02T02:32:00+00:00","dateModified":"2026-07-17T13:55:40+00:00","author":{"@id":"https:\/\/ichwanchandra.com\/blog\/#\/schema\/person\/2fa69a7a1008a3369584752194b063d5"},"breadcrumb":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/#primaryimage","url":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png","contentUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/reliability-pillar-diagram.drawio.png","width":751,"height":592},{"@type":"BreadcrumbList","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-reliability-pillar-part-1\/#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 1"}]},{"@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\/2664","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=2664"}],"version-history":[{"count":29,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2664\/revisions"}],"predecessor-version":[{"id":2764,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2664\/revisions\/2764"}],"wp:attachment":[{"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/media?parent=2664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/categories?post=2664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/tags?post=2664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}