<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: SHAJAM</title>
    <description>The latest articles on Forem by SHAJAM (@shajam).</description>
    <link>https://forem.com/shajam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2912358%2F283d08dc-bbb5-4d55-8b57-9c846995aa4f.png</url>
      <title>Forem: SHAJAM</title>
      <link>https://forem.com/shajam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shajam"/>
    <language>en</language>
    <item>
      <title>What can we learn from me-central-1 region outage</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Fri, 06 Mar 2026 04:23:16 +0000</pubDate>
      <link>https://forem.com/shajam/what-can-we-learn-from-me-central-1-region-outage-n9a</link>
      <guid>https://forem.com/shajam/what-can-we-learn-from-me-central-1-region-outage-n9a</guid>
      <description>&lt;p&gt;Cloud outages always trigger the same conversation: &lt;em&gt;"Is the cloud really reliable?"&lt;/em&gt; As someone who has spent years designing distributed systems and writing about cloud architecture, I see outages differently. They are case studies. They show us exactly where our assumptions about resilience break down.&lt;/p&gt;

&lt;p&gt;The recent outage in the &lt;strong&gt;AWS Middle East (UAE) – me-central-1 region&lt;/strong&gt; is a great reminder of a simple truth many architects intellectually know but don't always design for:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A cloud region is a failure domain.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even when a provider advertises multiple AZs, a regional event can still cascade across services. If you build everything inside a single region, you are still accepting regional risk.&lt;/p&gt;




&lt;h3&gt;
  
  
  "Multi-AZ" Is Not the Same as "Highly Available"
&lt;/h3&gt;

&lt;p&gt;Most production workloads proudly claim they are deployed across multiple Availability Zones. That is good practice — but it is not the same as regional resilience.&lt;/p&gt;

&lt;p&gt;Availability Zones protect against:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data centre failure&lt;/li&gt;
&lt;li&gt;Power or networking issues within a zone&lt;/li&gt;
&lt;li&gt;Localized infrastructure faults&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They &lt;strong&gt;do not&lt;/strong&gt; protect against:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regional control plane failures&lt;/li&gt;
&lt;li&gt;Regional networking issues&lt;/li&gt;
&lt;li&gt;Identity or API failures affecting the whole region&lt;/li&gt;
&lt;li&gt;Large-scale operational events&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the region itself has issues, &lt;em&gt;every AZ can become unavailable at the same time.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architectural takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Design critical systems assuming:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Region failure = possible
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That means evaluating whether your workload should support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-region failover&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Active-active regional deployment&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regional evacuation playbooks&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Control Planes Are Hidden Single Points of Failure
&lt;/h3&gt;

&lt;p&gt;One thing outages repeatedly reveal is the difference between &lt;strong&gt;control plane&lt;/strong&gt; and &lt;strong&gt;data plane&lt;/strong&gt; resilience.&lt;/p&gt;

&lt;p&gt;Even if compute instances are technically healthy, problems in the control plane can break systems in subtle ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto-scaling stops working&lt;/li&gt;
&lt;li&gt;IAM authentication fails&lt;/li&gt;
&lt;li&gt;Load balancers stop provisioning&lt;/li&gt;
&lt;li&gt;Container orchestration cannot schedule workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your application may be running, but &lt;strong&gt;operations around it are crippled&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architectural takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Design so your application can continue operating even when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scaling APIs fail&lt;/li&gt;
&lt;li&gt;Infrastructure automation cannot run&lt;/li&gt;
&lt;li&gt;New resources cannot be provisioned&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This usually means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pre-provisioning capacity buffers&lt;/li&gt;
&lt;li&gt;Avoiding dependency on real-time infrastructure changes&lt;/li&gt;
&lt;li&gt;Ensuring applications degrade gracefully&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Multi-Region Is Still the Gold Standard for Critical Systems
&lt;/h3&gt;

&lt;p&gt;Cloud providers rarely experience full regional outages, but they do happen.&lt;/p&gt;

&lt;p&gt;Organizations with &lt;strong&gt;true multi-region architectures&lt;/strong&gt; typically see far smaller impacts during these events.&lt;/p&gt;

&lt;p&gt;The three common patterns I see in mature systems are:&lt;/p&gt;

&lt;h3&gt;
  
  
  Active-Passive
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Primary region serves traffic&lt;/li&gt;
&lt;li&gt;Secondary region stays warm&lt;/li&gt;
&lt;li&gt;Failover triggered by DNS or traffic routing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cheaper&lt;/li&gt;
&lt;li&gt;Simpler&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failover time may be minutes&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Active-Active
&lt;/h3&gt;

&lt;p&gt;Traffic is distributed across multiple regions simultaneously.&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No cold standby&lt;/li&gt;
&lt;li&gt;Instant resilience&lt;/li&gt;
&lt;li&gt;Better global latency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data consistency challenges&lt;/li&gt;
&lt;li&gt;Higher cost&lt;/li&gt;
&lt;li&gt;Operational complexity&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Pilot Light
&lt;/h3&gt;

&lt;p&gt;Minimal services run in secondary region, expanded during failover.&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost efficient&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recovery time longer&lt;/li&gt;
&lt;li&gt;Operational risk during scale-up&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Regional Dependencies Are Often Hidden
&lt;/h3&gt;

&lt;p&gt;Many outages expose something architects forget to model: &lt;strong&gt;implicit regional dependencies&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identity services&lt;/li&gt;
&lt;li&gt;DNS resolution&lt;/li&gt;
&lt;li&gt;Secrets managers&lt;/li&gt;
&lt;li&gt;Container registries&lt;/li&gt;
&lt;li&gt;Monitoring pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your application may appear multi-region, but if authentication, secrets, or images live in one region, you have a hidden single point of failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architectural takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Audit dependencies in three layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Application dependencies&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Platform dependencies&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Operational dependencies&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your system is only as resilient as the weakest layer.&lt;/p&gt;




&lt;h3&gt;
  
  
  Monitoring and Observability Need Regional Awareness
&lt;/h3&gt;

&lt;p&gt;Another common pattern during outages is monitoring blind spots.&lt;/p&gt;

&lt;p&gt;Many teams run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logging&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Alerting&lt;/li&gt;
&lt;li&gt;dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;—all in the &lt;strong&gt;same region as their application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When the region fails, &lt;strong&gt;visibility disappears at the exact moment you need it most&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Architectural takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For critical systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Send metrics to another region&lt;/li&gt;
&lt;li&gt;Maintain external uptime checks&lt;/li&gt;
&lt;li&gt;Keep incident tooling outside the impacted region&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Runbooks Matter More Than Architecture
&lt;/h3&gt;

&lt;p&gt;Architecture is important, but during outages &lt;strong&gt;execution matters more&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Organizations that handle incidents well usually have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear regional failover procedures&lt;/li&gt;
&lt;li&gt;Automated traffic switching&lt;/li&gt;
&lt;li&gt;Regular disaster recovery drills&lt;/li&gt;
&lt;li&gt;Defined decision authority&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without practice, even the best architecture can fail during an emergency.&lt;/p&gt;




&lt;h3&gt;
  
  
  Cost Optimization Often Competes with Resilience
&lt;/h3&gt;

&lt;p&gt;One uncomfortable truth: many architectures stay single-region because &lt;strong&gt;multi-region costs more&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Extra regions mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Duplicate infrastructure&lt;/li&gt;
&lt;li&gt;Data replication&lt;/li&gt;
&lt;li&gt;Additional operational complexity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But outages like this remind us that resilience is a &lt;strong&gt;business decision&lt;/strong&gt;, not purely a technical one.&lt;/p&gt;

&lt;p&gt;The real question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the cost of downtime compared to the cost of redundancy?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For some systems the answer is obvious. For others, it requires honest discussion with stakeholders.&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Cloud outages are not failures of cloud computing. They are reminders that &lt;strong&gt;distributed systems are still systems&lt;/strong&gt;, and every system has failure modes.&lt;/p&gt;

&lt;p&gt;The me-central-1 outage reinforces a few timeless lessons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regions are failure domains&lt;/li&gt;
&lt;li&gt;Multi-AZ is not multi-region&lt;/li&gt;
&lt;li&gt;Hidden dependencies break resilience&lt;/li&gt;
&lt;li&gt;Observability must survive outages&lt;/li&gt;
&lt;li&gt;Runbooks matter as much as architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The real measure of a cloud architecture is not whether it avoids outages — that’s impossible.&lt;/p&gt;

