<?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: Cliff Claven</title>
    <description>The latest articles on DEV Community by Cliff Claven (@c_claven_03c4a41605f86c8e4).</description>
    <link>https://dev.to/c_claven_03c4a41605f86c8e4</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%2F1853534%2Fab62fd84-6d32-4160-8537-f566528442fd.png</url>
      <title>DEV Community: Cliff Claven</title>
      <link>https://dev.to/c_claven_03c4a41605f86c8e4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/c_claven_03c4a41605f86c8e4"/>
    <language>en</language>
    <item>
      <title>DRAFT: the other exam and joys</title>
      <dc:creator>Cliff Claven</dc:creator>
      <pubDate>Tue, 19 May 2026 02:12:28 +0000</pubDate>
      <link>https://dev.to/c_claven_03c4a41605f86c8e4/draft-the-other-exam-and-joys-124h</link>
      <guid>https://dev.to/c_claven_03c4a41605f86c8e4/draft-the-other-exam-and-joys-124h</guid>
      <description>&lt;h1&gt;
  
  
  AWS DVA-C02 Cheat Tables
&lt;/h1&gt;




&lt;h2&gt;
  
  
  1. CI/CD Tools
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The pipeline mental model: CodeCommit/GitHub → CodeBuild → CodeArtifact (stores packages) → CodeDeploy → CodePipeline ties it all together&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Key details to know&lt;/th&gt;
&lt;th&gt;Exam gotcha&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CodeCommit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Private Git repos hosted in AWS. Like GitHub but inside your AWS account.&lt;/td&gt;
&lt;td&gt;Uses IAM for auth (not username/password). Supports SSH and HTTPS. Triggers events to EventBridge, SNS, Lambda on push.&lt;/td&gt;
&lt;td&gt;⚠️ AWS deprecated this in 2024 — may still appear on exam but flagged as legacy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CodeBuild&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Compiles code, runs tests, produces deployable artifacts. Fully managed build server — no Jenkins to maintain.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;buildspec.yml&lt;/code&gt; file in your repo defines the build steps (install, pre-build, build, post-build phases). Outputs to S3. Billed per build minute. Runs in Docker containers.&lt;/td&gt;
&lt;td&gt;🚨 &lt;code&gt;buildspec.yml&lt;/code&gt; must be at root of repo or explicitly specified — exam loves this&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CodeDeploy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automates deploying code to EC2, Lambda, ECS, or even on-premises servers.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;appspec.yml&lt;/code&gt; defines deployment hooks (BeforeInstall, AfterInstall, ApplicationStart etc). Supports blue/green, canary, and rolling deployments. For EC2 — needs the CodeDeploy agent installed on the instance.&lt;/td&gt;
&lt;td&gt;🚨 &lt;code&gt;appspec.yml&lt;/code&gt; ≠ &lt;code&gt;buildspec.yml&lt;/code&gt; — CodeBuild uses buildspec, CodeDeploy uses appspec. Exam will mix these up to trick you.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CodePipeline&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The orchestrator. Connects source → build → test → deploy into one automated workflow.&lt;/td&gt;
&lt;td&gt;Stages contain actions. Can add manual approval gates between stages. Integrates with GitHub, CodeCommit, CodeBuild, CodeDeploy, CloudFormation, Elastic Beanstalk, ECS. Triggered by code push or on a schedule.&lt;/td&gt;
&lt;td&gt;ℹ️ CodePipeline doesn't build or deploy itself — it just orchestrates other services that do&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CodeArtifact&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Private artifact/package repository. Stores npm, pip, Maven, NuGet packages inside your AWS account.&lt;/td&gt;
&lt;td&gt;Acts as a proxy to public repos (npm, PyPI) AND caches them. So your builds never depend directly on the public internet. Access controlled via IAM and resource policies.&lt;/td&gt;
&lt;td&gt;ℹ️ Think "private npm/pip registry inside AWS" — question about securing dependencies → CodeArtifact&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  2. Event-Driven Architecture — Choreography vs Orchestration
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Choreography&lt;/th&gt;
&lt;th&gt;Orchestration&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mental model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Jazz band — everyone improvises together&lt;/td&gt;
&lt;td&gt;Symphony conductor — one person directs everyone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Central brain?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No. Services react to events independently&lt;/td&gt;
&lt;td&gt;Yes. One coordinator controls the flow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWS services&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;EventBridge, SNS, SQS&lt;/td&gt;
&lt;td&gt;Step Functions, Lambda&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Coupling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Loosely coupled&lt;/td&gt;
&lt;td&gt;More tightly coupled around the orchestrator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Visibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Harder to trace the full flow&lt;/td&gt;
&lt;td&gt;Easy — the workflow definition IS the flow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pick when...&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fan-out to multiple consumers, services owned by different teams, "publish and forget", high scalability needed&lt;/td&gt;
&lt;td&gt;Complex multi-step workflows, state must be tracked, error handling and retries matter, steps depend on previous results&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Exam tip:&lt;/strong&gt; Question about "complex order processing with error handling and compensation steps" → Step Functions. Question about "notify multiple downstream services when something happens" → EventBridge or SNS.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3. Cognito — User Pools vs Identity Pools
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;User Pools&lt;/th&gt;
&lt;th&gt;Identity Pools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What it is&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A user directory. Handles sign-up, sign-in, passwords, MFA.&lt;/td&gt;
&lt;td&gt;A credential vending machine. Exchanges tokens for temporary AWS credentials.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What it gives you&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A JWT token (ID token, access token, refresh token)&lt;/td&gt;
&lt;td&gt;Temporary IAM credentials (access key, secret key, session token) via STS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Who are the users&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Humans logging into your app&lt;/td&gt;
&lt;td&gt;Anyone who needs to call AWS services directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Supports federation?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes — Google, Facebook, SAML, OIDC IdPs can log in through User Pools&lt;/td&gt;
&lt;td&gt;Yes — can accept User Pool tokens, social logins, SAML, even unauthenticated guests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What you do with the output&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Use the JWT to authenticate API calls to your app backend&lt;/td&gt;
&lt;td&gt;Use the IAM credentials to call AWS services directly (S3, DynamoDB, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWS service it calls&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nothing — it IS the auth service&lt;/td&gt;
&lt;td&gt;Calls STS AssumeRoleWithWebIdentity under the hood&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Analogy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The bouncer checking IDs at the door&lt;/td&gt;
&lt;td&gt;The coat check that gives you a ticket to pick up AWS resources&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;One-line memory hooks:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User Pool = WHO are you?&lt;/strong&gt; (authentication, identity, JWT)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identity Pool = WHAT can you access?&lt;/strong&gt; (authorization, AWS credentials, IAM)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User Pool → your app. Identity Pool → AWS services.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;InitiateAuth = native User Pool users only.&lt;/strong&gt; Federation always goes through the hosted UI.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Cognito — Tricky Scenario Table
&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;Answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;User logs in with Google and gets a JWT to call YOUR app's API&lt;/td&gt;
&lt;td&gt;User Pool (with Google as federated IdP)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User logs in and then needs to read their own S3 files directly from the browser&lt;/td&gt;
&lt;td&gt;Identity Pool (exchanges token for IAM creds to call S3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You need MFA, password reset, email verification&lt;/td&gt;
&lt;td&gt;User Pool — Identity Pools don't do any of that&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unauthenticated guest users need limited AWS access&lt;/td&gt;
&lt;td&gt;Identity Pool — supports unauthenticated identities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SAML corporate SSO → app login&lt;/td&gt;
&lt;td&gt;User Pool with SAML IdP configured&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile app needs to write to DynamoDB directly&lt;/td&gt;
&lt;td&gt;Identity Pool — gets IAM creds, calls DynamoDB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Federated sign-in is failing, IdP is configured correctly&lt;/td&gt;
&lt;td&gt;User must use &lt;code&gt;/oauth2/authorize&lt;/code&gt; hosted UI endpoint, NOT &lt;code&gt;InitiateAuth&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need to chain both together&lt;/td&gt;
&lt;td&gt;User Pool authenticates → passes JWT to Identity Pool → gets IAM creds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Elastic Beanstalk — The 6 Things DVA Tests
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Topic&lt;/th&gt;
&lt;th&gt;What to know&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Deployment policies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;All at once&lt;/strong&gt; — fastest, has downtime. &lt;strong&gt;Rolling&lt;/strong&gt; — no downtime, reduced capacity during deploy. &lt;strong&gt;Rolling with additional batch&lt;/strong&gt; — no downtime, no reduced capacity (spins up extra instances first). &lt;strong&gt;Immutable&lt;/strong&gt; — safest, creates entirely new instances then swaps. &lt;strong&gt;Blue/Green&lt;/strong&gt; — swap environment URLs via Route 53/CNAME swap.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Procfile&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Defines multiple long-running processes (web server + background workers). Beanstalk starts and monitors all of them.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Buildfile&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Commands that run ONCE during deployment. Not for long-running processes — for build steps.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;.ebextensions/&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Folder of YAML config files that customize the environment — install packages, set env vars, run scripts on instance startup.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;env.yaml&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Define environment configuration (environment name, solution stack, option settings).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Saved configurations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Snapshot of an environment's full config. Reuse it to spin up identical environments or restore a previous state.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Exam tip:&lt;/strong&gt; "No downtime + no reduced capacity" → Rolling with additional batch. "Safest / can roll back instantly" → Immutable. "Separate live environment, swap DNS" → Blue/Green.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  IAM — Trust Policies vs Permission Policies
&lt;/h2&gt;

&lt;p&gt;This is one of the most misunderstood IAM concepts and the exam exploits it constantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Two completely separate questions
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Answered by&lt;/th&gt;
&lt;th&gt;Where it lives&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Can this principal DO this action?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Permissions policy&lt;/td&gt;
&lt;td&gt;Attached to the user/role doing the action&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Can this principal ASSUME this role?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Trust policy&lt;/td&gt;
&lt;td&gt;Attached to the TARGET role being assumed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  AssumeRole requires BOTH to be true
&lt;/h3&gt;

&lt;p&gt;When Lambda tries to assume a role, TWO things must both be true:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Lambda execution role must have &lt;code&gt;sts:AssumeRole&lt;/code&gt; permission in its &lt;strong&gt;permissions policy&lt;/strong&gt; ✓&lt;/li&gt;
&lt;li&gt;The target role must list the Lambda execution role as a trusted principal in its &lt;strong&gt;trust policy&lt;/strong&gt; ✓&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If either one is missing → &lt;code&gt;AccessDenied&lt;/code&gt;. The exam gives you a scenario where #1 is satisfied but #2 is missing. Most people only think about the caller's permissions and miss the trust policy entirely.&lt;/p&gt;

&lt;h3&gt;
  
  
  What a trust policy looks like
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Principal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"AWS"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:iam::123456789012:role/MyLambdaExecutionRole"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sts:AssumeRole"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This lives on the TARGET role. It says "I trust MyLambdaExecutionRole to assume me." Without this, AssumeRole is denied no matter what.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory hook
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Permissions policy&lt;/strong&gt; = what I can do&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Trust policy&lt;/strong&gt; = who can wear my hat&lt;br&gt;&lt;br&gt;
AssumeRole denied despite having &lt;code&gt;sts:AssumeRole&lt;/code&gt;? → Check the &lt;strong&gt;target role's trust policy&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  IAM — Allow/Deny Evaluation Order
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;th&gt;Rule&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1 — Explicit Deny&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Always wins. One Deny anywhere overrides every Allow everywhere. No exceptions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2 — SCPs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Org-level guardrails. If the SCP doesn't allow it, nothing below matters.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3 — Resource-based policies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Evaluated alongside identity policies for cross-account access.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4 — Identity-based policies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;What's attached to the user/role making the request.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;5 — Default Deny&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;If nothing explicitly Allows it, it's denied.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The tricky distinctions
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Explicit Deny&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A policy literally says &lt;code&gt;"Effect": "Deny"&lt;/code&gt;. Overrides any Allow anywhere.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Default Deny (implicit)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No policy says anything about this action. Denied by default. Does NOT override an Allow.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;NotAction&lt;/code&gt; + &lt;code&gt;Deny&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Denies everything EXCEPT the listed actions. Exam loves this one.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key exam trap:&lt;/strong&gt; "The user has an Allow in their group policy but still gets denied" → there is an explicit Deny somewhere else. Find it. One explicit Deny beats unlimited Allows.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>aws</category>
      <category>cicd</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AWS Cloud Practitioner Exam - The Difficult Parts - Part 3: Storage and (some) Compute</title>
      <dc:creator>Cliff Claven</dc:creator>
      <pubDate>Sun, 17 May 2026 18:33:36 +0000</pubDate>
      <link>https://dev.to/c_claven_03c4a41605f86c8e4/aws-cloud-practitioner-exam-the-difficult-parts-part-3-storage-and-some-compute-4ff8</link>
      <guid>https://dev.to/c_claven_03c4a41605f86c8e4/aws-cloud-practitioner-exam-the-difficult-parts-part-3-storage-and-some-compute-4ff8</guid>
      <description>&lt;h2&gt;
  
  
  💾 EBS vs EFS vs S3 — How Does Your App See the Storage?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  EBS — Elastic Block Store
&lt;/h3&gt;

&lt;p&gt;Acts like a hard drive plugged into your EC2 instance. One instance, one AZ. Your OS formats and mounts it. Data persists after stop.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Think: &lt;em&gt;"My server's hard drive"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  EFS — Elastic File System
&lt;/h3&gt;

&lt;p&gt;Acts like a shared network drive. Multiple EC2 instances across multiple AZs can mount it simultaneously. Auto-scales, no capacity to manage.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Think: &lt;em&gt;"Shared folder that all my servers can access"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unlike Storage Gateway File Gateway, EFS is a true managed cloud file system — not a hybrid bridge into S3.&lt;/p&gt;

&lt;h3&gt;
  
  
  S3 — Simple Storage Service
&lt;/h3&gt;

&lt;p&gt;Not a file system — an object store. You don't mount it, you call an API (PUT, GET). Flat blobs with URL keys. Massive scale, globally accessible, cheap.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Think: &lt;em&gt;"A giant bucket of files accessible over the internet"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Quick pick&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Temp files on one server → &lt;strong&gt;EBS&lt;/strong&gt; · Shared config files across servers → &lt;strong&gt;EFS&lt;/strong&gt; · User photos accessible anywhere → &lt;strong&gt;S3&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  General Purpose SSD (gp3)
&lt;/h3&gt;

&lt;p&gt;AWS-recommended EBS volume type for most workloads.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSD-backed&lt;/li&gt;
&lt;li&gt;balanced price/performance&lt;/li&gt;
&lt;li&gt;supports boot volumes&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Exam trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"recommended EBS volume for most workloads" · "boot volume" → gp3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ⚡ Instance Store — The One Everyone Forgets (And It's the Fastest)
&lt;/h2&gt;

&lt;p&gt;Every EC2 host machine has real physical disks attached to it. Instance Store lets your instance use those disks directly — no network hop, just raw disk. EBS &lt;em&gt;feels&lt;/em&gt; local but still goes over the network. That's why Instance Store wins on speed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The catch:&lt;/strong&gt; data only exists while the instance runs. Stop it, terminate it, or if the hardware fails — gone. Not a debate, just gone.&lt;/p&gt;

&lt;p&gt;It's included in the EC2 instance price — no extra charge.&lt;/p&gt;

&lt;p&gt;Instance Store = ephemeral BLOCK storage physically attached to the host server.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Exam trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"fault-tolerant" · "can handle failures" · "distributed architecture" · "highest I/O performance" · "lowest latency storage" → &lt;strong&gt;Instance Store&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Instance Store offers the highest performance and lowest latency, but NOT durability. If the instance stops or fails, the data is lost permanently.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  AMI vs Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AMI&lt;/td&gt;
&lt;td&gt;Launch template for EC2 instances&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EBS Snapshot&lt;/td&gt;
&lt;td&gt;Backup of EBS volume data&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Golden AMI&lt;/strong&gt; = standardized EC2 image with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS&lt;/li&gt;
&lt;li&gt;patches&lt;/li&gt;
&lt;li&gt;monitoring agents&lt;/li&gt;
&lt;li&gt;application configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Exam trigger:&lt;/strong&gt; "exact copy of EC2 instance in another region" → AMI copy&lt;/p&gt;

&lt;h2&gt;
  
  
  RDS Read Replicas vs Multi-AZ
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Read Replicas&lt;/td&gt;
&lt;td&gt;Scale read-heavy workloads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-AZ&lt;/td&gt;
&lt;td&gt;High availability and failover&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Read Replicas improve read throughput. Multi-AZ improves availability, NOT read scaling.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Data Protection, Migration &amp;amp; Storage Services
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Does what&lt;/th&gt;
&lt;th&gt;Analogy&lt;/th&gt;
&lt;th&gt;Trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWS Backup&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Centralized automated backups across ALL AWS services and on-premises&lt;/td&gt;
&lt;td&gt;The automated backup janitor who never forgets&lt;/td&gt;
&lt;td&gt;"centralize backups" "automate backup policy" "across services"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Elastic Disaster Recovery&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Continuously replicates live servers for rapid failover&lt;/td&gt;
&lt;td&gt;The understudy ready to go on stage instantly&lt;/td&gt;
&lt;td&gt;"disaster recovery" "minimal data loss" "failover" "RPO/RTO"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DataSync&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Transfers and migrates data between storage systems&lt;/td&gt;
&lt;td&gt;The moving truck for your data&lt;/td&gt;
&lt;td&gt;"migrate data" "transfer to AWS" "sync on-premises to S3"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lets on-premises systems use AWS storage as if it were local&lt;/td&gt;
&lt;td&gt;The magic portal that makes cloud look local&lt;/td&gt;
&lt;td&gt;"hybrid storage" "on-premises access to cloud" "replace tape backups"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Snowball Edge&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Physical device for massive data transfer when network is impractical&lt;/td&gt;
&lt;td&gt;The armored truck when the internet highway is too slow&lt;/td&gt;
&lt;td&gt;"terabytes to petabytes" "physical transfer" "no internet" "rugged"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Aurora — The "Self-Healing" Database
&lt;/h2&gt;

&lt;p&gt;Aurora automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;replicates storage 6 ways across 3 AZs&lt;/li&gt;
&lt;li&gt;repairs failed storage blocks automatically&lt;/li&gt;
&lt;li&gt;provides high availability relational storage&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Exam trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"self-healing relational database" · "high throughput relational database" → Aurora&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DynamoDB is highly fault tolerant and auto-scaled, but AWS usually reserves the term "self-healing" for Aurora's distributed relational storage architecture.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Storage Gateway — Three Flavors
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flavor&lt;/th&gt;
&lt;th&gt;Presents as&lt;/th&gt;
&lt;th&gt;Stores to&lt;/th&gt;
&lt;th&gt;Use when&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;File Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NFS/SMB network file share&lt;/td&gt;
&lt;td&gt;S3&lt;/td&gt;
&lt;td&gt;Replace on-premises file servers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Volume Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;iSCSI block storage that looks like a local disk to servers&lt;/td&gt;
&lt;td&gt;S3 + EBS snapshots&lt;/td&gt;
&lt;td&gt;Extend or back up on-premises block storage into AWS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tape Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Virtual tape library that emulates traditional backup tapes&lt;/td&gt;
&lt;td&gt;S3 / Glacier&lt;/td&gt;
&lt;td&gt;Replace physical tape backup systems without changing backup software&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The Storage Gateway mental model:&lt;/strong&gt;&lt;br&gt;
Your on-premises servers think they're writing to local storage.&lt;br&gt;
They're actually writing to AWS.&lt;br&gt;
The gateway handles the translation invisibly.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;EFS is a native cloud file system. File Gateway is a hybrid bridge between on-premises systems and S3.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;🧠 The key distinction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;File Gateway&lt;/strong&gt; = shared files/folders (SMB/NFS).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Volume Gateway&lt;/strong&gt; = raw disks/block storage (iSCSI).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Tape Gateway&lt;/strong&gt; = virtual tapes for legacy backup software.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Key Distinctions Q&amp;amp;A
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Need to back up AWS resources centrally?&lt;/td&gt;
&lt;td&gt;AWS Backup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need servers to keep running if disaster hits?&lt;/td&gt;
&lt;td&gt;Elastic Disaster Recovery&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need to move data to AWS once or regularly?&lt;/td&gt;
&lt;td&gt;DataSync&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need on-premises servers to use AWS storage daily?&lt;/td&gt;
&lt;td&gt;Storage Gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No internet, massive data, physical shipment?&lt;/td&gt;
&lt;td&gt;Snowball Edge&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The trap:&lt;/strong&gt; Elastic Disaster Recovery sounds like backup — it's not.&lt;br&gt;
It replicates LIVE systems for failover, not periodic backup copies.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reserved vs Dedicated — Completely Different Concepts
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reserved = a PRICING decision&lt;/strong&gt;&lt;br&gt;
You commit to 1 or 3 years → AWS gives you up to 72% discount.&lt;br&gt;
Hardware is still shared with other AWS customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dedicated = a HARDWARE decision&lt;/strong&gt;&lt;br&gt;
You get physically isolated servers.&lt;br&gt;
Other AWS customers cannot run workloads on your hardware.&lt;br&gt;
Exists for compliance requirements and software licensing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They are independent — you can mix and match:&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;Combination&lt;/th&gt;
&lt;th&gt;Means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reserved + Shared hardware&lt;/td&gt;
&lt;td&gt;Normal Reserved Instance — discount only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reserved + Dedicated hardware&lt;/td&gt;
&lt;td&gt;Commit AND get physical isolation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;On-Demand + Dedicated hardware&lt;/td&gt;
&lt;td&gt;Dedicated Instance/Host, no commitment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Dedicated Instance vs Dedicated Host
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Dedicated Instance&lt;/th&gt;
&lt;th&gt;Dedicated Host&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hardware dedicated to you&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You know WHICH server you're on&lt;/td&gt;
&lt;td&gt;❌ AWS picks&lt;/td&gt;
&lt;td&gt;✅ You choose&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visibility into sockets/cores&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bring your own license (BYOL)&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use when&lt;/td&gt;
&lt;td&gt;Need dedicated hardware for compliance&lt;/td&gt;
&lt;td&gt;Need specific server for BYOL licensing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The one sentence:&lt;/strong&gt; Reserved = discount for commitment.&lt;br&gt;
Dedicated = physical isolation for compliance or licensing.&lt;br&gt;
You can mix and match them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exam trigger:&lt;/strong&gt; "existing server-bound software licenses" + "compliance" → Dedicated Host&lt;br&gt;
&lt;strong&gt;Exam trigger:&lt;/strong&gt; "dedicated hardware" without licensing mention → Dedicated Instance&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trigger:&lt;/strong&gt; "existing server-bound software licenses" + "compliance" → Dedicated Host&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dedicated Hosts provide isolated AWS hardware in AWS data centers. AWS Outposts extends AWS infrastructure into YOUR on-premises environment.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  EC2 Instance Purchasing Decision Tree
&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;Choose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Short term, uninterruptible&lt;/td&gt;
&lt;td&gt;On-Demand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long term 1-3 years, predictable&lt;/td&gt;
&lt;td&gt;Reserved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fault-tolerant, can be interrupted&lt;/td&gt;
&lt;td&gt;Spot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dedicated hardware, BYOL licensing&lt;/td&gt;
&lt;td&gt;Dedicated Host&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dedicated hardware, compliance only&lt;/td&gt;
&lt;td&gt;Dedicated Instance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-term compute across EC2 + Lambda + Fargate&lt;/td&gt;
&lt;td&gt;Compute Savings Plans&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reserved Instances apply mainly to EC2. Compute Savings Plans also cover Lambda and Fargate with more flexibility.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  EC2 Launch Requirements
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Optional&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Security Group&lt;/td&gt;
&lt;td&gt;Elastic IP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VPC and Subnet&lt;/td&gt;
&lt;td&gt;Key pair (if no other access method)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EBS Root Volume&lt;/td&gt;
&lt;td&gt;Additional EBS volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AMI&lt;/td&gt;
&lt;td&gt;Instance store volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🚧 ELB vs Auto Scaling — The Most Common Scaling Mix-up
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Main job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Elastic Load Balancer (ELB)&lt;/td&gt;
&lt;td&gt;Distributes incoming traffic across targets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EC2 Auto Scaling&lt;/td&gt;
&lt;td&gt;Adds/removes EC2 instances based on demand&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;💡 Mental model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ELB spreads traffic across servers. Auto Scaling changes how many servers exist.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common troubleshooting clue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;If traffic is not reaching instances behind a load balancer, first check the ELB Health Checks. Unhealthy targets receive no traffic.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Lightsail vs Elastic Beanstalk
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lightsail&lt;/td&gt;
&lt;td&gt;Simple VPS/WordPress hosting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Elastic Beanstalk&lt;/td&gt;
&lt;td&gt;Managed application deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Trigger:&lt;/strong&gt; "easiest WordPress deployment with minimal AWS knowledge" → Lightsail&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS SDKs
&lt;/h2&gt;

&lt;p&gt;Used for authenticated programmatic access to AWS from application code.&lt;/p&gt;

&lt;p&gt;SDKs handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;request signing&lt;/li&gt;
&lt;li&gt;credential resolution&lt;/li&gt;
&lt;li&gt;IAM role integration&lt;/li&gt;
&lt;li&gt;automatic credential refresh&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SDKs are for runtime application access. CloudFormation provisions infrastructure.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Global Gaming / Low-Latency Architecture
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Best Solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;High latency for players in other continents&lt;/td&gt;
&lt;td&gt;Deploy servers closer to users in additional regions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CloudFront helps static content delivery, NOT real-time multiplayer server latency.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>cloud</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>AWS Cloud Practitioner Exam - The Difficult Parts - Part 2: Planning and Costs</title>
      <dc:creator>Cliff Claven</dc:creator>
      <pubDate>Sun, 17 May 2026 18:23:23 +0000</pubDate>
      <link>https://dev.to/c_claven_03c4a41605f86c8e4/aws-cloud-practitioner-exam-the-difficult-parts-part-2-planning-and-costs-2kdf</link>
      <guid>https://dev.to/c_claven_03c4a41605f86c8e4/aws-cloud-practitioner-exam-the-difficult-parts-part-2-planning-and-costs-2kdf</guid>
      <description>&lt;h2&gt;
  
  
  💰 Cost &amp;amp; Usage Report — The Billing Data Firehose
&lt;/h2&gt;

&lt;p&gt;Think of it as a massive CSV delivered to an S3 bucket with every single charge broken down by hour, resource, tag, and account. The most granular billing data AWS produces — built for analysts and BI tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Billing tools ranked by detail level:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Pricing Calculator  →  estimate before you build (no real data)
Budgets             →  set thresholds, get alerts
Cost Explorer       →  charts/graphs of actual spend, up to 13 months back
Cost &amp;amp; Usage Report →  raw data firehose, most detailed of all ⬅ this one
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;| AWS Budgets | Threshold alerts and forecasting notifications |&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exam trap:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost Explorer = visual dashboards/charts&lt;/li&gt;
&lt;li&gt;Cost &amp;amp; Usage Report = raw granular billing exports&lt;/li&gt;
&lt;li&gt;AWS Budgets = alerts when spending thresholds are exceeded&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Exam trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"detailed cost breakdown per resource" · "feed billing data into a BI tool" → &lt;strong&gt;Cost &amp;amp; Usage Report&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Reserved Instance Usage Reporting
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AWS Billing Console
└── Cost Explorer
    └── Reserved Instance reports
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The 6 Pillars
&lt;/h2&gt;

&lt;h3&gt;
  
  
  for Architects and engineers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario signal&lt;/th&gt;
&lt;th&gt;Pillar&lt;/th&gt;
&lt;th&gt;One-liner&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Single point of failure, outage, recovery&lt;/td&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;Stay up, recover fast&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paying for unused resources, bill too high&lt;/td&gt;
&lt;td&gt;Cost Optimization&lt;/td&gt;
&lt;td&gt;Don't waste money&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manual processes, inconsistent deployments&lt;/td&gt;
&lt;td&gt;Operational Excellence&lt;/td&gt;
&lt;td&gt;Run it well and keep improving&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Credentials exposed, no encryption&lt;/td&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Protect everything, always&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Slow for distant users, wrong instance type&lt;/td&gt;
&lt;td&gt;Performance Efficiency&lt;/td&gt;
&lt;td&gt;Use the right resource for the job&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Demand changes, evolving technologies, right-sizing compute&lt;/td&gt;
&lt;td&gt;Performance Efficiency&lt;/td&gt;
&lt;td&gt;Adapt resources efficiently as workloads evolve&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Carbon footprint, energy, managed services&lt;/td&gt;
&lt;td&gt;Sustainability&lt;/td&gt;
&lt;td&gt;Minimize environmental impact&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cloud Benefits — Common Exam Traps
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benefit&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agility&lt;/td&gt;
&lt;td&gt;Quickly provision environments and experiment faster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Elasticity&lt;/td&gt;
&lt;td&gt;Scale resources up/down with demand&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deploy globally in minutes&lt;/td&gt;
&lt;td&gt;Launch workloads across AWS regions rapidly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost savings&lt;/td&gt;
&lt;td&gt;Replace CapEx with variable cloud spending&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Trigger:&lt;/strong&gt; "spin up testing environments quickly" → Agility
&lt;/h2&gt;

&lt;h2&gt;
  
  
  AWS Service Scope: Global vs Regional vs Zonal
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Global&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IAM, Route 53, CloudFront, WAF, STS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Regional&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;S3, RDS, EFS, Lambda, SQS, SNS, AWS Batch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Zonal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;EC2 instances, EBS volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The trick:&lt;/strong&gt; EC2 feels regional but it's zonal — it lives in one AZ. EBS snapshots however are regional.&lt;/p&gt;

&lt;p&gt;CloudFront Edge Locations are global edge caching locations, NOT regions or AZs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EBS volumes are zonal.
EBS snapshots are regional.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Hybrid / Edge Infrastructure Services
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Main Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS Outposts&lt;/td&gt;
&lt;td&gt;AWS-managed infrastructure on-premises&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Local Zones&lt;/td&gt;
&lt;td&gt;Low-latency AWS extensions near major metro areas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Wavelength&lt;/td&gt;
&lt;td&gt;AWS compute inside telecom 5G networks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Exam triggers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"same AWS APIs on-prem" → Outposts&lt;/li&gt;
&lt;li&gt;"low-latency compute near city users" → Local Zones&lt;/li&gt;
&lt;li&gt;"ultra-low-latency mobile / 5G apps" → Wavelength&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common scope traps&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IAM and Route 53 are GLOBAL. EC2 and EBS volumes are ZONAL. S3 is REGIONAL even though buckets appear globally accessible.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS CDK is NOT an AWS service scope question — it's a development framework.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  All 6 CAF Perspectives — Complete Master Table
&lt;/h2&gt;

&lt;h3&gt;
  
  
  for Business leaders AND technical teams
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Perspective&lt;/th&gt;
&lt;th&gt;Owned by&lt;/th&gt;
&lt;th&gt;Focuses on&lt;/th&gt;
&lt;th&gt;Key capabilities&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Business&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CEO, CFO, COO&lt;/td&gt;
&lt;td&gt;Cloud investment drives business outcomes&lt;/td&gt;
&lt;td&gt;Strategy, portfolio, innovation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;People&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CHRO, HR leaders&lt;/td&gt;
&lt;td&gt;Culture, skills, organizational change&lt;/td&gt;
&lt;td&gt;Training, workforce, change management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Governance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CRO, Compliance&lt;/td&gt;
&lt;td&gt;Risk, compliance, investment decisions&lt;/td&gt;
&lt;td&gt;Portfolio management, data governance, risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Platform&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CTO, Architects&lt;/td&gt;
&lt;td&gt;Architecture, infrastructure, tech standards&lt;/td&gt;
&lt;td&gt;IaC, networking, data architecture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CISO, Security engineers&lt;/td&gt;
&lt;td&gt;Protect everything, detect threats&lt;/td&gt;
&lt;td&gt;IAM, data protection, infrastructure protection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Operations&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IT Operations, Support&lt;/td&gt;
&lt;td&gt;Run and support cloud day to day&lt;/td&gt;
&lt;td&gt;Incident mgmt, performance, patch management&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Exam trick:&lt;/strong&gt; CAF is NOT just technical — Business and People perspectives are tested heavily&lt;br&gt;
&lt;strong&gt;Application Portfolio Management&lt;/strong&gt; = Governance ← students always put this in Operations&lt;/p&gt;

&lt;h2&gt;
  
  
  CAF Security Perspective Capabilities
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Capability&lt;/th&gt;
&lt;th&gt;Does what&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Infrastructure Protection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Protects against external threats and unauthorized access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Identity and Access Management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Controls who accesses what&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Protection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Encryption, data security at rest and in transit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Threat Detection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Identifies existing threats&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Incident Response&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Responds when breaches occur&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Application Security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Secures applications specifically&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  CAF Operations Perspective Capabilities
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Observability&lt;/li&gt;
&lt;li&gt;Event management (AIOps)&lt;/li&gt;
&lt;li&gt;Incident and problem management&lt;/li&gt;
&lt;li&gt;Change and release management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance and capacity management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Configuration management&lt;/li&gt;
&lt;li&gt;Patch management&lt;/li&gt;
&lt;li&gt;Availability and continuity management&lt;/li&gt;
&lt;li&gt;Application management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Trigger:&lt;/strong&gt; "meet SLAs" + "agreed-upon service levels" → Performance and Capacity Management&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt; Application Portfolio Management = Governance perspective, NOT Operations&lt;/p&gt;




&lt;h2&gt;
  
  
  Shared Responsibility Model
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWS owns&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Physical infrastructure, host OS patching, networking hardware&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shared&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Configuration management, patch management (guest OS = you), awareness &amp;amp; training&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Customer owns&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Guest OS, applications, data encryption, network traffic protection, Zone Security&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The one-word trick:&lt;/strong&gt; "host OS" = AWS. "Guest OS" = customer.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS secures the &lt;strong&gt;cloud infrastructure&lt;/strong&gt;. Customers secure what they put &lt;strong&gt;in&lt;/strong&gt; the cloud.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  IAM Identities
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;IAM Concept&lt;/th&gt;
&lt;th&gt;CLI/Access Keys?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IAM User&lt;/td&gt;
&lt;td&gt;✅ Long-term credentials&lt;/td&gt;
&lt;td&gt;Common but not best practice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IAM Role&lt;/td&gt;
&lt;td&gt;✅ Temporary credentials&lt;/td&gt;
&lt;td&gt;Best practice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IAM Group&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Collection of users only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IAM Policy&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Not an identity — it's a permission document&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Account alias&lt;/strong&gt; = a friendly replacement for the AWS account ID in the login URL.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pricing Calculator vs Cost Explorer vs Cost &amp;amp; Usage Report
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Use When&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pricing Calculator&lt;/td&gt;
&lt;td&gt;Planning/estimating &lt;strong&gt;before&lt;/strong&gt; you build&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost Explorer&lt;/td&gt;
&lt;td&gt;Analyzing actual spend &lt;strong&gt;after&lt;/strong&gt; you've been running&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost &amp;amp; Usage Report (CUR)&lt;/td&gt;
&lt;td&gt;Need the raw billing data itself for BI tools, analytics, or highly detailed cost analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The progression:&lt;/strong&gt; Calculator → estimate before build. Explorer → visualize spend. CUR → raw billing firehose.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Trusted Advisor — 5 Categories (memorize exactly)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Cost Optimization&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Fault Tolerance&lt;/li&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Service Limits&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Trap answers:&lt;/strong&gt; "Instance Usage", "Infrastructure", "Storage Capacity" — none of these are real categories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Another trap:&lt;/strong&gt; Full Trusted Advisor checks require Business+ or Enterprise support.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS Support Plans — Complete Feature Matrix
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Basic&lt;/th&gt;
&lt;th&gt;Business+&lt;/th&gt;
&lt;th&gt;Enterprise&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Paid&lt;/td&gt;
&lt;td&gt;More expensive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trusted Advisor checks&lt;/td&gt;
&lt;td&gt;Core only&lt;/td&gt;
&lt;td&gt;Full&lt;/td&gt;
&lt;td&gt;Full&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Support API&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Technical Account Manager (TAM)&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Well-Architected Reviews&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Operations Reviews&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure Event Management&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ extra fee&lt;/td&gt;
&lt;td&gt;✅ included&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Concierge billing support&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Response time (critical)&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;1 hour&lt;/td&gt;
&lt;td&gt;15 minutes*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;For workloads&lt;/td&gt;
&lt;td&gt;Dev/test&lt;/td&gt;
&lt;td&gt;Production&lt;/td&gt;
&lt;td&gt;Mission-critical&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Enterprise-specific response times
&lt;/h3&gt;

&lt;p&gt;Production system down = 1 hour&lt;br&gt;
Business-critical system down = 15 minutes (Enterprise)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The rule:&lt;/strong&gt; Business+ gets IEM for extra fee but NOT Well-Architected or Operations Reviews → those need Enterprise&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Critical:&lt;/strong&gt; If a question mentions Well-Architected Reviews OR Operations Reviews → Enterprise only&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Free vs What Costs Money
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;FREE&lt;/th&gt;
&lt;th&gt;COSTS MONEY&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VPCs&lt;/td&gt;
&lt;td&gt;EC2 instances (per hour)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subnets and route tables&lt;/td&gt;
&lt;td&gt;RDS instances (per hour)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IAM users, groups, roles, policies&lt;/td&gt;
&lt;td&gt;NAT Gateway (hourly + per GB processed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CloudFormation&lt;/td&gt;
&lt;td&gt;Elastic IPs — even attached to running instances&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Organizations&lt;/td&gt;
&lt;td&gt;Data transfer OUT to internet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security Groups and NACLs&lt;/td&gt;
&lt;td&gt;Data transfer BETWEEN regions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Console access&lt;/td&gt;
&lt;td&gt;Data transfer BETWEEN AZs (small fee)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inbound data transfer to AWS&lt;/td&gt;
&lt;td&gt;EBS volumes (per GB per month)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S3 storage requests (mostly)&lt;/td&gt;
&lt;td&gt;Load balancers (per hour + LCUs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNS resolution within VPC&lt;/td&gt;
&lt;td&gt;Direct Connect (port hours + data transfer)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CloudWatch basic monitoring&lt;/td&gt;
&lt;td&gt;CloudWatch detailed monitoring and custom metrics&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Biggest surprises:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elastic IPs may incur charges — AWS discourages unused/public IPv4 hoarding — AWS charges to discourage IPv4 hoarding&lt;/li&gt;
&lt;li&gt;Data transfer INTO AWS is free — you're never charged for uploads&lt;/li&gt;
&lt;li&gt;Data transfer BETWEEN AZs in same region costs a small amount — use this to justify multi-AZ design decisions&lt;/li&gt;
&lt;li&gt;VPCs themselves are free — you pay for what's inside them&lt;/li&gt;
&lt;li&gt;CloudFormation is free — you pay for resources it creates&lt;/li&gt;
&lt;li&gt;Security Groups and NACLs are free — traffic and the resources behind them are what cost money&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚧 Route 53 vs Route Tables
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Main job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Route 53&lt;/td&gt;
&lt;td&gt;DNS routing and failover&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VPC Route Tables&lt;/td&gt;
&lt;td&gt;Internal packet routing inside a VPC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;💡 Mental model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Route 53 decides &lt;strong&gt;where users go&lt;/strong&gt;. Route Tables decide &lt;strong&gt;where packets go&lt;/strong&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  AWS SDKs
&lt;/h2&gt;

&lt;p&gt;Used for authenticated programmatic access to AWS from application code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDK responsibilities:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request signing&lt;/li&gt;
&lt;li&gt;Credential resolution&lt;/li&gt;
&lt;li&gt;IAM role integration&lt;/li&gt;
&lt;li&gt;Automatic credential refresh&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Trap:&lt;/strong&gt; CloudFormation provisions infrastructure. SDKs are for runtime API access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lightsail vs Elastic Beanstalk
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lightsail&lt;/td&gt;
&lt;td&gt;Simple VPS/WordPress hosting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Elastic Beanstalk&lt;/td&gt;
&lt;td&gt;Managed application deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Trigger:&lt;/strong&gt; "easiest way to deploy WordPress with minimal AWS knowledge" → Lightsail&lt;/p&gt;

</description>
      <category>aws</category>
      <category>learning</category>
      <category>cloud</category>
      <category>devops</category>
    </item>
    <item>
      <title>AWS Cloud Practitioner Exam - The Difficult Parts - Part 1 : Security &amp; Networking</title>
      <dc:creator>Cliff Claven</dc:creator>
      <pubDate>Fri, 15 May 2026 21:12:52 +0000</pubDate>
      <link>https://dev.to/c_claven_03c4a41605f86c8e4/aws-cloud-practitioner-exam-the-difficult-parts-38if</link>
      <guid>https://dev.to/c_claven_03c4a41605f86c8e4/aws-cloud-practitioner-exam-the-difficult-parts-38if</guid>
      <description>&lt;p&gt;&lt;em&gt;Just studying with Claude here and got a little too excited about a cheat sheet . ...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No corporate speak. No filler. Just what these things do and when to reach for them.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎥 AWS Config — The Security Camera That Never Blinks
&lt;/h2&gt;

&lt;p&gt;Imagine a security camera pointed at your AWS resources, taking a snapshot every time something changes. That's Config.&lt;/p&gt;

&lt;p&gt;Your S3 bucket was private Monday, public Tuesday — Config caught both states, logged the diff, and knows exactly who did it. You can add rules like &lt;em&gt;"S3 buckets must never be public."&lt;/em&gt; Break the rule, get flagged as non-compliant.&lt;/p&gt;

&lt;p&gt;This is called &lt;strong&gt;drift detection&lt;/strong&gt; — your resource wandered away from desired state, and Config is the auditor that noticed.&lt;/p&gt;

&lt;p&gt;Config doesn't &lt;em&gt;prevent&lt;/em&gt; changes (that's IAM and SCPs). It records and evaluates them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Exam trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"audit resource changes over time" · "compliance rules" · "who changed this resource" · "configuration history" → &lt;strong&gt;Config&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Config tracks configuration drift and compliance history. It is NOT a real-time threat detection service.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Config + Patch Manager
&lt;/h3&gt;

&lt;p&gt;Patch Manager performs the patching.&lt;br&gt;
Config tracks patch compliance history and evaluates compliance rules over time.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Exam trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"track patch compliance history" · "compliance status over time" → AWS Config&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🛡️ Shield + WAF — Three Guards, Three Completely Different Jobs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Shield Standard
&lt;/h3&gt;

&lt;p&gt;The free bouncer at the door. Stops the most common brute-force network floods (L3/L4). Always on, you do nothing, costs nothing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shield Advanced
&lt;/h3&gt;

&lt;p&gt;The paid security team with specialists. Handles sophisticated DDoS including application-layer attacks — think HTTP floods that look like real traffic. You also get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A dedicated &lt;strong&gt;DDoS Response Team&lt;/strong&gt; you can actually call&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost protection&lt;/strong&gt; if an attack causes runaway scaling costs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time attack visibility&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Commonly associated protected resources:&lt;br&gt;
EC2, ELB, CloudFront, Route 53, Global Accelerator&lt;br&gt;
API Gateway, Lambda, Elastic Beanstalk? Not covered.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;🧠 Mnemonic — Shield Advanced's 5 protected resources&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;E&lt;/strong&gt;very &lt;strong&gt;E&lt;/strong&gt;lastic &lt;strong&gt;C&lt;/strong&gt;loud &lt;strong&gt;R&lt;/strong&gt;uns &lt;strong&gt;G&lt;/strong&gt;lobally&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EC2 · ELB · CloudFront · Route 53 · Global Accelerator&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Shield Advanced protects specific supported AWS services — not every AWS service automatically.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  WAF — A Completely Different Animal
&lt;/h3&gt;

&lt;p&gt;WAF doesn't care about flood volume. It reads the &lt;em&gt;content&lt;/em&gt; of HTTP/HTTPS requests and blocks based on rules you write:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specific IPs or IP ranges&lt;/li&gt;
&lt;li&gt;SQL injection patterns&lt;/li&gt;
&lt;li&gt;Requests from specific countries&lt;/li&gt;
&lt;li&gt;AWS Managed Rules (pre-built OWASP Top 10, bot protection, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Attaches to: &lt;strong&gt;CloudFront, ALB, API Gateway, AppSync&lt;/strong&gt; — not EC2 directly.&lt;/p&gt;

&lt;p&gt;WAF only works for HTTP/HTTPS traffic.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚧 WAF vs NACLs vs Security Groups
&lt;/h2&gt;

&lt;p&gt;All three block traffic — but at completely different layers of the stack.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;WAF&lt;/th&gt;
&lt;th&gt;NACLs&lt;/th&gt;
&lt;th&gt;Security Groups&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary job&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Filter malicious web requests&lt;/td&gt;
&lt;td&gt;Protect subnet boundaries&lt;/td&gt;
&lt;td&gt;Protect individual resources&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OSI layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;L7 (HTTP/HTTPS)&lt;/td&gt;
&lt;td&gt;L3/L4 (IP, port)&lt;/td&gt;
&lt;td&gt;L3/L4 (IP, port)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Understands&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;URLs, headers, cookies, request body&lt;/td&gt;
&lt;td&gt;IPs, protocols, ports&lt;/td&gt;
&lt;td&gt;IPs, protocols, ports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Attached to&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CloudFront, ALB, API Gateway&lt;/td&gt;
&lt;td&gt;VPC subnets&lt;/td&gt;
&lt;td&gt;ENI-based resources (EC2, RDS, ECS, Lambda-in-VPC, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Traffic model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Web requests only&lt;/td&gt;
&lt;td&gt;Broad subnet filtering&lt;/td&gt;
&lt;td&gt;Per-resource firewall&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rules&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Allow/block by request content&lt;/td&gt;
&lt;td&gt;Allow AND deny&lt;/td&gt;
&lt;td&gt;Allow only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Stateful?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;❌ Stateless&lt;/td&gt;
&lt;td&gt;✅ Stateful&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Valid source/destination values&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IPs, CIDRs&lt;/td&gt;
&lt;td&gt;IPs, CIDRs&lt;/td&gt;
&lt;td&gt;CIDRs, Security Group IDs, Prefix Lists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Supports deny rules?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Security Groups and NACLs do NOT inspect HTTP request contents. Only WAF operates at Layer 7 and understands web requests.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;💡 Mental model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;WAF&lt;/strong&gt; inspects &lt;em&gt;what is inside&lt;/em&gt; the HTTP request. &lt;strong&gt;NACLs&lt;/strong&gt; guard the subnet boundary. &lt;strong&gt;Security Groups&lt;/strong&gt; act like stateful firewalls protecting individual AWS resources inside the VPC.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The mental model:
&lt;/h3&gt;

&lt;p&gt;NACLs guard the neighborhood entrance. &lt;br&gt;
Security Groups guard your front door. &lt;br&gt;
WAF reads the letter someone is trying to hand you.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common Security Group exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Inbound rules specify a &lt;strong&gt;source&lt;/strong&gt;. Outbound rules specify a &lt;strong&gt;destination&lt;/strong&gt;. Security Groups do &lt;strong&gt;not&lt;/strong&gt; support hostnames or instance IDs in rules.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Security Services — Complete Picture
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;One job&lt;/th&gt;
&lt;th&gt;Analogy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shield Standard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Free DDoS protection against common L3/L4 floods&lt;/td&gt;
&lt;td&gt;The free bouncer at the door&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shield Advanced&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Paid DDoS protection including L7, with response team&lt;/td&gt;
&lt;td&gt;The paid security team with specialists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WAF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reads HTTP content and blocks bad web requests&lt;/td&gt;
&lt;td&gt;Reads the letter before letting it through&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GuardDuty&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ML-powered threat detection — watches logs, finds suspicious behavior&lt;/td&gt;
&lt;td&gt;The burglar alarm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Inspector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Scans EC2/containers for known CVE vulnerabilities&lt;/td&gt;
&lt;td&gt;The building safety inspector&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Detective&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Investigates security alerts, finds root cause&lt;/td&gt;
&lt;td&gt;The detective called in after the alarm fires&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Macie&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Finds sensitive data (PII, credentials) hiding in S3&lt;/td&gt;
&lt;td&gt;The auditor who finds what shouldn't be there&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security Hub&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Aggregates findings from AWS security services into one dashboard&lt;/td&gt;
&lt;td&gt;The security operations dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The sequence:&lt;/strong&gt; GuardDuty finds it → Detective investigates it → Inspector prevents it → Macie finds the data exposure&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common security distinction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Config answers "What changed?" GuardDuty answers "Is something malicious happening?"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;🧠 GuardDuty vs Inspector — the most common mix-up&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;GuardDuty&lt;/strong&gt; watches &lt;em&gt;behavior&lt;/em&gt; — someone is &lt;em&gt;doing&lt;/em&gt; something suspicious. Reactive/detective.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Inspector&lt;/strong&gt; scans compute workloads (EC2, containers, Lambda) for known vulnerabilities and exposure risks. Proactive/preventive.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Macie&lt;/strong&gt; trigger: any question mentioning "PII" or "sensitive data in S3" → it's Macie, every time.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;GuardDuty finds it. Detective investigates it. Inspector prevents it.&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;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GuardDuty detects suspicious behavior. Inspector scans for known vulnerabilities and CVEs.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Amazon Detective vs GuardDuty
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;GuardDuty&lt;/th&gt;
&lt;th&gt;Detective&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Job&lt;/td&gt;
&lt;td&gt;Detect threats&lt;/td&gt;
&lt;td&gt;Investigate threats&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;When it runs&lt;/td&gt;
&lt;td&gt;Continuously&lt;/td&gt;
&lt;td&gt;After an alert&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;Alerts and findings&lt;/td&gt;
&lt;td&gt;Root cause analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trigger word&lt;/td&gt;
&lt;td&gt;"detect" "monitor" "suspicious activity"&lt;/td&gt;
&lt;td&gt;"investigate" "root cause" "analyze findings"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GuardDuty DETECTS it&lt;br&gt;
    ↓&lt;br&gt;
Detective INVESTIGATES it&lt;br&gt;&lt;br&gt;
    ↓&lt;br&gt;
Security Hub AGGREGATES it&lt;br&gt;
    ↓&lt;br&gt;
Inspector PREVENTED it (if you'd listened earlier)&lt;br&gt;
    ↓&lt;br&gt;
Macie found the exposed data that caused it&lt;/p&gt;




&lt;h2&gt;
  
  
  Monitoring &amp;amp; Observability Services
&lt;/h2&gt;

&lt;h3&gt;
  
  
  CloudTrail vs Config vs CloudWatch vs X-Ray
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Answers&lt;/th&gt;
&lt;th&gt;Trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CloudTrail&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;WHO did WHAT and WHEN — AWS API/account activity history&lt;/td&gt;
&lt;td&gt;"audit" "API calls" "account activity" "who changed"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Config&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;WHAT changed — resource configuration history&lt;/td&gt;
&lt;td&gt;"compliance" "drift" "configuration history" "resource changed"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CloudWatch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;HOW systems are performing — metrics, logs, alarms, dashboards&lt;/td&gt;
&lt;td&gt;"metrics" "alarms" "logs" "monitoring" "performance"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;X-Ray&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;WHY is it slow/broken — end-to-end request tracing&lt;/td&gt;
&lt;td&gt;"trace" "distributed app" "microservices" "debug" "root cause of latency"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  ☁️ CloudTrail vs Config — The Most Common Audit Mix-up
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Primary job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CloudTrail&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Logs API calls and account activity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Config&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tracks resource configuration state over time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;💡 Mental model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CloudTrail answers: &lt;strong&gt;"Who did something?"&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Config answers: &lt;strong&gt;"What changed?"&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common audit trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CloudTrail logs API activity ("who did it"). Config tracks resource state/configuration over time ("what changed").&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Load Balancer Types
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Load Balancer&lt;/th&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Use When&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ALB&lt;/td&gt;
&lt;td&gt;L7 (HTTP/HTTPS)&lt;/td&gt;
&lt;td&gt;Path-based routing, host-based routing, WebSockets, microservices, Lambda targets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NLB&lt;/td&gt;
&lt;td&gt;L4 (TCP/UDP/TLS)&lt;/td&gt;
&lt;td&gt;Extreme performance, millions of requests/sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gateway LB&lt;/td&gt;
&lt;td&gt;L3/L4&lt;/td&gt;
&lt;td&gt;Virtual appliances (firewalls, inspection tools)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Exam trigger:&lt;/strong&gt; "path-based routing" + "host-based routing" + "WebSockets" → ALB every time&lt;/p&gt;

&lt;h2&gt;
  
  
  🚧 ELB vs Auto Scaling — Different Jobs Entirely
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Main job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Elastic Load Balancer (ELB)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Distributes traffic across targets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;EC2 Auto Scaling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Adds/removes EC2 instances based on demand&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common troubleshooting clue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;If instances behind an ELB are not receiving traffic, first check the ELB Health Checks. Unhealthy targets receive no traffic.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;💡 Mental model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ELB spreads traffic across servers. Auto Scaling changes how many servers exist.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Messaging &amp;amp; Event Services
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;Trigger Words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;EventBridge&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Event bus, routes events between AWS services and SaaS apps&lt;/td&gt;
&lt;td&gt;"event-driven" "decouple" "react to events in real-time" "serverless event bus"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SQS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Message queue, async decoupling between services&lt;/td&gt;
&lt;td&gt;"queue" "decouple microservices" "async"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SNS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pub/sub, fan-out notifications&lt;/td&gt;
&lt;td&gt;"notify" "publish/subscribe" "SMS" "fan-out"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kinesis&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Real-time streaming data processing&lt;/td&gt;
&lt;td&gt;"streaming" "real-time analytics" "IoT data" "clickstreams"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Step Functions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Serverless workflow orchestration between AWS services&lt;/td&gt;
&lt;td&gt;"workflow" "orchestrate" "state machine" "coordinate multiple services"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Trick:&lt;/strong&gt; "not Kafka" → EventBridge&lt;/p&gt;




&lt;h2&gt;
  
  
  All AWS Gateways — Organized by Job
&lt;/h2&gt;

&lt;h3&gt;
  
  
  "Connect my VPC to the internet"
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gateway&lt;/th&gt;
&lt;th&gt;Does what&lt;/th&gt;
&lt;th&gt;Key detail&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Internet Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Gives your VPC a door to the public internet&lt;/td&gt;
&lt;td&gt;Attach to VPC — resources in public subnets can now send AND receive internet traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NAT Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lets private subnet resources reach internet without being reachable back&lt;/td&gt;
&lt;td&gt;Lives in public subnet — private resources call out through it, internet cannot call in&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Memory:&lt;/strong&gt; Internet Gateway = two-way door. NAT Gateway = one-way cat flap.&lt;/p&gt;




&lt;h3&gt;
  
  
  "Connect my on-premises network to AWS"
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gateway&lt;/th&gt;
&lt;th&gt;Does what&lt;/th&gt;
&lt;th&gt;Key detail&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Virtual Private Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AWS end of a VPN tunnel&lt;/td&gt;
&lt;td&gt;Attaches to your VPC — pairs with Customer Gateway on your side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Customer Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AWS's record of YOUR on-premises VPN device&lt;/td&gt;
&lt;td&gt;Not really an AWS device — it's AWS representing your router&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Direct Connect Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AWS end of a dedicated private physical line&lt;/td&gt;
&lt;td&gt;No internet involved — physical cable from your data center to AWS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Memory:&lt;/strong&gt; VPN = secure tunnel over public internet (fast to set up, cheaper).&lt;br&gt;
Direct Connect = your own private highway to AWS (weeks to set up, expensive, reliable).&lt;br&gt;
They always need TWO endpoints — one on each side.&lt;/p&gt;




&lt;h3&gt;
  
  
  "Connect multiple VPCs or networks together"
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gateway&lt;/th&gt;
&lt;th&gt;Does what&lt;/th&gt;
&lt;th&gt;Key detail&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Transit Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Central hub connecting many VPCs and on-premises networks&lt;/td&gt;
&lt;td&gt;One connection per network instead of mesh of connections between every pair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;VPC Peering&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Direct connection between exactly two VPCs&lt;/td&gt;
&lt;td&gt;Simpler than Transit Gateway but doesn't scale — need separate peering for every pair&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Memory:&lt;/strong&gt; Two VPCs talking = Peering. Many VPCs talking = Transit Gateway.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VPC Peering does not scale well because every VPC pair needs its own connection. Transit Gateway acts as a centralized hub.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  "Completely different kind of gateway"
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Gateway&lt;/th&gt;
&lt;th&gt;Does what&lt;/th&gt;
&lt;th&gt;Key detail&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;API Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Create, publish, secure and manage APIs&lt;/td&gt;
&lt;td&gt;Layer 7 — reads HTTP content, handles auth, throttling, versioning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Makes AWS storage look like local storage to on-premises systems&lt;/td&gt;
&lt;td&gt;Virtual appliance in your data center — your servers think they're writing locally&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Memory:&lt;/strong&gt; API Gateway = manages your APIs. Storage Gateway = makes cloud storage feel local.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;⚠️ Common exam trap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;API Gateway exposes APIs to clients. AWS SDKs provide authenticated programmatic access TO AWS services from application code.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  VPN Connection — How the pieces fit together
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Memory trick:&lt;/strong&gt; If it has "VPN" or "on-premises" in the question → Virtual Private Gateway + Customer Gateway pair&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory trick:&lt;/strong&gt; NAT = No Access inbound, Traffic outbound only&lt;/p&gt;

&lt;h2&gt;
  
  
  Hybrid / Edge Infrastructure Services
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Main Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS Outposts&lt;/td&gt;
&lt;td&gt;AWS-managed infrastructure on-premises&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Local Zones&lt;/td&gt;
&lt;td&gt;Low-latency AWS infrastructure near major metro areas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AWS Wavelength&lt;/td&gt;
&lt;td&gt;AWS compute inside telecom carrier 5G networks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📋 Exam trigger words&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"same AWS APIs on-prem" → Outposts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"low-latency compute near city users" → Local Zones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"ultra-low-latency mobile / 5G apps" → Wavelength&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  AWS Service Scope: Global vs Regional vs Zonal
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Global&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IAM, Route 53, CloudFront, WAF, STS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Regional&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;S3, RDS, EFS, Lambda, SQS, SNS, AWS Batch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Zonal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;EC2 instances, EBS volumes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The trick:&lt;/strong&gt; EC2 feels regional but it's zonal — it lives in one AZ. EBS snapshots however are regional.&lt;/p&gt;

&lt;p&gt;Route 53 can perform DNS failover routing to healthy endpoints using health checks.&lt;/p&gt;

&lt;p&gt;CloudFront Edge Locations are globally distributed caching endpoints — not Regions or AZs.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That's the whole picture. Bookmark it, share it, argue with it in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
