<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Cloud Out Loud]]></title><description><![CDATA[A Facilities Specialist's path to AWS Cloud Engineering. Hands-on projects, SAA-C03 prep, and real documentation of building a new career in cloud.]]></description><link>https://www.cloudoutloudseries.com</link><image><url>https://cdn.hashnode.com/uploads/logos/69e5624a13e74eec58666fcb/16d2c37c-32af-4d0d-ba41-7a77b4cd3734.png</url><title>Cloud Out Loud</title><link>https://www.cloudoutloudseries.com</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 13:06:53 GMT</lastBuildDate><atom:link href="https://www.cloudoutloudseries.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Fixing Private Subnet's Missing NAT Route]]></title><description><![CDATA[Objective
This SOP explains how to inspect a private subnet’s route table, confirm the NAT gateway is healthy, add the missing default route to the NAT gateway, and verify end-to-end internet connecti]]></description><link>https://www.cloudoutloudseries.com/fixing-private-subnet-missing-nat-route</link><guid isPermaLink="true">https://www.cloudoutloudseries.com/fixing-private-subnet-missing-nat-route</guid><category><![CDATA[AWS]]></category><category><![CDATA[Cloud Engineering ]]></category><category><![CDATA[learn to cloud]]></category><category><![CDATA[cloud out loud]]></category><category><![CDATA[Cloud Networking]]></category><dc:creator><![CDATA[Naquan]]></dc:creator><pubDate>Sat, 26 Sep 2026 20:48:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69e5624a13e74eec58666fcb/7cb467ed-9170-4ac3-8d71-215f7836927d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Objective</h3>
<p>This SOP explains how to inspect a private subnet’s route table, confirm the NAT gateway is healthy, add the missing default route to the NAT gateway, and verify end-to-end internet connectivity from the subnet. Follow these steps to restore outbound internet access for private subnet workloads.</p>
<h3><a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518">Link to Loom</a></h3>
<h3>Key Steps</h3>
<p><strong>1. Retrieve the Private Subnet ID</strong> <a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518?t=18">0:18</a></p>
<img src="https://loom.com/i/4fe8dc3ebf314f94a170c461cc7dbcd0?workflows_screenshot=true" alt="generated-image-at-00:00:18" style="display:block;margin:0 auto" />

<ul>
<li><p>Open the AWS CLI terminal.</p>
</li>
<li><p>Run the AWS <code>describe</code> command to retrieve the subnet ID for the private subnet.</p>
</li>
<li><p>Paste in the API server IP address when prompted.</p>
</li>
<li><p>Confirm the command returns the subnet ID you will use in the next step.</p>
</li>
</ul>
<p><strong>2. Inspect the Route Table for the Subnet</strong> <a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518?t=106">1:46</a></p>
<img src="https://loom.com/i/1e1798bd070a4b13a6f7295523d19d03?workflows_screenshot=true" alt="generated-image-at-00:01:46" style="display:block;margin:0 auto" />

<ul>
<li><p>Use the subnet ID from the previous step in a new AWS <code>describe</code> command.</p>
</li>
<li><p>Include the full subnet identifier exactly as returned, including the <code>subnet-</code> prefix.</p>
</li>
<li><p>Review the route table output.</p>
</li>
<li><p>If the output is paginated, continue scrolling/down until the full route table details are visible.</p>
</li>
<li><p>Check the route table ID, VPC ID, associations, and route state.</p>
</li>
</ul>
<p><strong>3. Determine Whether a Default Internet Route Exists</strong> <a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518?t=153">2:33</a></p>
<img src="https://loom.com/i/351457c28b2a4d058afaa5f59beaff92?workflows_screenshot=true" alt="generated-image-at-00:02:33" style="display:block;margin:0 auto" />

<ul>
<li><p>Review the route table entries for a default route (<code>0.0.0.0/0</code>).</p>
</li>
<li><p>Confirm whether traffic destined for the public internet is routed to a NAT gateway.</p>
</li>
<li><p>If the route table only contains routes for the VPC/private network, outbound internet access is not configured.</p>
</li>
<li><p>Note that private subnets do not have direct internet access by default.</p>
</li>
</ul>
<p><strong>4. Verify the NAT Gateway Is Healthy</strong> <a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518?t=222">3:42</a></p>
<img src="https://loom.com/i/fd732481c3e44e758421a751abf16dc3?workflows_screenshot=true" alt="generated-image-at-00:03:42" style="display:block;margin:0 auto" />