&lt;p&gt;It's &lt;strong&gt;how gracefully it survives them&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;If you're a cloud architect, moments like this are an opportunity to revisit your assumptions and ask one uncomfortable question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What happens if my region disappears right now?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the answer is &lt;em&gt;"we're not sure"&lt;/em&gt;, it might be time to redesign.&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>outage</category>
      <category>failover</category>
    </item>
    <item>
      <title>Advance Routing Policy in AWS Cloud WAN</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Fri, 06 Mar 2026 04:00:39 +0000</pubDate>
      <link>https://forem.com/shajam/advance-routing-policy-in-aws-cloud-wan-99n</link>
      <guid>https://forem.com/shajam/advance-routing-policy-in-aws-cloud-wan-99n</guid>
      <description>&lt;p&gt;AWS Cloud WAN is a managed wide-area networking (WAN) service from AWS. It lets you build, manage, and monitor a unified global network that spans both cloud and on-premises environments. In practice, Cloud WAN lets you connect your data centres, branch offices, remote sites, and AWS cloud resources (e.g. VPCs) through a central control plane — instead of manually wiring together many VPCs, VPNs, Transit Gateways, and third-party SD-WANs.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;To learn more about Cloud WAN, read my previous post on &lt;a href="https://dev.to/shajam/inter-region-connectivity-in-aws-using-cloudwan-183f"&gt;Connectivity using Cloud WAN&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Recently, AWS has announced advanced routing feature for Cloud WAN. Let's explore Segment routing policy in this post.&lt;/p&gt;

