<?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>DEV Community: Ntombizakhona Mabaso</title>
    <description>The latest articles on DEV Community by Ntombizakhona Mabaso (@ntombizakhona).</description>
    <link>https://dev.to/ntombizakhona</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%2F899317%2Ffabcc82d-22a3-410a-b5b9-869687d73e09.jpg</url>
      <title>DEV Community: Ntombizakhona Mabaso</title>
      <link>https://dev.to/ntombizakhona</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ntombizakhona"/>
    <language>en</language>
    <item>
      <title>Design Cost-Optimized Compute Solutions</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Sun, 05 Apr 2026 18:30:42 +0000</pubDate>
      <link>https://dev.to/aws-builders/design-cost-optimized-compute-solutions-b6</link>
      <guid>https://dev.to/aws-builders/design-cost-optimized-compute-solutions-b6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;⚡ Domain 4: Design Cost-Optimized Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 4.2&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Designing Compute Optimized Solutions&lt;/em&gt;&lt;/strong&gt; is about choosing compute that meets performance and availability needs at the &lt;strong&gt;lowest reasonable cost&lt;/strong&gt;.
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;First decide &lt;strong&gt;what type of compute&lt;/strong&gt; the workload needs &lt;em&gt;(EC2, Lambda, Fargate, containers, edge, hybrid)&lt;/em&gt;, then choose &lt;strong&gt;how to pay for it&lt;/strong&gt;, then &lt;strong&gt;right-size and scale it&lt;/strong&gt; so you are not paying for idle capacity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You are balancing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Performance&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Availability&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Elasticity&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Operational Overhead&lt;br&gt;
&lt;strong&gt;&lt;em&gt;5&lt;/em&gt;&lt;/strong&gt; Purchasing Model&lt;/p&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | AWS Cost Management Service Features
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Cost Allocation Tags And Multi-Account Billing
&lt;/h4&gt;

&lt;p&gt;These help you understand and allocate compute cost.&lt;/p&gt;

&lt;h4&gt;
  
  
  1.1 &lt;strong&gt;Cost Allocation Tags&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Track compute spend by app, team, environment, owner, cost center&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  1.2 &lt;strong&gt;Multi-Account Billing | Consolidated Billing&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Manage cost centrally across multiple AWS accounts&lt;/li&gt;
&lt;li&gt;Often used with AWS Organizations&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | AWS Cost Management Tools
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Cost Explorer, Budgets, CUR
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Cost Explorer: &lt;em&gt;Analyse historical spend and trends&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; AWS Budgets: &lt;em&gt;Alert when spending or usage exceeds thresholds&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; AWS Cost and Usage Report (CUR): &lt;em&gt;Detailed raw billing data for deeper optimization analysis&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | AWS Global Infrastructure
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Regions &amp;amp; Availability Zones (AZs)
&lt;/h4&gt;

&lt;p&gt;Cost and performance can both change based on placement:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Running in multiple AZs may cost more, but is often required for production HA&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Data transfer between Regions can add cost&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Some workloads can stay single-AZ if non-critical and cheaper&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Production&lt;/em&gt; → &lt;strong&gt;usually Multi-AZ&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Dev or test or batch&lt;/em&gt; → &lt;strong&gt;sometimes cheaper single-AZ is acceptable&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | AWS Purchasing Options
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Spot, Reserved Instances, Savings Plans
&lt;/h4&gt;

&lt;h4&gt;
  
  
  4.1 &lt;strong&gt;On-Demand&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Pay as you go&lt;/li&gt;
&lt;li&gt;Flexible, no commitment&lt;/li&gt;
&lt;li&gt;Best for short-term or unpredictable usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Unpredictable short-term workload”&lt;/em&gt; → &lt;strong&gt;On-Demand&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4.2 &lt;strong&gt;Spot Instances&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Deep discount for interruptible EC2 capacity&lt;/li&gt;
&lt;li&gt;Best for fault-tolerant, stateless, flexible workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Interruptible batch/stateless jobs”&lt;/em&gt; → &lt;strong&gt;Spot&lt;/strong&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  4.3 &lt;strong&gt;Reserved Instances (RIs)&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Lower cost for long-term predictable EC2/RDS usage&lt;/li&gt;
&lt;li&gt;Capacity reservation options in some cases&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4.4 &lt;strong&gt;Savings Plans&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Flexible pricing commitment across services or instance families (depending on type)&lt;/li&gt;
&lt;li&gt;Often simpler and flexible than RIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Steady production workload for 1–3 years”&lt;/em&gt; → &lt;strong&gt;Savings Plans or RIs&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Distributed Compute Strategies
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Edge Processing
&lt;/h4&gt;

&lt;p&gt;Sometimes cheaper and faster architecture comes from moving compute closer to users or reducing origin load.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CloudFront Functions / Lambda@Edge&lt;/strong&gt; for lightweight logic at the edge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CloudFront&lt;/strong&gt; caching reduces origin compute cost&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | Hybrid Compute Options
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Outposts &amp;amp; Snowball Edge
&lt;/h4&gt;

&lt;h4&gt;
  
  
  6.1 &lt;strong&gt;AWS Outposts&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Run AWS infrastructure and services on-prem&lt;/li&gt;
&lt;li&gt;Used when low latency to on-prem systems or data residency and local processing is needed&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  6.2 &lt;strong&gt;AWS Snowball Edge&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Physical device for data transfer and edge compute&lt;/li&gt;
&lt;li&gt;Useful in disconnected, harsh and remote environments or massive offline migration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7&lt;/strong&gt; | Instance Types, Families, And Sizes
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Memory Optimized, Compute Optimized, Virtualizationn
&lt;/h4&gt;

&lt;p&gt;The basics:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workload&lt;/th&gt;
&lt;th&gt;Family&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;General Purpose&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;t&lt;/strong&gt;, &lt;strong&gt;m&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compute Optimized&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;c&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory Optimized&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;r&lt;/strong&gt;, &lt;strong&gt;x&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage Optimized&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;i&lt;/strong&gt;, &lt;strong&gt;d&lt;/strong&gt;, some specialized families&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPU / ML / graphics&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;p&lt;/strong&gt;, &lt;strong&gt;g&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Cost Mindset
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Don’t choose memory-optimized if CPU-bound&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Don’t over-size “&lt;em&gt;just in case&lt;/em&gt;”, rather consider scaling options&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Burstable (&lt;strong&gt;T&lt;/strong&gt; family) can be cost-effective for low and variable baseline usage&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;8&lt;/strong&gt; | Optimization of Compute Utilization
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Containers, Serverless, Microservices
&lt;/h4&gt;

&lt;p&gt;Cost optimization often comes from better utilization:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1.&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Containers&lt;/strong&gt; pack workloads more efficiently onto shared compute&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2.&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Fargate&lt;/strong&gt; avoids paying for idle EC2 hosts you manage yourself&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3.&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Lambda&lt;/strong&gt; is great for spiky or short-lived workloads&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4.&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Microservices&lt;/strong&gt; can scale only the busy components, not the whole app&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;9&lt;/strong&gt; | Scaling Strategies
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Auto Scaling &amp;amp; Hibernation
&lt;/h4&gt;

&lt;h4&gt;
  
  
  9.1 &lt;strong&gt;Auto Scaling&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Scale out when demand rises, scale in when demand drops&lt;/li&gt;
&lt;li&gt;Avoid paying for idle peak capacity all day&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.2 &lt;strong&gt;EC2 hibernation&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Suspend instance and resume later with RAM state preserved&lt;/li&gt;
&lt;li&gt;Useful for dev AND test or intermittent workloads where startup time matters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Need to pause and resume instance to save cost”&lt;/em&gt; → &lt;strong&gt;hibernation&lt;/strong&gt; (if supported).&lt;/p&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Determine An Appropriate Load Balancing Strategy
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ALB vs NLB vs GWLB
&lt;/h4&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Application Load Balancer (ALB)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP/HTTPS&lt;/li&gt;
&lt;li&gt;Path-based and host-based routing&lt;/li&gt;
&lt;li&gt;Layer 7 application routing&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Network Load Balancer (NLB)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TCP/UDP/TLS&lt;/li&gt;
&lt;li&gt;Very high performance and static IPs&lt;/li&gt;
&lt;li&gt;Layer 4 routing&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Gateway Load Balancer&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;br&gt;
-Deploying and scaling virtual appliances such as firewalls and inspection tools&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Choose the simplest load balancer that meets protocol/routing needs.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  B | Determine Appropriate Scaling Methods And Strategies For Elastic Workloads
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Horizontal vs Vertical, Hibernation
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Horizontal scaling&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Add more instances/tasks/functions&lt;/li&gt;
&lt;li&gt;Usually better for elasticity and resilience&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Vertical Scaling&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Make the instance bigger&lt;/li&gt;
&lt;li&gt;Simpler, but less elastic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Production web app&lt;/em&gt; → *&lt;em&gt;horizontal scaling  *&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Hibernation&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Save money on intermittent EC2 workloads that should resume quickly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Short-lived or intermittent workload&lt;/em&gt; → &lt;strong&gt;maybe hibernation / scheduled scaling&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Determine Cost-Effective AWS Compute Services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Lambda, EC2, Fargate
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Lambda&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Event-driven&lt;/li&gt;
&lt;li&gt;Short-running&lt;/li&gt;
&lt;li&gt;Spiky and unpredictable&lt;/li&gt;
&lt;li&gt;Minimal ops desired&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;2&lt;/em&gt; &lt;strong&gt;EC2&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Long-running steady workloads&lt;/li&gt;
&lt;li&gt;Need OS control&lt;/li&gt;
&lt;li&gt;Can benefit from RIs/Savings Plans/Spot combinations&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Fargate&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Containers are needed&lt;/li&gt;
&lt;li&gt;Want to avoid managing EC2 hosts&lt;/li&gt;
&lt;li&gt;Moderate-to-variable workload patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  D | Determine The Required Availability For Different Classes Of Workloads
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Production vs Non-Production
&lt;/h4&gt;

&lt;p&gt;Not every workload needs the same cost level.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Production&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Usually Multi-AZ, &lt;/li&gt;
&lt;li&gt;Auto Scaling, &lt;/li&gt;
&lt;li&gt;HA
&lt;/li&gt;
&lt;li&gt;More expensive but justified&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Non-Production / Dev / Test&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Smaller instances&lt;/li&gt;
&lt;li&gt;Single-AZ&lt;/li&gt;
&lt;li&gt;Scheduled shutdown/startup&lt;/li&gt;
&lt;li&gt;Spot-friendly&lt;/li&gt;
&lt;li&gt;Hibernated/stopped when unused&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;E&lt;/strong&gt; | Select The Appropriate Instance Family
&lt;/h3&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1.&lt;/em&gt;&lt;/strong&gt; CPU-heavy app → &lt;strong&gt;C family&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2.&lt;/em&gt;&lt;/strong&gt; Memory-heavy app → &lt;strong&gt;R family&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3.&lt;/em&gt;&lt;/strong&gt; Small and variable baseline → &lt;strong&gt;T family&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4.&lt;/em&gt;&lt;/strong&gt; General purpose app → &lt;strong&gt;M family&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;F&lt;/strong&gt; | Select The Appropriate Instance Size
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Right-sizing principles:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Start from actual CPU, memory and network needs&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Use monitoring to reduce overprovisioning&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Scale horizontally where possible instead of using one oversized box&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Compute&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Steady long-term workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Savings Plans / Reserved Instances&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interruptible batch or fault-tolerant workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Spot Instances&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spiky event-driven workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Lambda&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Containerized app, no server management&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Fargate&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need OS control or legacy app&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EC2&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low and variable baseline workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;T family&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compute-heavy workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;C family&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory-heavy workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;R family&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pause or resume EC2 to save cost&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EC2 hibernation&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP/HTTPS routing with app logic&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ALB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TCP/UDP with static IPs/high performance&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;NLB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Virtual network appliances&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Gateway Load Balancer&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] I can choose the right compute service (&lt;strong&gt;EC2 vs Lambda vs Fargate&lt;/strong&gt;) based on workload pattern&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] I understand when to use &lt;strong&gt;On-Demand, Spot, Reserved Instances, and Savings Plans&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] I can right-size EC2 by &lt;strong&gt;family and size&lt;/strong&gt; instead of overprovisioning&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] I know when &lt;strong&gt;horizontal scaling&lt;/strong&gt; is more cost-effective than vertical scaling&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] I can differentiate production vs non-production availability requirements&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] I know when &lt;strong&gt;hibernation&lt;/strong&gt; or scheduled scaling can reduce cost&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] I can choose the right load balancer (&lt;strong&gt;ALB vs NLB vs GWLB&lt;/strong&gt;) based on protocol and need&lt;br&gt;&lt;br&gt;
&lt;strong&gt;8.&lt;/strong&gt; [ ] I understand how tags and cost tools help track and manage compute spending&lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;Compute always has so many resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Visibility And Management
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html" rel="noopener noreferrer"&gt;Cost Explorer&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html" rel="noopener noreferrer"&gt;AWS Budgets&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html" rel="noopener noreferrer"&gt;Cost and Usage Report (CUR)&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html" rel="noopener noreferrer"&gt;Cost Allocation Tags&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Compute Pricing Options
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html" rel="noopener noreferrer"&gt;Spot Instances&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-reserved-instances.html" rel="noopener noreferrer"&gt;Reserved Instances&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html" rel="noopener noreferrer"&gt;Savings Plans&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Compute Services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html" rel="noopener noreferrer"&gt;EC2&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/welcome.html" rel="noopener noreferrer"&gt;Lambda&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html" rel="noopener noreferrer"&gt;Fargate&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html" rel="noopener noreferrer"&gt;ECS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html" rel="noopener noreferrer"&gt;EKS&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Scaling And Optimization
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html" rel="noopener noreferrer"&gt;EC2 Auto Scaling&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html" rel="noopener noreferrer"&gt;EC2 Hibernation&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html" rel="noopener noreferrer"&gt;EC2 instance types&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html" rel="noopener noreferrer"&gt;Burstable instances&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is-compute-optimizer.html" rel="noopener noreferrer"&gt;Compute Optimizer&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Load Balancing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html" rel="noopener noreferrer"&gt;Application Load Balancer&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html" rel="noopener noreferrer"&gt;Network Load Balancer&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html" rel="noopener noreferrer"&gt;Gateway Load Balancer&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Edge And Hybrid Compute
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-functions.html" rel="noopener noreferrer"&gt;CloudFront Functions&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-edge.html" rel="noopener noreferrer"&gt;Lambda@Edge&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/outposts/latest/userguide/what-is-outposts.html" rel="noopener noreferrer"&gt;AWS Outposts&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/snowball/latest/developer-guide/whatissnowball.html" rel="noopener noreferrer"&gt;AWS Snowball Edge And Snow Family&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Design Cost-Optimized Storage Solutions</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Sat, 04 Apr 2026 18:25:22 +0000</pubDate>
      <link>https://dev.to/aws-builders/design-cost-optimized-storage-solutions-5f14</link>
      <guid>https://dev.to/aws-builders/design-cost-optimized-storage-solutions-5f14</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;⚡ Domain 4: Design Cost-Optimized Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 4.1&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Designing Cost-Optimized Storage Solutions&lt;/em&gt;&lt;/strong&gt; is about storing data in the &lt;strong&gt;lowest-cost way that still meets business requirements&lt;/strong&gt;.
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with &lt;strong&gt;storage type&lt;/strong&gt; &lt;em&gt;(object, file, block)&lt;/em&gt;, then check &lt;strong&gt;access frequency&lt;/strong&gt;, &lt;strong&gt;performance needs&lt;/strong&gt;, &lt;strong&gt;retention&lt;/strong&gt;, &lt;strong&gt;backup/archive&lt;/strong&gt;, and &lt;strong&gt;transfer method&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You are not just picking “cheap storage.”&lt;br&gt;&lt;br&gt;
You are picking the &lt;strong&gt;cheapest storage that still works&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | Access Options
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Requester Pays
&lt;/h4&gt;

&lt;p&gt;Sometimes storage costs are affected by &lt;strong&gt;who pays for access&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;S3 Requester Pays&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;With &lt;strong&gt;Requester Pays&lt;/strong&gt;, the requester pays for request and data transfer charges instead of the bucket owner.&lt;/p&gt;

&lt;p&gt;Requester Pays is Useful When:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You share large datasets publicly or with many external consumers&lt;/li&gt;
&lt;li&gt;You want to reduce the owner’s cost for downloads or access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Dataset is shared with external users, and owner wants to reduce access cost”&lt;/em&gt; → &lt;strong&gt;Requester Pays&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | AWS Cost Management Service Features
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Cost Allocation Tags &amp;amp; Multi-Account Billing
&lt;/h4&gt;

&lt;p&gt;Tags and Multi-Account Billing reduce cost directly, but they help &lt;strong&gt;track and control&lt;/strong&gt; cost.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost Allocation Tags&lt;/strong&gt;: track cost by team/app/environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Organizations Consolidated Billing&lt;/strong&gt;: central billing across accounts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3 | AWS Cost Management Tools
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Cost Explorer, Budgets, Cost and Usage Report
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;AWS Cost Explorer:&lt;/strong&gt; Visualize and analyze spending trends&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;AWS Budgets:&lt;/strong&gt; Set thresholds and alerts for cost or usage&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;“Need alerts when costs exceed target”&lt;/em&gt; → &lt;strong&gt;Budgets&lt;/strong&gt; 
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;AWS Cost and Usage Report &lt;em&gt;(CUR)&lt;/em&gt;:&lt;/strong&gt; Detailed billing data for deep analysis&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;“Need detailed billing data for analysis”&lt;/em&gt; → &lt;strong&gt;CUR&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | AWS Storage Services With Appropriate Use Cases
&lt;/h3&gt;

