{"id":2504,"date":"2026-01-06T23:20:42","date_gmt":"2026-01-06T15:20:42","guid":{"rendered":"https:\/\/ichwanchandra.com\/blog\/?p=2504"},"modified":"2026-07-20T13:12:37","modified_gmt":"2026-07-20T05:12:37","slug":"aws-solutions-architect-project-security-pillar-part-2","status":"publish","type":"post","link":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/","title":{"rendered":"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2"},"content":{"rendered":"\n<p>After intentionally deploy the insecure ShoppingCart application in the <a href=\"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-1\/\" data-type=\"post\" data-id=\"2449\">part 1<\/a>, in the 2nd part, we will start to rebuild the proper architecture for with AWS security best practices. In essence, the goal of security pillar is to minimise risk by default through a layered security model such as: network isolation using private subnets, controlled access as the principle of least access through security groups, and AWS WAF to block common threats (i.e. SQL injection, XSS, malware, and IP bots)<\/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 Secure Networking Using Custom VPC, Subnets, and Gateways<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to the <strong>VPC Dashboard<\/strong>, click <strong>Create VPC<\/strong><\/li>\n\n\n\n<li><strong>VPC Settings<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Name tag<\/strong>: <code>shoppingcart-vpc<\/code><\/li>\n\n\n\n<li><strong>Resource to create<\/strong>: VPC only<\/li>\n\n\n\n<li><strong>IPv4 CIDR block<\/strong>: <code>10.0.0.0\/16<\/code><\/li>\n\n\n\n<li><strong>IPv6 CIDR block<\/strong>: No IPv6 CIDR block<\/li>\n\n\n\n<li><strong>Tenancy<\/strong>: Default<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"910\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-13-1024x910.png\" alt=\"\" class=\"wp-image-2514\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-13-1024x910.png 1024w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-13-300x267.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-13-768x682.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-13.png 1057w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"434\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-14.png\" alt=\"\" class=\"wp-image-2519\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-14.png 813w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-14-300x160.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-14-768x410.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/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 Public and Private Subnets<\/h2>\n\n\n\n<p>We&#8217;ll configure 4 subnets across two availability zones:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Name<\/td><td>Availability Zone<\/td><td>CIDR Block<\/td><td>Type<\/td><\/tr><tr><td>public-subnet-1<\/td><td>us-east-1a<\/td><td>10.0.1.0\/24<\/td><td>ALB, NAT Gateway<\/td><\/tr><tr><td>public-subnet-2<\/td><td>us-east-1b<\/td><td>10.0.3.0\/24<\/td><td>ALB, NAT Gateway<\/td><\/tr><tr><td>private-subnet-1<\/td><td>us-east-1a<\/td><td>10.0.2.0\/24<\/td><td>App Servers<\/td><\/tr><tr><td>private-subnet-2<\/td><td>us-east-1b<\/td><td>10.0.4.0\/24<\/td><td>ALB, NAT Gateway<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Navigate to <strong>Subnets<\/strong>, click <strong>Create Subnet<\/strong><\/li>\n\n\n\n<li><strong>Select VPC<\/strong>: Choose <code>shoppingcart-vpc<\/code><\/li>\n\n\n\n<li><strong>Create each subnet<\/strong> with the specifications above<br><\/li>\n\n\n\n<li><strong>For public-subnet-1<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Subnet name<\/strong>: <code>public-subnet-1<\/code><\/li>\n\n\n\n<li><strong>Availability Zone<\/strong>: us-east-1a<\/li>\n\n\n\n<li><strong>IPv4 CIDR block<\/strong>: <code>10.0.1.0\/24<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"1024\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-15-873x1024.png\" alt=\"\" class=\"wp-image-2520\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-15-873x1024.png 873w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-15-256x300.png 256w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-15-768x901.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-15.png 1009w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>For public-subnet-<\/strong>2:\n<ul class=\"wp-block-list\">\n<li><strong>Subnet name<\/strong>: <code>public-subnet-<\/code>2<\/li>\n\n\n\n<li><strong>Availability Zone<\/strong>: us-east-1b<\/li>\n\n\n\n<li><strong>IPv4 CIDR block<\/strong>: <code>10.0.3.0\/24<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"1024\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-16-873x1024.png\" alt=\"\" class=\"wp-image-2521\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-16-873x1024.png 873w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-16-256x300.png 256w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-16-768x901.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-16.png 1009w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>For private-subnet-1<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Subnet name<\/strong>: <code>private-subnet-1<\/code><\/li>\n\n\n\n<li><strong>Availability Zone<\/strong>: us-east-1a<\/li>\n\n\n\n<li><strong>IPv4 CIDR block<\/strong>: <code>10.0.2.0\/24<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"1024\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-17-873x1024.png\" alt=\"\" class=\"wp-image-2523\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-17-873x1024.png 873w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-17-256x300.png 256w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-17-768x901.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-17.png 1009w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>For private-subnet-2<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Subnet name<\/strong>: <code>private-subnet-2<\/code><\/li>\n\n\n\n<li><strong>Availability Zone<\/strong>: us-east-1b<\/li>\n\n\n\n<li><strong>IPv4 CIDR block<\/strong>: <code>10.0.4.0\/24<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"1024\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-18-873x1024.png\" alt=\"\" class=\"wp-image-2524\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-18-873x1024.png 873w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-18-256x300.png 256w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-18-768x901.png 768w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-18.png 1009w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Setup public IP for public subnets\n<ul class=\"wp-block-list\">\n<li>Select <strong>public-subnet-1<\/strong>, click <strong>Actions<\/strong>, click <strong>Edit subnet settings<\/strong> <\/li>\n\n\n\n<li>Check <strong>Enable auto-assign public IPv4 address<\/strong> <\/li>\n\n\n\n<li>Click <strong>Save<\/strong> <\/li>\n\n\n\n<li>Repeat for <strong>public-subnet-2<\/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=\"1009\" height=\"797\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-19.png\" alt=\"\" class=\"wp-image-2527\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-19.png 1009w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-19-300x237.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-19-768x607.png 768w\" sizes=\"auto, (max-width: 1009px) 100vw, 1009px\" \/><\/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 Internet Gateway and NAT Gateway<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Select <strong>Internet Gateways<\/strong>, click <strong>Create Internet Gateway<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Configuration<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Name tag<\/strong>: <code>shoppingcart-igw<\/code><\/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=\"1009\" height=\"528\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-20.png\" alt=\"\" class=\"wp-image-2528\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-20.png 1009w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-20-300x157.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-20-768x402.png 768w\" sizes=\"auto, (max-width: 1009px) 100vw, 1009px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>And then attach it to the VPC<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1012\" height=\"391\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-21.png\" alt=\"\" class=\"wp-image-2529\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-21.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-21-300x116.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-21-768x297.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In order to setup NAT gateway, let&#8217;s do the following steps\n<ul class=\"wp-block-list\">\n<li>Go to <strong>EC2 Dashboard<\/strong>, click <strong>Elastic IPs<\/strong> (under Network &amp; Security), click <strong>Allocate <\/strong><\/li>\n\n\n\n<li><strong>Configuration<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Public IPv4 address pool<\/strong>: Amazon&#8217;s pool of IPv4 addresses<\/li>\n\n\n\n<li><strong>Network Border Group<\/strong>: Default<\/li>\n\n\n\n<li>Click <strong>Allocate<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Note the Allocation ID<\/strong> for the next step<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1012\" height=\"777\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-22.png\" alt=\"\" class=\"wp-image-2530\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-22.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-22-300x230.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-22-768x590.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Next, we&#8217;ll create NAT Gateways  \n<ul class=\"wp-block-list\">\n<li>Go to <strong>VPC Dashboard<\/strong>, click <strong>NAT Gateways<\/strong> from the sidebar menu<\/li>\n\n\n\n<li>Click <strong>Create NAT Gateway<\/strong><\/li>\n\n\n\n<li><strong>Configuration:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>: <code>shoppingcart-nat<\/code><\/li>\n\n\n\n<li><strong>Subnet<\/strong>: Select <code>public-subnet-1<\/code> (NAT Gateway must be in a public subnet)<\/li>\n\n\n\n<li><strong>Connectivity type<\/strong>: Public<\/li>\n\n\n\n<li><strong>Elastic IP allocation ID<\/strong>: Select the Elastic IP you just created<\/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=\"1012\" height=\"744\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-23.png\" alt=\"\" class=\"wp-image-2532\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-23.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-23-300x221.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-23-768x565.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/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 4: Setup Route Table<\/h2>\n\n\n\n<p>In order to direct the network traffic within VPC, we need the routing configuration on the route table. For this case, the goal is to direct the traffic from  the public subnets to internet gateway for the internet access.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Route Tables<\/strong> from sidebar menu, and click <strong>Create Route TableConfiguration<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>: <code>public-rt<\/code><\/li>\n\n\n\n<li><strong>VPC<\/strong>: <code>shoppingcart-vpc<\/code><\/li>\n\n\n\n<li>Click <strong>Create route table<\/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=\"1012\" height=\"611\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-24.png\" alt=\"\" class=\"wp-image-2534\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-24.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-24-300x181.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-24-768x464.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Next, we add internet route \n<ul class=\"wp-block-list\">\n<li>Select the newly created route table <\/li>\n\n\n\n<li>Go to <strong>Routes<\/strong> tab, click <strong>Edit routes<\/strong>, click <strong>Add route<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Destination<\/strong>: <code>0.0.0.0\/0<\/code> (all internet traffic) <\/li>\n\n\n\n<li><strong>Target<\/strong>: Internet Gateway, select <code>shoppingcart-igw<\/code> <\/li>\n\n\n\n<li>Click <strong>Save changes<\/strong><\/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=\"1012\" height=\"697\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-25.png\" alt=\"\" class=\"wp-image-2535\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-25.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-25-300x207.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-25-768x529.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Next, we associate the Public Subnets:\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Subnet associations<\/strong> tab, click <strong>Edit subnet associations<\/strong><\/li>\n\n\n\n<li>Select both public subnets:\n<ul class=\"wp-block-list\">\n<li><code>public-subnet-1<\/code><\/li>\n\n\n\n<li><code>public-subnet-2<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Save associations<\/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=\"1012\" height=\"529\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-26.png\" alt=\"\" class=\"wp-image-2536\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-26.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-26-300x157.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-26-768x401.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<p>In order to direct outbound traffic from the private subnets via the NAT gateway while preventing direct inbound internet access, we need to setup the private route table<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Navigate to <strong>Route Tables<\/strong>, click <strong>Create Route Table<\/strong><\/li>\n\n\n\n<li><strong>Configuration<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>: <code>private-rt<\/code><\/li>\n\n\n\n<li><strong>VPC<\/strong>: <code>shoppingcart-vpc<\/code><\/li>\n\n\n\n<li>Click <strong>Create route table<\/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=\"1012\" height=\"605\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-28.png\" alt=\"\" class=\"wp-image-2540\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-28.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-28-300x179.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-28-768x459.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Next, we a<strong>dd NAT Gateway Route<\/strong>: \n<ul class=\"wp-block-list\">\n<li>Select the newly created route table \n<ul class=\"wp-block-list\">\n<li>Go to <strong>Routes<\/strong> tab, click <strong>Edit routes<\/strong> <\/li>\n\n\n\n<li>Click <strong>Add route<\/strong><\/li>\n\n\n\n<li><strong>Destination<\/strong>: <code>0.0.0.0\/0<\/code> (all internet traffic) <\/li>\n\n\n\n<li><strong>Target<\/strong>: NAT Gateway \u2192 Select <code>shoppingcart-nat<\/code> <\/li>\n\n\n\n<li>Click <strong>Save changes<\/strong><\/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=\"1012\" height=\"691\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-29.png\" alt=\"\" class=\"wp-image-2543\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-29.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-29-300x205.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-29-768x524.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Finally, we a<strong>ssociate the Private Subnets<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Subnet associations<\/strong> tab, click <strong>Edit subnet associations<\/strong><\/li>\n\n\n\n<li>Select both private subnets:\n<ul class=\"wp-block-list\">\n<li><code>private-subnet-1<\/code><\/li>\n\n\n\n<li><code>private-subnet-2<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Save associations<\/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=\"1012\" height=\"536\" src=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-30.png\" alt=\"\" class=\"wp-image-2544\" srcset=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-30.png 1012w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-30-300x159.png 300w, https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/01\/image-30-768x407.png 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/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: Securing Network (VPC, Subnets, and Gateways)<\/h2>\n\n\n\n<p>In this part, we have implemented the principle of least privilege, where each network subnets on the customised VPC have only the minimum access required in order to reduce the attack surface.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Network Segmentation Achieved<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Public tier<\/strong>: Hosts only internet-facing components (load balancers, bastion hosts)<\/li>\n\n\n\n<li><strong>Private tier<\/strong>: Isolates application servers and databases from direct internet access<\/li>\n\n\n\n<li><strong>Multi-AZ deployment<\/strong>: Provides high availability and fault tolerance<br><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Traffic Control Implemented<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Controlled internet access<\/strong>: Public subnets have direct internet access via Internet Gateway<\/li>\n\n\n\n<li><strong>Secure outbound connectivity<\/strong>: Private subnets can access internet through NAT Gateway for updates<\/li>\n\n\n\n<li><strong>No inbound internet access<\/strong>: Private resources cannot be directly accessed from the internet<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>In <a href=\"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-3\/\" data-type=\"post\" data-id=\"2554\">part 3<\/a>, we&#8217;ll build the application backend by deploying EC2 inside the private subnet. This means we will be migrating the ShoppingCart application from default VPC to the secured VPC above while implementing the compute, storage, and database tiers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After intentionally deploy the insecure ShoppingCart application in the part 1, in the 2nd part, we will start to rebuild the proper architecture for with AWS security best practices. In essence, the goal of security pillar is to minimise risk by default through a layered security model such as: network isolation using private subnets, controlled access as the principle of least access through security groups, and AWS WAF to block common threats (i.e. SQL injection, XSS, malware, and IP bots)<\/p>\n","protected":false},"author":1,"featured_media":2651,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,10,85,75],"tags":[],"class_list":["post-2504","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backend","category-cloud","category-projects","category-system-design"],"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 (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2 - 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-security-pillar-part-2\/\" \/>\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 (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2 - Ichwan Chandra\" \/>\n<meta property=\"og:description\" content=\"After intentionally deploy the insecure ShoppingCart application in the part 1, in the 2nd part, we will start to rebuild the proper architecture for with AWS security best practices. In essence, the goal of security pillar is to minimise risk by default through a layered security model such as: network isolation using private subnets, controlled access as the principle of least access through security groups, and AWS WAF to block common threats (i.e. SQL injection, XSS, malware, and IP bots)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Ichwan Chandra\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-06T15:20:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-20T05:12:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/aws-solutions-architect-project-security-pillar-part-2-1024x572.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"572\" \/>\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=\"7 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-security-pillar-part-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/\"},\"author\":{\"name\":\"Ichwan Chandra\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#\\\/schema\\\/person\\\/2fa69a7a1008a3369584752194b063d5\"},\"headline\":\"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2\",\"datePublished\":\"2026-01-06T15:20:42+00:00\",\"dateModified\":\"2026-07-20T05:12:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/\"},\"wordCount\":743,\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/aws-solutions-architect-project-security-pillar-part-2.png\",\"articleSection\":[\"Backend\",\"Cloud\",\"Projects\",\"System Design\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/\",\"name\":\"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2 - Ichwan Chandra\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/aws-solutions-architect-project-security-pillar-part-2.png\",\"datePublished\":\"2026-01-06T15:20:42+00:00\",\"dateModified\":\"2026-07-20T05:12:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/#\\\/schema\\\/person\\\/2fa69a7a1008a3369584752194b063d5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/aws-solutions-architect-project-security-pillar-part-2.png\",\"contentUrl\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/aws-solutions-architect-project-security-pillar-part-2.png\",\"width\":1376,\"height\":768,\"caption\":\"aws solutions architect project on security pillar - part 2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/aws-solutions-architect-project-security-pillar-part-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ichwanchandra.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2\"}]},{\"@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 (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2 - 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-security-pillar-part-2\/","og_locale":"en_US","og_type":"article","og_title":"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2 - Ichwan Chandra","og_description":"After intentionally deploy the insecure ShoppingCart application in the part 1, in the 2nd part, we will start to rebuild the proper architecture for with AWS security best practices. In essence, the goal of security pillar is to minimise risk by default through a layered security model such as: network isolation using private subnets, controlled access as the principle of least access through security groups, and AWS WAF to block common threats (i.e. SQL injection, XSS, malware, and IP bots)","og_url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/","og_site_name":"Ichwan Chandra","article_published_time":"2026-01-06T15:20:42+00:00","article_modified_time":"2026-07-20T05:12:37+00:00","og_image":[{"width":1024,"height":572,"url":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/aws-solutions-architect-project-security-pillar-part-2-1024x572.png","type":"image\/png"}],"author":"Ichwan Chandra","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ichwan Chandra","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/#article","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/"},"author":{"name":"Ichwan Chandra","@id":"https:\/\/ichwanchandra.com\/blog\/#\/schema\/person\/2fa69a7a1008a3369584752194b063d5"},"headline":"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2","datePublished":"2026-01-06T15:20:42+00:00","dateModified":"2026-07-20T05:12:37+00:00","mainEntityOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/"},"wordCount":743,"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/aws-solutions-architect-project-security-pillar-part-2.png","articleSection":["Backend","Cloud","Projects","System Design"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/","url":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/","name":"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2 - Ichwan Chandra","isPartOf":{"@id":"https:\/\/ichwanchandra.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/#primaryimage"},"image":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/aws-solutions-architect-project-security-pillar-part-2.png","datePublished":"2026-01-06T15:20:42+00:00","dateModified":"2026-07-20T05:12:37+00:00","author":{"@id":"https:\/\/ichwanchandra.com\/blog\/#\/schema\/person\/2fa69a7a1008a3369584752194b063d5"},"breadcrumb":{"@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/#primaryimage","url":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/aws-solutions-architect-project-security-pillar-part-2.png","contentUrl":"https:\/\/ichwanchandra.com\/blog\/wp-content\/uploads\/2026\/06\/aws-solutions-architect-project-security-pillar-part-2.png","width":1376,"height":768,"caption":"aws solutions architect project on security pillar - part 2"},{"@type":"BreadcrumbList","@id":"https:\/\/ichwanchandra.com\/blog\/aws-solutions-architect-project-security-pillar-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ichwanchandra.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS Solutions Architect Project (Security Pillar) \u2013 Secure Application Deployment \u2013 Part 2"}]},{"@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\/2504","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=2504"}],"version-history":[{"count":26,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2504\/revisions"}],"predecessor-version":[{"id":2814,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/posts\/2504\/revisions\/2814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/media\/2651"}],"wp:attachment":[{"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/media?parent=2504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/categories?post=2504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ichwanchandra.com\/blog\/wp-json\/wp\/v2\/tags?post=2504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}