&lt;p&gt;Let's assume, we have two segments -&amp;gt; &lt;code&gt;DEVELOPMENT&lt;/code&gt; and &lt;code&gt;PRODUCTION&lt;/code&gt; and we have the policy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "core-network-configuration": {
    "vpn-ecmp-support": true,
    "asn-ranges": [
      "64520-64524"
    ],
    "edge-locations": [
      {
        "location": "us-west-2",
        "asn": 64521
      },
      {
        "location": "us-east-1",
        "asn": 64522
      }
    ]
  },
  "version": "2025.11",
  "attachment-policies": [
    {
      "rule-number": 100,
      "action": {
        "association-method": "tag",
        "tag-value-of-key": "SEGMENT"
      },
      "conditions": [
        {
          "type": "tag-exists",
          "key": "SEGMENT"
        }
      ]
    }
  ],
  "segments": [
    {
      "name": "DEVELOPMENT",
      "require-attachment-acceptance": false,
      "edge-locations": [
        "us-west-2"
      ]
    },
    {
      "name": "PRODUCTION",
      "require-attachment-acceptance": true,
      "edge-locations": [
        "us-west-2", "us-east-1"
      ]
    }    
  ],
  "segment-actions": [
    {
      "mode": "attachment-route",
      "segment": "PRODUCTION",
      "action": "share",
      "share-with": [
        "DEVELOPMENT"
      ]
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;This is essentially a cut down version of the policy I shared in the previous post. In this policy, &lt;code&gt;PRODUCTION&lt;/code&gt; and &lt;code&gt;DEVELOPMENT&lt;/code&gt; are shared, all routes are shared between the two segments.&lt;/p&gt;




&lt;p&gt;Now, let us change the policy and allow only certain CIDR ranges from &lt;code&gt;PRODUCTION&lt;/code&gt; to &lt;code&gt;DEVELOPMENT&lt;/code&gt; and vice-versa. Specifically, we only want to allow &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10.200.1.0/20 from &lt;code&gt;PRODUCTION&lt;/code&gt; to &lt;code&gt;DEVELOPMENT&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;10.200.2.0/20 from &lt;code&gt;DEVELOPMENT&lt;/code&gt; to &lt;code&gt;PRODUCTION&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To achieve this, we can use the routing policy as per below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"routing-policies": [
    {
      "routing-policy-name": "ProductionToDevelopment",
      "routing-policy-direction": "outbound",
      "routing-policy-number": 1,
      "routing-policy-rules": [
        {
          "rule-number": 1,
          "rule-definition": {
            "match-conditions": [
              {
                "type": "prefix-equals",
                "value": "prefix-in-cidr"
              }
            ],
            "condition-logic": "or",
            "action": {
              "type": "allow"
            }
          }
        },
        {
          "rule-number": 2,
          "rule-definition": {
            "match-conditions": [
              {
                "type": "prefix-in-cidr",
                "value": "0.0.0.0/0"
              }
            ],
            "condition-logic": "or",
            "action": {
              "type": "drop"
            }
          }
        }
      ]
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This policy allows &lt;code&gt;10.200.1.0/20&lt;/code&gt; from &lt;code&gt;PRODUCTION&lt;/code&gt; to &lt;code&gt;DEVELOPMENT&lt;/code&gt; and denies all other traffic. You will need to apply a similar policy for &lt;code&gt;DEVELOPMENT&lt;/code&gt; to &lt;code&gt;PRODUCTION&lt;/code&gt;. It is important to note the route direction and it is set to &lt;code&gt;outbound&lt;/code&gt;. It took me a bit of trialling to figure out the direction.&lt;/p&gt;




&lt;p&gt;Now, lets say you have multiple direct connect gateways and and multiple default routes are appearing in the same segment, &lt;code&gt;PRODUCTION&lt;/code&gt;. The &lt;code&gt;PRODUCTION&lt;/code&gt; segment is extended across two regions - &lt;code&gt;us-east-1&lt;/code&gt; and &lt;code&gt;us-west-2&lt;/code&gt;. That is, route &lt;code&gt;0.0.0.0/0&lt;/code&gt; are appearing from the DX gateways.&lt;/p&gt;

&lt;p&gt;By default, the same route might be preferred in &lt;code&gt;PRODUCTION&lt;/code&gt; segment. We want to make sure, that &lt;code&gt;PRODUCTION&lt;/code&gt; segment in &lt;code&gt;us-east-1&lt;/code&gt; get routes from the DX gateway in &lt;code&gt;us-east-1&lt;/code&gt; and vice versa.&lt;/p&gt;

&lt;p&gt;Again, we can use routing policy and attachment policy to achieve this. Lets add a routing policy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
      "routing-policy-name": "AllowUsEast1",
      "routing-policy-description": "Allow us-east-1 DX G only",
      "routing-policy-direction": "inbound",
      "routing-policy-number": 21,
      "routing-policy-rules": [
        {
          "rule-number": 100,
          "rule-definition": {
            "match-conditions": [
              {
                "type": "prefix-equals",
                "value": "0.0.0.0/0"
              },
              {
                "type": "asn-in-as-path",
                "value": 64600
              }
            ],
            "condition-logic": "and",
            "action": {
              "type": "set-local-preference",
              "value": "300"
            }
          }
        }
      ]
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is an &lt;code&gt;inbound&lt;/code&gt; routing policy. It's checking for the default route &lt;code&gt;0.0.0.0/0&lt;/code&gt; and ASN (ASN from DX gateway). When this matches, the local preference is set to 300. So, what happens is when the route matches prefix and ASN, a local preference is set. Cloud WAN prefers a higher local preference.&lt;/p&gt;

&lt;p&gt;Now, you will need an attachment policy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"attachment-routing-policy-rules": [
    {
      "rule-number": 1,
      "edge-locations": [
        "us-east-1"
      ],
      "conditions": [
        {
          "type": "routing-policy-label",
          "value": "DXDefault"
        }
      ],
      "action": {
        "associate-routing-policies": [
          "AllowUsEast1"
        ]
      }
    }
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The attachment policy is set for the attachment of the DX gateway. The routing policy label needs to be applies to the attachment as well.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# CloudFormation snippet
Type: AWS::NetworkManager::DirectConnectGatewayAttachment
    Properties:
      CoreNetworkId: !Ref MyCoreNetworkId
      DirectConnectGatewayArn: !Ref MyDxGateway
      EdgeLocations: 
        - us-east-1
      RoutingPolicyLabel: DXDefault
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will need similar policies for us-west-2 location as well. Once this is applied, the route &lt;code&gt;0.0.0.0/0&lt;/code&gt; will be propagated from the regional DX gateways.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>networking</category>
      <category>vpc</category>
      <category>connectivity</category>
    </item>
    <item>
      <title>AWS Interconnect: The New Era of Multicloud Connectivity</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Fri, 12 Dec 2025 22:02:00 +0000</pubDate>
      <link>https://forem.com/shajam/aws-interconnect-the-new-era-of-multicloud-connectivity-2j9b</link>
      <guid>https://forem.com/shajam/aws-interconnect-the-new-era-of-multicloud-connectivity-2j9b</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Quick Summary:&lt;/strong&gt; AWS Interconnect is a brand-new managed service that gives you private, high-speed connectivity between AWS and other cloud providers (starting with Google Cloud). This post breaks down what it is, why it matters, and how it changes multicloud networking.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧠 Introduction: Cloud Networking Just Grew Up
&lt;/h2&gt;

&lt;p&gt;Multicloud has always sounded cool:&lt;br&gt;
&lt;strong&gt;Run workloads wherever they run best. Mix AWS, Google Cloud, maybe even Azure.&lt;/strong&gt;&lt;br&gt;
But in reality? Connecting clouds privately was a headache. VPNs, tunnels, carrier circuits, routing drama… &lt;em&gt;no thanks&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;AWS just launched &lt;strong&gt;AWS Interconnect&lt;/strong&gt;, and it finally feels like someone fixed multicloud networking.&lt;/p&gt;

&lt;p&gt;This blog breaks down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What AWS Interconnect is&lt;/li&gt;
&lt;li&gt;Why it's a big deal&lt;/li&gt;
&lt;li&gt;Benefits for builders and architects&lt;/li&gt;
&lt;li&gt;How it connects AWS ↔ GCP&lt;/li&gt;
&lt;li&gt;A simple diagram you can reuse&lt;/li&gt;
&lt;li&gt;Who should care (spoiler: probably you)&lt;/li&gt;
&lt;/ul&gt;


&lt;h1&gt;
  
  
  🚀 What Is AWS Interconnect?
&lt;/h1&gt;

&lt;p&gt;AWS Interconnect is a newly released &lt;strong&gt;managed private connectivity service&lt;/strong&gt; that links AWS VPCs to other cloud providers over &lt;strong&gt;dedicated, high-speed, encrypted connections&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No more dealing with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Physical routers&lt;/li&gt;
&lt;li&gt;Colocation cross-connects&lt;/li&gt;
&lt;li&gt;Dozens of tickets&lt;/li&gt;
&lt;li&gt;DIY BGP wrangling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS handles the physical infrastructure, routing, and resiliency — you just select your cloud, region, and bandwidth.&lt;/p&gt;


&lt;h1&gt;
  
  
  🌍 Why Now? A Quick Cloud Evolution Flashback
&lt;/h1&gt;

&lt;p&gt;A few years ago, multicloud meant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cobbled-together IPsec tunnels&lt;/li&gt;
&lt;li&gt;Unpredictable internet performance&lt;/li&gt;
&lt;li&gt;Manual routing&lt;/li&gt;
&lt;li&gt;Months to provision circuits&lt;/li&gt;
&lt;li&gt;Lots of baby-sitting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today, apps are more distributed, global, real-time, and hybrid than ever.&lt;br&gt;
&lt;strong&gt;We needed a simpler way for clouds to talk to each other.&lt;/strong&gt;&lt;br&gt;
AWS Interconnect is that solution.&lt;/p&gt;


&lt;h1&gt;
  
  
  🎉 Benefits of AWS Interconnect
&lt;/h1&gt;
&lt;h2&gt;
  
  
  ⚡ 1. Faster, More Predictable Traffic
&lt;/h2&gt;

&lt;p&gt;Private backbones beat the public internet every time.&lt;br&gt;
Low latency + high bandwidth = real multicloud apps.&lt;/p&gt;
&lt;h2&gt;
  
  
  🔐 2. Secure by Default
&lt;/h2&gt;

&lt;p&gt;Everything runs over private physical links with encryption handled for you.&lt;/p&gt;
&lt;h2&gt;
  
  
  🔧 3. Fully Managed
&lt;/h2&gt;

&lt;p&gt;Provision connections in &lt;em&gt;minutes&lt;/em&gt;, not months.&lt;br&gt;
AWS manages the physical layer so you don't have to.&lt;/p&gt;
&lt;h2&gt;
  
  
  🔗 4. True Multicloud Workflows
&lt;/h2&gt;

&lt;p&gt;Run compute in one cloud, analytics in another, DR in a third — without network pain.&lt;/p&gt;
&lt;h2&gt;
  
  
  🔄 5. Cross-Cloud Interconnect (Starting With GCP)
&lt;/h2&gt;

&lt;p&gt;Google Cloud and AWS are now offering coordinated APIs for seamless connectivity.&lt;br&gt;
This used to be a unicorn.&lt;br&gt;
Now it's real.&lt;/p&gt;


&lt;h1&gt;
  
  
  🔁 How AWS Interconnect Connects AWS ↔ Google Cloud
&lt;/h1&gt;

&lt;p&gt;Here's a high-level view of how data flows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                      +----------------------+
                      |      Google Cloud    |
                      |   VPC / Services     |
                      +----------▲-----------+
                                 │  Private
                                 │  High-Speed
                                 │  Interconnect
                                 ▼
              +----------------------------------------+
              |            AWS Interconnect            |
              |   Multicloud Private Connection        |
              |  (Managed, Encrypted, High-Speed)      |
              +----------------------------------------+
                                 ▲
                                 │  AWS Global
                                 │  Backbone
                                 │
      +----------------------+   +-----------------------+
      |  AWS Transit GW /   |   |   AWS Region VPCs     |
      |  Cloud WAN / VPC    |   |   Your Workloads      |
      +----------------------+   +-----------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🧠 Real-World Use Cases
&lt;/h1&gt;

&lt;h3&gt;
  
  
  💾 Cross-Cloud Databases
&lt;/h3&gt;

&lt;p&gt;Sync Aurora ↔ BigQuery privately.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔄 Multicloud Disaster Recovery
&lt;/h3&gt;

&lt;p&gt;Failover across clouds without internet dependency.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Distributed Data Pipelines
&lt;/h3&gt;

&lt;p&gt;Run ML in one cloud, analytics in another.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠️ Hybrid Applications
&lt;/h3&gt;

&lt;p&gt;Route traffic between AWS and GCP seamlessly.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚠️ Notes on Preview Status
&lt;/h1&gt;

&lt;p&gt;AWS Interconnect is still in &lt;strong&gt;preview&lt;/strong&gt;, meaning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bandwidth options are limited&lt;/li&gt;
&lt;li&gt;Not recommended for production workloads yet&lt;/li&gt;
&lt;li&gt;Some features may change before GA&lt;/li&gt;
&lt;li&gt;Pricing may evolve&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But for early adopters or multicloud architects, this is the most exciting thing AWS has released in years.&lt;/p&gt;




&lt;h1&gt;
  
  
  🏁 Final Thoughts
&lt;/h1&gt;

&lt;p&gt;AWS Interconnect is a huge step forward in making multicloud actually &lt;em&gt;work&lt;/em&gt;.&lt;br&gt;
Not as a buzzword.&lt;br&gt;
Not as a slide in a conference deck.&lt;br&gt;
But for real applications and real workloads.&lt;/p&gt;

&lt;p&gt;Private, fast, secure, managed connectivity between clouds is here — and it's only going to grow.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>gcp</category>
      <category>cloudnetwork</category>
      <category>connectivity</category>
    </item>
    <item>
      <title>CloudFront Function vs Lambda@Edge - which one to use</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Fri, 12 Dec 2025 09:23:00 +0000</pubDate>
      <link>https://forem.com/shajam/cloudfront-function-vs-lambdaedge-which-one-to-use-2dko</link>
      <guid>https://forem.com/shajam/cloudfront-function-vs-lambdaedge-which-one-to-use-2dko</guid>
      <description>&lt;p&gt;If you've ever played around with Amazon CloudFront and thought, "Hmm, how do I customize stuff at the edge?" you've probably bumped into &lt;strong&gt;CloudFront Functions&lt;/strong&gt; and &lt;strong&gt;Lambda@Edge&lt;/strong&gt;. And then, naturally, you've wondered: &lt;em&gt;"Wait… aren't these basically the same thing?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Short answer: &lt;strong&gt;kinda&lt;/strong&gt;.&lt;br&gt;
Real answer: &lt;strong&gt;not really&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let's break it down like you're deciding between a skateboard (fast, lightweight) and a motorcycle (heavier, way more powerful).&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;CloudFront Functions — the Speedy Little Edge Worker&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Think of CloudFront Functions as the edge-compute version of a sticky note: super lightweight, super fast, very cheap, but only meant for small, quick tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What they're great at&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Super fast viewer-request/response handling&lt;/strong&gt;
Your code runs &lt;em&gt;before&lt;/em&gt; CloudFront even touches your request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crazy low latency&lt;/strong&gt;
It literally runs at CloudFront POPs — the closest possible place to your users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cheap&lt;/strong&gt;
Pennies. Even cheaper than &lt;a href="mailto:Lambda@Edge"&gt;Lambda@Edge&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple logic&lt;/strong&gt;
URL rewrites, redirects, header tweaks, basic authentication, A/B testing, that kind of stuff.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What they &lt;em&gt;can't&lt;/em&gt; do&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No access to the &lt;strong&gt;origin request/response&lt;/strong&gt; events.&lt;/li&gt;
&lt;li&gt;No network calls.&lt;/li&gt;
&lt;li&gt;No file system.&lt;/li&gt;
&lt;li&gt;No long-running or complex logic.&lt;/li&gt;
&lt;li&gt;No heavy libraries — the runtime is tiny and minimal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically: &lt;strong&gt;It's fast because it's limited.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Lambda@Edge — the Heavyweight With Superpowers&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Lambda@Edge is the older, more powerful sibling. If CloudFront Functions are a scooter, Lambda@Edge is a touring bike with saddlebags and speakers and a cup holder.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What they're great at&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Supports all four CloudFront trigger points&lt;/strong&gt;
Viewer request, viewer response, &lt;em&gt;and&lt;/em&gt; origin request/response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can run longer and heavier code&lt;/strong&gt;
Want to modify HTML? Do image processing? Make API calls? You're good.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supports more libraries&lt;/strong&gt;
Way more flexible environment than CloudFront Functions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Origin-side personalization&lt;/strong&gt;
For example: choose an origin based on cookies or authorization rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What they &lt;em&gt;can't&lt;/em&gt; do well&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Not nearly as fast as CloudFront Functions (still fast, but not POP-level fast).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More expensive&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Deployments take longer — think minutes, not seconds.&lt;/li&gt;
&lt;li&gt;More operational overhead.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically: &lt;strong&gt;It can do a lot more, but it costs you more.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚔️ &lt;strong&gt;CloudFront Functions vs Lambda@Edge — The Showdown&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;CloudFront Functions&lt;/th&gt;
&lt;th&gt;Lambda@Edge&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ultra-low (runs at POPs)&lt;/td&gt;
&lt;td&gt;Low (runs at regional edge)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Very cheap&lt;/td&gt;
&lt;td&gt;More expensive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Runtime limits&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tiny (ms-level)&lt;/td&gt;
&lt;td&gt;Bigger (up to seconds)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Triggers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Viewer request/response only&lt;/td&gt;
&lt;td&gt;All 4 (viewer + origin)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Use cases&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Simple, fast logic&lt;/td&gt;
&lt;td&gt;Heavy, complex logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Supports network calls?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nope&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deployment time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Seconds&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🧭 &lt;strong&gt;So which one should YOU use?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here's the simple rule of thumb:&lt;/p&gt;

&lt;h3&gt;
  
  
  👉 &lt;strong&gt;If the logic is simple, fast, and doesn't need external calls → Use CloudFront Functions.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Redirect &lt;code&gt;/old&lt;/code&gt; → &lt;code&gt;/new&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Rewrite URLs&lt;/li&gt;
&lt;li&gt;Add/remove headers&lt;/li&gt;
&lt;li&gt;Basic cookie checks&lt;/li&gt;
&lt;li&gt;Serve country-based variations&lt;/li&gt;
&lt;li&gt;Block bots&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  👉 &lt;strong&gt;If the logic requires more power → Use Lambda@Edge.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fetching data from another API&lt;/li&gt;
&lt;li&gt;Heavy header computation&lt;/li&gt;
&lt;li&gt;Authentication with external services&lt;/li&gt;
&lt;li&gt;Dynamic HTML rewriting&lt;/li&gt;
&lt;li&gt;Modifying origin responses&lt;/li&gt;
&lt;li&gt;Image transformation or content manipulation&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgccme4chnwkzwih8hqcs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgccme4chnwkzwih8hqcs.png" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 &lt;strong&gt;TL;DR&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CloudFront Functions&lt;/strong&gt;: blazing fast, super cheap, lightweight. Perfect for easy viewer-side logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lambda@Edge&lt;/strong&gt;: powerful, flexible, and capable of handling complex workloads — but slower and pricier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You really shouldn't choose based on which one is "newer" or "cooler."&lt;br&gt;
Just ask yourself: &lt;strong&gt;Do I need more power or more speed?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloudfront</category>
      <category>contentdelivery</category>
    </item>
    <item>
      <title>Inter-Region Connectivity in AWS using CloudWAN</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Tue, 09 Dec 2025 04:37:28 +0000</pubDate>
      <link>https://forem.com/shajam/inter-region-connectivity-in-aws-using-cloudwan-183f</link>
      <guid>https://forem.com/shajam/inter-region-connectivity-in-aws-using-cloudwan-183f</guid>
      <description>&lt;p&gt;AWS Cloud WAN is a managed wide-area networking (WAN) service from AWS. It lets you build, manage, and monitor a unified global network that spans both cloud and on-premises environments. In practice, Cloud WAN lets you connect your data centres, branch offices, remote sites, and AWS cloud resources (e.g. VPCs) through a central control plane — instead of manually wiring together many VPCs, VPNs, Transit Gateways, and third-party SD-WANs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Concepts &amp;amp; How It Works
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Global Network&lt;/strong&gt; &lt;br&gt;
This is the top-level container — it can hold a &lt;code&gt;core network&lt;/code&gt; and any associated attachments (VPCs, VPNs, etc.). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Network&lt;/strong&gt;&lt;br&gt;
The core network is the portion of your Cloud WAN that is managed by AWS — essentially the backbone/fabric that ties your network attachments (VPCs, VPNs, Transit Gateways, on-prem links etc.) together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Network Edge&lt;/strong&gt;&lt;br&gt;
A Core Network Edge is a regional connection point provisioned and managed by AWS in each AWS Region that you include in your core network via your core-network policy. Under the hood, a CNE is similar to AWS Transit Gateway (TGW) — meaning it acts like a regional router that aggregates and routes traffic — but differs in that it is fully managed by AWS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Network Policy&lt;/strong&gt; &lt;br&gt;
A policy document (in a declarative language) that states how your network should be configured: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which AWS Regions to include&lt;/li&gt;
&lt;li&gt;how attachments map to segments&lt;/li&gt;
&lt;li&gt;routing rules&lt;/li&gt;
&lt;li&gt;traffic-isolation rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloud WAN then implements the network configuration automatically. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attachments&lt;/strong&gt;&lt;br&gt;
These are the resources you hook into your network — like VPCs, VPN connections, Transit Gateways, SD-WAN links, on-premises branch office links. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network segmentation&lt;/strong&gt;&lt;br&gt;
Cloud WAN lets you define &lt;code&gt;segments&lt;/code&gt; — isolated routing domains. So you can isolate e.g. production, development, branch offices, or sensitive resources even if they share the same overall network backbone. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Central dashboard &amp;amp; automation&lt;/strong&gt;&lt;br&gt;
You manage everything — global scope, attachments, routing — from a single dashboard (via AWS Network Manager) or using AWS CLI / APIs. Cloud WAN automates the heavy lifting so you don't manually configure every link.&lt;/p&gt;
&lt;h3&gt;
  
  
  Let's get started
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Create the Global Network namespace
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Name your Global Network. (AWS &amp;gt; Network Manager &amp;gt; Global network)&lt;/li&gt;
&lt;li&gt;Add core network. Can have a max of 1 core network.&lt;/li&gt;
&lt;li&gt;Set ASN setting. Set the range. (&lt;em&gt;The value must be a range between 64512-65534 or 4200000000-4294967294.&lt;/em&gt;) This is used by AWS for managing traffic between VPCs.&lt;/li&gt;
&lt;li&gt;Choose edge locations -&amp;gt; us-east-1, us-west-2...&lt;/li&gt;
&lt;li&gt;Set default segment name. This will be available in all edge locations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you create it, the default policy will be created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2021.12"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"core-network-configuration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"asn-ranges"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"64520-64524"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"edge-locations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"location"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"location"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"us-west-2"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"segments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"production"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"production environment"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can create additional segments and configure attachment policies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Network Design
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuv8be9zylje283zrvozq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuv8be9zylje283zrvozq.png" alt="Cloud Network using Cloud WAN" width="800" height="465"&gt;&lt;/a&gt;[src: &lt;a href="https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-cloud-wan.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-cloud-wan.html&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;In this diagram, there are multiple regions and multiple segments - &lt;code&gt;Development&lt;/code&gt;, &lt;code&gt;Shared&lt;/code&gt; and &lt;code&gt;Production&lt;/code&gt;. Each region is connected using the CNEs. The segments have network connectivity defined by the core network policy. &lt;/p&gt;

&lt;p&gt;Based on the diagram, I have created a sample network policy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"core-network-configuration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"vpn-ecmp-support"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"asn-ranges"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"64520-64524"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"edge-locations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"location"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"asn"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;64520&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"location"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"us-west-2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"asn"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;64521&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2021.12"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"attachment-policies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"rule-number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"association-method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tag"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"tag-value-of-key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SEGMENT"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"conditions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tag-exists"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SEGMENT"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"segments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SHARED"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"require-attachment-acceptance"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"edge-locations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"us-west-2"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DEVELOPMENT"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"require-attachment-acceptance"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"edge-locations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"us-west-2"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"deny-filter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"PRODUCTION"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PRODUCTION"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"require-attachment-acceptance"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"edge-locations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"us-east-1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"us-west-2"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;    
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"segment-actions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"attachment-route"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"segment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SHARED"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"share"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"share-with"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"DEVELOPMENT"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"PRODUCTION"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"attachment-route"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"segment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PRODUCTION"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"share"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"share-with"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"DEVELOPMENT"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Understanding the Policy
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;asn-ranges&lt;/code&gt;: You define the &lt;code&gt;asn-ranges&lt;/code&gt; where you will later pick the &lt;code&gt;asn&lt;/code&gt; for a region.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;edge-location&lt;/code&gt;: Here you define the edge locations your network will work  in.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;attachment-policies&lt;/code&gt;: This defines the policy for attaching the segments.  Here. I am attaching the attachments to the segments based on the tag automatically. The tag key is set to be &lt;code&gt;SEGMENT&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;segments&lt;/code&gt;: This is a list of segments with edge-location. Note, the &lt;code&gt;DEVELOPMENT&lt;/code&gt; segment rule, there is a &lt;code&gt;deny-filter&lt;/code&gt; policy to &lt;code&gt;PRODUCTION&lt;/code&gt; which makes the traffic uni-directional. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;segment-actions&lt;/code&gt;: By default, the sharing is bi-directional. That is, for &lt;code&gt;SHARED&lt;/code&gt; segment, it is shared with &lt;code&gt;DEVELOPMENT&lt;/code&gt; and &lt;code&gt;PRODUCTION&lt;/code&gt;. You don't need to share &lt;code&gt;DEVELOPMENT&lt;/code&gt; and &lt;code&gt;PRODUCTION&lt;/code&gt; with &lt;code&gt;SHARED&lt;/code&gt; as it is bi-directional.&lt;/p&gt;

&lt;h3&gt;
  
  
  More about Attachments
&lt;/h3&gt;

&lt;p&gt;When you build attachments, you can create it for Direct Connect Gateway, VPNs and VPCs. &lt;/p&gt;

&lt;h4&gt;
  
  
  Direct Connect Gateway
&lt;/h4&gt;

&lt;p&gt;With Direct Connect Gateway, this is a convenient way to connect your Direct Connect to multiple regions. Direct Connect has certain limitations on maximum number of gateways that you can create. With CloudWAN, you just create one, attach to the required edge locations (&lt;em&gt;supports more than 1&lt;/em&gt;) and that's it. You never need to worry about Direct Connects.&lt;/p&gt;

&lt;h4&gt;
  
  
  VPC
&lt;/h4&gt;

&lt;p&gt;With VPCs, we simply add an attachment to the VPC so we could use as part of Core Network as defined by the network policy. One of the coolest feature here is &lt;strong&gt;security group referencing&lt;/strong&gt; which allows referring to security group in one VPC from another, thus making security rules much more streamlined. Previously, I was creating &lt;code&gt;prefix lists&lt;/code&gt; for the security group rules, now, you no longer need to do so.&lt;/p&gt;

&lt;h4&gt;
  
  
  VPN
&lt;/h4&gt;

&lt;p&gt;With &lt;em&gt;Site-to-Site&lt;/em&gt; VPN attachment refers to attaching a VPN connection to the core network. In effect, you are bringing an external VPN into your Cloud WAN global network so that it can connect with other attachments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;CloudWAN is an amazing service (&lt;em&gt;or shall I say VPC feature&lt;/em&gt;) if you want to centralise global connectivity and connect across the globe. Adding regions and VPCs to core network literally takes less than 30 minutes! This is simply unreal. &lt;/p&gt;

</description>
      <category>aws</category>
      <category>networking</category>
      <category>vpc</category>
      <category>connectivity</category>
    </item>
    <item>
      <title>Cool Features in AWS CloudFormation</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Thu, 20 Nov 2025 00:25:17 +0000</pubDate>
      <link>https://forem.com/shajam/cool-features-in-aws-cloudformation-2f0c</link>
      <guid>https://forem.com/shajam/cool-features-in-aws-cloudformation-2f0c</guid>
      <description>&lt;p&gt;AWS CloudFormation is an AWS tool that lets you &lt;em&gt;create and manage cloud resources using code instead of clicking around the console&lt;/em&gt;. You describe everything you want - like EC2 instances, S3 buckets, IAM roles, VPCs — in a template file (&lt;code&gt;YAML&lt;/code&gt; or &lt;code&gt;JSON&lt;/code&gt;), and CloudFormation reads that template and automatically provisions, updates, or deletes those resources for you as a single &lt;code&gt;stack&lt;/code&gt;. This makes your infrastructure &lt;em&gt;repeatable, version-controlled, and easier to manage&lt;/em&gt;, because you can deploy the same setup to multiple environments (&lt;code&gt;dev&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;, &lt;code&gt;prod&lt;/code&gt;) with minimal changes, roll back if something fails, and track all infrastructure changes just like you do with application code.&lt;/p&gt;

&lt;p&gt;Recently, there has been number of improvements in CloudFormation making it much easier to manage infrastructure resources. In this post, I will talk about the improvements and how can you can take advantage of these.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack refactoring
&lt;/h2&gt;

&lt;p&gt;With stack refactoring, you can rearrange the resources in your CloudFormation stacks without losing their existing configurations or data. This lets you move resources between stacks, break a large stack into several smaller ones, or merge multiple stacks into a single stack. This is helpful, because, you might have created a stack previously which has grown over time and has too many resources. Now, with stack refactoring, you can rearrange the resources into multiple stacks.&lt;/p&gt;

&lt;p&gt;Stack refactoring in CloudFormation is a multi-step process: first you assess your existing stacks to find refactoring opportunities, then plan how to reorganize resources and decide which destination stacks (2–5, including nested stacks) they should move to. Next, you update templates (including moving resource definitions and optionally renaming logical IDs) and create the refactor by supplying stack names and templates. CloudFormation then validates dependencies and IDs, shows a preview if validation passes, or reports issues you must fix (such as providing logical ID mappings for conflicts). Finally, you execute the refactor and monitor the operation to ensure it completes successfully.&lt;/p&gt;

&lt;p&gt;Refer &lt;a href="https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/stack-refactoring.html" rel="noopener noreferrer"&gt;Stack refactoring&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validate stack deployments
&lt;/h2&gt;

&lt;p&gt;With pre-deployment validation, you can spot and fix potential deployment problems before running your CloudFormation change sets. This capability checks your templates against common failure scenarios, allowing you to catch and address issues earlier in the development cycle.&lt;/p&gt;

&lt;p&gt;Pre-deployment validation automatically checks your CloudFormation change sets before deployment by running syntax, name conflict, and S3 bucket emptiness validations, then highlighting exact issues in your template so you can fix them first and deploy with greater confidence.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskle0ka04e1vxqzdyhvy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskle0ka04e1vxqzdyhvy.png" alt="changeset validation" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you create a changeset, if all is well, the Deployments validation will be a green light. You can also bake this into a CICD pipeline by using the cli commands for CloudFormation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;### describe events
aws cloudformation describe-events \
  --change-set-id "arn:aws:cloudformation:us-east-1:123456789012:changeSet/MyChangeSet/123456ab-cd12-98ab-6521-987qwe654asd"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can then inspect the &lt;code&gt;OperationEvents[i].OperationStatus&lt;/code&gt; to see if event contains &lt;code&gt;FAILED&lt;/code&gt; or &lt;code&gt;SUCCEEDED&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drift-Aware ChangeSets
&lt;/h2&gt;

&lt;p&gt;Drift-aware change sets are an improved type of CloudFormation change set that help you safely detect and handle stack drift. Stack drift happens when resources are modified outside of CloudFormation - for example, directly through the AWS console, CLI, or service SDKs—so they no longer match the template. Drift-aware change sets compare your templates with the real, current state of stack resources and help you align any drifted resources back with their template definitions. If you update a template so that a resource's definition matches its actual state, drift-aware change sets will clear the resource's drift status without making any changes to that resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t23eufoc7ygf9ucbmyk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t23eufoc7ygf9ucbmyk.png" alt="Drift-Aware ChangeSets" width="800" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that, all resources are not supported for drift-aware changesets. Refer &lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/drift-aware-change-sets.html" rel="noopener noreferrer"&gt;AWS documentation&lt;/a&gt; to find the list of supported resources.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloudformation</category>
      <category>infrastructureascode</category>
    </item>
    <item>
      <title>Practical ways to reduce costs of your AWS Lambda Functions</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Fri, 07 Nov 2025 04:28:27 +0000</pubDate>
      <link>https://forem.com/shajam/practical-ways-to-reduce-your-aws-lambda-bills-3i9c</link>
      <guid>https://forem.com/shajam/practical-ways-to-reduce-your-aws-lambda-bills-3i9c</guid>
      <description>&lt;p&gt;Are you paying thousands of dollars for running Lambda functions in your AWS accounts. That's a common scenario where you start of Lambda functions as it is cheap but over time when you invoking the Lambda thousands of times, your bills just go high and you can't figure out how to reduce it. In this article, I will talk about steps you can take to reduce the cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Identify Source of Cost
&lt;/h3&gt;

&lt;p&gt;Before we can reduce the cost, we need to understand where the cost is coming from. Let's go through a few metrics.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Invocations: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How often are the Lambda functions being called? &lt;/li&gt;
&lt;li&gt;Is the architecture correct? &lt;/li&gt;
&lt;li&gt;Do you need to call it that often.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Duration: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How long are the functions running for each invocations? &lt;/li&gt;
&lt;li&gt;Does it need to run for so long? &lt;/li&gt;
&lt;li&gt;You can optimise but updating the memory configuration which allow the Lambda to run faster.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Memory configuration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have you allocated more than needed?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;You can also enable AWS X-Ray or Lambda Power Tuning to visualize resource usage and duration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Right-Size Memory and CPU
&lt;/h3&gt;

&lt;p&gt;Lambda charges based on &lt;code&gt;memory&lt;/code&gt; × &lt;code&gt;duration&lt;/code&gt;. Increasing memory increases CPU proportionally — but beyond a certain point, you're just paying for idle CPU.&lt;/p&gt;

&lt;p&gt;How to optimize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use &lt;a href="https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:451282441545:applications~aws-lambda-power-tuning" rel="noopener noreferrer"&gt;AWS Lambda Power Tuning&lt;/a&gt; (by AWS Labs) — it runs tests across different memory configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find the sweet spot: the smallest memory size that keeps execution time fast enough.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example: Sometimes downgrading memory from 512 MB to 256 MB doubles runtime but cuts cost 30–40%.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reduce Invocation Frequency
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Batch events together when possible. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use SQS batching instead of processing one message per invocation.&lt;/li&gt;
&lt;li&gt;For Kinesis or DynamoDB Streams, increase the batch size.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Add filtering on triggers instead of Lambda (e.g., event filtering for S3 or DynamoDB Streams).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;If Lambda is used for &lt;code&gt;cron&lt;/code&gt; jobs, ensure they run only when needed.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Avoid "Always On" Patterns
&lt;/h3&gt;

&lt;p&gt;If your function runs continuously or frequently:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Consider AWS Fargate or ECS for long-running processes. That is, run Fargate or ECS continuously instead of invoking Lambda functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For &lt;code&gt;high-throughput&lt;/code&gt; APIs, consider ECS + ALB or API Gateway + ECR container.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For near-real-time streams, Kinesis Data Analytics or Glue streaming might be more cost-efficient.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Choose Cost Optimised Architecture
&lt;/h3&gt;

&lt;p&gt;By default, most developers build Lambda functions using the &lt;code&gt;Intel&lt;/code&gt; architecture, however, you can decrease the running cost by 20-30% by using the &lt;code&gt;arm&lt;/code&gt; architecture.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To use &lt;code&gt;arm&lt;/code&gt;, no code changes are needed if you use NodeJS or Python.&lt;/li&gt;
&lt;li&gt;Minor .NET changes might be needed to use &lt;code&gt;arm&lt;/code&gt; architecture.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Optimize Dependencies and Cold Starts
&lt;/h3&gt;

&lt;p&gt;Cold starts can increase duration (and thus cost).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use &lt;strong&gt;smaller deployment packages&lt;/strong&gt; — avoid large dependencies. You can do so by using Lambda layers. This significantly reduces the size of your function's deployment package and allows for easier dependency management across multiple functions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prefer &lt;code&gt;AWS SDK v3&lt;/code&gt; modular imports.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use &lt;code&gt;Provisioned Concurrency&lt;/code&gt; only where latency is critical — otherwise it increases cost.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use Savings Plan
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Free Tier&lt;/strong&gt;: 1M requests and 400,000 GB-seconds per month are free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compute Savings Plan&lt;/strong&gt;: If Lambda is heavily used, a Savings Plan can cut costs by up to 17%–30%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regional pricing differences&lt;/strong&gt;: Check if multi-region deployments make sense. For example, us-east-1 or eu-west-1 is much cheaper than eu-west-2 or ap-southeast-2.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Do/Don't Run Lambda on VPC
&lt;/h3&gt;

&lt;p&gt;There is no explicit fee for attaching a Lambda to a VPC. However, network configuration side effects can increase costs in these ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;VPC data transfer&lt;/strong&gt;: Data transfer charges can incur when traffic is sent between AZs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;NAT Gateway data processing fees&lt;/strong&gt;: If Lambda needs internet, it will use NAT Gateway which in turn will incur processing fees.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;As you can see, there are many opportunities for you to reduce the cost of Lambda functions. You might be on different stages in your cost management exercises and choose the step that is more suitable to you.&lt;/p&gt;

&lt;p&gt;If you have additional ways to save Lambda's running cost, please suggest in the comments. If this article helped you to reduce cost, let me know.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>finops</category>
      <category>lambda</category>
    </item>
    <item>
      <title>Yet Another AWS AI Certification - AI Professional</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Thu, 30 Oct 2025 02:59:02 +0000</pubDate>
      <link>https://forem.com/shajam/yet-another-aws-ai-certification-professional-4ogp</link>
      <guid>https://forem.com/shajam/yet-another-aws-ai-certification-professional-4ogp</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Generative AI is rapidly becoming a business-critical capability. AWS launched a new specialised certification for AI domain as per &lt;a href="https://aws.amazon.com/certification/certified-generative-ai-developer-professional/" rel="noopener noreferrer"&gt;AI certification&lt;/a&gt;. The certification is currently in beta stage.&lt;/p&gt;

&lt;p&gt;Note, AWS is also decommissioning the &lt;a href="https://aws.amazon.com/certification/certified-machine-learning-specialty/" rel="noopener noreferrer"&gt;Machine Learning Specialty&lt;/a&gt; certification.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the certification is &amp;amp; who it's for
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The AWS Certified Generative AI Developer – Professional is a &lt;strong&gt;Professional-level&lt;/strong&gt; certification.&lt;/li&gt;
&lt;li&gt;It is currently in &lt;strong&gt;beta&lt;/strong&gt; (as of the announcement) – registration opens November 18 2025.&lt;/li&gt;
&lt;li&gt;Exam overview: 204 minutes, ~85 questions (multiple choice / multiple response). - more questions than usual&lt;/li&gt;
&lt;li&gt;Target candidate: developers with &lt;strong&gt;2+ years of cloud experience&lt;/strong&gt;, plus &lt;strong&gt;1 year of hands-on experience implementing generative AI solutions&lt;/strong&gt;. Also experience with AWS compute/storage/networking, security, deployment/infrastructure-as-code, monitoring/observability, cost optimisation. &lt;/li&gt;
&lt;li&gt;It is aimed at those who are beyond proof-of-concept and can build and deploy &lt;strong&gt;production-ready&lt;/strong&gt; generative AI solutions using AWS services (such as AWS Bedrock) and open-source tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Core knowledge &amp;amp; skills validated
&lt;/h3&gt;

&lt;p&gt;You might emphasise what a "generative AI developer" in AWS world needs to know. From the AWS page we have hints; you'd likely want to infer/expand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding the AWS services and infrastructure for generative AI (e.g., AWS Bedrock, compute/storage/networking, identity/security).&lt;/li&gt;
&lt;li&gt;Ability to design and implement generative AI models/solutions: selecting appropriate foundation models or open-source models, fine-tuning or customising them, integrating them with applications.&lt;/li&gt;
&lt;li&gt;Deployment and operationalisation: infrastructure-as-code, cost optimisation, monitoring/observability, maintenance of models in production.&lt;/li&gt;
&lt;li&gt;Security, governance, and responsible AI: managing identity and access, data privacy, model risk, bias mitigation.&lt;/li&gt;
&lt;li&gt;Business value: building solutions that deliver measurable results, not just experiments. Identifying metrics, aligning with organisational goals, cost vs benefit.&lt;/li&gt;
&lt;li&gt;Possibly multi-modal/advanced use-cases: text generation, image/video/audio, prompt engineering, RAG, pipelines, evaluation and iteration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to prepare (and prerequisites)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;While no prior AWS certification is required, AWS suggests it might help to have other certifications such as: AWS Certified AI Practitioner, AWS Certified Solutions Architect – Associate, AWS Certified Machine Learning Engineer – Associate, AWS Certified Data Engineer – Associate.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recommended to have hands-on experience: 2+ years with cloud and at least 1 year with generative AI solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Preparation tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get hands-on with AWS generative AI services (e.g., AWS Bedrock, SageMaker JumpStart, etc)&lt;/li&gt;
&lt;li&gt;Study deployment/infrastructure aspects: network, security, observability, cost control&lt;/li&gt;
&lt;li&gt;Study model integration: prompt engineering, retrieval-augmented generation (RAG), evaluation metrics for generative output.&lt;/li&gt;
&lt;li&gt;Work through case studies: how generative AI is applied in businesses (content creation, summarisation, code generation, image/video generation, multimodal assistants)&lt;/li&gt;
&lt;li&gt;Use Official AWS resources: exam guides, sample questions, training courses, labs.&lt;/li&gt;
&lt;li&gt;Simulate environments: build a prototype end-to-end solution in AWS from data ingestion → model integration → production deployment → monitoring.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Mention that because it's a beta exam, early takers will be among the first to hold the certification.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Potential caveats / things to note
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;As with any certification: passing the exam doesn't automatically make you expert — practical experience still matters.&lt;/li&gt;
&lt;li&gt;Being AWS-specific: It is focused on AWS services. So if you are working on other clouds/platforms you may still need to master those.&lt;/li&gt;
&lt;li&gt;Because it's a beta exam, details may change as AWS finalises the content and certification.&lt;/li&gt;
&lt;li&gt;The pace of generative AI is fast — new techniques emerge quickly — so continuous learning beyond the certification will be key.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;The AWS Certified Generative AI Developer – Professional certification gives developers and organisations a structured way to validate generative-AI development expertise on AWS. It reflects the maturity of the generative-AI domain moving into production, and offers a pathway for career growth and organisational readiness. &lt;br&gt;
For those looking to build generative AI solutions in the cloud, it's a timely credential to consider.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
    </item>
    <item>
      <title>Lessons learned from AWS outage - what can you do?</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Thu, 23 Oct 2025 05:49:24 +0000</pubDate>
      <link>https://forem.com/shajam/lessons-learned-from-aws-outage-what-can-you-do-c47</link>
      <guid>https://forem.com/shajam/lessons-learned-from-aws-outage-what-can-you-do-c47</guid>
      <description>&lt;h2&gt;
  
  
  What was the AWS Outage all about
&lt;/h2&gt;

&lt;p&gt;The outage stemmed from multiple services in the US-East-1 region experiencing increased error rates and latencies, impacting many AWS services simultaneously. &lt;/p&gt;

&lt;p&gt;In particular:&lt;br&gt;
The root cause appears to involve the Amazon DynamoDB API endpoint and DNS resolution issues in us-east-1 region. &lt;/p&gt;

&lt;p&gt;The cascade effect: although the initial fault was in one internal subsystem, many other services and workloads suffered – because of inter-dependencies and the central role of us-east-1 region. &lt;/p&gt;

&lt;p&gt;This is not unique: there has been past AWS regions/outages causing outages to numerous systems around the world. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key take-aways:&lt;/strong&gt;&lt;br&gt;
Even with a major cloud provider like AWS, you do not have immunity from downtime. This is specially true for single region deployment with no disaster recovery (DR). A "single region" failure can affect large swathes of services if you rely heavily on that region.&lt;/p&gt;

&lt;p&gt;In regulated sectors (like healthcare) the risk is higher because service interruptions can mean patient-safety, regulatory, compliance and reputational damage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is so special about us-east-1 region
&lt;/h2&gt;

&lt;p&gt;The outage was related to us-east-1 region, but as you know, many applications had partial or full outages which are hosted in different regions. So, what is special about us-east-1 region?&lt;/p&gt;

&lt;p&gt;us-east-1 region is the first AWS region and is like a global region. Many AWS global services are anchored or managed from there.  AWS services like IAM, CloudFormation, S3, Route53 and CloudFront have internal dependencies where metadata or management planes are based in us-east-1. Thus, an outage in us-east-1 can cause a partial outage in an application in a different region.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can do to make systems resilient
&lt;/h2&gt;

&lt;p&gt;You need to know how critical your application is because the design comes at a cost. You can create multi-cloud or multi-region architecture but these are not cheap. For example, if you have multi-cloud, you need to pay for AWS direct Connect and AWS Azure Express Route separately which is just the start. You still need to deploy to multiple cloud which is also costly. Development cost is also high as you need to deploy different cloud.&lt;/p&gt;

&lt;p&gt;So, what about multi-region? Multi-region is cheaper and minimal additional development work is needed. Many AWS services like Aurora database and DynamoDB support multi-region by default. You can also create replica/standby capacity in secondary regions. However, like I mentioned previously, us-east-1 is like a global region where many services like IAM are managed from.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do you need to do? - Service-dependency mapping
&lt;/h2&gt;

&lt;p&gt;You need to create a Service-dependency mapping. You need to identify critical services for you business and setup a business continuity plan. For each services, you need to map dependencies (e.g., database, authentication service, file store, third-party APIs).&lt;/p&gt;

&lt;p&gt;For each dependency, ask: "if this one fails, what happens?" and build mitigation (e.g., caching, queueing, offline degraded mode).&lt;/p&gt;

&lt;h3&gt;
  
  
  DNS, routing and fail-over:
&lt;/h3&gt;

&lt;p&gt;The AWS event shows how DNS/resolution problems can cascade. Ensure you have resiliency in DNS (multiple providers, health checks). You can use Route 53 for your DNS; AWS provides 100% for this service.&lt;/p&gt;

&lt;p&gt;Use health-checks and automated traffic shifting (via load balancers, Route 53 or equivalent) to redirect traffic away from failed zones/regions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data replication and backups:
&lt;/h3&gt;

&lt;p&gt;Use cross-region replication (database replicas, file storage replication) so you have standby data in a different region. You need to ensure your backups are recent, tested, and you can restore rapidly into another region if needed.&lt;/p&gt;

&lt;p&gt;Testing &amp;amp; exercises: Regularly simulate failure of a region/service (chaos testing) to ensure your fail-over works. Measure RTO (Recovery Time Objective) and RPO (Recovery Point Objective) for each critical business service.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can you NOT Control
&lt;/h2&gt;

&lt;p&gt;Sure, you can make multi-cloud, multi-region and what not but there are still certain things that you cannot control from business perspective. For example, lets say your application is multi-region, however, if you integrate with a vendor-hosted application, then you resiliency is dependent on that vendor-based product as well. You cannot control whether they use multi-cloud or multi-region and even multi-AZ deployments.&lt;/p&gt;

&lt;p&gt;You are more or less relying on what the vendor tells you or is in the contract but it's never easy to calculate RTO when you rely on external services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Multi-Region can be a NO-GO
&lt;/h2&gt;

&lt;p&gt;I see many people posts in LinkedIn that you need to make you application multi-region but the reality is, it's not always easy for a number of reasons.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost&lt;/strong&gt;: It's not cheap - you need budget allocated for this&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance&lt;/strong&gt;: Critical business like healthcare and finance have strict data sovereignty policies. AWS does not have multiple regions in every country, so, multi-region is not always an option.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complexity&lt;/strong&gt;: Multi-region is complex. Managing infrastructure in multiple regions and then to keep it in sync in complex. You can it by infrastructure as code but it's still complex.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Failover&lt;/strong&gt;: Don't forgot just having multi-region is not enough. You also need to safely failover to the secondary region. You need proper health checks and DNS failover to fail to the secondary region.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;The AWS outage demonstrates that even dominant cloud providers and leading regions can suffer cascading failures spanning many services.&lt;/p&gt;

&lt;p&gt;For critical businesses like healthcare or finance, the consequences can be more serious than just "website down" — they can affect patient care, compliance, revenue, and reputation.&lt;/p&gt;

&lt;p&gt;To mitigate: adopt multi-region/fail-over architectures, decouple dependencies, maintain backups, exercise fail-over, monitor actively, and have a strong incident response plan.&lt;/p&gt;

&lt;p&gt;The goal is not to assume "never will fail" (because failure is inevitable) but to plan for when it does so the impact is minimised.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>outage</category>
      <category>highavailbility</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Sign your AWS Lambda Code</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Fri, 17 Oct 2025 01:27:07 +0000</pubDate>
      <link>https://forem.com/shajam/sign-your-aws-lambda-code-5cdh</link>
      <guid>https://forem.com/shajam/sign-your-aws-lambda-code-5cdh</guid>
      <description>&lt;p&gt;AWS Lambda is a serverless technology that lets you deploy your application without having to deploy servers. You essentially deploy tour code, configure basic settings like memory, ephemeral storage and IAM role and that's it, you are good to go.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Code Signing?
&lt;/h3&gt;

&lt;p&gt;Code signing is a security process that applies a digital signature to software code or executables to prove the authenticity and integrity of your code. So, what does it mean?&lt;/p&gt;

&lt;p&gt;You have deployed your code but how do you know the deployed code has not been tampered with? That's the problem Code Signing solves.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Authenticity&lt;/strong&gt;: the code is deployed by a trusted source like yourself or your company.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrity&lt;/strong&gt;: the code has not been modified since it was signed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-repudiation&lt;/strong&gt;: the signer like you cannot later deny having signed it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What is AWS Signer?
&lt;/h3&gt;

&lt;p&gt;AWS Signer is a fully managed code signing service from AWS.&lt;br&gt;
It lets you digitally sign your software, deployment packages, and container images so that AWS services like Lambda or IoT can verify the code's integrity and authenticity before running it.&lt;/p&gt;

&lt;p&gt;You can also use AWS Signer from CI/CD pipeline which is critical given most companies deploy code using CI/CD. This helps us confirm that only authorized, untampered code gets deployed.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Signer Signs Lambda Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoe89xl0xe9uafvumj2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoe89xl0xe9uafvumj2t.png" alt="How Signer Signs Lambda Code" width="721" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To use AWS Signer, you need to create a signing profile as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvit8qf5gxpfzuvtvrg40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvit8qf5gxpfzuvtvrg40.png" alt="Signer Profile" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To use AWS Signer, you need to upload the code to a S3 bucket. You can setup the bucket so that the signed and unsigned code are kept in different prefix. Once code is uploaded, you can run a sign job from AWS Signer. This will produce the signed code in the S3 bucket. After that, you can update the Lambda code with the signed code.&lt;/p&gt;

&lt;p&gt;You also need to update signing profile setting in Lambda. Under Lambda dashboard, you can set the default configuration for signing. This is shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvzjapulb7wyccnuptz9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvzjapulb7wyccnuptz9.png" alt="Lambda configuration for AWS Signer" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can choose one or more signing profiles. Note the Signature validation policy. You can set it to &lt;code&gt;Warn&lt;/code&gt; or &lt;code&gt;Enforce&lt;/code&gt;. For experimentation, you can start with &lt;code&gt;Warn&lt;/code&gt; and eventually change it to &lt;code&gt;Enforce&lt;/code&gt;. Once you enforce it, Lambda blocks the deployment request if the signature validation check fails. This ensures that only trusted and signed code is deployed to Lambda functions, providing a stricter security posture.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use Signing Profile in Lambda Function
&lt;/h3&gt;

&lt;p&gt;Now, all the settings are done, you just need to start using the signing profile in your Lambda function. To do that, when you create a new Lambda function from console, you need to expand Additional configurations and select Code Signing under Security &amp;amp; governance. This is shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxztsf4s7v1ifvv06sc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxztsf4s7v1ifvv06sc1.png" alt="How to use Signing Profile in Lambda Function" width="776" height="664"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Update Lambda Function to with Signed Code
&lt;/h3&gt;

&lt;p&gt;Ok, we have the signing profiles ready. Now, we need to sign the code. So,  as I mentioned before, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload code to a S3 bucket&lt;/li&gt;
&lt;li&gt;Create a signing job from AWS Signer and choose the right signing profile&lt;/li&gt;
&lt;li&gt;Update Lambda function to use the signed code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note, once you have used signed code in Lambda, you can no longer view the code in AWS Lambda console. You can check the signing profile under Code properties in Lambda.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fva1ntnjindcl7d1mmflp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fva1ntnjindcl7d1mmflp.png" alt="AWS lambda Code properties after Code Signing" width="800" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Happens When a Signing Certificate Expires
&lt;/h3&gt;

&lt;p&gt;Signer-managed certificates have a validity period that you can set. When a signing certificate expires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Existing signed artifacts remain valid (they include timestamp metadata proving they were signed during a valid period).&lt;/li&gt;
&lt;li&gt;You cannot sign new artifacts using the expired certificate.&lt;/li&gt;
&lt;li&gt;You must create a new signing profile and sign again.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is important for AWS Lambda code signing, since Lambda will reject expired signatures at deployment time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;To wrap up, AWS Lambda code signing brings cryptographic assurance to serverless deployments, ensuring that only verified, untampered code runs in your functions. It's a small implementation effort with a big payoff in security and trust.&lt;/p&gt;

</description>
      <category>lambda</category>
      <category>aws</category>
      <category>security</category>
    </item>
    <item>
      <title>What's special about AWS Service-Linked IAM Roles</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Wed, 08 Oct 2025 03:47:44 +0000</pubDate>
      <link>https://forem.com/shajam/whats-special-about-aws-service-linked-iam-roles-2pge</link>
      <guid>https://forem.com/shajam/whats-special-about-aws-service-linked-iam-roles-2pge</guid>
      <description>&lt;p&gt;A service-linked role is a special type of IAM role that's directly associated with an AWS service. These roles are predefined by the service and include all the permissions the service needs to interact with other AWS services on your behalf. It is also a prerequisite for many of the services.&lt;br&gt;
Service-linked roles make it easier to configure a service since you don’t need to manually assign permissions for it to perform actions on your behalf.&lt;/p&gt;

&lt;p&gt;These predefined roles help define the permissions that an AWS service will need to function. These roles are only setup when you start using the service. You can view but not edit the permissions of these roles. You can, however, edit the description of the role in some cases.&lt;/p&gt;

&lt;p&gt;For example, when you use ECS (container service), a service linked role is configured with ARN like &lt;code&gt;arn:aws:iam::{AWS::AccountID}:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note that, service linked roles and not same as service role. The service role is the IAM role that defines the permissions that the particular instance of the service or task can assume. For example, each Lambda function has its own IAM permissions requirement which is defined in service role. Service-linked role, on the other hand, is defined by AWS and defines what each of the instances of your service can assume by default.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also, not all services require service linked roles. You can find the list of the services that need it at &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Other important characteristics of service linked role are that&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it is not impacted by service control policies (SCP)&lt;/li&gt;
&lt;li&gt;it is not impacted by resource control policies (RCP)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How can you create the service linked role
&lt;/h3&gt;

&lt;p&gt;You can create the service linked role by using AWS console, API or CLI. For example, if you want to create it from the console, you can go to IAM role, create Role, choose service, and it will show you if it needs / supports a service linked role. Refer to the screen shot below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5bn8pk42hddx9xpdwjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5bn8pk42hddx9xpdwjc.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>iam</category>
    </item>
    <item>
      <title>AWS IAM Users and Roles in the context of Zero Trust Security Framework</title>
      <dc:creator>SHAJAM</dc:creator>
      <pubDate>Tue, 07 Oct 2025 20:33:55 +0000</pubDate>
      <link>https://forem.com/shajam/aws-iam-users-and-roles-in-the-context-of-zero-trust-security-framework-3cii</link>
      <guid>https://forem.com/shajam/aws-iam-users-and-roles-in-the-context-of-zero-trust-security-framework-3cii</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;IAM Users and Roles in the context of Zero Trust Security Framework. The article discusses the principle - Never trust, always verify, and minimize exposure and how IAM users and roles plays with it.&lt;/p&gt;

&lt;p&gt;The IAM users, roles, and policies section is where you establish how identity becomes the new perimeter in AWS. This is the core service that defines permissions for users and services and what they can do. For example, if you want a Lambda function to read and write data from a S3 bucket, you have to configure permissions. You configure it using IAM.&lt;/p&gt;

&lt;h2&gt;
  
  
  IAM User
&lt;/h2&gt;

&lt;p&gt;IAM User are &lt;strong&gt;long-term identities&lt;/strong&gt; created for people (e.g., developers, administrators) needing direct access to AWS resources. When you create the user, you can give it console login permission so the user can login to your AWS account. To make it secure, you can and should enforce MFA on the IAM user account console login.  &lt;/p&gt;

&lt;p&gt;You might also use IAM user to obtain the access keys. Access keys are &lt;strong&gt;long term&lt;/strong&gt; tokens that you can use with your application or external applications or users. These tokens are long-term and therefore if leaked can be used for malicious activities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best practice using IAM User and Access Keys
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;As an alternative to access AWS console using IAM user, consider federated access via IAM Identity Centre (AWS SSO) or external IdPs. That way, user login is tied to federated access you don't need to manage the IAM user.&lt;/li&gt;
&lt;li&gt;Never share IAM user credentials.&lt;/li&gt;
&lt;li&gt;Enforce MFA (Multi-Factor Authentication) for all IAM users.&lt;/li&gt;
&lt;li&gt;Rotate access keys regularly or use short-lived credentials (STS).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zero Trust Tie-In: Long-lived credentials represent implicit trust — contrary to Zero Trust. Migrating to temporary credentials aligns with Zero Trust principles.&lt;/p&gt;

&lt;h2&gt;
  
  
  IAM Roles
&lt;/h2&gt;

&lt;p&gt;IAM Roles are identities with permissions that can be assumed *&lt;em&gt;temporarily *&lt;/em&gt; by trusted entities (users, applications, services, or other AWS accounts). For example, if you have an EC2  instance that needs to read or write data from S3, you can create an IAM role and associate it with the EC2 instance. Then, it can perform S3 operations. &lt;/p&gt;

&lt;p&gt;You might wonder how is it different from access keys then. Well, the main difference is that the IAM role is providing temporary tokens issued via AWS STS  - Security Token Service that is used for authorisation. With access keys, the keys are long term. Another difference is, with access keys, anyone or service can use the it to gain access to AWS. That is, you can use the access keys from your laptop, from EC2 or Lambda and you can still access the resource. Whereas, with IAM role, you define an IAM trust policy that defines what can assume the role. If the trust policy specifies EC2, then only EC2s can assume the role and using the same role with Lambda will fail. &lt;/p&gt;

&lt;p&gt;Use Cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Service Roles: EC2 instance needs to read from S3.&lt;/li&gt;
&lt;li&gt;Cross-Account Access: Account A allows Account B to assume a role to access its resources.&lt;/li&gt;
&lt;li&gt;Federated Access: Users from an external IdP assume roles dynamically when signing in.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thus, IAM roles provide a Zero-Trust benefit - temporary credentials and dynamic trust relationships reduce attack surface and eliminate static trust assumptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;IAM users violate this principle because these rely on long-term credentials (passwords, keys) and does not really have trust relationships.&lt;/p&gt;

&lt;p&gt;IAM roles support Zero Trust because &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access is dynamic and time-bound. &lt;/li&gt;
&lt;li&gt;Role assumption requires continuous authentication (STS token issuance). &lt;/li&gt;
&lt;li&gt;Least privilege can be enforced with fine-grained policies and session conditions.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>iam</category>
      <category>cloudsecurity</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