&lt;h4&gt;
  
  
  FSx, EFS, S3, EBS
&lt;/h4&gt;

&lt;h4&gt;
  
  
  4.1 &lt;strong&gt;Amazon S3&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cheapest scalable object storage for large amounts of data&lt;/li&gt;
&lt;li&gt;Logs, backups, archives, static files, data lakes&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4.2 &lt;strong&gt;Amazon EFS&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared file storage for Linux workloads&lt;/li&gt;
&lt;li&gt;More expensive than S3; use when POSIX/shared file access is actually needed&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4.3 &lt;strong&gt;Amazon EBS&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Block storage attached to EC2&lt;/li&gt;
&lt;li&gt;Use only when the workload really needs block storage&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4.4 &lt;strong&gt;Amazon FSx&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managed file systems with specific compatibility/performance needs&lt;/li&gt;
&lt;li&gt;Examples:
&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;FSx for Windows File Server&lt;/strong&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;FSx for Lustre&lt;/strong&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;FSx for NetApp ONTAP&lt;/strong&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;FSx for OpenZFS&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Cost Mindset:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Don’t choose EFS or FSx if S3 is enough.&lt;br&gt;&lt;br&gt;
Don’t choose EBS if shared file or object storage fits better.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Backup Strategies
&lt;/h3&gt;

&lt;p&gt;Cost-optimized backups mean:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Keep backups only as long as needed&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Move old backups to cheaper tiers&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Use centralized backup policies where helpful&lt;/p&gt;

&lt;p&gt;Common options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AWS Backup&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EBS snapshots&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S3 versioning + lifecycle&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Archive backups to Glacier tiers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | Block Storage Options
&lt;/h3&gt;

&lt;h4&gt;
  
  
  HDD vs SSD Volume Types
&lt;/h4&gt;

&lt;p&gt;For EBS, cost depends heavily on volume type.&lt;/p&gt;

&lt;h4&gt;
  
  
  4.1 &lt;strong&gt;SSD-backed&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;gp3 / gp2&lt;/strong&gt;: general purpose SSD&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;io1 / io2&lt;/strong&gt;: provisioned IOPS SSD for very high IOPS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Sequential throughput, large datasets, low cost”&lt;/em&gt; → &lt;strong&gt;st1&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  4.2 &lt;strong&gt;HDD-backed&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;st1&lt;/strong&gt;: throughput-optimized HDD (good for large, sequential workloads)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;sc1&lt;/strong&gt;: cold HDD (lowest cost EBS, infrequent access) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;“Very infrequent block access, cheapest EBS” → &lt;strong&gt;sc1&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7&lt;/strong&gt; | Data Lifecycles
&lt;/h3&gt;

&lt;p&gt;Lifecycle planning is one of the biggest cost optimization topics.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;S3 Lifecycle&lt;/strong&gt; shines.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;New files are frequently accessed for 30 days&lt;/li&gt;
&lt;li&gt;Older files are rarely accessed&lt;/li&gt;
&lt;li&gt;After 1 year, they should be archived or deleted&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;8&lt;/strong&gt; | Hybrid Storage Options
&lt;/h3&gt;

&lt;h4&gt;
  
  
  DataSync, Transfer Family, Storage Gateway
&lt;/h4&gt;

&lt;h4&gt;
  
  
  8.1 &lt;strong&gt;DataSync&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Good for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recurring large-scale data transfer from on-prem to AWS&lt;/li&gt;
&lt;li&gt;Faster and easier than building custom copy jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  8.2 &lt;strong&gt;Transfer Family&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Good for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managed SFTP/FTPS/FTP into S3 or EFS&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  8.3 &lt;strong&gt;Storage Gateway&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Good for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hybrid access where on-prem apps still need file or block or tape interfaces backed by AWS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9 | Storage Access Patterns
&lt;/h3&gt;

&lt;p&gt;Choose storage or tier based on how often data is accessed.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Access Pattern&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Typical Storage&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frequently accessed&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 Standard / EBS SSD / EFS Standard&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infrequently accessed&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 Standard-IA / One Zone-IA / EFS IA&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archive / long-term retention&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 Glacier Instant Retrieval / Flexible Retrieval / Deep Archive&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;10&lt;/strong&gt; | Storage Tiering
&lt;/h3&gt;

&lt;p&gt;This is mostly an S3 topic, but also appears in EFS.&lt;/p&gt;

&lt;h4&gt;
  
  
  10.1 &lt;strong&gt;S3 Storage classes&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;S3 Standard&lt;/strong&gt;: hot data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3 Standard-IA&lt;/strong&gt;: infrequent access, multi-AZ&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3 One Zone-IA&lt;/strong&gt;: infrequent access, single AZ, cheaper&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3 Intelligent-Tiering&lt;/strong&gt;: unknown or changing access patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3 Glacier Instant Retrieval&lt;/strong&gt;: archive but still quick retrieval&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S3 Glacier Flexible Retrieval&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3 Glacier Deep Archive&lt;/strong&gt;: lowest cost, slowest retrieval&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.2 &lt;strong&gt;EFS Tiering&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;EFS lifecycle management can move files to &lt;strong&gt;EFS Infrequent Access&lt;/strong&gt; automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;11&lt;/strong&gt; | Storage Types With Associated Characteristics
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Object, File, Block
&lt;/h4&gt;

&lt;h4&gt;
  
  
  11.1 &lt;strong&gt;Object&lt;/strong&gt; = &lt;em&gt;S3&lt;/em&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Cheapest at scale&lt;/li&gt;
&lt;li&gt;Best for unstructured data, backups, logs, media, static files&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  11.2 &lt;strong&gt;File&lt;/strong&gt; = &lt;em&gt;EFS / FSx&lt;/em&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Use when apps need mounted shared file systems&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  11.3 &lt;strong&gt;Block&lt;/strong&gt; = &lt;em&gt;EBS&lt;/em&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Use when apps need low-latency disk attached to EC2&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Design Appropriate Storage Strategies
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Batch Uploads vs Individual Uploads
&lt;/h4&gt;

&lt;p&gt;Sometimes the cheapest design is not just the storage type, but &lt;strong&gt;how data is uploaded&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Batch uploads&lt;/strong&gt; can reduce request overhead&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Multipart upload&lt;/strong&gt; is better for very large files&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Aggregating small files&lt;/strong&gt; can improve efficiency in analytics or data lake designs&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Determine The Correct Storage Size For A Workload
&lt;/h3&gt;

&lt;p&gt;Don’t massively overprovision:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Right-size EBS volumes&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Estimate backup retention growth&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Plan capacity based on actual growth trends, not vague “just in case”&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Determine The Lowest-Cost Method Of Transferring Data To AWS Storage
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Online recurring transfers&lt;/em&gt; → &lt;strong&gt;DataSync&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Managed file transfer protocol&lt;/em&gt; → &lt;strong&gt;Transfer Family&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Hybrid file/block/tape integration&lt;/em&gt; → &lt;strong&gt;Storage Gateway&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Very large offline migration&lt;/em&gt; → &lt;strong&gt;Snow Family&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Determine When Storage Auto Scaling Is Required
&lt;/h3&gt;

&lt;p&gt;Auto scaling or storage elasticity matters when growth is uncertain.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;S3&lt;/strong&gt; scales automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EFS&lt;/strong&gt; scales automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EBS&lt;/strong&gt; requires sizing decisions (though it can be modified)&lt;/li&gt;
&lt;li&gt;Some file systems or databases need explicit storage autoscaling settings&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;E&lt;/strong&gt; | Manage S3 Object Lifecycles
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Move old data to cheaper storage classes&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Expire temporary or obsolete data&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Transition logs or backups to archive classes automatically&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;F&lt;/strong&gt; | Select Appropriate Backup And/Or Archival Solution
&lt;/h3&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Operational restore&lt;/em&gt; → &lt;strong&gt;snapshots / AWS Backup&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Compliance archive&lt;/em&gt; → &lt;strong&gt;Glacier tiers / Object Lock if required&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Long-term, low-cost retention&lt;/em&gt; → &lt;strong&gt;Deep Archive&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;G&lt;/strong&gt; | Select The Appropriate Service For Data Migration To Storage Services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; DataSync for recurring transfer&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Transfer Family for SFTP needs&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Storage Gateway for hybrid storage interfaces&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Snowball for large offline migration&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;H&lt;/strong&gt; | Select The Appropriate Storage Tier
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Unknown access pattern&lt;/em&gt; → &lt;strong&gt;S3 Intelligent-Tiering&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Rare access but quick retrieval&lt;/em&gt; → &lt;strong&gt;S3 Standard-IA&lt;/strong&gt; or &lt;strong&gt;Glacier Instant Retrieval&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Very rare long-term archive&lt;/em&gt; → &lt;strong&gt;Glacier Deep Archive&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;I&lt;/strong&gt; | Select The Correct Data Lifecycle
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Hot for 30 days&lt;/em&gt; → &lt;strong&gt;Standard&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Warm for 60 days&lt;/em&gt; → &lt;strong&gt;Standard-IA&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Archive after 90 days&lt;/em&gt; → &lt;strong&gt;Glacier&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Delete after 7 years&lt;/em&gt; → &lt;strong&gt;lifecycle expiration&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;J&lt;/strong&gt; | Select The Most Cost-Effective Storage Service For A Workload
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;S3&lt;/strong&gt; if object storage works&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;EFS/FSx&lt;/strong&gt; only if file semantics are needed&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;EBS&lt;/strong&gt; only when block storage is required&lt;/li&gt;
&lt;li&gt;Archive to Glacier tiers when retrieval is rare&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Choice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Massive unstructured data, lowest scalable cost&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unknown or changing access patterns&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 Intelligent-Tiering&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rare access, still needs fast retrieval&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;S3 Standard-IA&lt;/strong&gt; or &lt;strong&gt;Glacier Instant Retrieval&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-term archive, lowest cost&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Glacier Deep Archive&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shared Linux file system&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EFS&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows file shares&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;FSx for Windows File Server&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low-cost block storage for infrequent access&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EBS sc1&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sequential throughput-heavy block workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EBS st1&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recurring on-prem → AWS data transfer&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DataSync&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Managed SFTP into AWS storage&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Transfer Family&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hybrid storage interface for on-prem apps&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Storage Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External users should pay for S3 downloads&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 Requester Pays&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] I can choose &lt;strong&gt;object vs file vs block&lt;/strong&gt; storage based on workload needs&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] I can match storage &lt;strong&gt;tiers&lt;/strong&gt; to access frequency (hot, warm, cold, archive)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] I can use &lt;strong&gt;S3 lifecycle policies&lt;/strong&gt; to reduce cost automatically over time&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] I know when to use &lt;strong&gt;S3 Intelligent-Tiering&lt;/strong&gt; for unknown access patterns&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] I can choose the right &lt;strong&gt;EBS volume type&lt;/strong&gt; for cost or performance needs&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] I know which hybrid transfer/storage service fits the situation (DataSync, Transfer Family, Storage Gateway)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] I can choose cost-effective backup/archive solutions (AWS Backup, snapshots, Glacier tiers)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;8.&lt;/strong&gt; [ ] I understand cost tracking tools (Cost Explorer, Budgets, CUR, tags) at a basic level &lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Storage Services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html" rel="noopener noreferrer"&gt;Amazon S3&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html" rel="noopener noreferrer"&gt;Amazon EFS&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html" rel="noopener noreferrer"&gt;Amazon EBS&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html" rel="noopener noreferrer"&gt;Amazon FSx&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  S3 Lifecycle And Storage Classes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html" rel="noopener noreferrer"&gt;S3 Lifecycle&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html" rel="noopener noreferrer"&gt;S3 storage classes&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html" rel="noopener noreferrer"&gt;S3 Requester Pays&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html" rel="noopener noreferrer"&gt;Multipart upload&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Backup And Archive
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html" rel="noopener noreferrer"&gt;AWS Backup&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html" rel="noopener noreferrer"&gt;EBS snapshots&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  EBS Pricing Or Performance Direction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html" rel="noopener noreferrer"&gt;EBS volume types&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hybrid transfer and migration
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html" rel="noopener noreferrer"&gt;AWS DataSync&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html" rel="noopener noreferrer"&gt;AWS Transfer Family&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html" rel="noopener noreferrer"&gt;AWS Storage Gateway&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/snowball/latest/developer-guide/whatissnowball.html" rel="noopener noreferrer"&gt;AWS Snow Family&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost Visibility And Governance
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html" rel="noopener noreferrer"&gt;Cost Explorer&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html" rel="noopener noreferrer"&gt;AWS Budgets&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html" rel="noopener noreferrer"&gt;Cost and Usage Report (CUR)&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html" rel="noopener noreferrer"&gt;Cost allocation tags&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Determine High-Performing Data Ingestion And Transformation Solutions</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Wed, 01 Apr 2026 18:03:46 +0000</pubDate>
      <link>https://dev.to/aws-builders/determine-high-performing-data-ingestion-and-transformation-solutions-1f57</link>
      <guid>https://dev.to/aws-builders/determine-high-performing-data-ingestion-and-transformation-solutions-1f57</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;⚡ Domain 3: Design High-Performing Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 3.5&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Determining High-Performing Data Ingestion And Transformation Solutions&lt;/em&gt;&lt;/strong&gt; is about getting data into AWS, transforming it into useful formats, and enabling analytics &lt;strong&gt;at the required speed, scale, and security level&lt;/strong&gt;.
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;First decide &lt;strong&gt;batch vs streaming&lt;/strong&gt; ingestion, then pick the right &lt;strong&gt;transfer/ingestion service&lt;/strong&gt;, then pick the &lt;strong&gt;transformation engine&lt;/strong&gt;, then enable &lt;strong&gt;query + visualization&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | Data Analytics And Visualization Services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Athena, Lake Formation, QuickSight
&lt;/h4&gt;

&lt;h4&gt;
  
  
  1.1 &lt;strong&gt;Amazon Athena&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Serverless SQL queries directly on S3 data &lt;em&gt;(commonly Parquet/ORC for performance).&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Great for ad-hoc querying and quick analytics&lt;/li&gt;
&lt;li&gt;Works best with a catalog like Glue Data Catalog&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  1.2 &lt;strong&gt;AWS Lake Formation&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Build and govern a data lake on S3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Central permissions model &lt;em&gt;(tables, columns)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Helps manage who can access which datasets&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  1.3 &lt;strong&gt;Amazon QuickSight&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Serverless BI dashboards and visualization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connects to Athena, Redshift, RDS, and other sources&lt;/li&gt;
&lt;li&gt;Used for “business dashboards” exam clues&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | Data Ingestion Patterns
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Frequency
&lt;/h4&gt;

&lt;p&gt;Common patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Near real-time:&lt;/strong&gt; events every second &lt;em&gt;(clickstream, IoT telemetry)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Micro-batch:&lt;/strong&gt; every minute / every 5 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch:&lt;/strong&gt; hourly/daily/weekly loads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-time migration:&lt;/strong&gt; initial bulk transfer + then incremental updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Ingestion frequency often decides &lt;strong&gt;Kinesis&lt;/strong&gt; (streaming) vs &lt;strong&gt;DataSync/S3 batch&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Data Transfer Services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  DataSync &amp;amp; Storage Gateway
&lt;/h4&gt;

&lt;p&gt;Used when data originates &lt;strong&gt;outside AWS&lt;/strong&gt; or you need managed movement.&lt;/p&gt;

&lt;h4&gt;
  
  
  3.1 &lt;strong&gt;AWS DataSync&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Managed, accelerated online transfer &lt;em&gt;(on-prem ↔ AWS)&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Moves large datasets efficiently&lt;/li&gt;
&lt;li&gt;Good for recurring transfers and migrations&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3.2 &lt;strong&gt;AWS Storage Gateway&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Hybrid storage integration &lt;em&gt;(on-prem access with AWS backing)&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File Gateway &lt;em&gt;(NFS/SMB)&lt;/em&gt; to S3&lt;/li&gt;
&lt;li&gt;Volume Gateway &lt;em&gt;(block storage backed by AWS)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Tape Gateway &lt;em&gt;(backup/archive integration)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | Data Transformation Services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  AWS Glue
&lt;/h4&gt;

&lt;p&gt;Serverless data integration &lt;em&gt;(ETL)&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crawlers discover schema&lt;/li&gt;
&lt;li&gt;Jobs transform data &lt;em&gt;(Spark-based)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Common for converting formats &lt;em&gt;(CSV/JSON → Parquet)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Convert CSV to Parquet”&lt;/em&gt; → &lt;strong&gt;Glue.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Secure Access To Ingestion Access Points
&lt;/h3&gt;

&lt;p&gt;Typical protection mechanisms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IAM roles &lt;em&gt;(least privilege)&lt;/em&gt; for producers/consumers&lt;/li&gt;
&lt;li&gt;S3 bucket policies + Block Public Access + encryption&lt;/li&gt;
&lt;li&gt;VPC endpoints / PrivateLink for private service access&lt;/li&gt;
&lt;li&gt;TLS for ingestion endpoints&lt;/li&gt;
&lt;li&gt;KMS keys for encryption at rest&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Data must not traverse the public internet”&lt;/em&gt; → &lt;strong&gt;VPC endpoints/PrivateLink + private subnets.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | Sizes And Speeds To Meet Business Requirements
&lt;/h3&gt;