<ul>
<li><p>Run an AWS <code>describe</code> command for the NAT gateway.</p>
</li>
<li><p>Confirm the NAT gateway status is available/healthy.</p>
</li>
<li><p>Verify the status shows success and that the gateway is ready to accept traffic.</p>
</li>
<li><p>If the NAT gateway is not healthy, resolve that issue before changing the route table.</p>
</li>
</ul>
<p><strong>5. Create the Missing Route to the NAT Gateway</strong> <a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518?t=300">5:00</a></p>
<img src="https://loom.com/i/74d8503dda5943d39a0ca8235f5a443f?workflows_screenshot=true" alt="generated-image-at-00:05:00" style="display:block;margin:0 auto" />

<ul>
<li><p>Return to the AWS CLI terminal.</p>
</li>
<li><p>Gather the NAT gateway ID.</p>
</li>
<li><p>Gather the route table ID for the private subnet.</p>
</li>
<li><p>Create a new route in the route table with:</p>
<ul>
<li><p>Destination: <code>0.0.0.0/0</code></p>
</li>
<li><p>Target: the NAT gateway ID</p>
</li>
</ul>
</li>
<li><p>Confirm the command returns success (for example, <code>true</code>).</p>
</li>
</ul>
<p><strong>6. Confirm the Route Was Added Correctly</strong> <a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518?t=404">6:44</a></p>
<img src="https://loom.com/i/95a9b5c1def14a20b8b24a4d3e74a54e?workflows_screenshot=true" alt="generated-image-at-00:06:44" style="display:block;margin:0 auto" />

<ul>
<li><p>Review the route table output again.</p>
</li>
<li><p>Verify the new route exists and points all public traffic to the NAT gateway.</p>
</li>
<li><p>Confirm the destination is <code>0.0.0.0/0</code>.</p>
</li>
<li><p>Confirm the NAT gateway ID is listed as the target.</p>
</li>
<li><p>Ensure the subnet now has a path for outbound internet traffic.</p>
</li>
</ul>
<p><strong>7. Validate the Fix End to End</strong> <a href="https://loom.com/share/150b4ee6c4e34066b282a47dbc943518?t=452">7:32</a></p>
<img src="https://loom.com/i/8f82b7926b4347458cbdd4a071a7be8b?workflows_screenshot=true" alt="generated-image-at-00:07:32" style="display:block;margin:0 auto" />

<ul>
<li><p>Run the validation script (<code>validate.sh</code>) to check the environment.</p>
</li>
<li><p>Perform an actual network request using <code>curl</code> to test the full connection path.</p>
</li>
<li><p>Confirm the TCP/TLS handshake succeeds.</p>
</li>
<li><p>Verify the host resolves and the request reaches the public endpoint successfully.</p>
</li>
<li><p>Treat a successful request as confirmation that the private subnet internet access issue is resolved.</p>
</li>
</ul>
<h3>Cautionary Notes</h3>
<ul>
<li><p>Do not create the route until you have confirmed the NAT gateway is healthy and available.</p>
</li>
<li><p>Make sure you copy the full subnet ID and route table ID exactly as returned, including prefixes such as <code>subnet-</code>.</p>
</li>
<li><p>If the CLI output is truncated or paginated, scroll through the full output before making changes.</p>
</li>
<li><p>A private subnet will not have direct internet access unless a default route to a NAT gateway is explicitly configured.</p>
</li>
<li><p>Validate with an actual network request, not just by checking configuration, to confirm end-to-end connectivity.</p>
</li>
</ul>
<h3>Tips for Efficiency</h3>
<ul>
<li><p>Keep the subnet ID, route table ID, and NAT gateway ID in a scratch pad before making changes.</p>
</li>
<li><p>Reuse the same AWS CLI session to avoid re-authentication or context switching.</p>
</li>
<li><p>Check the route table before and after the change so you can quickly confirm what was missing.</p>
</li>
<li><p>Use <code>curl</code> or a similar request as the final verification step to catch DNS, routing, and TLS issues in one test.</p>
</li>
<li><p>If multiple private subnets use the same route table, one route update may restore connectivity for all associated subnets.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Setting up a VPC in AWS]]></title><description><![CDATA[https://www.youtube.com/watch?v=9zva600Xg-o

Edit this text]]></description><link>https://www.cloudoutloudseries.com/setting-up-vpc-in-aws</link><guid isPermaLink="true">https://www.cloudoutloudseries.com/setting-up-vpc-in-aws</guid><dc:creator><![CDATA[Naquan]]></dc:creator><pubDate>Wed, 20 May 2026 22:14:59 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69e5624a13e74eec58666fcb/2a8c9a88-2b3e-461e-8159-20861812a569.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a class="embed-card" href="https://www.youtube.com/watch?v=9zva600Xg-o">https://www.youtube.com/watch?v=9zva600Xg-o</a></p>

<p>Edit this text</p>
]]></content:encoded></item></channel></rss>