{
    "version": "https://jsonfeed.org/version/1",
    "title": "AWS Knowledge Changelog",
    "home_page_url": "https://pr-aws.pages.dev/changelog/",
    "description": "Site updates and AWS exam news",
    "items": [
        {
            "id": "https://pr-aws.pages.dev/changelog/aws-skill-builder",
            "content_html": "<p>AWS Skill Builder is the official free learning platform from AWS — and one of the best resources to pair with this portal when preparing for CLF-C02.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-is-aws-skill-builder\">What is AWS Skill Builder?<a href=\"https://pr-aws.pages.dev/changelog/aws-skill-builder#what-is-aws-skill-builder\" class=\"hash-link\" aria-label=\"Direct link to What is AWS Skill Builder?\" title=\"Direct link to What is AWS Skill Builder?\" translate=\"no\">​</a></h2>\n<iframe width=\"100%\" height=\"420\" src=\"https://www.youtube.com/embed/7nu3OO_HE4M\" title=\"AWS Skill Builder — Official Learning Platform\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\" style=\"border-radius:8px;margin-bottom:1.5rem\"></iframe>\n<p>Skill Builder gives you access to 500+ free digital courses, official practice question sets, and the <strong>AWS Cloud Practitioner Essentials</strong> course — all from AWS's own training team.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"whats-free-vs-paid\">What's free vs paid<a href=\"https://pr-aws.pages.dev/changelog/aws-skill-builder#whats-free-vs-paid\" class=\"hash-link\" aria-label=\"Direct link to What's free vs paid\" title=\"Direct link to What's free vs paid\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Free tier</th><th>Individual subscription ($29/mo)</th></tr></thead><tbody><tr><td>500+ digital courses</td><td>Exam Prep Official Practice Exams</td></tr><tr><td>AWS Cloud Practitioner Essentials</td><td>Hands-on labs (Jam, Builder Labs)</td></tr><tr><td>Digital badges</td><td>Enhanced course catalogue</td></tr><tr><td>Learning plans</td><td>Classroom-style courses</td></tr></tbody></table>\n<p>For CLF-C02 prep, the <strong>free tier is enough</strong> — the Cloud Practitioner Essentials course and official practice questions cover everything on the exam.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-to-use-it-alongside-this-portal\">How to use it alongside this portal<a href=\"https://pr-aws.pages.dev/changelog/aws-skill-builder#how-to-use-it-alongside-this-portal\" class=\"hash-link\" aria-label=\"Direct link to How to use it alongside this portal\" title=\"Direct link to How to use it alongside this portal\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\">Use this portal to <strong>read and understand</strong> each service and concept</li>\n<li class=\"\">Use Skill Builder's <strong>official practice questions</strong> to test recall under exam conditions</li>\n<li class=\"\">Use Skill Builder's <strong>Cloud Practitioner Essentials</strong> videos if you prefer watching over reading</li>\n</ul>\n<p>Both are free. Start at <a href=\"https://skillbuilder.aws/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">skillbuilder.aws</a>.</p>",
            "url": "https://pr-aws.pages.dev/changelog/aws-skill-builder",
            "title": "Study smarter with AWS Skill Builder",
            "summary": "AWS Skill Builder is the official free learning platform from AWS — and one of the best resources to pair with this portal when preparing for CLF-C02.",
            "date_modified": "2026-09-16T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "exam-content",
                "aws",
                "learning"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/billing-domain-tips",
            "content_html": "<p>Only 12% of the exam — but the questions are very specific and easy to get wrong if you confuse similar-sounding services.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"ec2-pricing-models--the-most-tested-billing-topic\">EC2 pricing models — the most-tested billing topic<a href=\"https://pr-aws.pages.dev/changelog/billing-domain-tips#ec2-pricing-models--the-most-tested-billing-topic\" class=\"hash-link\" aria-label=\"Direct link to EC2 pricing models — the most-tested billing topic\" title=\"Direct link to EC2 pricing models — the most-tested billing topic\" translate=\"no\">​</a></h2>\n<p>The exam loves scenario-based pricing questions. Match the workload to the model:</p>\n<table><thead><tr><th>Scenario</th><th>Right answer</th><th>Why</th></tr></thead><tbody><tr><td>Unpredictable workload, no upfront commitment</td><td>On-Demand</td><td>Pay by the second, stop any time</td></tr><tr><td>Steady workload running 24/7 for 1–3 years</td><td>Reserved Instance or Savings Plan</td><td>Up to 72% cheaper than On-Demand</td></tr><tr><td>Fault-tolerant batch job, can be interrupted</td><td>Spot Instance</td><td>Up to 90% cheaper, AWS can reclaim with 2-min warning</td></tr><tr><td>Compliance requires dedicated physical server</td><td>Dedicated Host</td><td>Only option that guarantees no shared hardware</td></tr><tr><td>Runs code briefly in response to events</td><td>Lambda</td><td>Pay per invocation and duration, not per hour</td></tr></tbody></table>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"cost-management-tools--know-which-does-what\">Cost management tools — know which does what<a href=\"https://pr-aws.pages.dev/changelog/billing-domain-tips#cost-management-tools--know-which-does-what\" class=\"hash-link\" aria-label=\"Direct link to Cost management tools — know which does what\" title=\"Direct link to Cost management tools — know which does what\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Tool</th><th>What it does</th></tr></thead><tbody><tr><td><strong>Cost Explorer</strong></td><td>Visualise past spend, forecast future costs, identify trends</td></tr><tr><td><strong>AWS Budgets</strong></td><td>Set spending/usage thresholds and get alerted when breached</td></tr><tr><td><strong>Cost and Usage Report (CUR)</strong></td><td>Most granular billing data, exports to S3, used for detailed analysis</td></tr><tr><td><strong>Compute Optimizer</strong></td><td>Recommends right-sized EC2/Lambda based on actual usage</td></tr><tr><td><strong>Pricing Calculator</strong></td><td>Estimate costs <em>before</em> you deploy anything</td></tr></tbody></table>\n<p><strong>Common trap:</strong> Cost Explorer = look backwards at spend. Pricing Calculator = estimate before you start. The exam distinguishes these.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"support-plans--know-the-tiers\">Support plans — know the tiers<a href=\"https://pr-aws.pages.dev/changelog/billing-domain-tips#support-plans--know-the-tiers\" class=\"hash-link\" aria-label=\"Direct link to Support plans — know the tiers\" title=\"Direct link to Support plans — know the tiers\" translate=\"no\">​</a></h2>\n<div class=\"language-text codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#F8F8F2;--prism-background-color:#282A36\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_bY9V thin-scrollbar\" style=\"color:#F8F8F2;background-color:#282A36\"><code class=\"codeBlockLines_e6Vv\"><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">Developer  →  Business  →  Enterprise On-Ramp  →  Enterprise</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">    │              │                │                    │</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\"> Business-    Production        Production          Mission-critical</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\"> hours only   system down       system down         system down</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  &lt; 24h          &lt; 4h              &lt; 4h                &lt; 15min</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">               response          response             response</span><br></div></code></pre></div></div>\n<ul>\n<li class=\"\"><strong>Trusted Advisor</strong> full checks: Business plan and above only (Developer gets 7 core checks)</li>\n<li class=\"\"><strong>Technical Account Manager (TAM)</strong>: Enterprise plans only</li>\n<li class=\"\"><strong>Concierge support</strong>: Enterprise plans only</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"free-tier--exam-testable-services\">Free tier — exam-testable services<a href=\"https://pr-aws.pages.dev/changelog/billing-domain-tips#free-tier--exam-testable-services\" class=\"hash-link\" aria-label=\"Direct link to Free tier — exam-testable services\" title=\"Direct link to Free tier — exam-testable services\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Always free</th><th>12 months free</th><th>Trials</th></tr></thead><tbody><tr><td>Lambda (1M requests/mo)</td><td>EC2 (750 hrs t2/t3.micro)</td><td>Lightsail (3 months)</td></tr><tr><td>DynamoDB (25 GB storage)</td><td>S3 (5 GB standard)</td><td></td></tr><tr><td>CloudWatch (10 metrics)</td><td>RDS (750 hrs)</td><td></td></tr></tbody></table>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"key-exam-tip\">Key exam tip<a href=\"https://pr-aws.pages.dev/changelog/billing-domain-tips#key-exam-tip\" class=\"hash-link\" aria-label=\"Direct link to Key exam tip\" title=\"Direct link to Key exam tip\" translate=\"no\">​</a></h2>\n<blockquote>\n<p>\"Consolidated billing\" = one bill for all AWS accounts in an Organisation. The main benefit isn't just one invoice — it's <strong>volume discounts</strong>: combined usage across accounts qualifies for lower pricing tiers faster than any single account would.</p>\n</blockquote>",
            "url": "https://pr-aws.pages.dev/changelog/billing-domain-tips",
            "title": "CLF-C02 exam tips: Billing, Pricing & Support (12% of the exam)",
            "summary": "Only 12% of the exam — but the questions are very specific and easy to get wrong if you confuse similar-sounding services.",
            "date_modified": "2026-09-14T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "aws-exam",
                "content"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/security-domain-tips",
            "content_html": "<p>Security is the single biggest domain on the CLF-C02 — 30% of your score. Here's what it actually tests.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-the-exam-focuses-on\">What the exam focuses on<a href=\"https://pr-aws.pages.dev/changelog/security-domain-tips#what-the-exam-focuses-on\" class=\"hash-link\" aria-label=\"Direct link to What the exam focuses on\" title=\"Direct link to What the exam focuses on\" translate=\"no\">​</a></h2>\n<p>The exam does <strong>not</strong> test deep security engineering. It tests whether you know which service to reach for in a given scenario, and the shared responsibility model.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"the-shared-responsibility-model--always-on-the-exam\">The shared responsibility model — always on the exam<a href=\"https://pr-aws.pages.dev/changelog/security-domain-tips#the-shared-responsibility-model--always-on-the-exam\" class=\"hash-link\" aria-label=\"Direct link to The shared responsibility model — always on the exam\" title=\"Direct link to The shared responsibility model — always on the exam\" translate=\"no\">​</a></h2>\n<div class=\"language-text codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#F8F8F2;--prism-background-color:#282A36\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_bY9V thin-scrollbar\" style=\"color:#F8F8F2;background-color:#282A36\"><code class=\"codeBlockLines_e6Vv\"><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">AWS is responsible for:          You are responsible for:</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">┌─────────────────────────┐      ┌─────────────────────────┐</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">│ Physical data centres   │      │ Data encryption         │</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">│ Network infrastructure  │      │ IAM users &amp; permissions │</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">│ Hypervisor / hardware   │      │ Security group rules    │</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">│ Managed service patches │      │ Application security    │</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">└─────────────────────────┘      └─────────────────────────┘</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">         \"Security OF the cloud\"    \"Security IN the cloud\"</span><br></div></code></pre></div></div>\n<p><strong>Exam pattern:</strong> a scenario describes a breach or misconfiguration — whose responsibility was it? Almost always the answer is yours (the customer), not AWS's.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"iam--the-most-tested-service-in-this-domain\">IAM — the most-tested service in this domain<a href=\"https://pr-aws.pages.dev/changelog/security-domain-tips#iam--the-most-tested-service-in-this-domain\" class=\"hash-link\" aria-label=\"Direct link to IAM — the most-tested service in this domain\" title=\"Direct link to IAM — the most-tested service in this domain\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Concept</th><th>What the exam tests</th></tr></thead><tbody><tr><td>Principle of least privilege</td><td>Always grant minimum permissions needed</td></tr><tr><td>IAM roles vs users</td><td>Roles for services/apps, users for humans</td></tr><tr><td>MFA</td><td>Should always be enabled, especially on root</td></tr><tr><td>Root account</td><td>Should never be used for daily tasks</td></tr><tr><td>IAM policies</td><td>JSON documents attached to users/roles/groups</td></tr></tbody></table>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"threat-detection--know-what-each-service-detects\">Threat detection — know what each service detects<a href=\"https://pr-aws.pages.dev/changelog/security-domain-tips#threat-detection--know-what-each-service-detects\" class=\"hash-link\" aria-label=\"Direct link to Threat detection — know what each service detects\" title=\"Direct link to Threat detection — know what each service detects\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Service</th><th>What it detects</th></tr></thead><tbody><tr><td><strong>GuardDuty</strong></td><td>Malicious activity, anomalous API calls, cryptocurrency mining</td></tr><tr><td><strong>Inspector</strong></td><td>Software vulnerabilities in EC2 and container images</td></tr><tr><td><strong>Macie</strong></td><td>Sensitive data (PII, credentials) in S3 buckets</td></tr><tr><td><strong>Security Hub</strong></td><td>Aggregates findings from all the above</td></tr></tbody></table>\n<p><strong>Memory trick:</strong> GuardDuty = threats from outside. Inspector = vulnerabilities inside. Macie = data you shouldn't have left exposed.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"encryption--know-the-key-hierarchy\">Encryption — know the key hierarchy<a href=\"https://pr-aws.pages.dev/changelog/security-domain-tips#encryption--know-the-key-hierarchy\" class=\"hash-link\" aria-label=\"Direct link to Encryption — know the key hierarchy\" title=\"Direct link to Encryption — know the key hierarchy\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>KMS</strong> — managed key service, integrates with almost every AWS service</li>\n<li class=\"\"><strong>CloudHSM</strong> — dedicated hardware for compliance requirements (FIPS 140-2 Level 3)</li>\n<li class=\"\"><strong>Secrets Manager</strong> — stores and rotates credentials, API keys, DB passwords</li>\n</ul>\n<p><strong>Exam pattern:</strong> \"needs to store database credentials securely and rotate them automatically\" → <strong>Secrets Manager</strong> (not KMS, not Parameter Store alone).</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"key-exam-tip\">Key exam tip<a href=\"https://pr-aws.pages.dev/changelog/security-domain-tips#key-exam-tip\" class=\"hash-link\" aria-label=\"Direct link to Key exam tip\" title=\"Direct link to Key exam tip\" translate=\"no\">​</a></h2>\n<blockquote>\n<p>If a question asks about compliance reports, attestations, or audit artefacts (SOC 2, ISO 27001, PCI DSS) — the answer is <strong>AWS Artifact</strong>. It's a self-service portal for downloading AWS's own compliance documents.</p>\n</blockquote>",
            "url": "https://pr-aws.pages.dev/changelog/security-domain-tips",
            "title": "CLF-C02 exam tips: Security & Compliance (30% of the exam)",
            "summary": "Security is the single biggest domain on the CLF-C02 — 30% of your score. Here's what it actually tests.",
            "date_modified": "2026-09-12T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "aws-exam",
                "content"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/full-text-search",
            "content_html": "<p>Search now reads through the entire body of every article — not just titles and subtitles.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-changed\">What changed<a href=\"https://pr-aws.pages.dev/changelog/full-text-search#what-changed\" class=\"hash-link\" aria-label=\"Direct link to What changed\" title=\"Direct link to What changed\" translate=\"no\">​</a></h2>\n<p>Previously, the <code>⌘K</code> search overlay only matched against article titles and subtitles. So searching <strong>\"spot instances\"</strong> returned nothing, even though EC2 Pricing Models covers Spot Instances in detail.</p>\n<p>Now search works across all ~140 articles' full content.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"how-it-works\">How it works<a href=\"https://pr-aws.pages.dev/changelog/full-text-search#how-it-works\" class=\"hash-link\" aria-label=\"Direct link to How it works\" title=\"Direct link to How it works\" translate=\"no\">​</a></h2>\n<p>A pre-built <code>search-index.json</code> (404 KB) is lazy-loaded the moment you open search. By the time you've typed a word, it's ready.</p>\n<p>Results are ranked in two tiers:</p>\n<ol>\n<li class=\"\"><strong>Title / subtitle matches</strong> — appear first, highlighted in the result title</li>\n<li class=\"\"><strong>Body-text matches</strong> — appear below, with a snippet showing the matching context</li>\n</ol>\n<div class=\"language-text codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#F8F8F2;--prism-background-color:#282A36\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_bY9V thin-scrollbar\" style=\"color:#F8F8F2;background-color:#282A36\"><code class=\"codeBlockLines_e6Vv\"><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">EC2 Pricing Models                          ← title match</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">AWS Pricing Models                          ← subtitle match (\"Spot\" in subtitle)</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">─────────────────────────────────────────</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">Amazon EC2          …Spot Instances   Spare capacity, cheapest…   ← body match + snippet</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">AWS Batch           …integrates with EC2 (including Spot Instances for cost…</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">Amazon EMR          …Spot Instances can significantly reduce cost…</span><br></div></code></pre></div></div>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Search results for &amp;quot;spot&amp;quot; — title matches ranked above body matches with snippets\" src=\"https://pr-aws.pages.dev/changelog/assets/images/search-spot-7d3d2f1a3e6ea1fae777b7c9cdf33c55.png\" width=\"1280\" height=\"900\" class=\"img_ev3q\"></p>\n<video loop=\"\" muted=\"\" width=\"100%\" style=\"border-radius:8px;margin-bottom:1rem\"><source src=\"/changelog/videos/gif-search.mp4\" type=\"video/mp4\"></video>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Search in action — open, type, results appear\" src=\"https://pr-aws.pages.dev/changelog/assets/images/gif-search-211493ec93de038e3669ca1be536707e.gif\" width=\"900\" height=\"563\" class=\"img_ev3q\"></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"search-in-depth\">Search in depth<a href=\"https://pr-aws.pages.dev/changelog/full-text-search#search-in-depth\" class=\"hash-link\" aria-label=\"Direct link to Search in depth\" title=\"Direct link to Search in depth\" translate=\"no\">​</a></h2>\n<video controls=\"\" width=\"100%\" style=\"border-radius:8px;margin-bottom:1rem\"><source src=\"/changelog/videos/walkthrough-search.mp4\" type=\"video/mp4\"></video>",
            "url": "https://pr-aws.pages.dev/changelog/full-text-search",
            "title": "Full-text search across all articles",
            "summary": "Search now reads through the entire body of every article — not just titles and subtitles.",
            "date_modified": "2026-09-10T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "site-update",
                "search",
                "ui"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/clf-c02-generative-ai-update",
            "content_html": "<p>AWS has increased the weight of generative AI topics in the CLF-C02 exam. Here's what's testable now.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"whats-in-scope\">What's in scope<a href=\"https://pr-aws.pages.dev/changelog/clf-c02-generative-ai-update#whats-in-scope\" class=\"hash-link\" aria-label=\"Direct link to What's in scope\" title=\"Direct link to What's in scope\" translate=\"no\">​</a></h2>\n<p>The exam now explicitly tests:</p>\n<ul>\n<li class=\"\"><strong>Amazon Bedrock</strong> — fully managed service to build generative AI apps using foundation models (FMs) from AI21 Labs, Anthropic, Cohere, Meta, Mistral, and Amazon</li>\n<li class=\"\"><strong>Amazon Q</strong> — generative AI assistant for business (Q Business) and for developers (Q Developer, formerly CodeWhisperer)</li>\n<li class=\"\"><strong>Amazon SageMaker</strong> — for building, training and deploying ML models; exam focuses on the managed aspect, not the data-science workflow</li>\n<li class=\"\"><strong>AI/ML managed services</strong> — Rekognition (images/video), Comprehend (NLP), Translate, Polly, Transcribe, Lex, Forecast, Personalize</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"key-distinctions-the-exam-likes-to-test\">Key distinctions the exam likes to test<a href=\"https://pr-aws.pages.dev/changelog/clf-c02-generative-ai-update#key-distinctions-the-exam-likes-to-test\" class=\"hash-link\" aria-label=\"Direct link to Key distinctions the exam likes to test\" title=\"Direct link to Key distinctions the exam likes to test\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Service</th><th>What it does</th><th>Common distractor</th></tr></thead><tbody><tr><td>Bedrock</td><td>Access third-party FMs via API, no ML expertise needed</td><td>SageMaker (requires ML expertise)</td></tr><tr><td>Amazon Q Business</td><td>AI assistant over your company's data</td><td>Bedrock (you build the app yourself)</td></tr><tr><td>SageMaker</td><td>Full ML platform — build, train, deploy</td><td>Bedrock (no model training, just access FMs)</td></tr><tr><td>Rekognition</td><td>Pre-trained vision model, no training needed</td><td>SageMaker (needs training)</td></tr></tbody></table>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"exam-tip\">Exam tip<a href=\"https://pr-aws.pages.dev/changelog/clf-c02-generative-ai-update#exam-tip\" class=\"hash-link\" aria-label=\"Direct link to Exam tip\" title=\"Direct link to Exam tip\" translate=\"no\">​</a></h2>\n<blockquote>\n<p>If a scenario describes a business that wants to <strong>add AI without any ML expertise or model training</strong>, the answer is almost always <strong>Bedrock</strong> or a managed AI service (Rekognition, Comprehend, etc.).<br>\n<!-- -->If they want to <strong>train their own model on proprietary data</strong>, it's <strong>SageMaker</strong>.</p>\n</blockquote>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"articles-on-this-site\">Articles on this site<a href=\"https://pr-aws.pages.dev/changelog/clf-c02-generative-ai-update#articles-on-this-site\" class=\"hash-link\" aria-label=\"Direct link to Articles on this site\" title=\"Direct link to Articles on this site\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><a href=\"https://pr-aws.pages.dev/article/?file=knowledge/services/bedrock.md\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Amazon Bedrock</a></li>\n<li class=\"\"><a href=\"https://pr-aws.pages.dev/article/?file=knowledge/services/amazon-q.md\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Amazon Q</a></li>\n<li class=\"\"><a href=\"https://pr-aws.pages.dev/article/?file=knowledge/concepts/ai-ml-fundamentals.md\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">AI/ML Fundamentals</a></li>\n<li class=\"\"><a href=\"https://pr-aws.pages.dev/article/?file=knowledge/concepts/generative-ai-concepts.md\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">Generative AI Concepts</a></li>\n</ul>",
            "url": "https://pr-aws.pages.dev/changelog/clf-c02-generative-ai-update",
            "title": "CLF-C02 exam: what you need to know about generative AI",
            "summary": "AWS has increased the weight of generative AI topics in the CLF-C02 exam. Here's what's testable now.",
            "date_modified": "2026-09-08T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "aws-exam",
                "content",
                "ai-ml"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/topic-grouping",
            "content_html": "<p>Topics within each module are now organised under sub-headings that mirror the actual AWS CLF-C02 course structure.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-changed\">What changed<a href=\"https://pr-aws.pages.dev/changelog/topic-grouping#what-changed\" class=\"hash-link\" aria-label=\"Direct link to What changed\" title=\"Direct link to What changed\" translate=\"no\">​</a></h2>\n<p>Module detail pages previously showed a flat list of topics. Now they're grouped under labelled sections — exactly as the official AWS course organises them.</p>\n<p><strong>Example — Module 9: Security</strong></p>\n<table><thead><tr><th>Group</th><th>Topics</th></tr></thead><tbody><tr><td>Identity &amp; Access Management</td><td>IAM, Cognito, IAM Concepts</td></tr><tr><td>Governance &amp; Compliance</td><td>Organizations, Artifact</td></tr><tr><td>Data Protection &amp; Encryption</td><td>KMS, CloudHSM, Secrets Manager, Encryption Fundamentals</td></tr><tr><td>Infrastructure Protection</td><td>Shield, WAF</td></tr><tr><td>Threat Detection &amp; Monitoring</td><td>GuardDuty, Inspector, Macie</td></tr></tbody></table>\n<p>This applies to all 13 modules.</p>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Module 9 Security — topic grouping\" src=\"https://pr-aws.pages.dev/changelog/assets/images/module9-grouping-3ec61c5c86aeaf91989e57e4b563de24.png\" width=\"1280\" height=\"900\" class=\"img_ev3q\"></p>\n<video loop=\"\" muted=\"\" width=\"100%\" style=\"border-radius:8px;margin-bottom:1rem\"><source src=\"/changelog/videos/gif-module-grouping.mp4\" type=\"video/mp4\"></video>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Scrolling through Module 9 — sub-sections in action\" src=\"https://pr-aws.pages.dev/changelog/assets/images/gif-module-grouping-9879d89043047770a7e30c233d9487ab.gif\" width=\"900\" height=\"563\" class=\"img_ev3q\"></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"module-9-security--full-walkthrough\">Module 9 Security — full walkthrough<a href=\"https://pr-aws.pages.dev/changelog/topic-grouping#module-9-security--full-walkthrough\" class=\"hash-link\" aria-label=\"Direct link to Module 9 Security — full walkthrough\" title=\"Direct link to Module 9 Security — full walkthrough\" translate=\"no\">​</a></h2>\n<video controls=\"\" width=\"100%\" style=\"border-radius:8px;margin-bottom:1rem\"><source src=\"/changelog/videos/walkthrough-module9.mp4\" type=\"video/mp4\"></video>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"also-fixed\">Also fixed<a href=\"https://pr-aws.pages.dev/changelog/topic-grouping#also-fixed\" class=\"hash-link\" aria-label=\"Direct link to Also fixed\" title=\"Direct link to Also fixed\" translate=\"no\">​</a></h2>\n<p>The <strong>Cloud Adoption Framework</strong> article was incorrectly assigned to Module 13 (Well-Architected Solutions). It has been moved to <strong>Module 12 (Migration)</strong>, where it belongs per the official course — CAF's six perspectives (Business, People, Governance, Platform, Security, Operations) are migration planning tools, not well-architected pillars.</p>",
            "url": "https://pr-aws.pages.dev/changelog/topic-grouping",
            "title": "Module topics now grouped by sub-section",
            "summary": "Topics within each module are now organised under sub-headings that mirror the actual AWS CLF-C02 course structure.",
            "date_modified": "2026-09-05T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "site-update",
                "ui",
                "content"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/articles-page",
            "content_html": "<p>Concept articles now have their own page — browse and filter them independently of modules and services.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"whats-new\">What's new<a href=\"https://pr-aws.pages.dev/changelog/articles-page#whats-new\" class=\"hash-link\" aria-label=\"Direct link to What's new\" title=\"Direct link to What's new\" translate=\"no\">​</a></h2>\n<p>A dedicated <strong>Articles</strong> page is now in the main nav, between Topics and By Tier.</p>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Articles page\" src=\"https://pr-aws.pages.dev/changelog/assets/images/articles-page-5cbc6e151e3f36770c72dfdfde425300.png\" width=\"1280\" height=\"820\" class=\"img_ev3q\"></p>\n<p>It lists all concept articles grouped by domain:</p>\n<table><thead><tr><th>Domain</th><th>Colour</th><th>What's in it</th></tr></thead><tbody><tr><td>Cloud Concepts</td><td>Blue</td><td>Cloud models, shared responsibility, IaaS/PaaS/SaaS</td></tr><tr><td>Technology</td><td>Teal</td><td>Architecture patterns, storage, caching, CDN, DevOps</td></tr><tr><td>Security</td><td>Pink</td><td>IAM concepts, encryption, compliance frameworks</td></tr><tr><td>Billing</td><td>Amber</td><td>Pricing models, cost management, consolidated billing</td></tr></tbody></table>\n<p>Filter chips at the top let you narrow to one domain at a time.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-a-separate-page\">Why a separate page?<a href=\"https://pr-aws.pages.dev/changelog/articles-page#why-a-separate-page\" class=\"hash-link\" aria-label=\"Direct link to Why a separate page?\" title=\"Direct link to Why a separate page?\" translate=\"no\">​</a></h2>\n<p>Concept articles don't belong to a single module — they're cross-cutting background knowledge. Burying them inside module detail pages made them hard to discover. A dedicated page makes it easy to see what foundational reading exists and track what you've covered.</p>\n<p>Progress tracking (read/unread) works here exactly as it does everywhere else.</p>",
            "url": "https://pr-aws.pages.dev/changelog/articles-page",
            "title": "New Articles page in the nav",
            "summary": "Concept articles now have their own page — browse and filter them independently of modules and services.",
            "date_modified": "2026-09-02T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "site-update",
                "ui",
                "content"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/concept-articles",
            "content_html": "<p>Ten new articles covering concepts that underpin multiple AWS services — the kind of background knowledge the exam assumes you have.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"why-concept-articles\">Why concept articles?<a href=\"https://pr-aws.pages.dev/changelog/concept-articles#why-concept-articles\" class=\"hash-link\" aria-label=\"Direct link to Why concept articles?\" title=\"Direct link to Why concept articles?\" translate=\"no\">​</a></h2>\n<p>Service articles (EC2, S3, RDS…) cover <em>what</em> a service does. But the exam also tests whether you understand <em>why</em> things are built the way they are — virtualization, caching, event-driven architecture, and so on.</p>\n<p>These concept articles fill that gap. Each one is a short, focused primer written in the same house style as service articles.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"whats-new\">What's new<a href=\"https://pr-aws.pages.dev/changelog/concept-articles#whats-new\" class=\"hash-link\" aria-label=\"Direct link to What's new\" title=\"Direct link to What's new\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Article</th><th>Module</th><th>What it covers</th></tr></thead><tbody><tr><td>IaaS vs PaaS vs SaaS</td><td>1</td><td>The three cloud service models with concrete examples</td></tr><tr><td>Cloud Management Tiers</td><td>3</td><td>Serverless → Fully managed → Managed → Unmanaged</td></tr><tr><td>High Availability &amp; Fault Tolerance</td><td>13</td><td>HA vs FT, RPO/RTO, active-active vs active-passive</td></tr><tr><td>Disaster Recovery</td><td>13</td><td>Backup/restore, pilot light, warm standby, multi-site</td></tr><tr><td>What is Caching?</td><td>7</td><td>Cache hit/miss, TTL, write strategies, when to use</td></tr><tr><td>What is a CDN?</td><td>4</td><td>How CloudFront works under the hood</td></tr><tr><td>Load Balancing</td><td>2</td><td>ALB vs NLB vs CLB, routing algorithms</td></tr><tr><td>Object vs Block vs File Storage</td><td>6</td><td>When to use S3 vs EBS vs EFS</td></tr><tr><td>Microservices vs Monolith</td><td>3</td><td>Trade-offs, when each fits, AWS service alignment</td></tr><tr><td>DevOps &amp; CI/CD</td><td>10</td><td>Pipeline stages, CodePipeline, CodeBuild, CodeDeploy</td></tr></tbody></table>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"where-to-find-them\">Where to find them<a href=\"https://pr-aws.pages.dev/changelog/concept-articles#where-to-find-them\" class=\"hash-link\" aria-label=\"Direct link to Where to find them\" title=\"Direct link to Where to find them\" translate=\"no\">​</a></h2>\n<p>All concept articles appear in the <strong>Articles</strong> tab, grouped under their domain (Cloud Concepts, Technology, Security, Billing). They also appear on their respective module detail pages under the relevant sub-section.</p>",
            "url": "https://pr-aws.pages.dev/changelog/concept-articles",
            "title": "10 new foundational concept articles",
            "summary": "Ten new articles covering concepts that underpin multiple AWS services — the kind of background knowledge the exam assumes you have.",
            "date_modified": "2026-08-30T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "content",
                "site-update"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/scroll-fix",
            "content_html": "<p>Topics, Modules, Articles, By Tier, and Exam pages — none of them scrolled. All fixed.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-was-broken\">What was broken<a href=\"https://pr-aws.pages.dev/changelog/scroll-fix#what-was-broken\" class=\"hash-link\" aria-label=\"Direct link to What was broken\" title=\"Direct link to What was broken\" translate=\"no\">​</a></h2>\n<p>Every multi-page view had the same symptom: content was cut off at the bottom, and the page wouldn't scroll. Article pages were also broken — long articles were stuck, the text just ended.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"root-cause\">Root cause<a href=\"https://pr-aws.pages.dev/changelog/scroll-fix#root-cause\" class=\"hash-link\" aria-label=\"Direct link to Root cause\" title=\"Direct link to Root cause\" translate=\"no\">​</a></h2>\n<p>The site shares CSS with an SPA (single-page app) core that locks the body:</p>\n<div class=\"language-css codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#F8F8F2;--prism-background-color:#282A36\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-css codeBlock_bY9V thin-scrollbar\" style=\"color:#F8F8F2;background-color:#282A36\"><code class=\"codeBlockLines_e6Vv\"><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token comment\" style=\"color:rgb(98, 114, 164)\">/* kb-core.css — correct for SPA */</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\"></span><span class=\"token selector\" style=\"color:rgb(255, 121, 198)\">body</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{</span><span class=\"token plain\"> </span><span class=\"token property\">height</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> </span><span class=\"token number\">100</span><span class=\"token unit\">vh</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\"> </span><span class=\"token property\">overflow</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> hidden</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}</span><br></div></code></pre></div></div>\n<p>This is right for the SPA because it manages its own scroll inside a <code>&lt;main&gt;</code> element. But the regular pages were inheriting it and getting clipped.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"fix--multi-page-pages\">Fix — multi-page pages<a href=\"https://pr-aws.pages.dev/changelog/scroll-fix#fix--multi-page-pages\" class=\"hash-link\" aria-label=\"Direct link to Fix — multi-page pages\" title=\"Direct link to Fix — multi-page pages\" translate=\"no\">​</a></h2>\n<p>Made the page body a flex column and gave <code>&lt;main&gt;</code> the scroll:</p>\n<div class=\"language-css codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#F8F8F2;--prism-background-color:#282A36\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-css codeBlock_bY9V thin-scrollbar\" style=\"color:#F8F8F2;background-color:#282A36\"><code class=\"codeBlockLines_e6Vv\"><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token selector\" style=\"color:rgb(255, 121, 198)\">body</span><span class=\"token selector class\" style=\"color:rgb(255, 121, 198)\">.page</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  </span><span class=\"token property\">display</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> flex</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  </span><span class=\"token property\">flex-direction</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> column</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  </span><span class=\"token property\">height</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> </span><span class=\"token number\">100</span><span class=\"token unit\">vh</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  </span><span class=\"token property\">overflow</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> hidden</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\">     </span><span class=\"token comment\" style=\"color:rgb(98, 114, 164)\">/* body still locked */</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\"></span><span class=\"token selector class\" style=\"color:rgb(255, 121, 198)\">.page-main</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  </span><span class=\"token property\">flex</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> </span><span class=\"token number\">1</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  </span><span class=\"token property\">min-height</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> </span><span class=\"token number\">0</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\">        </span><span class=\"token comment\" style=\"color:rgb(98, 114, 164)\">/* critical — prevents flex child expanding past parent */</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">  </span><span class=\"token property\">overflow-y</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">:</span><span class=\"token plain\"> auto</span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">;</span><span class=\"token plain\">     </span><span class=\"token comment\" style=\"color:rgb(98, 114, 164)\">/* scroll lives here */</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:rgb(248, 248, 242)\">}</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"fix--article-pages\">Fix — article pages<a href=\"https://pr-aws.pages.dev/changelog/scroll-fix#fix--article-pages\" class=\"hash-link\" aria-label=\"Direct link to Fix — article pages\" title=\"Direct link to Fix — article pages\" translate=\"no\">​</a></h2>\n<p>Article pages had a deeper problem: two nested flex children both missing <code>min-height: 0</code>, causing the inner scroll container to expand to full content height (~6000px) and never actually scroll.</p>\n<p>Added <code>min-height: 0</code> at both levels. Articles now scroll correctly regardless of length.</p>",
            "url": "https://pr-aws.pages.dev/changelog/scroll-fix",
            "title": "Scroll now works on all pages",
            "summary": "Topics, Modules, Articles, By Tier, and Exam pages — none of them scrolled. All fixed.",
            "date_modified": "2026-08-27T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "site-update",
                "ui"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/module-routing-fix",
            "content_html": "<p>Clicking any module card was silently redirecting to the homepage. Fixed.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"what-was-broken\">What was broken<a href=\"https://pr-aws.pages.dev/changelog/module-routing-fix#what-was-broken\" class=\"hash-link\" aria-label=\"Direct link to What was broken\" title=\"Direct link to What was broken\" translate=\"no\">​</a></h2>\n<p>Navigating to <code>/modules/8/</code> (or any module by path) loaded the homepage instead of Module 8. No error, no message — just the wrong page.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"root-cause\">Root cause<a href=\"https://pr-aws.pages.dev/changelog/module-routing-fix#root-cause\" class=\"hash-link\" aria-label=\"Direct link to Root cause\" title=\"Direct link to Root cause\" translate=\"no\">​</a></h2>\n<p>Cloudflare Pages has an SPA fallback: any path that doesn't match a real file gets served <code>index.html</code> from the root. So <code>/modules/8/</code> had no matching file, fell through to the root <code>index.html</code>, and that's all you saw.</p>\n<p>The <code>_redirects</code> rule meant to catch this was never reached — the SPA fallback fires first.</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"fix\">Fix<a href=\"https://pr-aws.pages.dev/changelog/module-routing-fix#fix\" class=\"hash-link\" aria-label=\"Direct link to Fix\" title=\"Direct link to Fix\" translate=\"no\">​</a></h2>\n<p>Switched from path-based routing to query-string routing:</p>\n<table><thead><tr><th>Before</th><th>After</th></tr></thead><tbody><tr><td><code>/modules/8/</code></td><td><code>/modules/?m=8</code></td></tr></tbody></table>\n<p>Query-string URLs always resolve to <code>/modules/index.html</code>, which exists — so the SPA fallback never triggers. The page then reads <code>?m=8</code> from <code>URLSearchParams</code> and renders the right module.</p>\n<p>Clean, reliable, no build step needed.</p>",
            "url": "https://pr-aws.pages.dev/changelog/module-routing-fix",
            "title": "Bug fix: clicking a module now opens the right page",
            "summary": "Clicking any module card was silently redirecting to the homepage. Fixed.",
            "date_modified": "2026-08-23T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "site-update"
            ]
        },
        {
            "id": "https://pr-aws.pages.dev/changelog/site-launch",
            "content_html": "<p>The AWS CLF-C02 knowledge portal is live at <a href=\"https://pr-aws.pages.dev/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">pr-aws.pages.dev</a>.</p>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"AWS Knowledge homepage\" src=\"https://pr-aws.pages.dev/changelog/assets/images/homepage-dca7984a42388e593e9ed9ce9ab35237.png\" width=\"1280\" height=\"820\" class=\"img_ev3q\"></p>\n<video loop=\"\" muted=\"\" width=\"100%\" style=\"border-radius:8px;margin-bottom:1rem\"><source src=\"/changelog/videos/gif-modules-grid.mp4\" type=\"video/mp4\"></video>\n<p><img decoding=\"async\" loading=\"lazy\" alt=\"Browsing modules and opening a module detail\" src=\"https://pr-aws.pages.dev/changelog/assets/images/gif-modules-grid-526a4fcafdde419be075a118807f86af.gif\" width=\"900\" height=\"563\" class=\"img_ev3q\"></p>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"whats-included\">What's included<a href=\"https://pr-aws.pages.dev/changelog/site-launch#whats-included\" class=\"hash-link\" aria-label=\"Direct link to What's included\" title=\"Direct link to What's included\" translate=\"no\">​</a></h2>\n<ul>\n<li class=\"\"><strong>13 modules</strong> covering the full CLF-C02 syllabus</li>\n<li class=\"\"><strong>~130 service and concept articles</strong> with ASCII diagrams, comparison tables, Key Exam Tips, and Further Reading</li>\n<li class=\"\"><strong>Topics</strong>, <strong>By Tier</strong>, and <strong>Exam</strong> pages for cross-cutting views</li>\n<li class=\"\"><strong>Progress tracking</strong> — articles marked read persist in your browser</li>\n<li class=\"\"><strong>Bookmarks</strong> and a reading streak</li>\n<li class=\"\"><strong>Search</strong> (<code>⌘K</code>) across all titles and subtitles</li>\n</ul>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"content-structure\">Content structure<a href=\"https://pr-aws.pages.dev/changelog/site-launch#content-structure\" class=\"hash-link\" aria-label=\"Direct link to Content structure\" title=\"Direct link to Content structure\" translate=\"no\">​</a></h2>\n<p>Every article follows a consistent house style:</p>\n<div class=\"language-text codeBlockContainer_Ckt0 theme-code-block\" style=\"--prism-color:#F8F8F2;--prism-background-color:#282A36\"><div class=\"codeBlockContent_QJqH\"><pre tabindex=\"0\" class=\"prism-code language-text codeBlock_bY9V thin-scrollbar\" style=\"color:#F8F8F2;background-color:#282A36\"><code class=\"codeBlockLines_e6Vv\"><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">## What it is         ← one-paragraph plain-English summary</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">## How it works       ← ASCII diagram or flow</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">## Key features       ← comparison table where relevant</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">## Key Exam Tips      ← bullet points of what the exam tests</span><br></div><div class=\"token-line\" style=\"color:#F8F8F2\"><span class=\"token plain\">## Further Reading    ← links to AWS docs</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"domain-coverage\">Domain coverage<a href=\"https://pr-aws.pages.dev/changelog/site-launch#domain-coverage\" class=\"hash-link\" aria-label=\"Direct link to Domain coverage\" title=\"Direct link to Domain coverage\" translate=\"no\">​</a></h2>\n<table><thead><tr><th>Domain</th><th>Weight (CLF-C02)</th></tr></thead><tbody><tr><td>Cloud Concepts</td><td>24%</td></tr><tr><td>Security &amp; Compliance</td><td>30%</td></tr><tr><td>Cloud Technology &amp; Services</td><td>34%</td></tr><tr><td>Billing, Pricing &amp; Support</td><td>12%</td></tr></tbody></table>\n<h2 class=\"anchor anchorTargetStickyNavbar_Vzrq\" id=\"full-site-walkthrough\">Full site walkthrough<a href=\"https://pr-aws.pages.dev/changelog/site-launch#full-site-walkthrough\" class=\"hash-link\" aria-label=\"Direct link to Full site walkthrough\" title=\"Direct link to Full site walkthrough\" translate=\"no\">​</a></h2>\n<video controls=\"\" width=\"100%\" style=\"border-radius:8px;margin-top:1rem\"><source src=\"/changelog/videos/walkthrough-site-tour.mp4\" type=\"video/mp4\"></video>",
            "url": "https://pr-aws.pages.dev/changelog/site-launch",
            "title": "AWS Knowledge portal — initial launch",
            "summary": "The AWS CLF-C02 knowledge portal is live at pr-aws.pages.dev.",
            "date_modified": "2026-08-20T00:00:00.000Z",
            "author": {
                "name": "Pratyush"
            },
            "tags": [
                "site-update"
            ]
        }
    ]
}