&lt;p&gt;Match service to throughput:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Bulk files (TB-scale)&lt;/em&gt; → &lt;strong&gt;DataSync / Snowball&lt;/strong&gt; (when offline) / &lt;strong&gt;S3 multipart upload&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Continuous events&lt;/em&gt; → &lt;strong&gt;Kinesis&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Query performance on S3&lt;/em&gt; → store as Parquet, partition by date/key, use &lt;strong&gt;Athena&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7&lt;/strong&gt; | Streaming Data services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Amazon Kinesis
&lt;/h4&gt;

&lt;h4&gt;
  
  
  7.1 &lt;strong&gt;Amazon Kinesis Data Streams&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;For real-time streaming ingestion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Producers write records to shards&lt;/li&gt;
&lt;li&gt;Consumers process in parallel&lt;/li&gt;
&lt;li&gt;Scales by shard count&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Need real-time stream with custom consumers”&lt;/em&gt; → &lt;strong&gt;Data Streams&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  7.2 &lt;strong&gt;Kinesis Data Firehose&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;For “streaming to storage/analytics destinations” with minimal ops:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loads to S3, Redshift, OpenSearch, etc.&lt;/li&gt;
&lt;li&gt;Can transform via Lambda in-flight &lt;em&gt;(basic transforms)&lt;/em&gt;
_
“Just deliver streaming data into S3/Redshift with minimal management”_ → *&lt;em&gt;Firehose
*&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Build And Secure Data Lakes
&lt;/h3&gt;

&lt;p&gt;Baseline data lake pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;S3&lt;/strong&gt; as storage (raw/clean/curated zones)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glue Data Catalog&lt;/strong&gt; for schema&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lake Formation&lt;/strong&gt; for governance (optional but commonly tested)&lt;/li&gt;
&lt;li&gt;Encryption with KMS + tight bucket policies&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Design Data Streaming Architectures
&lt;/h3&gt;

&lt;p&gt;Common streaming pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Producers → &lt;strong&gt;Kinesis Data Streams&lt;/strong&gt; → consumers &lt;em&gt;(Lambda/Kinesis Client)&lt;/em&gt; → S3/DB/analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or simpler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Producers → &lt;strong&gt;Firehose&lt;/strong&gt; → S3 (often landing as Parquet with later processing)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Design Data Transfer Solutions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Recurring online transfer from on-prem&lt;/em&gt; → &lt;strong&gt;DataSync&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Hybrid access to S3 from on-prem apps&lt;/em&gt; → &lt;strong&gt;Storage Gateway&lt;/strong&gt; (File Gateway)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Implement Visualization Strategies
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Query data with Athena&lt;/li&gt;
&lt;li&gt;Visualize in QuickSight&lt;/li&gt;
&lt;li&gt;Secure access with IAM and Lake Formation permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;E&lt;/strong&gt; | Select Compute Options For Data Processing
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Amazon EMR
&lt;/h4&gt;

&lt;p&gt;Used for big data processing with Spark/Hadoop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highly scalable distributed processing&lt;/li&gt;
&lt;li&gt;Good when you need full control of the data processing framework&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Spark job / Hadoop”&lt;/em&gt; → &lt;strong&gt;EMR.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;F&lt;/strong&gt; | Select Appropriate Configurations For Ingestion
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streaming capacity:&lt;/strong&gt; shard count (Kinesis Data Streams)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch throughput:&lt;/strong&gt; concurrency, scheduling, compression, multipart uploads&lt;/li&gt;
&lt;li&gt;Choose Parquet + partitioning for query performance&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;G&lt;/strong&gt; | Transform Data Between Formats
&lt;/h3&gt;

&lt;h4&gt;
  
  
  CSV → Parquet
&lt;/h4&gt;

&lt;p&gt;Common approach:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Land raw data in S3&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Transform with Glue (ETL) into Parquet in a curated zone&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Query via Athena, visualize via QuickSight&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Choice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ad-hoc SQL on files in S3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Athena&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business dashboards/BI&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;QuickSight&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Govern a data lake with fine-grained permissions&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Lake Formation&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Move lots of data from on-prem to AWS online&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DataSync&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hybrid file access (NFS/SMB) backed by S3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Storage Gateway (File Gateway)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transform/ETL and convert CSV → Parquet&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AWS Glue&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Real-time streaming ingestion with custom consumers&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Kinesis Data Streams&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stream into S3/Redshift with minimal ops&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Kinesis Data Firehose&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spark/Hadoop processing at scale&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Amazon EMR&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] Choose &lt;strong&gt;batch vs streaming&lt;/strong&gt; ingestion based on frequency and latency needs&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] Pick the right &lt;strong&gt;transfer service&lt;/strong&gt; &lt;em&gt;(DataSync vs Storage Gateway)&lt;/em&gt; for hybrid needs&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Design a secure &lt;strong&gt;S3-based data lake&lt;/strong&gt; &lt;em&gt;(catalog + governance + encryption)&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] Choose the right &lt;strong&gt;streaming service&lt;/strong&gt; &lt;em&gt;(Kinesis Streams vs Firehose)&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] Transform data using &lt;strong&gt;Glue&lt;/strong&gt; &lt;em&gt;(including format conversion like CSV → Parquet)&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Select compute for processing &lt;em&gt;(EMR when Spark/Hadoop is required)&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] Enable analytics &lt;em&gt;(Athena)&lt;/em&gt; and dashboards &lt;em&gt;(QuickSight)&lt;/em&gt; securely  &lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Analytics And Visualization
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/athena/latest/ug/what-is.html" rel="noopener noreferrer"&gt;Athena&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html" rel="noopener noreferrer"&gt;Lake Formation&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/quicksight/latest/user/welcome.html" rel="noopener noreferrer"&gt;QuickSight&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Ingestion And Transfer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html" rel="noopener noreferrer"&gt;DataSync&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html" rel="noopener noreferrer"&gt;Storage Gateway&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html" rel="noopener noreferrer"&gt;Transfer Family&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Streaming
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/streams/latest/dev/introduction.html" rel="noopener noreferrer"&gt;Kinesis Data Streams&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html" rel="noopener noreferrer"&gt;Kinesis Data Firehose&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Transformation And Catalog
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html" rel="noopener noreferrer"&gt;AWS Glue&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html" rel="noopener noreferrer"&gt;Glue Data Catalog&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Storage
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html" rel="noopener noreferrer"&gt;Amazon S3&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Processing
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html" rel="noopener noreferrer"&gt;Amazon EMR&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;🚀 &lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Determine High-Performing And / Or Scalable Network Architectures</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Mon, 30 Mar 2026 18:46:33 +0000</pubDate>
      <link>https://dev.to/aws-builders/determine-high-performing-and-or-scalable-network-architectures-2pe8</link>
      <guid>https://dev.to/aws-builders/determine-high-performing-and-or-scalable-network-architectures-2pe8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;⚡ Domain 3: Design High-Performing Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 3.4&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Determining High-Performing And / Or Scalable Network Architectures&lt;/em&gt;&lt;/strong&gt; is about designing networks that:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt; Perform well: &lt;em&gt;low latency, high throughput, predictable routing&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;2&lt;/strong&gt; Scale cleanly: &lt;em&gt;more users, more subnets, more Regions&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;3&lt;/strong&gt; Support common patterns: &lt;em&gt;multi-tier, hybrid, global&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;4&lt;/strong&gt; Use the right “front door”: &lt;em&gt;CloudFront/ALB/API Gateway and the right connectivity (VPN/DX/PrivateLink)&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with &lt;strong&gt;where users are&lt;/strong&gt; (global vs regional), then pick the &lt;strong&gt;ingress pattern&lt;/strong&gt;, then design the &lt;strong&gt;VPC topology&lt;/strong&gt;, then pick &lt;strong&gt;connectivity&lt;/strong&gt; and &lt;strong&gt;load balancing&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | Edge Networking Services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;CloudFront &amp;amp; Global Accelerator&lt;/strong&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;1.1&lt;/strong&gt; Amazon CloudFront (CDN)
&lt;/h4&gt;

&lt;p&gt;Use CloudFront when you need:&lt;br&gt;
&lt;em&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/em&gt; Lower latency for global users: &lt;em&gt;cache close to them&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/em&gt; Reduced load on origins: &lt;em&gt;cache + compression&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/em&gt; Better security integrations: &lt;em&gt;WAF, Shield, TLS&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;/em&gt; Static content acceleration: &lt;em&gt;and some dynamic acceleration patterns&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Global users downloading static content”&lt;/em&gt; → &lt;strong&gt;CloudFront.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;1.2&lt;/strong&gt; AWS Global Accelerator
&lt;/h4&gt;

&lt;p&gt;Use Global Accelerator when you need:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Faster, more reliable global routing for &lt;strong&gt;TCP/UDP&lt;/strong&gt; or non-cacheable traffic&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Improved latency by using the AWS global network (Anycast IPs)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Health-based routing to regional endpoints&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Improve global performance for a latency-sensitive app that can’t be cached&lt;/em&gt;” → &lt;strong&gt;Global Accelerator.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | How To Design Network Architecture (
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Subnet Tiers, Routing, IP Addressing
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;2.1&lt;/strong&gt; Subnet Tiers
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Public subnet:&lt;/strong&gt; &lt;em&gt;route to an Internet Gateway (IGW). Often hosts ALB, NAT GW.&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Private subnet:&lt;/strong&gt; &lt;em&gt;no IGW route because the app tier typically lives here.&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Isolated subnet:&lt;/strong&gt; &lt;em&gt;no IGW route and often no NAT route because the DB tier often lives here.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;2.2&lt;/strong&gt; Routing
&lt;/h4&gt;

&lt;p&gt;Routing decides where traffic can go:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; IGW for public inbound/outbound&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; NAT GW for private outbound&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; VPC endpoints for private access to AWS services&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;2.3&lt;/strong&gt; IP Addressing
&lt;/h4&gt;

&lt;p&gt;You should plan CIDR ranges so you can grow:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Enough IPs per subnet for scaling targets: &lt;em&gt;ECS tasks, EKS pods, EC2&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Room for future subnets: &lt;em&gt;new tiers, new AZs, new services&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Avoid overlapping CIDRs if you’ll connect VPCs/on-prem later&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Load Balancing Concepts
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;3.1&lt;/strong&gt; Application Load Balancer (ALB)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; HTTP/HTTPS workloads&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Path/host-based routing: &lt;em&gt;microservices routing&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Integrations: &lt;em&gt;WAF, authentication, target groups&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“HTTP routing based on path &lt;code&gt;/api&lt;/code&gt; vs &lt;code&gt;/images&lt;/code&gt;”&lt;/em&gt; → &lt;strong&gt;ALB&lt;/strong&gt;  &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;3.2&lt;/strong&gt; Network Load Balancer (NLB)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Very high performance / low latency L4 traffic like TCP/UDP/TLS.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Static IP support which is often helpful for allowlists&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Non-HTTP protocols&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“TCP, extreme performance, static IP, or non-HTTP”&lt;/em&gt; → *&lt;em&gt;NLB *&lt;/em&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | Network Connection Options
&lt;/h3&gt;

&lt;h4&gt;
  
  
  VPN, Direct Connect, PrivateLink
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;4.1&lt;/strong&gt; AWS Site-to-Site VPN
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Encrypted tunnel over the internet&lt;/li&gt;
&lt;li&gt;Fast to deploy, good baseline hybrid connectivity&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;4.2&lt;/strong&gt; AWS Direct Connect
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Dedicated private connection, more consistent latency/throughput&lt;/li&gt;
&lt;li&gt;Often used for large data transfer or steady hybrid traffic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Consistent throughput / private circuit”&lt;/em&gt; → &lt;strong&gt;Direct Connect.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;4.3&lt;/strong&gt; AWS PrivateLink
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Private connectivity to services across VPCs/accounts without exposing to the public internet&lt;/li&gt;
&lt;li&gt;Often used for “consumer VPC connects to provider service privately”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Expose an internal service to other VPCs privately”&lt;/em&gt; → &lt;strong&gt;PrivateLink.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Create A Network Topology For Various Architectures
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Global, Hybrid, Multi-tier
&lt;/h4&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Multi-Tier Regional Topology&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;CloudFront → ALB in public subnets → app in private subnets → DB in isolated subnets&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Hybrid Topology&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;On-prem ↔ (VPN or Direct Connect) ↔ VPC private subnets&lt;/li&gt;
&lt;li&gt;Use routing and security to restrict what on-prem can reach&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Global Topology&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;CloudFront &lt;em&gt;(cacheable)&lt;/em&gt; or Global Accelerator &lt;em&gt;(non-cacheable/latency-sensitive)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Multi-region endpoints with health-based routing &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Determine Network Configurations That Scale For Future Needs
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Plan CIDR blocks with growth in mind&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Use multiple subnets across AZs&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Avoid hard dependencies on single IPs &lt;em&gt;(use load balancers/DNS)&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Consider VPC endpoint usage to reduce NAT bottlenecks and cost&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Determine Appropriate Placement Of Resources
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Common Placement Rules:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Public-facing entry points &lt;em&gt;(ALB, CloudFront origin)&lt;/em&gt; are public&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; App tiers and databases are private/isolated&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Use separate subnets per AZ for HA and scaling&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Put NAT Gateways in public subnets (often one per AZ for resilience)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Select The Appropriate Load Balancing Strategy
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Choose Based On Protocol And Routing Needs:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;ALB&lt;/strong&gt; for HTTP/HTTPS and advanced routing&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;NLB&lt;/strong&gt; for TCP/UDP/TLS and extreme performance&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;Gateway Load Balancer&lt;/strong&gt; for virtual appliances&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Requirement&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Choice&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Global users, cacheable content&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;CloudFront&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Global users, non-cacheable TCP/UDP or low-latency routing&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Global Accelerator&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP/HTTPS, path-based routing&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ALB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TCP/UDP, static IPs, extreme performance&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;NLB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-prem to AWS quickly (encrypted)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Site-to-Site VPN&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-prem to AWS with consistent bandwidth/latency&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Direct Connect&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Private service exposure across VPCs/accounts&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;PrivateLink&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need private access to AWS services (S3, etc.)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;VPC endpoints&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] I can choose &lt;strong&gt;CloudFront vs Global Accelerator&lt;/strong&gt; based on caching vs routing needs&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] VPCs are designed with &lt;strong&gt;public/private/isolated subnet tiers&lt;/strong&gt; where appropriate&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Route tables, NAT, and endpoints are used intentionally (not accidentally)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] IP addressing (CIDR) is planned for scaling and future connectivity (no overlaps)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] Resource placement matches requirements (public entry, private app/data)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Load balancer choice matches protocol and routing needs (ALB vs NLB)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] Hybrid connectivity uses the right option (VPN vs Direct Connect vs PrivateLink)  &lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers And Official Documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Edge Networking
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html" rel="noopener noreferrer"&gt;CloudFront&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html" rel="noopener noreferrer"&gt;Global Accelerator&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  VPC Design Fundamentals
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html" rel="noopener noreferrer"&gt;Amazon VPC&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html" rel="noopener noreferrer"&gt;Route tables&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html" rel="noopener noreferrer"&gt;VPC CIDR blocks&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html" rel="noopener noreferrer"&gt;NAT gateway&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints.html" rel="noopener noreferrer"&gt;VPC endpoints&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html" rel="noopener noreferrer"&gt;AWS PrivateLink&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Load Balancing
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html" rel="noopener noreferrer"&gt;Application Load Balancer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html" rel="noopener noreferrer"&gt;Network Load Balancer&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Hybrid Connectivity
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html" rel="noopener noreferrer"&gt;Site-to-Site VPN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html" rel="noopener noreferrer"&gt;Direct Connect&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Determine High-Performing Database Solutions</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Sun, 08 Feb 2026 05:42:07 +0000</pubDate>
      <link>https://dev.to/aws-builders/determine-high-performing-database-solutions-1iaf</link>
      <guid>https://dev.to/aws-builders/determine-high-performing-database-solutions-1iaf</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;⚡ Domain 3: Design High-Performing Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 3.3&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Determining High-Performing Database Solutions&lt;/em&gt;&lt;/strong&gt; is about picking and designing databases that meet:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Performance goals &lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Scale requirements &lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Availability expectations &lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Operational constraints &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with the &lt;strong&gt;data model + access pattern:&lt;/strong&gt; &lt;em&gt;relational vs key-value vs document&lt;/em&gt;, then choose the service, then add &lt;strong&gt;performance boosters:&lt;/strong&gt; &lt;em&gt;read replicas, caching, connection pooling.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | AWS Global Infrastructure
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Availability Zones And Regions&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-AZ&lt;/strong&gt; deployments improve availability and can improve performance under failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-region&lt;/strong&gt; designs support disaster recovery and global performance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Must survive AZ outage”&lt;/em&gt; → &lt;strong&gt;Multi-AZ&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;“Global users with low latency”&lt;/em&gt; → &lt;strong&gt;global DB patterns&lt;/strong&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | Caching Strategies And Services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Amazon ElastiCache&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Caching reduces database load and improves latency.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ElastiCache for Redis&lt;/strong&gt;: caching + sessions + pub/sub + sorted sets
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ElastiCache for Memcached&lt;/strong&gt;: simple, distributed cache, no persistence
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Reduce read load / hot keys / repeated queries”&lt;/em&gt; → &lt;strong&gt;ElastiCache.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Data Access Patterns
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Read-Intensive vs Write-Intensive&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;This is one of the most important drivers of database design:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Read-heavy&lt;/strong&gt; → add caching, read replicas, or purpose-built read scaling&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Write-heavy&lt;/strong&gt; → consider partitioning/sharding patterns, or DynamoDB if it fits&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Spiky traffic&lt;/strong&gt; → serverless options or buffering with queues&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | Database Capacity Planning
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Capacity Units, Instance Types And Provisioned IOPS&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; RDS/Aurora performance depends on &lt;strong&gt;instance size&lt;/strong&gt;, storage type, and sometimes &lt;strong&gt;Provisioned IOPS&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; DynamoDB uses &lt;strong&gt;RCUs/WCUs&lt;/strong&gt; (or on-demand) and partition design affects performance&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; High-performance workloads often need correct sizing plus monitoring&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Database Connections And Proxies
&lt;/h3&gt;

&lt;p&gt;Connection limits are a common &lt;em&gt;real-world&lt;/em&gt; and &lt;em&gt;exam&lt;/em&gt; bottleneck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon RDS Proxy&lt;/strong&gt; pools connections and helps with spiky connection patterns (especially Lambda) and helps reduce failover impact and connection storms.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Serverless app is exhausting DB connections”&lt;/em&gt; → &lt;strong&gt;RDS Proxy.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | Database Engines With Appropriate Use Cases
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Homogeneous vs Heterogeneous Migration&lt;/strong&gt;s
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Homogeneous migration:&lt;/strong&gt; same engine to same engine (e.g., MySQL → MySQL)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heterogeneous migration:&lt;/strong&gt; different engines (e.g., Oracle → PostgreSQL)
_
&lt;strong&gt;AWS DMS&lt;/strong&gt; is commonly used for migrations (especially minimal downtime)._&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7&lt;/strong&gt; | Database Replication
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Read Replicas&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Read replicas are mainly for:&lt;br&gt;
&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Scaling reads&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; Offloading reporting/analytics queries&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; Cross-region read performance (depending on engine)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reminder:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Read replicas&lt;/em&gt; are &lt;strong&gt;usually asynchronous&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Multi-AZ&lt;/em&gt; is for &lt;strong&gt;availability&lt;/strong&gt;, not for read scaling &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;8&lt;/strong&gt; | Database Types And Services
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Relational (SQL)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Amazon RDS:&lt;/strong&gt; MySQL, PostgreSQL, MariaDB, Oracle, SQL Server&lt;br&gt;
&lt;strong&gt;Amazon Aurora&lt;/strong&gt; MySQL/PostgreSQL-compatible, high performance, managed&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Non-relational (NoSQL)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Amazon DynamoDB&lt;/strong&gt;: key-value/document, massive scale, low latency&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;In-memory&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;ElastiCache&lt;/strong&gt;: Redis/Memcached &lt;em&gt;(cache, sessions)&lt;/em&gt;  &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Serverless Database Patterns&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Aurora Serverless v2:&lt;/strong&gt; elastic relational capacity &lt;/p&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A | Configure Read Replicas To Meet Business Requirements
&lt;/h3&gt;

&lt;h4&gt;
  
  
  You Should Know When And Why
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Add replicas to scale reads and isolate reporting workloads&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Place replicas in other AZs or Regions if needed (engine-dependent)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Monitor replication lag and route read traffic appropriately&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Design Database Architectures
&lt;/h3&gt;

&lt;p&gt;Typical high-performing patterns:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; App → (optional cache) → DB&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Multi-AZ for HA&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Read replicas for scaling reads&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Shard/partition when required (more advanced, usually not primary SAA topic)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;5&lt;/em&gt;&lt;/strong&gt; Offload analytics to separate systems when needed&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Determine An Appropriate Database Engine
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;MySQL vs PostgreSQL, etc.&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Expectation:&lt;/strong&gt; &lt;em&gt;pick based on compatibility/features/organization standards rather than arguing favorites.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Choose &lt;strong&gt;MySQL/Aurora MySQL&lt;/strong&gt; when compatibility with MySQL ecosystem is needed.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Choose &lt;strong&gt;PostgreSQL/Aurora PostgreSQL&lt;/strong&gt; when advanced SQL features/extensions are needed.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Choose commercial engines (Oracle/SQL Server) when required by licensing/app constraints.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Determine An Appropriate Database Type
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Aurora vs DynamoDB&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Fast rules:&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Need &lt;strong&gt;joins/transactions/relational schema&lt;/strong&gt; → &lt;strong&gt;RDS/Aurora&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Need &lt;strong&gt;massive scale + low latency key-value/document&lt;/strong&gt; → &lt;strong&gt;DynamoDB&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Need &lt;strong&gt;sub-millisecond repeated reads&lt;/strong&gt; → add &lt;strong&gt;ElastiCache&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;DynamoDB vs RDS is a frequent exam decision point.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;E&lt;/strong&gt; |Integrate Caching To Meet Business Requirements
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Caching Options&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ElastiCache&lt;/strong&gt; for app-side caching of hot data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DAX (DynamoDB Accelerator)&lt;/strong&gt; for DynamoDB read caching (in-memory, managed)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Microsecond reads for DynamoDB queries”&lt;/em&gt; → &lt;strong&gt;DAX&lt;/strong&gt; (if DynamoDB is the DB).&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Database&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Relational, transactions, joins&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;RDS or Aurora&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High performance managed relational&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Aurora&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key-value/document, massive scale&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DynamoDB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read-heavy workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Read replicas + caching&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repeated hot reads / lower latency&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;ElastiCache&lt;/strong&gt; (or &lt;strong&gt;DAX&lt;/strong&gt; for DynamoDB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lambda too many DB connections&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;RDS Proxy&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Global low-latency reads + DR&lt;/td&gt;
&lt;td&gt;Aurora Global Database / DynamoDB Global Tables (if mentioned)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Migrate DB with minimal downtime&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AWS DMS&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] Database choice matches data model (relational vs non-relational)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] Read-heavy workloads use read scaling (read replicas) and/or caching&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Write scaling is considered (correct service + partition design if DynamoDB)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] Connection spikes are handled (RDS Proxy when appropriate)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] Capacity planning is understood at a high level (instance types, IOPS, RCUs/WCUs)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Multi-AZ is used for availability; read replicas are used for read scaling&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] Caching is integrated appropriately (ElastiCache/DAX)&lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;These are the primary AWS documents behind &lt;strong&gt;Task Statement 3.3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You do &lt;strong&gt;not&lt;/strong&gt; need to memorize them, use them to understand &lt;em&gt;how&lt;/em&gt; to Design High-Performing Database Solutions&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Database Services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html" rel="noopener noreferrer"&gt;Amazon RDS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html" rel="noopener noreferrer"&gt;Amazon Aurora&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html" rel="noopener noreferrer"&gt;Aurora Serverless v2&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html" rel="noopener noreferrer"&gt;Amazon DynamoDB&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Read Scaling, HA, and Connections
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html" rel="noopener noreferrer"&gt;RDS Read Replicas&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html" rel="noopener noreferrer"&gt;RDS Multi-AZ (concepts)&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html" rel="noopener noreferrer"&gt;Amazon RDS Proxy&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Caching
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html" rel="noopener noreferrer"&gt;ElastiCache (Redis/Memcached)&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.html" rel="noopener noreferrer"&gt;DynamoDB Accelerator (DAX)&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Migration
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html" rel="noopener noreferrer"&gt;AWS Database Migration Service (DMS)&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Capacity Planning
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html" rel="noopener noreferrer"&gt;DynamoDB Capacity Modes&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html" rel="noopener noreferrer"&gt;RDS storage options&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Design High-Performing And Elastic Compute Solutions</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Sat, 07 Feb 2026 11:19:11 +0000</pubDate>
      <link>https://dev.to/aws-builders/design-high-performing-and-elastic-compute-solutions-2h9h</link>
      <guid>https://dev.to/aws-builders/design-high-performing-and-elastic-compute-solutions-2h9h</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;⚡ Domain 3: Design High-Performing Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 3.2&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Designing High-Performing And Elastic Compute Solutions&lt;/em&gt;&lt;/strong&gt; is about choosing compute that:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Performs well&lt;/li&gt;
&lt;li&gt;Scales automatically &lt;/li&gt;
&lt;li&gt;Avoids bottlenecks by decoupling components&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Pick the compute runtime first: &lt;strong&gt;EC2 vs containers vs serverless&lt;/strong&gt;, then pick the scaling model: &lt;strong&gt;Auto Scaling vs event-based scaling&lt;/strong&gt;, then tune performance: &lt;strong&gt;instance family / memory / concurrency / batching&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | AWS Compute Services With Appropriate Use Cases
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Amazon EC2&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full control over OS/runtime&lt;/li&gt;
&lt;li&gt;Legacy apps, custom networking/agents, special drivers&lt;/li&gt;
&lt;li&gt;Predictable long-running services&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AWS Lambda&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Event-driven tasks: APIs, SQS processing, EventBridge, file processing&lt;/li&gt;
&lt;li&gt;Spiky or unpredictable traffic&lt;/li&gt;
&lt;li&gt;Minimal ops&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Amazon ECS / Amazon EKS (containers)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microservices and long-running container workloads&lt;/li&gt;
&lt;li&gt;Standardized packaging and predictable scaling&lt;/li&gt;
&lt;li&gt;When Lambda constraints don’t fit (timeouts, runtime, dependencies)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AWS Fargate (serverless containers)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Containers without managing EC2 instances&lt;/li&gt;
&lt;li&gt;Common “high-performing + elastic” answer for containerized apps&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AWS Batch&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Batch jobs, large-scale job queues, compute-intensive processing&lt;/li&gt;
&lt;li&gt;Automatically provisions compute (often EC2/Spot) to run jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Amazon EMR&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Big data processing frameworks (Spark, Hadoop)&lt;/li&gt;
&lt;li&gt;Distributed ETL / analytics workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Spark/Hadoop _→ &lt;strong&gt;EMR.&lt;/strong&gt; &lt;br&gt;
_“run 10,000 batch jobs”&lt;/em&gt; → &lt;strong&gt;Batch.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | Distributed Computing Concepts Supported By Global Infrastructure And Edge Services
&lt;/h3&gt;

&lt;p&gt;Compute performance can depend on where compute runs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-AZ architectures reduce impact of AZ failure and allow scale-out&lt;/li&gt;
&lt;li&gt;Edge services reduce latency for users&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Common Edge And Global Services&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CloudFront:&lt;/strong&gt; caching and edge delivery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Accelerator:&lt;/strong&gt; Anycast routing for TCP/UDP apps&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Queuing And Messaging Concepts (Pub/Sub)
&lt;/h3&gt;

&lt;p&gt;Queues and events are a core scaling tool because they buffer spikes.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;SQS&lt;/strong&gt;: decouple producer/consumer; scale workers on queue depth&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;SNS&lt;/strong&gt;: pub/sub fan-out&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;EventBridge&lt;/strong&gt;: event routing&lt;/p&gt;

&lt;h3&gt;
  
  
  4 | Scalability Capabilities
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;EC2 Auto Scaling And AWS Auto Scaling&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EC2 Auto Scaling&lt;/strong&gt; scales EC2 instances in an Auto Scaling Group (ASG)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Auto Scaling&lt;/strong&gt; provides scaling for multiple services (ECS, DynamoDB, Aurora replicas, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Serverless Technologies And Patterns
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Lambda And Fargate&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lambda&lt;/strong&gt; scales by concurrency and can be event-driven and bursty&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fargate&lt;/strong&gt; scales containers without managing servers and scales via ECS/EKS configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | The Orchestration Of Containers
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Amazon ECS And Amazon EKS
&lt;/h4&gt;

&lt;p&gt;Container Orchestration is how you deploy, run, scale, and heal containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ECS&lt;/strong&gt; (AWS-native) concepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cluster → Service → Tasks&lt;/li&gt;
&lt;li&gt;Task definition is the blueprint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;EKS&lt;/strong&gt; (Kubernetes) concepts: Cluster → Deployments → Pods&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If Kubernetes is not required, ECS is usually simpler.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A | Decouple Workloads So Components Can Scale Independently
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Decoupling Patterns
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;SQS between web tier and workers:&lt;/strong&gt; buffer spikes, retry, DLQ)&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;SNS fan-out&lt;/strong&gt; to multiple consumers&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;EventBridge&lt;/strong&gt; for event-driven integration&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Step Functions&lt;/strong&gt; for orchestration when coordination is needed&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Frontend&lt;/em&gt; scales with traffic, &lt;em&gt;workers&lt;/em&gt; scale with queue depth.&lt;/p&gt;




&lt;h3&gt;
  
  
  B | Identify Metrics And Conditions To Perform Scaling Actions
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Common Scaling Signals
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;CPU / memory&lt;/strong&gt; (EC2/ECS)&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Request count / target response time&lt;/strong&gt; (ALB target metrics)&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Queue depth / age of oldest message&lt;/strong&gt; (SQS-based worker scaling)&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Lambda concurrency / duration / throttles&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;Custom CloudWatch metrics&lt;/strong&gt; (business-driven scaling, e.g., “jobs waiting”)&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Select Appropriate Compute Options And Features To Meet Business Requirements
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;EC2 Instance Types&lt;/strong&gt;
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Need&lt;/th&gt;
&lt;th&gt;Common EC2 Family&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;General purpose&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;t&lt;/strong&gt;, &lt;strong&gt;m&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compute-heavy&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;c&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory-heavy&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;r&lt;/strong&gt;, &lt;strong&gt;x&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage / IOPS-heavy&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;i&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPU/ML/graphics&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;p&lt;/strong&gt;, &lt;strong&gt;g&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Other EC2 Options&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spot Instances&lt;/strong&gt; for fault-tolerant workloads (batch, stateless, flexible)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graviton (Arm)&lt;/strong&gt; for price/performance &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Select The Appropriate Resource Type And Size To Meet Business Requirements
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Lambda Memory&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Memory also affects CPU allocation.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Increase memory when execution time is too slow (often improves performance).&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Watch for throttles and concurrency limits.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Container Memory&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Right-size task/pod CPU and memory&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Scale task count rather than over-sizing single tasks (where possible)&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Compute&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Event-driven, spiky traffic, minimal ops&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Lambda&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Run containers without managing servers&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ECS on Fargate&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Must use Kubernetes&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EKS&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need OS control / legacy app&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;EC2&lt;/strong&gt; (+ Auto Scaling)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Run many batch jobs / job queue&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AWS Batch&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spark/Hadoop big data processing&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EMR&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scale workers based on backlog&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;SQS + autoscaled consumers&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need global performance improvement&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;CloudFront / Global Accelerator&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] Workload is decoupled so components can scale independently &lt;em&gt;(queues/events)&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] Compute choice matches runtime needs &lt;em&gt;(EC2 vs containers vs serverless)&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Scaling strategy is explicit (&lt;em&gt;Auto Scaling, queue-based, event-based)&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] Scaling metrics are chosen appropriately (&lt;em&gt;CPU, requests, queue depth, concurrency)&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] EC2 instances are selected by workload profile &lt;em&gt;(compute/memory/storage/GPU)&lt;/em&gt; &lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Lambda/container resources are right-sized &lt;em&gt;(memory/CPU)&lt;/em&gt; and adjusted based on performance&lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;These are the primary AWS documents behind Task Statement 3.2&lt;/p&gt;

&lt;p&gt;You do &lt;strong&gt;not&lt;/strong&gt; need to memorize them, use them to understand &lt;em&gt;how&lt;/em&gt; to &lt;strong&gt;Design High-Performing And Elastic Compute Solutions&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Compute services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html" rel="noopener noreferrer"&gt;EC2&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/welcome.html" rel="noopener noreferrer"&gt;Lambda&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html" rel="noopener noreferrer"&gt;ECS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html" rel="noopener noreferrer"&gt;EKS&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html" rel="noopener noreferrer"&gt;Fargate&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/batch/latest/userguide/what-is-batch.html" rel="noopener noreferrer"&gt;AWS Batch&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html" rel="noopener noreferrer"&gt;EMR&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Scaling
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html" rel="noopener noreferrer"&gt;EC2 Auto Scaling&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/autoscaling/plans/userguide/what-is-aws-auto-scaling.html" rel="noopener noreferrer"&gt;AWS Auto Scaling&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html" rel="noopener noreferrer"&gt;CloudWatch&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Decoupling And Messaging
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html" rel="noopener noreferrer"&gt;SQS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/sns/latest/dg/welcome.html" rel="noopener noreferrer"&gt;SNS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html" rel="noopener noreferrer"&gt;EventBridge&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Edge And Global Performance
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html" rel="noopener noreferrer"&gt;CloudFront&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html" rel="noopener noreferrer"&gt;Global Accelerator&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Determine High Performing And / Or Scalable Storage Solutions</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Fri, 06 Feb 2026 10:21:05 +0000</pubDate>
      <link>https://dev.to/aws-builders/determine-high-performing-and-or-scalable-storage-solutions-4757</link>
      <guid>https://dev.to/aws-builders/determine-high-performing-and-or-scalable-storage-solutions-4757</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;⚡ Domain 3: Design High-Performing Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 3.1&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Determining High Performing And / Or Scalable Storage Solutions&lt;/em&gt;&lt;/strong&gt; is about picking the right storage for the workload so it is:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Fast enough&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Scalable &lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Cost-appropriate&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Operationally simple&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Choose storage by &lt;strong&gt;access pattern&lt;/strong&gt; first (object/file/block), then by &lt;strong&gt;performance&lt;/strong&gt;, then by &lt;strong&gt;scale/cost&lt;/strong&gt;, then by &lt;strong&gt;hybrid needs&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | Storage Types And Their Characteristics
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Object Storage (Amazon S3)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Static assets, backups, logs, data lakes, media, artifacts&lt;/li&gt;
&lt;li&gt;Massive scale and very high durability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Characteristics:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Access via HTTP API &lt;em&gt;(not POSIX)&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Not a traditional mounted filesystem &lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Performance scales with request patterns, designed for throughput&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;File Storage (Amazon EFS)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared filesystem for multiple EC2 instances/containers&lt;/li&gt;
&lt;li&gt;Linux POSIX-style applications that need a mounted NFS filesystem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Characteristics:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Regional, multi-AZ &lt;em&gt;(designed for high availability within a Region)&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Scales automatically &lt;em&gt;(elastic capacity)&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Performance modes and throughput modes affect performance/cost&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Block Storage (Amazon EBS)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low-latency storage attached to EC2&lt;/li&gt;
&lt;li&gt;Databases or transactional workloads on EC2 (high IOPS needs)&lt;/li&gt;
&lt;li&gt;Boot volumes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Characteristics:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; A volume is attached to &lt;strong&gt;one instance at a time&lt;/strong&gt; (generally)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Choose volume type for performance (gp3/io1/io2, etc.)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Snapshots stored in S3 for durability/backup&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | Storage Services With Appropriate Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; If it’s &lt;strong&gt;object storage&lt;/strong&gt; → &lt;strong&gt;S3&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; If it’s a &lt;strong&gt;shared Linux filesystem&lt;/strong&gt; → &lt;strong&gt;EFS&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; If it’s &lt;strong&gt;single-instance low-latency disk&lt;/strong&gt;  → &lt;strong&gt;EBS&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3 | Hybrid Storage Solutions To Meet Business Requirements
&lt;/h3&gt;

&lt;p&gt;Hybrid storage matters when:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; You have &lt;strong&gt;on-prem apps&lt;/strong&gt; that need cloud storage&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; You want &lt;strong&gt;backup/archive to AWS&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; You need &lt;strong&gt;low-latency local access&lt;/strong&gt; but cloud durability/scale&lt;/p&gt;

&lt;p&gt;Common AWS hybrid options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Storage Gateway:&lt;/strong&gt; file, volume, tape gateways &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS DataSyncL&lt;/strong&gt; accelerated data transfer + scheduling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Transfer Family:&lt;/strong&gt; managed SFTP/FTPS into S3/EFS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Snowball/Snowcone:&lt;/strong&gt; large offline migrations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Determine Storage Services And Configurations That Meet Performance Demands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Performance drivers you should recognize
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Latency:&lt;/strong&gt; how fast a single read/write completes&lt;br&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;IOPS:&lt;/strong&gt; how many small operations per second (common for DB workloads)&lt;br&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Throughput:&lt;/strong&gt; MB/s or GB/s (common for streaming, big files, analytics)&lt;br&gt;&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Concurrency:&lt;/strong&gt; many clients at once (file shares, web apps, microservices)&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Patterns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“Database on EC2 needs high IOPS” → &lt;strong&gt;EBS io2/io1&lt;/strong&gt; (or gp3 with provisioned IOPS if suitable)&lt;/li&gt;
&lt;li&gt;“Many instances need shared access to same files” → &lt;strong&gt;EFS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;“Static assets globally distributed” → &lt;strong&gt;S3 + CloudFront&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;“Very large objects / backup storage” → &lt;strong&gt;S3&lt;/strong&gt; (possibly lifecycle to Glacier)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Determine Storage Services That Can Scale To Accommodate Future Needs
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;S3&lt;/strong&gt;: essentially unlimited scale for objects&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;EFS&lt;/strong&gt;: elastically scales capacity automatically&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;EBS&lt;/strong&gt;: can modify volumes (size/type) but still tied to EC2 and AZ&lt;/p&gt;

&lt;p&gt;“Expect rapid data growth” → S3/EFS are typical answers because scaling is built in.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Storage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Store and retrieve any amount of unstructured data&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shared filesystem for many Linux servers&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EFS&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lowest-latency disk for EC2 instance&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EBS&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High IOPS for database on EC2&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;EBS io2/io1&lt;/strong&gt; (or tuned gp3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Static content served globally&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 + CloudFront&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-prem apps need cloud-backed storage&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Storage Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fast recurring data transfer to AWS&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;DataSync&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SFTP uploads into AWS storage&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Transfer Family → S3/EFS&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;[ ] I can choose &lt;strong&gt;object vs file vs block&lt;/strong&gt; storage based on access pattern
&lt;/li&gt;
&lt;li&gt;[ ] I know when to use &lt;strong&gt;S3&lt;/strong&gt;, &lt;strong&gt;EFS&lt;/strong&gt;, and &lt;strong&gt;EBS&lt;/strong&gt; (and why)
&lt;/li&gt;
&lt;li&gt;[ ] I can match performance needs to storage configuration (IOPS vs throughput vs latency)
&lt;/li&gt;
&lt;li&gt;[ ] I can identify when &lt;strong&gt;hybrid storage&lt;/strong&gt; is required (Storage Gateway / DataSync / Transfer Family)
&lt;/li&gt;
&lt;li&gt;[ ] I choose services that scale with growth (S3/EFS) without major redesign
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;These are the &lt;strong&gt;primary AWS documents&lt;/strong&gt; behind &lt;strong&gt;Task Statement 3.1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You do &lt;strong&gt;not&lt;/strong&gt; need to memorize them, use them to understand &lt;em&gt;how&lt;/em&gt; to determine high performing and scalable storage solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core storage services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html" rel="noopener noreferrer"&gt;Amazon S3&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html" rel="noopener noreferrer"&gt;Amazon EFS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html" rel="noopener noreferrer"&gt;Amazon EBS  &lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html" rel="noopener noreferrer"&gt;EBS volume types&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hybrid storage and transfer
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/storagegateway/latest/userguide/WhatIsStorageGateway.html" rel="noopener noreferrer"&gt;AWS Storage Gateway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html" rel="noopener noreferrer"&gt;AWS DataSync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html" rel="noopener noreferrer"&gt;AWS Transfer Family&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Performance At The Edge (common pairing with S3)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html" rel="noopener noreferrer"&gt;Amazon CloudFront&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Design Highly Available And / Or Fault-Tolerant Architectures</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Thu, 05 Feb 2026 08:04:54 +0000</pubDate>
      <link>https://dev.to/aws-builders/design-highly-available-and-or-fault-tolerant-architectures-1eb5</link>
      <guid>https://dev.to/aws-builders/design-highly-available-and-or-fault-tolerant-architectures-1eb5</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;🧱 Domain 2: Design Resilient Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 2.2&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Designing Highly Available And Fault Tolerant Architectures&lt;/em&gt;&lt;/strong&gt; is about keeping workloads running &lt;strong&gt;despite failures&lt;/strong&gt;.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High Availability (HA):&lt;/strong&gt; the system stays up through component failures
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fault Tolerance (FT):&lt;/strong&gt; the system continues operating with &lt;em&gt;no interruption&lt;/em&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Highly Available&lt;/em&gt; usually means &lt;strong&gt;Multi-AZ + load balancing + managed services + no single points of failure&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; |  AWS Global Infrastructure
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AZs, Regions, Route 53&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Availability Zones (AZs):&lt;/strong&gt; isolated failure domains within a Region&lt;br&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Regions:&lt;/strong&gt; separate geographic areas for disaster recovery&lt;br&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Amazon Route 53:&lt;/strong&gt; DNS-based routing and health checks (common for regional failover)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Must survive an AZ failure”&lt;/em&gt; → &lt;strong&gt;Multi-AZ design.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;“Must survive a regional outage”&lt;/em&gt; → &lt;strong&gt;Multi-region DR + Route 53&lt;/strong&gt; failover.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | AWS Managed Services With Appropriate Use Cases
&lt;/h3&gt;

&lt;p&gt;This bullet exists because managed services often include built-in HA scaling and reduce your operational risk.&lt;/p&gt;

&lt;p&gt;Even if services like &lt;strong&gt;Comprehend&lt;/strong&gt; or &lt;strong&gt;Polly&lt;/strong&gt; aren’t HA topics by themselves, the exam tests the principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Prefer managed services when you want higher reliability with less custom work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Basic Networking Concepts
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Route Tables&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;HA and FT depend on correct routing:&lt;br&gt;
&lt;em&gt;1&lt;/em&gt; Public subnets route to an &lt;strong&gt;Internet Gateway (IGW)&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; Private subnets may route outbound via &lt;strong&gt;NAT Gateway&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; Multi-AZ designs require correct subnet/routing per AZ&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | Disaster Recovery Strategies
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;RPO/RTO, backup-restore, pilot light, warm standby, active-active&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Know these by &lt;strong&gt;cost vs recovery speed&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;DR strategy&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;Typical RTO/RPO&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backup &amp;amp; Restore&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;restore from backups into a new environment&lt;/td&gt;
&lt;td&gt;Slow RTO, higher RPO&lt;/td&gt;
&lt;td&gt;Lowest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pilot Light&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;minimal core services running (e.g., DB + minimal infra)&lt;/td&gt;
&lt;td&gt;Medium RTO, medium RPO&lt;/td&gt;
&lt;td&gt;Low–Medium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Warm Standby&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;scaled-down but fully functional stack always running&lt;/td&gt;
&lt;td&gt;Faster RTO, low RPO&lt;/td&gt;
&lt;td&gt;Medium–High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Active-Active&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;both Regions serve traffic&lt;/td&gt;
&lt;td&gt;Lowest RTO/RPO&lt;/td&gt;
&lt;td&gt;Highest&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;If RTO/RPO are strict, the answer moves toward &lt;strong&gt;warm standby / active-active&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Distributed Design Patterns
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Common Resilience Patterns
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Retry with backoff:&lt;/strong&gt; avoid thundering herd&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Timeouts:&lt;/strong&gt; prevent resource exhaustion&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Circuit breaker / bulkhead:&lt;/strong&gt; limit cascade failures&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Queue-based load leveling:&lt;/strong&gt; SQS&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;Idempotency"&lt;/strong&gt; safe retries&lt;br&gt;
&lt;em&gt;6&lt;/em&gt; &lt;strong&gt;Multi-AZ deployment:&lt;/strong&gt; for every critical tier&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | Failover Strategies
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Ways Failover Happens On AWS
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Load balancer failover&lt;/strong&gt; across targets in multiple AZs within a Region&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Database failover:&lt;/strong&gt; RDS Multi-AZ&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;DNS failover:&lt;/strong&gt; Route 53 health checks across Regions&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Client-side failover:&lt;/strong&gt; apps try secondary endpoints&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Fail over between Regions”&lt;/em&gt; → &lt;strong&gt;Route 53 failover routing (or latency-based + health checks).&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7 | Immutable Infrastructure
&lt;/h3&gt;

&lt;p&gt;Immutable means you don’t patch servers in place, you replace them:&lt;br&gt;
&lt;em&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/em&gt; Build a new AMI/container image&lt;br&gt;
&lt;em&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/em&gt; Deploy new instances/tasks&lt;br&gt;
&lt;em&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/em&gt; Terminate old ones&lt;/p&gt;

&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consistency&lt;/li&gt;
&lt;li&gt;Faster recovery&lt;/li&gt;
&lt;li&gt;Lower configuration drift&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Ensure infrastructure integrity and repeatability”&lt;/em&gt; → &lt;strong&gt;IaC + immutable deployments.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;8&lt;/strong&gt; | Load Balancing Concepts
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Application Load Balancer&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;ALB spreads traffic across targets in &lt;strong&gt;multiple AZs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Helps remove single-instance failure as a SPOF&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;9&lt;/strong&gt; | Proxy Concepts
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Amazon RDS Proxy&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;RDS Proxy helps reliability especially for spiky/serverless workloads by:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Pooling and reusing DB connections&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Reducing DB overload due to connection storms&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Improving failover behavior for some patterns&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Lambda causes too many DB connections”&lt;/em&gt; → &lt;strong&gt;RDS Proxy.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;10&lt;/strong&gt; | Service Quotas And Throttling
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Standby Environments&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In DR scenarios, your standby Region or account must have enough quota to scale up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Know that you can:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check and adjust &lt;strong&gt;Service Quotas&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Design for throttling with retries or backoff and buffering&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;11&lt;/strong&gt; | Storage Options And Characteristics
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Durability And Replication&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Storage durability affects architecture choices:&lt;br&gt;
&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;S3&lt;/strong&gt; is highly durable and regional with options like versioning and replication&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;EBS&lt;/strong&gt; is replicated within an AZ and you can send snapshots to S3 for durability&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;EFS&lt;/strong&gt; is regional and multi-AZ within a Region&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;12&lt;/strong&gt; | Workload Visibility
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AWS X-Ray&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Visibility supports HA by helping you detect and diagnose failures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CloudWatch metrics/alarms&lt;/strong&gt; for health and scaling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;X-Ray&lt;/strong&gt; for tracing distributed requests and finding bottlenecks&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Determine Automation Strategies To Ensure Infrastructure Integrity
&lt;/h3&gt;

&lt;p&gt;Look for:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Infrastructure as Code (CloudFormation/CDK/Terraform)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Automated deployments (blue/green, rolling)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Auto Scaling + health checks&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Automated recovery actions (replace unhealthy instances/tasks)&lt;/p&gt;

&lt;h3&gt;
  
  
  B | Determine Services Required For HA/FT Across Regions or AZs
&lt;/h3&gt;

&lt;p&gt;Common choices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-AZ:&lt;/strong&gt; ALB + Auto Scaling + Multi-AZ database (RDS Multi-AZ)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-region:&lt;/strong&gt; Route 53 + replicated data + standby/active environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“AZ outage must not cause downtime”&lt;/em&gt; → &lt;strong&gt;Multi-AZ everything.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  C | Identify Metrics Based On Business Requirements
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Tie Monitoring To User-Impacting KPIs:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Availability / error rate (5xx)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Latency p95/p99&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Queue depth / age (SQS)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; CPU/memory/connections (compute/DB)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;5&lt;/em&gt;&lt;/strong&gt; RPO/RTO compliance signals (backup success, replication lag)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Implement Designs To Mitigate Single Points Of Failure
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Remove Single Points of Failure
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Multi-AZ deployments&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Redundant NAT Gateways (one per AZ for best practice)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Multi-AZ databases&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Avoid single instance “pet” servers&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;E&lt;/strong&gt; | Ensure Durability And Availability Of Data
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Backups&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Automated backups (RDS)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Snapshots (EBS, RDS)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; S3 versioning + replication where required&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; AWS Backup policies when asked for centralized backup&lt;/p&gt;

&lt;h3&gt;
  
  
  F | Select An Appropriate DR Strategy To Meet Business Requirements
&lt;/h3&gt;

&lt;p&gt;Use RTO/RPO to pick:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Backup/Restore (cheap, slow)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Pilot Light (medium)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Warm Standby (faster)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Active-Active (fastest, expensive)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;G&lt;/strong&gt; | Improve Reliability Of Legacy Apps
&lt;/h3&gt;

&lt;h4&gt;
  
  
  When app changes are not possible, use infrastructure patterns:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Put app behind &lt;strong&gt;ALB&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Use &lt;strong&gt;Auto Scaling&lt;/strong&gt; groups to replace failed instances&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Use &lt;strong&gt;RDS Proxy&lt;/strong&gt; to stabilize DB connections&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; Use caching to reduce backend load&lt;br&gt;
&lt;strong&gt;&lt;em&gt;5&lt;/em&gt;&lt;/strong&gt; Use DNS failover (Route 53) for regional DR&lt;/p&gt;

&lt;h3&gt;
  
  
  H | Use Purpose-Built AWS Services
&lt;/h3&gt;

&lt;p&gt;Use managed services to reduce failure modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ALB, Auto Scaling, Route 53&lt;/li&gt;
&lt;li&gt;RDS Multi-AZ, DynamoDB (managed HA)&lt;/li&gt;
&lt;li&gt;SQS/SNS for decoupling spikes and failures&lt;/li&gt;
&lt;li&gt;CloudFront for edge caching and origin protection&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Survive an instance failure&lt;/td&gt;
&lt;td&gt;Auto Scaling + health checks + ALB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Survive an AZ failure&lt;/td&gt;
&lt;td&gt;Multi-AZ for each tier (ALB targets across AZs, Multi-AZ DB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Survive a Region failure&lt;/td&gt;
&lt;td&gt;DR strategy + Route 53 failover + replicated data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strict RTO/RPO&lt;/td&gt;
&lt;td&gt;Warm standby or active-active&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lambda overwhelms RDS with connections&lt;/td&gt;
&lt;td&gt;RDS Proxy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need to see bottlenecks across microservices&lt;/td&gt;
&lt;td&gt;X-Ray (plus CloudWatch)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Standby must scale during failover&lt;/td&gt;
&lt;td&gt;Plan Service Quotas + scaling policies&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] Every critical tier is deployed &lt;strong&gt;across multiple AZs&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] Traffic is distributed via &lt;strong&gt;ALB/NLB&lt;/strong&gt; and unhealthy targets are replaced automatically&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Databases use HA features (e.g., &lt;strong&gt;RDS Multi-AZ&lt;/strong&gt; or managed HA services)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] DR strategy matches business &lt;strong&gt;RTO/RPO&lt;/strong&gt; (backup/restore vs pilot light vs warm standby vs active-active)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] Regional failover uses &lt;strong&gt;Route 53&lt;/strong&gt; health checks/routing (when required)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Data durability is addressed (backups, snapshots, replication)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] Quotas and throttling are considered for failover/standby scaling&lt;br&gt;&lt;br&gt;
&lt;strong&gt;8.&lt;/strong&gt; [ ] Monitoring and tracing exist (CloudWatch + &lt;strong&gt;X-Ray&lt;/strong&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;These are the &lt;strong&gt;primary AWS documents&lt;/strong&gt; behind &lt;strong&gt;Task Statement 2.2.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You do &lt;strong&gt;not&lt;/strong&gt; need to memorize them, use them to understand &lt;em&gt;why&lt;/em&gt; highly available and fault tolerant architectures work the way they do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Global Infrastructure and DNS
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html" rel="noopener noreferrer"&gt;Route 53&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-workloads-on-aws.html" rel="noopener noreferrer"&gt;Disaster Recovery on AWS &lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Networking Foundations
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html" rel="noopener noreferrer"&gt;VPC Route Tables&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Load Balancing and Reliability
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html" rel="noopener noreferrer"&gt;Application Load Balancer&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html" rel="noopener noreferrer"&gt;Auto Scaling (EC2)&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Database Reliability
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html" rel="noopener noreferrer"&gt;RDS Multi-AZ&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html" rel="noopener noreferrer"&gt;RDS Proxy&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quotas and Limits
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html" rel="noopener noreferrer"&gt;Service Quotas&lt;/a&gt;   &lt;/p&gt;

&lt;h3&gt;
  
  
  Storage Durability / Replication
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html" rel="noopener noreferrer"&gt;S3 Replication&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html" rel="noopener noreferrer"&gt;EBS Snapshots&lt;/a&gt;:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html" rel="noopener noreferrer"&gt;EFS Overview&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Visibility
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html" rel="noopener noreferrer"&gt;AWS X-Ray&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.htm" rel="noopener noreferrer"&gt;CloudWatch&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Managed AI Services (examples from blueprint)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html" rel="noopener noreferrer"&gt;Amazon Comprehend&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html" rel="noopener noreferrer"&gt;Amazon Polly&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Design Scalable And Loosely Coupled Architectures</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Wed, 04 Feb 2026 08:24:32 +0000</pubDate>
      <link>https://dev.to/aws-builders/design-scalable-and-loosely-coupled-architectures-5m7</link>
      <guid>https://dev.to/aws-builders/design-scalable-and-loosely-coupled-architectures-5m7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;🧱 Domain 2: Design Resilient Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 2.1&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Designing Scalable And Loosely Coupled Architectures&lt;/em&gt;&lt;/strong&gt; is about building systems that can:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Scale up and down&lt;/strong&gt; with demand&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Keep working&lt;/strong&gt; when a component fails&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Avoid tight dependencies&lt;/strong&gt; so changes and failures don’t cascade&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Loose coupling&lt;/strong&gt; reduces blast radius.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Scaling&lt;/strong&gt; reduces bottlenecks.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Managed services&lt;/strong&gt; reduce operational burden.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | API Creation And Management
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;API Gateway And REST API&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Amazon API Gateway&lt;/strong&gt; is commonly used to:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Create REST/HTTP APIs for backend services&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Front &lt;strong&gt;Lambda&lt;/strong&gt; or private services&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Handle auth, throttling, caching, request validation, and stages&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Need a managed API front door with throttling/auth”&lt;/em&gt; → &lt;strong&gt;API Gateway.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | Managed Services With Appropriate Use Cases
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;SQS, Transfer Family, Secrets Manager&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;The exam likes &lt;em&gt;“use a managed service instead of building it.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Amazon SQS&lt;/strong&gt;: decouple services, buffer traffic spikes, async processing&lt;br&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;AWS Transfer Family&lt;/strong&gt;: managed SFTP/FTPS/FTP into S3/EFS (file ingestion)&lt;br&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;AWS Secrets Manager&lt;/strong&gt;: store + rotate secrets &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Caching Strategies
&lt;/h3&gt;

&lt;p&gt;Caching improves performance and reduces load on databases/backends.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;CloudFront&lt;/strong&gt;: cache content at the edge (static + dynamic with rules)&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;ElastiCache (Redis/Memcached)&lt;/strong&gt;: app/data caching, sessions, leaderboards&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;API Gateway caching&lt;/strong&gt;: cache API responses &lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Reduce DB reads / improve latency for repeated requests”&lt;/em&gt; → &lt;strong&gt;caching&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | Microservices Design Principles
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Stateless vs Stateful&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stateless compute scales horizontally&lt;/strong&gt; &lt;em&gt;(add more instances/tasks)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State lives in managed services&lt;/strong&gt; &lt;em&gt;(databases, caches, object storage)&lt;/em&gt;
Examples:&lt;/li&gt;
&lt;li&gt;ECS tasks and Lambda functions should not depend on local disk for important state&lt;/li&gt;
&lt;li&gt;Store files in &lt;strong&gt;S3&lt;/strong&gt;, shared files in &lt;strong&gt;EFS&lt;/strong&gt;, sessions in &lt;strong&gt;Redis&lt;/strong&gt; if needed&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Event-Driven Architectures
&lt;/h3&gt;

&lt;p&gt;Event-driven design improves decoupling and resilience.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;EventBridge&lt;/strong&gt; for event bus/routing&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;SNS&lt;/strong&gt; for pub/sub fan-out&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;SQS&lt;/strong&gt; for queues and buffering&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Lambda&lt;/strong&gt; for consumers&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Multiple consumers need the same event”&lt;/em&gt; → &lt;strong&gt;SNS fan-out&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | Horizontal Scaling vs Vertical Scaling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Horizontal scaling&lt;/strong&gt;: add more instances/tasks (preferred for resilience)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vertical scaling&lt;/strong&gt;: make one server bigger (simple, but has limits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Need high availability and elasticity”&lt;/em&gt;→ &lt;strong&gt;horizontal scaling + load balancing + managed services.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;7&lt;/strong&gt; | Edge Accelerators
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;CDN use&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CloudFront&lt;/strong&gt; reduces latency and protects origins (caching, TLS termination, WAF integration)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Accelerator&lt;/strong&gt; improves performance for TCP/UDP apps via Anycast routing&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;8&lt;/strong&gt; | How To Migrate Apps Into Containers
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;When Containers Are A Fit:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You need portability, consistent runtime, or microservices packaging&lt;/li&gt;
&lt;li&gt;You want controlled scaling without managing servers (Fargate)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Main options:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon ECS&lt;/strong&gt;: simpler AWS-native container orchestration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon EKS&lt;/strong&gt;: Kubernetes-managed control plane&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;9&lt;/strong&gt; | Load Balancing Concepts
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Application Load Balancer
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ALB (Application Load Balancer)&lt;/strong&gt;: HTTP/HTTPS, path-based routing, host-based routing&lt;/li&gt;
&lt;li&gt;Scales horizontally and improves availability by spreading traffic&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;10&lt;/strong&gt; | Multi-tier Architectures
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Classic Tiers:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Presentation:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CloudFront&lt;/li&gt;
&lt;li&gt;ALB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Application:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2&lt;/li&gt;
&lt;li&gt;ECS&lt;/li&gt;
&lt;li&gt;EKS&lt;/li&gt;
&lt;li&gt;Lambda&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Data:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RDS&lt;/li&gt;
&lt;li&gt;DynamoDB&lt;/li&gt;
&lt;li&gt;ElastiCache&lt;/li&gt;
&lt;li&gt;S3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Separate web/app/db tiers”&lt;/em&gt; → &lt;strong&gt;multi-tier in private subnets with scaling where needed.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;11&lt;/strong&gt; | Queuing and Messaging Concepts
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Key Distinctions:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SQS&lt;/strong&gt;: queue (point-to-point), buffering, retries, DLQs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SNS&lt;/strong&gt;: publish/subscribe (fan-out), multiple subscribers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SNS → SQS&lt;/strong&gt; for fan-out + durability per consumer&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;12&lt;/strong&gt; | Serverless Technologies And Patterns
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Lambda And Fargate&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Serverless means “no servers to manage,” and scaling is built in.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Lambda&lt;/strong&gt;: event-driven compute, short-running, scales automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Fargate&lt;/strong&gt;: serverless containers as in, you run tasks and services without managing EC2&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;13&lt;/strong&gt; | Storage Types And Characteristics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Object (S3):&lt;/strong&gt; durable, cheap, great for static assets, logs, backups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File (EFS):&lt;/strong&gt; shared POSIX file system for multiple instances&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block (EBS):&lt;/strong&gt; low-latency block storage attached to one EC2 instance (per volume)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;14&lt;/strong&gt; | The Orchestration of Containers
&lt;/h3&gt;

&lt;p&gt;Container orchestration is how you &lt;strong&gt;deploy, run, scale, and heal containers&lt;/strong&gt; across compute capacity without manually managing container placement.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;What Orchestration Solves&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Scheduling containers onto capacity&lt;/li&gt;
&lt;li&gt;Horizontal scaling (more tasks/pods)&lt;/li&gt;
&lt;li&gt;Self-healing (replace failed containers)&lt;/li&gt;
&lt;li&gt;Rolling deployments&lt;/li&gt;
&lt;li&gt;Load balancing integration&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Amazon ECS (Elastic Container Service)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;AWS-native orchestrator. You run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Task definitions:&lt;/strong&gt; blueprints&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tasks:&lt;/strong&gt; running copies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Services:&lt;/strong&gt; keep desired task count running, integrate with ALB&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Capacity Choices:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ECS on Fargate:&lt;/strong&gt; serverless containers therefore minimal ops&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ECS on EC2:&lt;/strong&gt; you manage instances therefore more control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;If the problem doesn’t require Kubernetes, &lt;strong&gt;ECS (often on Fargate)&lt;/strong&gt; is usually the simplest correct answer.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Amazon EKS (Elastic Kubernetes Service)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Managed Kubernetes. You run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pods:&lt;/strong&gt; smallest deployable unit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployments:&lt;/strong&gt; replicas + rolling updates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Services/Ingress:&lt;/strong&gt; expose workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Worker Capacity:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Managed node groups (EC2) or &lt;strong&gt;EKS on Fargate&lt;/strong&gt; for pods (where suitable)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If the question explicitly says &lt;strong&gt;Kubernetes&lt;/strong&gt;, standardization across clouds, or Kubernetes tooling&lt;/em&gt; → &lt;strong&gt;EKS&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;15&lt;/strong&gt; | When To Use Read Replicas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You have &lt;strong&gt;read-heavy workloads&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You want to offload reads from the primary database instance&lt;/li&gt;
&lt;li&gt;You can tolerate eventual consistency on replica reads&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  16 | Workflow Orchestration
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Step Functions&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Step Functions is used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Orchestrate multi-step workflows (retries, timeouts, branching)&lt;/li&gt;
&lt;li&gt;Coordinate microservices without building a custom state machine&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Design Event-Driven, Microservice, And/Or Multi-tier Architectures
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Pick Based On Requirements:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Monolith → multi-tier&lt;/strong&gt;: simplest scaling boundaries, common for web apps&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Microservices&lt;/strong&gt;: independent deploy and scale per service&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Event-driven&lt;/strong&gt;: best for decoupling, async workflows, variable traffic&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Must decouple producers and consumers”&lt;/em&gt; → &lt;strong&gt;events/queues.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Determine Scaling Strategies For Architecture Components
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Typical Scaling Choices&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; ALB + Auto Scaling for EC2&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; ECS Service Auto Scaling (tasks)&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Lambda concurrency scaling&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; DB scaling: read replicas, caching, sharding patterns&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Determine Services Required To Achieve Loose Coupling
&lt;/h3&gt;

&lt;p&gt;Loose coupling toolkit:&lt;br&gt;
&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;SQS:&lt;/strong&gt; buffer + retry + DLQ&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;SNS:&lt;/strong&gt; fan-out&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;EventBridge:&lt;/strong&gt; event routing&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Step Functions:&lt;/strong&gt; workflow + retries/timeouts&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;S3:&lt;/strong&gt; durable handoff pattern: “drop file, trigger event”&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Determine When To Use Containers
&lt;/h3&gt;

&lt;p&gt;Containers are a good answer when:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; You need custom runtimes or dependencies&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; You want microservices packaging with predictable scaling&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; You want long-running services (vs Lambda time limits)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;E&lt;/strong&gt; | Determine When To Use Serverless Technologies And Patterns
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Serverless Is A Good Answer
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; Event-driven workloads&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; Spiky/unknown traffic&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Want minimal ops and fast scaling&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; You can fit within service constraints (timeouts, cold starts, etc.)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;F&lt;/strong&gt; | Recommend Compute, Storage, Networking, And Database Technologies
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Compute:&lt;/strong&gt; Lambda vs ECS/Fargate vs EC2&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Storage:&lt;/strong&gt; S3 vs EFS vs EBS&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Data:&lt;/strong&gt; DynamoDB vs RDS (relational needs)&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Network entry:&lt;/strong&gt; CloudFront/ALB/API Gateway&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;G&lt;/strong&gt; | Use Purpose-Built AWS Services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1&lt;/em&gt;&lt;/strong&gt; SQS for queues, SNS for pub/sub&lt;br&gt;
&lt;strong&gt;&lt;em&gt;2&lt;/em&gt;&lt;/strong&gt; API Gateway for managed API&lt;br&gt;
&lt;strong&gt;&lt;em&gt;3&lt;/em&gt;&lt;/strong&gt; Step Functions for orchestration&lt;br&gt;
&lt;strong&gt;&lt;em&gt;4&lt;/em&gt;&lt;/strong&gt; ElastiCache for caching&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Choice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Need to buffer spikes / decouple services&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;SQS&lt;/strong&gt; (+ DLQ)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fan-out to multiple consumers”&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;SNS → multiple SQS&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Route events to different targets&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;EventBridge&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Managed API front door&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;API Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP path-based routing to services&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ALB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Global caching and lower latency&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;CloudFront&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Orchestrate steps with retries/timeouts&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Step Functions&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spiky events, minimal ops&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Lambda&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Containerized microservices without servers&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ECS on Fargate&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read-heavy database workload&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;RDS read replicas&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Store files durably and cheaply&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;If you can explain these ideas in simple terms, you’re in good shape for &lt;strong&gt;Task Statement 2.1&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] Compute is designed to be &lt;strong&gt;stateless&lt;/strong&gt; so it can scale horizontally&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] Traffic is distributed using &lt;strong&gt;ALB/API Gateway&lt;/strong&gt; where appropriate&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Spikes and failures are absorbed using &lt;strong&gt;queues/streams&lt;/strong&gt; (often SQS)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] Services are loosely coupled (async messaging, events, durable handoffs)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] Caching is used to reduce latency and backend load (CloudFront/ElastiCache)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Storage choice matches the need (S3 object vs EFS file vs EBS block)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] Databases scale reads with &lt;strong&gt;read replicas&lt;/strong&gt; when needed&lt;br&gt;&lt;br&gt;
&lt;strong&gt;8.&lt;/strong&gt; [ ] Workflows are orchestrated with &lt;strong&gt;Step Functions&lt;/strong&gt; when coordination is required&lt;br&gt;&lt;br&gt;
&lt;strong&gt;9.&lt;/strong&gt; [ ] Containers/serverless are chosen based on runtime + ops + scaling requirements  &lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;These are the &lt;strong&gt;primary AWS documents&lt;/strong&gt; behind &lt;strong&gt;Task Statement 2.1.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You do &lt;strong&gt;not&lt;/strong&gt; need to memorize them, use them to understand &lt;em&gt;why&lt;/em&gt; scalable and loosely coupled architectures work the way they do.&lt;/p&gt;

&lt;h3&gt;
  
  
  APIs and Integration
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html" rel="noopener noreferrer"&gt;API Gateway&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html" rel="noopener noreferrer"&gt;Step Functions&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html" rel="noopener noreferrer"&gt;EventBridge&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/sns/latest/dg/welcome.html" rel="noopener noreferrer"&gt;SNS&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html" rel="noopener noreferrer"&gt;SQS&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Load Balancing and Edge
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html" rel="noopener noreferrer"&gt;Application Load Balancer (ALB)&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html" rel="noopener noreferrer"&gt;CloudFront&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html" rel="noopener noreferrer"&gt;Global Accelerator&lt;/a&gt;   &lt;/p&gt;

&lt;h3&gt;
  
  
  Compute (Serverless and Containers)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/welcome.html" rel="noopener noreferrer"&gt;Lambda&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html" rel="noopener noreferrer"&gt;ECS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html" rel="noopener noreferrer"&gt;Fargate&lt;/a&gt; &lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html" rel="noopener noreferrer"&gt;EKS&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Storage and Databases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html" rel="noopener noreferrer"&gt;S3&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html" rel="noopener noreferrer"&gt;EBS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html" rel="noopener noreferrer"&gt;EFS&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html" rel="noopener noreferrer"&gt;RDS read replicas&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Managed Services Mentioned
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html" rel="noopener noreferrer"&gt;AWS Transfer Family&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html" rel="noopener noreferrer"&gt;AWS Secrets Manager&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html" rel="noopener noreferrer"&gt;ElastiCache (Redis)&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Determine Appropriate Data Security Controls</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Tue, 03 Feb 2026 08:11:24 +0000</pubDate>
      <link>https://dev.to/aws-builders/determine-appropriate-data-security-controls-3e45</link>
      <guid>https://dev.to/aws-builders/determine-appropriate-data-security-controls-3e45</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;🛡️ Domain 1: Design Secure Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 1.3&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Determining appropriate data security controls&lt;/em&gt;&lt;/strong&gt; is about protecting data through its full lifecycle:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Who can access it (governance)&lt;/li&gt;
&lt;li&gt;How it’s classified and retained&lt;/li&gt;
&lt;li&gt;How it’s encrypted (at rest + in transit)&lt;/li&gt;
&lt;li&gt;How keys/certificates are managed and rotated&lt;/li&gt;
&lt;li&gt;How data is backed up, replicated, and recovered&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Secure Data Design Questions You Should Be Able To Answer&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;What data is this (classification)?&lt;/strong&gt; Public, internal, confidential, regulated (PII/PHI/PCI).&lt;br&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Where does it live?&lt;/strong&gt; S3, EBS, RDS, DynamoDB, EFS, backups, logs, analytics.&lt;br&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Who can access it?&lt;/strong&gt; Which roles/accounts/services? How is access audited?&lt;br&gt;&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;How is it protected at rest?&lt;/strong&gt; Encryption + key policy + separation of duties.&lt;br&gt;&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;How is it protected in transit?&lt;/strong&gt; TLS, private connectivity, certificate management.&lt;br&gt;&lt;br&gt;
&lt;em&gt;6&lt;/em&gt; &lt;strong&gt;How do we recover it?&lt;/strong&gt; Backups, replication, DR strategy (RPO/RTO).&lt;br&gt;&lt;br&gt;
&lt;em&gt;7&lt;/em&gt; &lt;strong&gt;How long do we keep it?&lt;/strong&gt; Retention, lifecycle policies, legal hold, deletion strategy.&lt;/p&gt;




&lt;h2&gt;
  
  
  Knowledge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | Data Access And Governance
&lt;/h3&gt;

&lt;p&gt;Data governance on AWS usually means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strong &lt;strong&gt;IAM&lt;/strong&gt; controls &lt;em&gt;(least privilege)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Resource policies &lt;em&gt;(e.g., S3 bucket policies)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Central guardrails &lt;em&gt;(e.g., Organizations and SCPs in multi-account)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Visibility and auditing &lt;em&gt;(CloudTrail, S3 access logs, AWS Config)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Prevent unintended public exposure”&lt;/em&gt; → tighten resource policies + block public access + least privilege.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | Data Recovery
&lt;/h3&gt;

&lt;p&gt;Recovery is about meeting &lt;strong&gt;RPO/RTO&lt;/strong&gt; and surviving failures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backups:&lt;/strong&gt; point-in-time restore, snapshots&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replication:&lt;/strong&gt; same region or cross-region&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DR patterns:&lt;/strong&gt; pilot light, warm standby, multi-site&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Need cross-region recovery”&lt;/em&gt; → replication + cross-region backups&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Data Retention And Classification
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Keep data only as long as needed (compliance + cost)&lt;/li&gt;
&lt;li&gt;Classify data and apply different controls based on sensitivity&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Common AWS Tools And Patterns&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;S3 lifecycle policies:&lt;/strong&gt; transition to IA/Glacier, expire objects&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;S3 Object Lock:&lt;/strong&gt; WORM retention for compliance&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Macie:&lt;/strong&gt; to discover PII in S3 and helps classification efforts&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | Encryption And Appropriate Key Management
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;AWS-owned keys:&lt;/strong&gt; AWS manages everything, limited control for you&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;AWS-managed keys:&lt;/strong&gt;  &lt;code&gt;aws/s3&lt;/code&gt;, &lt;code&gt;aws/rds&lt;/code&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Customer-managed KMS keys (CMKs):&lt;/strong&gt; most control for you such as key policies, rotation and grants&lt;/p&gt;

&lt;p&gt;Encryption is not just “turn it on”, it’s &lt;strong&gt;who controls the keys&lt;/strong&gt; and &lt;strong&gt;who can use them&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A | Align AWS Technologies To Meet Compliance Requirements
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Typical Compliance Driven Controls&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Encryption at rest + in transit&lt;/li&gt;
&lt;li&gt;Strong retention and immutability (WORM)&lt;/li&gt;
&lt;li&gt;Auditability and access logging&lt;/li&gt;
&lt;li&gt;Key separation of duties such as the security team manages keys and app team uses keys&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Regulated data”&lt;/em&gt; → customer-managed KMS keys, tight key policies, strong logging, retention controls.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Encrypt Data At Rest
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AWS Key Management Service (AWS KMS)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Common “Encryption At Rest” Mappings:&lt;br&gt;
&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;S3&lt;/strong&gt;: SSE-KMS or SSE-S3 depending on requirement&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;EBS&lt;/strong&gt;: encrypted volumes + snapshot encryption&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;RDS/Aurora&lt;/strong&gt;: enable encryption (KMS) at creation time&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;DynamoDB&lt;/strong&gt;: encryption at rest by default; can use CMKs&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;EFS&lt;/strong&gt;: encryption at rest with KMS&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Need control over key usage / audit / rotation”&lt;/em&gt; → &lt;strong&gt;SSE-KMS with customer-managed key&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  C | Encrypt Data In Transit
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;ACM using TLS&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;TLS&lt;/strong&gt; for all client-to-service and service-to-service communication&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;AWS Certificate Manager (ACM)&lt;/strong&gt; to provision/manage certificates for:

&lt;ul&gt;
&lt;li&gt;ALB / NLB (TLS listeners)&lt;/li&gt;
&lt;li&gt;CloudFront&lt;/li&gt;
&lt;li&gt;API Gateway (custom domains)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Manage and renew certs automatically”&lt;/em&gt; → ACM.&lt;/p&gt;

&lt;h3&gt;
  
  
  D | Implement Access Policies For Encryption Keys
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;KMS Access Is Controlled By&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Key policies:&lt;/strong&gt; primary control plane&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;IAM policies:&lt;/strong&gt; additional control&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;KMS grants:&lt;/strong&gt; often used by AWS services to use keys on your behalf&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;What To Design For:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Least privilege&lt;/strong&gt; on &lt;code&gt;kms:Encrypt&lt;/code&gt;, &lt;code&gt;kms:Decrypt&lt;/code&gt;, &lt;code&gt;kms:GenerateDataKey&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separation of Duties:&lt;/strong&gt; admins manage key and apps can use key but can’t change it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Only specific role can decrypt”&lt;/em&gt; → KMS key policy that allows decrypt to that role (and denies everyone else).&lt;/p&gt;




&lt;h3&gt;
  
  
  E | Implement Data Backups And Replications
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Common AWS Patterns:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;AWS Backup&lt;/strong&gt; for centralized backup policies across services (where supported)&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;EBS snapshots&lt;/strong&gt; + cross-region snapshot copy&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;RDS automated backups&lt;/strong&gt; + read replicas / cross-region replicas (where supported)&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;S3 replication&lt;/strong&gt; (CRR/SRR) for object-level replication&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;DynamoDB PITR&lt;/strong&gt; + global tables (if multi-region active-active required)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Centralized backup policy across accounts”&lt;/em&gt; → AWS Backup + Organizations&lt;/p&gt;

&lt;h3&gt;
  
  
  F | Implement Policies For Data Access, Lifecycle, And Protection
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Examples:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;S3 bucket policy&lt;/strong&gt;: restrict access to specific roles/VPC endpoints, require TLS&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;S3 Block Public Access&lt;/strong&gt;: prevent accidental public exposure&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Lifecycle Policies&lt;/strong&gt;: move older data to cheaper tiers, expire when allowed&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Object Lock&lt;/strong&gt;: enforce retention or WORM for compliance archives&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Must prevent deletion for X years”&lt;/em&gt; → S3 Object Lock&lt;/p&gt;

&lt;h3&gt;
  
  
  G | Rotate Encryption Keys And Renew Certificates
&lt;/h3&gt;

&lt;p&gt;1 &lt;strong&gt;KMS Key Rotation&lt;/strong&gt;: enable automatic rotation for customer-managed keys (where applicable)&lt;br&gt;
2 &lt;strong&gt;Secrets Rotation&lt;/strong&gt;: Secrets Manager rotation for credentials &lt;br&gt;
3 &lt;strong&gt;Certificate Renewal&lt;/strong&gt;: ACM renews eligible certificates automatically&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Rotate keys automatically without app changes”&lt;/em&gt; → KMS automatic rotation (customer-managed key) + envelope encryption patterns (handled by AWS services).&lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Encrypt at rest with full control&lt;/td&gt;
&lt;td&gt;KMS &lt;strong&gt;customer-managed key&lt;/strong&gt; (CMK)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simple encryption, minimal management&lt;/td&gt;
&lt;td&gt;AWS-managed keys (service default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Encrypt data in transit / manage TLS certs&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;ACM&lt;/strong&gt; + TLS listeners (ALB/NLB/CloudFront)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Only certain roles can decrypt&lt;/td&gt;
&lt;td&gt;Tight &lt;strong&gt;KMS key policy&lt;/strong&gt; + least privilege&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prevent accidental public S3 exposure&lt;/td&gt;
&lt;td&gt;S3 &lt;strong&gt;Block Public Access&lt;/strong&gt; + bucket policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keep data for 7 years, no deletion&lt;/td&gt;
&lt;td&gt;S3 &lt;strong&gt;Object Lock&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backups across multiple services/accounts&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;AWS Backup&lt;/strong&gt; + policies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-region recovery for S3 objects&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3 Replication (CRR)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;“Restore to a point in time”&lt;/td&gt;
&lt;td&gt;RDS automated backups / DynamoDB PITR&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;If you can explain these ideas in simple terms, you are well prepared for &lt;strong&gt;Task Statement 1.3&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] Data is classified (public/internal/confidential/regulatory) and controls match sensitivity&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] Data at rest is encrypted (often using &lt;strong&gt;KMS&lt;/strong&gt;, with CMKs when control is required)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Data in transit uses &lt;strong&gt;TLS&lt;/strong&gt;, with certificates managed by &lt;strong&gt;ACM&lt;/strong&gt; where applicable&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] KMS key access is least-privilege (key policy + IAM), with separation of duties&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] Backups meet RPO/RTO (snapshots, PITR, AWS Backup) and are tested&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Replication is used when the requirement is multi-region recovery or resilience&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] Retention and lifecycle policies exist (archive/expire appropriately)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;8.&lt;/strong&gt; [ ] Keys are rotated and certificates are renewed (KMS rotation / ACM renewal)  &lt;/p&gt;




&lt;h2&gt;
  
  
  AWS Whitepapers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;These are the &lt;strong&gt;primary AWS documents&lt;/strong&gt; behind &lt;strong&gt;Task Statement 1.3&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
You do &lt;strong&gt;not&lt;/strong&gt; need to memorize them, use them to understand &lt;em&gt;why&lt;/em&gt; AWS data security controls work the way they do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Encryption and Key Management
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/kms/latest/developerguide/overview.html" rel="noopener noreferrer"&gt;AWS Key Management Service (KMS) Developer Guide&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Explains KMS keys, envelope encryption, key policies, grants, and rotation
&lt;/li&gt;
&lt;li&gt;Core reference for “who can encrypt/decrypt” questions
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html" rel="noopener noreferrer"&gt;KMS Key Policies&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The most important part of controlling key usage
&lt;/li&gt;
&lt;li&gt;Helps with “only this role can decrypt” and separation-of-duties scenarios
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html" rel="noopener noreferrer"&gt;AWS Certificate Manager (ACM)&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;How to provision and renew TLS certificates
&lt;/li&gt;
&lt;li&gt;Common for ALB/CloudFront/API Gateway custom domain encryption
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Data Protection by Service
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html" rel="noopener noreferrer"&gt;S3 Encryption Options&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;SSE-S3 vs SSE-KMS vs client-side encryption concepts
&lt;/li&gt;
&lt;li&gt;Useful for “which encryption option should we pick?” scenarios
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html" rel="noopener noreferrer"&gt;S3 Block Public Access&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Prevents accidental public access via ACLs/bucket policies
&lt;/li&gt;
&lt;li&gt;Often the correct control when the scenario is about preventing exposure
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html" rel="noopener noreferrer"&gt;S3 Object Lock (WORM retention)&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Compliance retention and legal hold
&lt;/li&gt;
&lt;li&gt;Tested when immutability/retention is required
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html" rel="noopener noreferrer"&gt;Amazon RDS Encryption&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;How encryption at rest works for RDS/Aurora and what it impacts (snapshots/replicas)
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backup, Recovery, Retention
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html" rel="noopener noreferrer"&gt;AWS Backup&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Centralized backup policies, vaults, lifecycle, and cross-account patterns
&lt;/li&gt;
&lt;li&gt;Common when exam asks for “backup at scale”
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-workloads-on-aws.html" rel="noopener noreferrer"&gt;Disaster Recovery on AWS (concepts and patterns)&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Explains RPO/RTO and DR strategies (backup/restore, pilot light, warm standby, multi-site)
&lt;/li&gt;
&lt;li&gt;Helps when the question is “which DR approach matches the requirement?”
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Compliance and Security Mindset
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" rel="noopener noreferrer"&gt;AWS Well-Architected Framework – Security Pillar&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The “why” behind least privilege, data protection, and governance decisions
&lt;/li&gt;
&lt;li&gt;Strong general framework for answering security design questions
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://aws.amazon.com/compliance/shared-responsibility-model/" rel="noopener noreferrer"&gt;AWS Shared Responsibility Model&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Clarifies what AWS provides vs what you must configure (especially for encryption and access)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>Design Secure Workloads And Applications</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Mon, 02 Feb 2026 09:28:40 +0000</pubDate>
      <link>https://dev.to/aws-builders/design-secure-workloads-and-applications-4flh</link>
      <guid>https://dev.to/aws-builders/design-secure-workloads-and-applications-4flh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Exam Guide:&lt;/strong&gt; Solutions Architect - Associate&lt;br&gt;
&lt;strong&gt;🛡️ Domain 1: Design Secure Architectures&lt;/strong&gt;&lt;br&gt;
📘 &lt;em&gt;Task Statement 1.2&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🎯 &lt;strong&gt;&lt;em&gt;Secure workloads and apps&lt;/em&gt;&lt;/strong&gt; usually means:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Secure network design:&lt;/strong&gt; VPC layout, segmentation, filtering&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Secure traffic flow:&lt;/strong&gt; ingress/egress control, endpoints, TLS&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Secure credentials:&lt;/strong&gt; no hard-coded secrets, secrets must be managed + rotated&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Threat protection &amp;amp; detection:&lt;/strong&gt; WAF/Shield, GuardDuty, Macie&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;Secure external connectivity:&lt;/strong&gt; VPN, Direct Connect, controlled inbound paths&lt;/p&gt;

&lt;p&gt;This task shifts from &lt;strong&gt;“who can access AWS”&lt;/strong&gt; &lt;em&gt;(Task 1.1)&lt;/em&gt; to &lt;strong&gt;“how the workload is built and protected”&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Knowledge (what you must understand)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1&lt;/strong&gt; | Application Configuration And Credentials Security
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; keep secrets out of code, AMIs, user data, and plain-text configs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;AWS Secrets Manager&lt;/strong&gt; for database passwords, API keys, and rotation.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;SSM Parameter Store&lt;/strong&gt; for configuration (and &lt;strong&gt;SecureString&lt;/strong&gt; with KMS for sensitive values).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Credentials are stored in code”&lt;/em&gt; → move to &lt;strong&gt;Secrets Manager&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;“Need automatic rotation”&lt;/em&gt; → &lt;strong&gt;Secrets Manager&lt;/strong&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2&lt;/strong&gt; | AWS Service Endpoints
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; keep traffic to AWS services &lt;strong&gt;private&lt;/strong&gt;, not over the public internet.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;VPC endpoints&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gateway endpoints:&lt;/strong&gt; S3, DynamoDB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface endpoints (AWS PrivateLink):&lt;/strong&gt; many AWS services via ENIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“No internet access, but must reach S3/Secrets Manager”&lt;/em&gt; → &lt;strong&gt;VPC endpoints&lt;/strong&gt; (plus route/security group controls).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3&lt;/strong&gt; | Control Ports, Protocols, And Network Traffic On AWS
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; only allow the traffic you intend, nothing more.&lt;/p&gt;

&lt;h4&gt;
  
  
  Core VPC Controls
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Security groups (SGs):&lt;/strong&gt; instance/ENI-level, &lt;strong&gt;stateful&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Network ACLs (NACLs):&lt;/strong&gt; subnet-level, &lt;strong&gt;stateless&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Route tables:&lt;/strong&gt; where traffic is allowed to go&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;Internet Gateway (IGW):&lt;/strong&gt; enables public subnet internet routing&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;NAT Gateway:&lt;/strong&gt; allows &lt;em&gt;private subnets&lt;/em&gt; outbound internet (no inbound)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Instances in private subnet need outbound updates”&lt;/em&gt; → &lt;strong&gt;NAT Gateway&lt;/strong&gt; (or VPC endpoints when applicable).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4&lt;/strong&gt; | Secure Application Access
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; expose only what must be public and authenticate and authorize properly.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Typical Secure Pattern&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; Public entry via &lt;strong&gt;CloudFront and/or ALB&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; Put application compute in &lt;strong&gt;private subnets&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; Put databases in &lt;strong&gt;private/isolated subnets&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; Use &lt;strong&gt;TLS everywhere&lt;/strong&gt; (HTTPS)&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Identity Choices&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon Cognito:&lt;/strong&gt; end-user sign-up/sign-in for apps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IAM Identity Center:&lt;/strong&gt; workforce/admin access to AWS accounts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5&lt;/strong&gt; | Security Services With Appropriate Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;Amazon Cognito:&lt;/strong&gt; &lt;em&gt;authentication for application users&lt;/em&gt; (tokens, user pools)&lt;br&gt;
&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;Amazon GuardDuty:&lt;/strong&gt; &lt;em&gt;threat detection&lt;/em&gt; (suspicious API calls, network behavior, DNS)&lt;br&gt;
&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;Amazon Macie:&lt;/strong&gt; &lt;em&gt;discovers/protects sensitive data&lt;/em&gt; in &lt;strong&gt;S3&lt;/strong&gt; (PII patterns)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;6&lt;/strong&gt; | Threat Vectors External To AWS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DDoS:&lt;/strong&gt; use &lt;strong&gt;AWS Shield&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQL injection / XSS:&lt;/strong&gt; use &lt;strong&gt;AWS WAF&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Protect from SQLi/XSS”&lt;/em&gt; → &lt;strong&gt;AWS WAF&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; | Design VPC Architectures With Security Components
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Design With Layers And Controlled Paths&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public subnets:&lt;/strong&gt; ALB and sometimes NAT Gateway&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private subnets:&lt;/strong&gt; app tier (EC2/ECS/EKS), internal services, da&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Security Components&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SGs&lt;/strong&gt; restrict &lt;strong&gt;who can talk to whom&lt;/strong&gt;, which is a recommended primary control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NACLs&lt;/strong&gt; provide coarse subnet guardrails, which should be used when explicitly required&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route tables&lt;/strong&gt; prevent accidental connectivity&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;B&lt;/strong&gt; | Determine Network Segmentation Strategies
&lt;/h3&gt;

&lt;p&gt;Beginner rule:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public subnet:&lt;/strong&gt; route to an &lt;strong&gt;Internet Gateway&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private subnet:&lt;/strong&gt; &lt;em&gt;no&lt;/em&gt; route to an Internet Gateway &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Only the load balancer should be public”&lt;/em&gt; → ALB in public subnet, app in private subnet, DB private and isolated.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;C&lt;/strong&gt; | Integrate AWS Services To Secure Applications
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Common Combos:
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;1&lt;/em&gt; &lt;strong&gt;AWS WAF&lt;/strong&gt; + &lt;strong&gt;ALB/CloudFront:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQLi&lt;/li&gt;
&lt;li&gt;XSS&lt;/li&gt;
&lt;li&gt;bot mitigation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;2&lt;/em&gt; &lt;strong&gt;AWS Shield:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DDoS protection &lt;/li&gt;
&lt;li&gt;Shield Advanced for stronger needs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;3&lt;/em&gt; &lt;strong&gt;AWS Secrets Manager:&lt;/strong&gt; store secrets + rotation&lt;br&gt;
&lt;em&gt;4&lt;/em&gt; &lt;strong&gt;IAM Identity Center:&lt;/strong&gt; workforce and &lt;strong&gt;Amazon Cognito:&lt;/strong&gt; end users&lt;br&gt;
&lt;em&gt;5&lt;/em&gt; &lt;strong&gt;GuardDuty:&lt;/strong&gt; detect threats&lt;br&gt;
&lt;em&gt;6&lt;/em&gt; &lt;strong&gt;Macie:&lt;/strong&gt; S3 sensitive data discovery&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;D&lt;/strong&gt; | Secure External Network Connections To And From AWS
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Site-to-Site VPN:&lt;/strong&gt; encrypted tunnel over the internet which is fast to deploy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Direct Connect:&lt;/strong&gt; private dedicated link which has more consistent performance
Resilient design: &lt;strong&gt;Direct Connect + VPN backup&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Need private connectivity to on-prem”&lt;/em&gt; → VPN and/or Direct Connect &lt;/p&gt;




&lt;h2&gt;
  
  
  Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Direction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Keep AWS API/service traffic private&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;VPC endpoints&lt;/strong&gt; (Gateway/Interface)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database must not be internet reachable&lt;/td&gt;
&lt;td&gt;DB in &lt;strong&gt;private/isolated subnet&lt;/strong&gt; + SG only from app tier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Only ALB should be public&lt;/td&gt;
&lt;td&gt;ALB public, app private; NAT/endpoints as needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Protect from SQL injection / XSS&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;AWS WAF&lt;/strong&gt; (managed rules)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DDoS protection required&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;AWS Shield&lt;/strong&gt; (+ CloudFront/WAF commonly)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Secrets in code/config&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Secrets Manager&lt;/strong&gt; (rotation if needed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Detect suspicious activity&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;GuardDuty&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Find PII in S3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Macie&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Private connectivity to on-prem&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;VPN&lt;/strong&gt; and/or &lt;strong&gt;Direct Connect&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Recap Checklist ✅
&lt;/h2&gt;

&lt;p&gt;If you can explain these ideas in simple terms, you are well prepared for &lt;strong&gt;Task Statement 1.2&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; [ ] Secrets and credentials are &lt;strong&gt;not stored in code&lt;/strong&gt; (use &lt;strong&gt;Secrets Manager&lt;/strong&gt; or &lt;strong&gt;SSM Parameter Store SecureString&lt;/strong&gt;)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; [ ] The workload uses &lt;strong&gt;private subnets&lt;/strong&gt; for app/data tiers, and only required components are public&lt;br&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; [ ] Inbound traffic is controlled with &lt;strong&gt;security groups&lt;/strong&gt; (and NACLs if needed), using minimal ports/protocols&lt;br&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; [ ] Outbound internet access from private subnets is intentional (via &lt;strong&gt;NAT Gateway&lt;/strong&gt;) or avoided using &lt;strong&gt;VPC endpoints&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; [ ] AWS service access stays private where possible (use &lt;strong&gt;Gateway/Interface VPC endpoints / PrivateLink&lt;/strong&gt;)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;6.&lt;/strong&gt; [ ] Public web apps are protected against common attacks using &lt;strong&gt;AWS WAF&lt;/strong&gt; (and &lt;strong&gt;CloudFront&lt;/strong&gt; when appropriate)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;7.&lt;/strong&gt; [ ] DDoS risk is addressed using &lt;strong&gt;AWS Shield&lt;/strong&gt; (and scaling/edge protections as needed)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;8.&lt;/strong&gt; [ ] Suspicious activity detection is enabled with &lt;strong&gt;Amazon GuardDuty&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;9.&lt;/strong&gt; [ ] Sensitive data in S3 can be discovered/monitored with &lt;strong&gt;Amazon Macie&lt;/strong&gt; when required&lt;br&gt;&lt;br&gt;
&lt;strong&gt;10.&lt;/strong&gt; [ ] External connectivity (to/from on-prem) uses &lt;strong&gt;VPN and/or Direct Connect&lt;/strong&gt; with secure routing and redundancy &lt;/p&gt;




&lt;h2&gt;
  
  
  AWS White Papers and Official Documentation
&lt;/h2&gt;

&lt;p&gt;These are the &lt;strong&gt;primary AWS documents&lt;/strong&gt; behind &lt;strong&gt;Task Statement 1.2&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
You do &lt;strong&gt;not&lt;/strong&gt; need to memorize them, use them to understand &lt;em&gt;why&lt;/em&gt; secure workload design works the way it does.&lt;/p&gt;

&lt;h3&gt;
  
  
  Networking and VPC Security
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html" rel="noopener noreferrer"&gt;Amazon VPC User Guide&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Explains how VPCs, subnets, route tables, and gateways work
&lt;/li&gt;
&lt;li&gt;Core for questions about public vs private subnets, routing, and segmentation
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html" rel="noopener noreferrer"&gt;Security Groups&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Your primary tool for controlling inbound/outbound traffic to instances and ENIs
&lt;/li&gt;
&lt;li&gt;Frequently tested: stateful behavior, least-ports-open design
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html" rel="noopener noreferrer"&gt;Network ACLs (NACLs)&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Subnet-level firewall rules (stateless)
&lt;/li&gt;
&lt;li&gt;Shows up when the exam wants an extra “layer” of subnet control
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html" rel="noopener noreferrer"&gt;NAT Gateways&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Enables outbound internet access from private subnets (without allowing inbound)
&lt;/li&gt;
&lt;li&gt;Common exam scenario: patching instances in private subnets
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints.html" rel="noopener noreferrer"&gt;VPC Endpoints / AWS PrivateLink&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Keeps traffic to AWS services private (no public internet path)
&lt;/li&gt;
&lt;li&gt;Key for “no internet access but still must reach S3/Secrets Manager” scenarios
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Application Protection and Threat Mitigation
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html" rel="noopener noreferrer"&gt;AWS WAF&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Protects web apps from common attacks (SQLi, XSS) using managed rules and custom rules
&lt;/li&gt;
&lt;li&gt;Often paired with ALB or CloudFront in exam architectures
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html" rel="noopener noreferrer"&gt;AWS Shield (DDoS overview)&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Explains DDoS protection options (Shield Standard vs Shield Advanced)
&lt;/li&gt;
&lt;li&gt;Typical exam clue: “must protect against DDoS” → Shield + edge design
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html" rel="noopener noreferrer"&gt;Amazon GuardDuty&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Threat detection service that analyzes logs/telemetry to flag suspicious behavior
&lt;/li&gt;
&lt;li&gt;Useful when the question is about detection and alerting (not just prevention)
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html" rel="noopener noreferrer"&gt;Amazon Macie&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Finds and alerts on sensitive data (PII) stored in S3
&lt;/li&gt;
&lt;li&gt;Exam clue: “identify PII in S3 automatically” → Macie
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Identity for Applications and Secrets
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html" rel="noopener noreferrer"&gt;Amazon Cognito&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Authentication/authorization for &lt;em&gt;application end users&lt;/em&gt; (sign-up/sign-in, tokens)
&lt;/li&gt;
&lt;li&gt;Exam clue: “millions of app users need login” → Cognito
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html" rel="noopener noreferrer"&gt;AWS Secrets Manager&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Stores secrets securely and supports automated rotation
&lt;/li&gt;
&lt;li&gt;Exam clue: “rotate DB credentials automatically” → Secrets Manager
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html" rel="noopener noreferrer"&gt;SSM Parameter Store&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Stores application configuration parameters; can encrypt with KMS (SecureString)
&lt;/li&gt;
&lt;li&gt;Often chosen for configuration values and simpler secret needs
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  External Connectivity (On-Prem ↔ AWS)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html" rel="noopener noreferrer"&gt;AWS Site-to-Site VPN&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Encrypted connectivity over the internet between on-prem and AWS
&lt;/li&gt;
&lt;li&gt;Exam clue: “quick secure connection to on-prem” → Site-to-Site VPN
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html" rel="noopener noreferrer"&gt;AWS Direct Connect&lt;/a&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Dedicated private network connection for consistent performance
&lt;/li&gt;
&lt;li&gt;Exam clue: “consistent throughput / lower latency / private circuit” → Direct Connect
&lt;/li&gt;
&lt;li&gt;Common best practice: pair with VPN for backup/failover
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>certification</category>
      <category>cloud</category>
      <category>solutionsarchitect</category>
    </item>
    <item>
      <title>From Idea to Prototype in Minutes: Building My Portfolio with Antigravity</title>
      <dc:creator>Ntombizakhona Mabaso</dc:creator>
      <pubDate>Mon, 02 Feb 2026 07:20:55 +0000</pubDate>
      <link>https://dev.to/ntombizakhona/from-idea-to-prototype-in-minutes-building-my-ai-portfolio-with-antigravity-kmm</link>
      <guid>https://dev.to/ntombizakhona/from-idea-to-prototype-in-minutes-building-my-ai-portfolio-with-antigravity-kmm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/new-year-new-you-google-ai-2025-12-31"&gt;New Year, New You Portfolio Challenge Presented by Google AI&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;I'm Ntombizakhona Mabaso, a Cloud Engineer and Web Developer based in Johannesburg, South Africa. I'm passionate about building scalable cloud solutions and creating intelligent web experiences that bridge the gap between robust infrastructure and elegant user interfaces.&lt;/p&gt;

&lt;p&gt;With this portfolio, I wanted to express my journey in tech, showcasing my certifications (including Google Cloud Professional Architect, AWS certifications, and Microsoft AI Fundamentals), my content creation across Medium, Dev.to, and even my Cloud Glossary Podcast on Spotify. Most importantly, I wanted visitors to interact with an AI version of me that could answer questions about my work 24/7.&lt;/p&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__cloud-run"&gt;
  &lt;iframe height="600px" src="https://portfoliochallenge-442244691747.us-east4.run.app/"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Next.js 14 with TypeScript and CSS Modules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration&lt;/strong&gt;: Google Gemini AI (via @google/generative-ai SDK)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Icons&lt;/strong&gt;: Lucide React for beautiful, consistent iconography&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Google Cloud Run with Cloud Build CI/CD&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version Control&lt;/strong&gt;: GitHub with automated deployments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Development Process with Antigravity
&lt;/h3&gt;

&lt;p&gt;What made this project unique was &lt;strong&gt;building it entirely with Antigravity&lt;/strong&gt;, Google's AI coding assistant. Here's how the journey unfolded:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Starting from an Idea&lt;/strong&gt;&lt;br&gt;
I described my vision: a modern portfolio with an AI-powered chat widget that could represent me to visitors. Antigravity helped me scaffold the entire Next.js project structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Designing the Experience&lt;/strong&gt;&lt;br&gt;
Together, we created:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A stunning hero section with animated typing effects&lt;/li&gt;
&lt;li&gt;A skills section with animated progress bars&lt;/li&gt;
&lt;li&gt;A certifications showcase displaying my cloud credentials&lt;/li&gt;
&lt;li&gt;A "Blogs &amp;amp; Articles" section linking to my content across platforms&lt;/li&gt;
&lt;li&gt;A light/dark theme toggle for accessibility&lt;/li&gt;
&lt;li&gt;Floating particle animations for that premium feel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Building the AI Digital Twin&lt;/strong&gt;&lt;br&gt;
The standout feature is the AI chat widget powered by &lt;strong&gt;Google Gemini&lt;/strong&gt;. We created a system prompt that captures my personality, skills, and communication style. Now visitors can ask questions like "What certifications does Ntombizakhona have?" or "Tell me about your cloud experience" and get responses as if they're talking to me!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Feminizing the Design&lt;/strong&gt;&lt;br&gt;
I wanted my portfolio to feel uniquely mine, so we (Antigravity &amp;amp; I) customized the color scheme with rose, coral, and pink gradients that feel both professional and personal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Deploying to Cloud Run&lt;/strong&gt;&lt;br&gt;
The deployment process was seamless. Antigravity helped me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an optimized multi-stage Dockerfile&lt;/li&gt;
&lt;li&gt;Set up &lt;code&gt;cloudbuild.yaml&lt;/code&gt; for CI/CD&lt;/li&gt;
&lt;li&gt;Push to GitHub and configure automatic deployments&lt;/li&gt;
&lt;li&gt;Debug build issues in real-time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every push to the &lt;code&gt;main&lt;/code&gt; branch now triggers an automatic deployment to Cloud Run!&lt;/p&gt;

&lt;h3&gt;
  
  
  Google AI Tools Used
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemini API&lt;/strong&gt;: Powers the AI Digital Twin chat feature&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud Run&lt;/strong&gt;: Hosts the containerized Next.js application&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud Build&lt;/strong&gt;: Automates the CI/CD pipeline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity&lt;/strong&gt;: The AI coding assistant that helped me build everything from idea to prototype!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'm Most Proud Of
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🤖 The AI Digital Twin
&lt;/h3&gt;

&lt;p&gt;The chat widget isn't just a gimmick, it's genuinely useful. It knows about my certifications, projects, blogs, and personality. Visitors can have real conversations and learn about me even when I'm not available.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ The Development Speed
&lt;/h3&gt;

&lt;p&gt;What would have taken me weeks to build on my own took just a few sessions with Antigravity. From initial concept to deployed prototype, the AI assistant accelerated every step: writing components, debugging issues, configuring Docker, and setting up CI/CD.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨 The Aesthetic
&lt;/h3&gt;

&lt;p&gt;The site doesn't just work, it looks premium. The rose-gradient color scheme, floating particles, smooth animations, and responsive design create an experience I'm genuinely proud to share.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 The Content Integration
&lt;/h3&gt;

&lt;p&gt;I've been building in public for a while now, writing about cloud concepts, creating exam guides, and even hosting a podcast. This portfolio finally brings all that content together in one place, making it easy for visitors to explore my work across platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 The CI/CD Pipeline
&lt;/h3&gt;

&lt;p&gt;Every &lt;code&gt;git push&lt;/code&gt; automatically triggers a build and deployment. It's the kind of professional infrastructure that shows I practice what I preach as a Cloud Engineer.&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%2Fblnzxss3xn14z6ve6zf3.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%2Fblnzxss3xn14z6ve6zf3.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Building this portfolio taught me that AI coding assistants aren't replacing developers, they're supercharging us. Antigravity felt like pair programming with a senior engineer who never gets tired and knows every framework. The future of development is collaborative, and I'm excited to keep building!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>portfolio</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
