Host Your First Website on AWS

Host a static website on Amazon S3 and secure your AWS account with IAM and MFA.

Introduction

30 Second Summary

Every business, portfolio, and project needs a home on the internet. Cloud platforms like AWS make it possible to host a website without buying or managing a single server.

In this project, you will host your very first website on Amazon Web Services. You'll secure your account like a professional, publish a live webpage that anyone can visit, and walk away with a complete study roadmap to pass the AWS Cloud Practitioner exam.

What You'll Build

A public static website hosted on Amazon S3 with proper security configuration (MFA, IAM admin user) and zero server management.

By the end of this project, you'll have:

  • A secured AWS account with MFA enabled and an IAM admin user following security best practices.
  • A live static website hosted on Amazon S3, accessible via a URL you can share with anyone.
  • Hands-on understanding of the shared responsibility model that covers 30% of the Cloud Practitioner exam, plus a complete 6-week study plan with free resources to pass the CLF-C02 and continue to Azure and GCP.
  • Secret Mission: Add a custom error page and enable S3 versioning to see how AWS protects your data.

Are there any prerequisites?

You need a debit or credit card for AWS account verification. You will NOT be charged. AWS requires this for identity verification only.

You also need a smartphone to set up an authenticator app (Google Authenticator or Microsoft Authenticator) for MFA. No coding skills or prior cloud experience required.

Create Your AWS Account

Every cloud project begins with an account. Your AWS account gives you access to hundreds of cloud services, from storage to artificial intelligence. Setting it up securely from day one is a real-world best practice that professional cloud engineers follow.

In this step, you'll create a free AWS account, secure it with multi-factor authentication, and learn about the shared responsibility model. These three concepts together cover 64% of the Cloud Practitioner exam content.

In this step, get ready to:
  • Sign up for an AWS Free Tier account.
  • Enable MFA on your root user.
  • Understand the shared responsibility model.
Sign up for AWS Free Tier

AWS offers a Free plan for new accounts that includes up to $200 in credits over 6 months. The sign-up process is a multi-page wizard that takes about 5 minutes.

  • In your web browser, navigate to the AWS Free Tier page.
  • Click Create a Free Account.
  • Enter your email address and choose an account name (this can be anything, like "My Cloud Account").
  • Click Verify email address.
  • Check your email inbox for a verification code from AWS and enter it on the next page.
  • Create a strong root user password that includes uppercase letters, lowercase letters, numbers, and symbols.
  • Choose Personal as your account type (personal and business accounts have the same features).
  • Fill in your contact information and accept the AWS Customer Agreement.
  • On the payment page, enter your debit or credit card details.
  • Select your country code, enter your phone number, complete the CAPTCHA, and enter the PIN that AWS sends you.
  • On the support plan page, select Basic Support (free).
  • Click Complete sign up.

Account activation usually takes a few minutes. You will receive a confirmation email from AWS when your account is ready.

Will I be charged?

No. Your card is required for identity verification only. On the Free plan, you will not be charged unless you choose to upgrade to the Paid plan. You receive $100 in credits at sign-up and can earn up to $100 more by exploring AWS services.

The Free plan lasts 6 months or until your credits are used up. For a single HTML website, you will stay well within the free limits.

What is a root user?

When you create an AWS account, the email and password you used become the "root user" credentials. The root user has complete access to everything in the account. Because it is so powerful, AWS recommends you avoid using it for daily tasks.

In the next step, you will create a separate admin user for everyday work. For now, the root user is the only way to sign in.

Enable MFA on your root user

AWS requires all root users to enable MFA (Multi-Factor Authentication) within 35 days of first sign-in. Enabling it now means your account is protected from day one.

  • Sign in to the AWS Management Console using the email and password you just created.
  • Click your account name in the top-right corner of the navigation bar.
  • Choose Security credentials from the dropdown menu.
  • Scroll down to the Multi-factor authentication (MFA) section.
  • Click Assign MFA device.
  • Type a name for your device (for example, "my-phone").
  • Select Authenticator app and click Next.
  • On your smartphone, open your authenticator app (Google Authenticator or Microsoft Authenticator). If you do not have one installed yet, download it from the App Store or Google Play.
  • In the authenticator app, tap the option to add a new account (usually a "+" icon).
  • Click Show QR code on the AWS page.
  • Use your phone's camera to scan the QR code displayed on screen.
  • Your authenticator app will start generating 6-digit codes. Type the current code into the MFA code 1 box.
  • Wait about 30 seconds for a new code to appear. Type the new code into the MFA code 2 box.
  • Click Add MFA.

You should see a success message confirming that your MFA device has been assigned. The Multi-factor authentication section now shows your device listed.

What is MFA?

MFA adds a second layer of security on top of your password. Even if someone steals your password, they cannot access your account without the code from your phone.

The authenticator app generates a new 6-digit code every 30 seconds. AWS checks that the code matches before letting you in.

Codes not being accepted?

Make sure you enter the two codes quickly after they appear. The codes expire every 30 seconds, and if you wait too long the device goes out of sync.

If you accidentally scanned the QR code twice, delete the duplicate entry in your authenticator app and try the two-code step again.

Why are my MFA codes not being accepted by AWS?

Understand the shared responsibility model

You just performed two very different types of security work, and that distinction is the most-tested concept on the Cloud Practitioner exam.

What is the shared responsibility model?

The shared responsibility model divides security duties between AWS and you, the customer.

AWS is responsible for security "of" the cloud. This means the physical data centres, network hardware, and infrastructure that runs AWS services. You never need to worry about locking server rooms or patching hypervisors.

You are responsible for security "in" the cloud. This means your account credentials, your passwords, your MFA configuration, and who you grant access to. You just completed your side of the bargain by creating a strong password and enabling MFA.

This model accounts for 30% of the Cloud Practitioner exam (the Security and Compliance domain). You will see it again when you configure S3 bucket permissions in a later step.

Your AWS account is created and secured. Next up, you'll create a separate admin user so you never need to use the root user for daily tasks.

Create an IAM Admin User

Your AWS account is live and secured with MFA. That's a great start.

Right now you're signed in as the root user, which has unlimited power over your entire AWS account. AWS recommends creating a separate IAM user for daily tasks and reserving the root user for rare account-level operations only.

In this step, get ready to:
  • Create an IAM user with console access.
  • Attach the AdministratorAccess policy to the new user.
  • Sign in as your new IAM user for all future work.
Create an IAM user

IAM (Identity and Access Management) lets you create individual users with specific permissions inside your AWS account. Each IAM user gets their own login credentials, separate from the root user.

What is IAM?

Think of IAM as the security desk in an office building. The root user is the building owner who has keys to every room. IAM users are employees who each get a badge that only opens the doors they need.

Creating an IAM admin user is an AWS security best practice and a heavily tested topic on the Cloud Practitioner exam.

  • In the AWS Console, type IAM in the search bar at the top of the page.
  • Click IAM in the search results to open the IAM dashboard.
  • In the left navigation pane, click Users.
  • Click Create user.
  • Enter a username like admin-yourname (replace "yourname" with your actual name).
  • Check the box next to Provide user access to the AWS Management Console.
  • Select I want to create an IAM user.
  • Set a custom password you'll remember.
  • Uncheck Users must create a new password at next sign-in.
  • Click Next.

Why uncheck the password reset?

Since you own both the root account and this IAM user, there's no need to force a password change on first login. In a team environment, you'd keep this checked so each person sets their own password.

Attach admin permissions

Now you'll give this user full admin access by attaching a managed policy. A policy is a document that defines what actions a user can perform on which AWS resources.

  • On the Set permissions page, select Attach policies directly.
  • In the search box, type AdministratorAccess.
  • Check the box next to AdministratorAccess.
  • Click Next.
  • Click Create user.

What is AdministratorAccess?

AdministratorAccess is an AWS-managed policy that grants full access to all AWS services and resources. It gives your IAM user the same power as the root user for day-to-day tasks.

The difference is that IAM users can be deleted, have permissions revoked, or be temporarily disabled. The root user cannot. This makes IAM users much safer for everyday work.

Sign in as your IAM user

AWS gives you a unique sign-in URL for your IAM users. This URL is different from the root user login page.

  • On the success page, find the Console sign-in URL (it looks like https://123456789012.signin.aws.amazon.com/console but with your account number).
  • Copy this URL and save it somewhere safe. You'll need it every time you sign in as your IAM user.
  • Click your account name in the top-right corner of the console.
  • Click Sign out.
  • Paste your Console sign-in URL into your browser's address bar and press Enter.
  • Enter your IAM username and password.
  • Click Sign in.

You should see the AWS Console dashboard. In the top-right corner, your IAM username now appears instead of the root account email.

Can't sign in?

Make sure you're using the Console sign-in URL you copied, not the regular AWS sign-in page. The IAM sign-in page has a field for your account ID or alias at the top.

Double-check your username and password. The username is case-sensitive.

Help me troubleshoot my IAM sign-in issue

Why never use the root user for daily tasks?

The root user has unrestricted access that cannot be limited by any policy. If the root credentials are compromised, an attacker has total control with no guardrails.

IAM users can be deleted, suspended, or have permissions removed instantly. This principle of using the least-powerful credentials needed is called "least privilege" and is a core exam topic.

From this point forward, you'll do everything in your IAM admin user. The root user stays locked away for emergencies only.

Your account is now set up following professional security best practices. Next up, you'll create an S3 bucket and upload your very first website to the cloud.

Create an S3 Bucket and Upload Your Website

You have a secured AWS account and a dedicated admin user ready to go. Now it's time to build something the world can actually see.

In this step, you'll use Amazon S3 to store and serve your first website. S3 delivers your files directly to anyone with the URL, with no servers for you to manage.

In this step, get ready to:
  • Create an S3 bucket configured for public access.
  • Create and upload your website HTML file.
  • Enable static website hosting and note your live URL.
Create an S3 bucket

An S3 bucket is a container that holds files (called objects) in the cloud. You need one to store the HTML file that will become your website.

  • In the AWS Console search bar at the top of the page, type S3 and click the S3 result to open the S3 console.
  • In the left navigation pane, click General purpose buckets.
  • Click Create bucket.
  • In the Bucket name field, enter a globally unique name such as my-first-cloud-website- followed by your name and the year (e.g. my-first-cloud-website-yourname-2026). Bucket names must be unique across all of AWS, so add your name to avoid conflicts.
  • Leave the AWS Region as the default.
  • Scroll down to Block Public Access settings for this bucket.
  • Uncheck Block all public access. A warning message appears asking you to acknowledge that objects in this bucket could become public.
  • Check the acknowledgment box that says you understand the risks of disabling Block Public Access.
  • Leave all other settings as their defaults and click Create bucket at the bottom of the page.

What is an S3 bucket?

Think of a bucket as a top-level folder in the cloud. Every file you upload becomes an "object" inside that bucket. Each bucket has a globally unique name because it forms part of the URL used to access your files.

You disabled Block Public Access because your website needs to be viewable by anyone on the internet. For most production workloads you would keep this setting enabled and use more targeted access controls.

You should see a green success banner at the top of the page confirming your bucket was created. Your new bucket name appears in the bucket list.

Don't see your bucket?

Make sure you clicked Create bucket at the bottom of the page and not just the acknowledgment checkbox. If you see an error about the bucket name already existing, try a more unique name by adding extra numbers or characters.

Help me troubleshoot my S3 bucket creation error.

Create and upload your website file

Now you'll create the HTML file that will be your live website. You'll write it in Notepad, then upload it to your S3 bucket.

  • Press the Windows key to open your search bar.
  • Type Notepad and press Enter to open it.
  • Copy all of the code below and paste it into the empty Notepad window:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My First Cloud Website</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 40px 20px;
            background-color: #f0f8ff;
            color: #333;
        }
        h1 {
            color: #232f3e;
            border-bottom: 3px solid #ff9900;
            padding-bottom: 10px;
        }
        .highlight {
            background-color: #ff9900;
            color: white;
            padding: 2px 8px;
            border-radius: 4px;
        }
        .info-box {
            background-color: white;
            border-left: 4px solid #232f3e;
            padding: 15px;
            margin: 20px 0;
            border-radius: 4px;
        }
    </style>
</head>
<body>
    <h1>My First Cloud Website</h1>
    <p>This website is hosted on <span class="highlight">Amazon S3</span> with zero servers!</p>
    
    <div class="info-box">
        <h3>What I Learned Today</h3>
        <ul>
            <li>Created and secured an AWS account with MFA</li>
            <li>Set up IAM users following security best practices</li>
            <li>Hosted a static website using Amazon S3</li>
            <li>Configured bucket policies for public access</li>
            <li>Understood the AWS Shared Responsibility Model</li>
        </ul>
    </div>

    <div class="info-box">
        <h3>Cloud Practitioner Exam Topics Covered</h3>
        <ul>
            <li>Security and Compliance (30% of exam) - IAM, MFA, Shared Responsibility</li>
            <li>Cloud Technology and Services (34% of exam) - S3, Static Website Hosting</li>
        </ul>
    </div>

    <p><strong>Next goal:</strong> AWS Certified Cloud Practitioner (CLF-C02)</p>
</body>
</html>

What does this code do?

This is a complete HTML webpage that will become your live website. It includes styling (the <style> section) that gives it a clean, professional look with AWS brand colours.

The body content lists what you've learned in this project and which Cloud Practitioner exam domains you've covered. Once it's live on S3, you'll be able to share this URL with anyone.

  • In Notepad, click File in the menu bar, then click Save As.
  • In the Save as type dropdown at the bottom of the dialog, change it from Text Documents (*.txt) to All Files (*.*).
  • In the File name field, type index.html exactly.
  • Choose your Desktop as the save location so you can find the file easily.
  • Click Save.

Why change to All Files?

Notepad defaults to saving files as .txt. If you leave the type as "Text Documents," your file will actually be saved as index.html.txt which will not work as a website. Changing to All Files (*.*) ensures the filename is saved exactly as you typed it.

  • Switch back to your browser with the S3 console open.
  • Click your bucket name in the bucket list to open it.
  • Click Upload.
  • Click Add files.
  • Navigate to your Desktop, select the index.html file, and click Open.
  • Click Upload at the bottom of the page.

You should see a green "Upload succeeded" banner. Click Close to return to your bucket's object list, where index.html now appears.

File showing as index.html.txt?

This means you saved the file with the Save as type still set to "Text Documents" instead of "All Files (*.*)". Go back to Notepad, click File then Save As, change the type to All Files (*.*), and save again as index.html. Then re-upload the corrected file.

Help me fix my index.html file upload issue.

✔️ Awesome, I've got everything!

Great. Double check you've saved your file and confirm you can see index.html in your S3 bucket's object list.

ⓧ I'd like to double check the full code

Here is the complete index.html file. Compare it with what you pasted into Notepad:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My First Cloud Website</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 40px 20px;
            background-color: #f0f8ff;
            color: #333;
        }
        h1 {
            color: #232f3e;
            border-bottom: 3px solid #ff9900;
            padding-bottom: 10px;
        }
        .highlight {
            background-color: #ff9900;
            color: white;
            padding: 2px 8px;
            border-radius: 4px;
        }
        .info-box {
            background-color: white;
            border-left: 4px solid #232f3e;
            padding: 15px;
            margin: 20px 0;
            border-radius: 4px;
        }
    </style>
</head>
<body>
    <h1>My First Cloud Website</h1>
    <p>This website is hosted on <span class="highlight">Amazon S3</span> with zero servers!</p>
    
    <div class="info-box">
        <h3>What I Learned Today</h3>
        <ul>
            <li>Created and secured an AWS account with MFA</li>
            <li>Set up IAM users following security best practices</li>
            <li>Hosted a static website using Amazon S3</li>
            <li>Configured bucket policies for public access</li>
            <li>Understood the AWS Shared Responsibility Model</li>
        </ul>
    </div>

    <div class="info-box">
        <h3>Cloud Practitioner Exam Topics Covered</h3>
        <ul>
            <li>Security and Compliance (30% of exam) - IAM, MFA, Shared Responsibility</li>
            <li>Cloud Technology and Services (34% of exam) - S3, Static Website Hosting</li>
        </ul>
    </div>

    <p><strong>Next goal:</strong> AWS Certified Cloud Practitioner (CLF-C02)</p>
</body>
</html>
Enable static website hosting

Your file is stored in S3, but S3 doesn't serve it as a website by default. You need to enable the static website hosting feature to get a public URL.

  • Click your bucket name to open it (if you're not already inside it).
  • Click the Properties tab.
  • Scroll all the way down to the Static website hosting section.
  • Click Edit.
  • Under Static website hosting, select Enable.
  • For Hosting type, select Host a static website.
  • In the Index document field, type index.html exactly (this is case-sensitive).
  • Click Save changes.

What is static website hosting?

When you enable this feature, S3 creates a special website endpoint URL for your bucket. Any request to that URL serves the files in your bucket as if they were on a web server.

The "Index document" tells S3 which file to show when someone visits the root URL (like a homepage). S3 looks for a file with this exact name, so it must match your uploaded filename perfectly.

  • After saving, you'll return to the Properties tab. Scroll down to the Static website hosting section again.
  • You'll now see a Bucket website endpoint URL at the bottom of this section. Copy this URL or note it down. You'll need it in the next step.

Your endpoint will look something like http://my-first-cloud-website-yourname-2026.s3-website-us-east-1.amazonaws.com.

Why does visiting the URL show an error right now?

If you click the endpoint URL now, you'll see a 403 Forbidden error. This is expected. You've told S3 to serve the file as a website, but you haven't yet given the public permission to read the file. You'll fix that in the next step by adding a bucket policy.

Don't see the endpoint URL?

Make sure you selected Enable under Static website hosting and clicked Save changes. The endpoint only appears after the feature is successfully enabled. Also confirm you typed index.html in the Index document field. This field cannot be left blank.

Help me enable static website hosting on my S3 bucket.

Your bucket is set up, your file is uploaded, and hosting is enabled. Next up, you'll add a bucket policy that grants public read access so anyone on the internet can view your website.

Make Your Website Public and Go Live

Your S3 bucket has a website inside it, but nobody can see it yet. Right now, if you visit the bucket website endpoint URL, you get an access denied error.

To make your website visible to anyone on the internet, you need to add a bucket policy. A bucket policy is a JSON document that tells AWS exactly who is allowed to do what with the objects in your bucket.

In this step, get ready to:
  • Add a bucket policy that grants public read access to your website files.
  • Test your live website by visiting the endpoint URL in your browser.
  • Connect what you just did to Cloud Practitioner exam concepts.
Add a bucket policy for public access

A bucket policy uses JSON to define permissions. The policy you are about to add tells S3: "Allow anyone on the internet to read objects in this bucket."

  • Return to your S3 bucket in the AWS Console.
  • Click the Permissions tab.
  • Scroll down to Bucket policy and click Edit.
  • Delete any existing text in the policy editor, then paste the following JSON:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[[BUCKET_NAME="my-first-cloud-website-yourname-2026"]]/*"
        }
    ]
}
  • Replace the bucket name placeholder with your actual bucket name (the one you created in the previous step).
  • Click Save changes.

What does this policy do?

This policy has one statement with four key parts:

  • "Effect": "Allow" grants permission (as opposed to denying it).
  • "Principal": "*" means anyone in the world (anonymous users, other AWS accounts, everyone).
  • "Action": "s3:GetObject" allows only reading objects. Nobody can delete or modify your files.
  • "Resource" specifies which bucket and objects the policy applies to. The /* at the end means all objects inside the bucket.

Seeing an error when you save?

  • Make sure you replaced the bucket name placeholder with your actual bucket name. A typo in the bucket name causes the policy to fail.
  • Double-check that Block all public access is still disabled. If it got re-enabled, the console will reject your public policy. Go to the Permissions tab, click Edit under Block public access, uncheck the box, and save.
  • Make sure the JSON is valid. Check for missing commas, extra commas, or mismatched braces.

Help me fix my S3 bucket policy error.

Test your live website

Your bucket policy is saved. Your website should now be accessible to anyone with the URL.

  • Click the Properties tab on your bucket.
  • Scroll down to Static website hosting at the bottom of the page.
  • Click the Bucket website endpoint link. It opens in a new browser tab.

You should see your website with the heading "My First Cloud Website" and the orange Amazon S3 highlight badge.

Seeing 403 Forbidden instead of your website?

  • Go back to the Permissions tab and confirm your bucket policy is saved (you should see JSON in the Bucket policy section).
  • Check that the bucket name in your policy's Resource field matches your actual bucket name exactly. Even one wrong character causes a 403 error.
  • Confirm that Block all public access is disabled at the bucket level. This setting overrides your bucket policy if it is still enabled.

Help me fix my 403 Forbidden error on my S3 static website.

Map this to Cloud Practitioner concepts

You just deployed a website without setting up a single server. This is the power of managed cloud services.

What is the shared responsibility model?

The shared responsibility model divides security duties between you and AWS. It is the single most-tested concept on the Cloud Practitioner exam.

Here is how it applies to what you just built:

  • AWS is responsible for: physical data centre security, hardware maintenance, network infrastructure, and S3 service availability (99.999999999% durability).
  • You are responsible for: access permissions (bucket policy), content (your HTML file), encryption settings, and deciding what is public vs. private.

The bucket policy you just created is your side of the deal. AWS keeps the servers running and your data durable. You control who can see it.

How does this map to the exam?

  • S3 falls under Cloud Technology and Services (34% of the exam). You used S3 as a static web host without managing any servers.
  • Bucket policies fall under Security and Compliance (30% of the exam). You controlled access by writing a resource-based policy.
  • Shared responsibility model is tested across multiple domains. You experienced it firsthand by configuring your own access rules on top of AWS-managed infrastructure.

Your website is live and publicly accessible. Next up, you will get a complete 6-week study plan with free resources to pass the Cloud Practitioner exam.

✔️ Awesome, I've got everything!

Great. Double check you can still access your website URL in a new browser tab before moving on.

ⓧ I'd like to double check the full code

Here is the complete bucket policy JSON that should be in your bucket:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[[BUCKET_NAME="my-first-cloud-website-yourname-2026"]]/*"
        }
    ]
}

Make sure you replaced the bucket name placeholder with your actual bucket name.

Plan Your CLF-C02 Exam Study Roadmap

Your website is live on the internet, accessible to anyone with the URL.

Now let's turn this hands-on experience into a full certification plan. The AWS Cloud Practitioner exam (CLF-C02) tests exactly the skills you just practiced.

In this step, get ready to:
  • Understand the CLF-C02 exam structure, format, and passing score.
  • Build a 6-week study plan covering all 4 exam domains.
  • Bookmark the free resources you need to study and practice.
Understand the CLF-C02 exam structure

Before you study, you need to know exactly what the exam tests and how it works. Here are the key facts about the CLF-C02.

  • Format: 65 questions (50 scored, 15 unscored) in 90 minutes.
  • Question types: multiple choice and multiple response. No coding. No hands-on labs.
  • Passing score: 700 out of 1000.
  • Cost: $100 USD. Delivered via Pearson VUE (online from home or at a test centre).
  • No prerequisites required. Valid for 3 years after passing.

What are the 4 exam domains?

The exam is split into 4 domains, each with a different weight. Focus your study time on the higher-weighted domains first.

  • Cloud Concepts (24% of exam): what is cloud computing, benefits, deployment models.
  • Security and Compliance (30% of exam): IAM, MFA, shared responsibility model. You already practiced this today.
  • Cloud Technology and Services (34% of exam): S3, EC2, Lambda, databases, networking. You already used S3 today.
  • Billing, Pricing, and Support (12% of exam): pricing models, cost tools, support plans.

Why does this matter for your study plan?

Security and Compliance (30%) plus Cloud Technology and Services (34%) together make up 64% of the exam. These are the domains you already started learning today through hands-on practice with IAM, MFA, and S3.

Follow this 6-week free study plan

This plan is built around one primary free course: AWS Cloud Practitioner Essentials on AWS Skill Builder.

The course has 13 modules and takes about 12 hours total. You will supplement it with practice questions and the freeCodeCamp YouTube course for deeper coverage.

  • Week 1 - Cloud Concepts (24% of exam): Watch the introductory modules of AWS Cloud Practitioner Essentials. Topics: what is cloud computing, benefits of cloud (CAPEX to OPEX, elasticity, agility), deployment models (public/private/hybrid), AWS Well-Architected Framework (6 pillars), cloud migration strategies.
  • Week 2 - Core Services Part 1 (34% of exam): Continue through the compute, storage, and database modules. Topics: Compute (EC2, Lambda, ECS, Elastic Beanstalk), Storage (S3, EBS, EFS), Databases (RDS, DynamoDB, Aurora, Redshift). You already know S3 hands-on from this project.
  • Week 3 - Core Services Part 2 + Networking: Watch the global infrastructure, networking, and AI/ML modules. Topics: AWS Global Infrastructure (Regions, Availability Zones, Edge Locations), Networking (VPC, subnets, security groups, CloudFront, Route 53, Direct Connect), AI/ML services (SageMaker, Rekognition, Comprehend overview).
  • Week 4 - Security and Compliance (30% of exam): Watch the security modules of Cloud Practitioner Essentials plus the security section of the freeCodeCamp course. Topics: Shared Responsibility Model (you already know this), IAM deep-dive (users, groups, roles, policies), AWS Organizations, encryption (KMS), security services (GuardDuty, Inspector, WAF, Shield), compliance (AWS Artifact).
  • Week 5 - Billing, Pricing, and Support (12% of exam): Watch the pricing and support module. Topics: Pricing models (On-Demand, Reserved, Spot, Savings Plans), Cost management tools (Cost Explorer, AWS Budgets, Pricing Calculator), Support plans (Basic, Developer, Business, Enterprise), AWS Free Tier types (Always Free, 12-month, Trials).
  • Week 6 - Practice Exams and Review: Take the AWS Official Practice Question Set (20 free questions on Skill Builder). Watch the freeCodeCamp full course on YouTube to fill gaps (14 hours). Take free practice exams. Target 80%+ consistently before booking the real exam.

Target 80% before booking

Do not book the exam until you consistently score 80% or higher on practice tests. This gives you a comfortable buffer above the 700/1000 passing threshold.

Bookmark your free study resources

Every resource you need to pass this exam is available for free. Open each of these links in your browser and bookmark them now.

What about AWS Educate and Builder Labs?

AWS Educate offers free, self-paced labs for S3, EC2, VPC, and RDS with no credit card required. AWS also offers 10 free Builder Labs covering VPC, S3, EC2, IAM, KMS, DynamoDB, CloudFront, Lambda, and API Gateway.

Both are available on AWS Skill Builder and are excellent for the 20% hands-on study time recommended alongside video and practice questions.

You now have a complete 6-week study plan and all the free resources bookmarked. Next up, you will map out a multi-cloud certification roadmap that takes you from AWS to Azure and Google Cloud.

Map Your Multi-Cloud Certification Path

You now have a complete 6-week study plan for the AWS Cloud Practitioner exam, with free resources bookmarked and ready to go.

In this step, you'll map out the full journey from AWS to Azure to Google Cloud. Three foundational certifications, 16 weeks total, all with free study materials.

In this step, get ready to:
  • Understand when to book your AWS Cloud Practitioner exam and what happens after you pass.
  • Plan your Azure Fundamentals (AZ-900) certification using free Microsoft Learn resources.
  • Plan your Google Cloud Digital Leader certification using free Google Cloud Skills Boost resources.
Book your AWS Cloud Practitioner exam (Weeks 1-8)

After completing your 6-week study plan, you'll be ready to sit the exam. The key readiness indicator is scoring 80%+ consistently on practice exams.

What does the CLF-C02 exam look like?

The exam has 65 questions and lasts 90 minutes. You need a score of 700 out of 1000 to pass. It costs $100 and is delivered via Pearson VUE (online from home or at a test centre).

No prerequisites are required. Everything is multiple choice or multiple response. No coding and no hands-on labs in the exam itself.

50% off your next AWS exam

After earning your AWS Cloud Practitioner certification, you receive a 50% discount voucher on other AWS Certification exams. This makes your next AWS cert (like Solutions Architect Associate) only $75 instead of $150.

Plan for Azure Fundamentals AZ-900 (Weeks 9-12)

Microsoft Azure is the second-largest cloud platform. Adding an Azure certification alongside AWS shows employers you can work across cloud providers.

  • The AZ-900 exam is only 45 minutes long and costs $99.
  • It is considered the easiest of the three foundational cloud certifications.
  • Topics overlap significantly with what you learned for AWS. Cloud concepts, security, and pricing are universal across providers.
  • Estimated study time: 3-4 weeks.

Your free study resource for AZ-900 is Microsoft Learn.

Why is AZ-900 easier after AWS?

The core cloud concepts you studied for AWS (shared responsibility model, high availability, elasticity, regions) are the same across all cloud providers. Only the service names and console layouts differ.

Microsoft Learn offers free interactive modules covering everything on the AZ-900 exam. No paid courses needed.

Plan for Google Cloud Digital Leader (Weeks 13-16)

Google Cloud focuses on data and AI. The Digital Leader exam emphasizes business transformation over technical implementation, making it accessible for non-technical professionals.

  • The exam has 50-60 multiple choice questions in 90 minutes and costs $99.
  • No prerequisites are required.
  • Study for free using the Cloud Digital Leader learning path on Google Cloud Skills Boost.
  • By this point, you'll already understand 60-70% of the content from your AWS and Azure studies.
  • Estimated study time: 2-3 weeks.

Your complete certification timeline

  • Weeks 1-8: AWS Cloud Practitioner (CLF-C02). Cost: $100. Study on AWS Skill Builder (free).
  • Weeks 9-12: Azure Fundamentals (AZ-900). Cost: $99. Study on Microsoft Learn (free).
  • Weeks 13-16: Google Cloud Digital Leader. Cost: $99. Study on Google Cloud Skills Boost (free).
  • Total cost: $298 for three certifications. All study materials are free.

When to book each exam

Only book an exam once you score 80%+ consistently on practice questions. Rushing the booking before you're ready wastes money and confidence.

Secret mission

Add a Custom Error Page and Enable Versioning

Push your AWS skills further. Add a professional error page so visitors see a helpful message instead of a generic XML error. Then enable versioning to protect your files from accidental deletion.

Clean Up Your Resources

Clean Up Your Resources

Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project runs on the AWS Free Tier, so your S3 bucket costs are essentially $0 for a single HTML file.

Cost warning

Your AWS Free Tier plan lasts 6 months or until your credits are exhausted. After 6 months, the account automatically closes unless you upgrade to a paid plan.

While your Free Tier is active, S3 storage for a few HTML files costs fractions of a cent. IAM is always free. You will not be charged for anything built in this project while on the Free Tier.

Resources you used:

  • S3 bucket (my-first-cloud-website-yourname-2026) with static website hosting, bucket policy, and versioning enabled.
  • IAM user (admin-yourname) with AdministratorAccess policy.
  • Local files: index.html and 404.html saved on your PC.
  • AWS Free Tier account with root user MFA enabled.

Keep everything running

No action needed. Choose this if you are still actively building or plan to continue your Cloud Practitioner exam prep using this account.

  • Your website stays live at your S3 bucket website endpoint.
  • S3 storage for a few HTML files costs fractions of a cent. Within the Free Tier, you will not be charged.
  • IAM is always free regardless of how many users you create.
  • Your Free Tier lasts 6 months from account creation. You have plenty of time to explore more AWS services for exam prep.

Pause - I'll come back to this later

Take your website offline while keeping your files stored in the bucket. This costs nothing and lets you restore the site in seconds.

  • Open the S3 console and click your bucket name.
  • Click the Permissions tab.
  • Under Block public access (bucket settings), click Edit.
  • Check Block all public access and click Save changes.
  • Type confirm in the confirmation field and click Confirm.

Your website URL will stop working immediately. To bring it back later, reverse this setting by unchecking Block all public access.

Delete - I don't want to use this again

Remove all project resources and start fresh. Follow each section below to fully clean up.

Delete your S3 bucket
  • Open the S3 console.
  • Select the checkbox next to your bucket name.
  • Click Empty. Type permanently delete in the confirmation field and click Empty. You must empty the bucket before you can delete it.
  • Once empty, select the bucket again and click Delete.
  • Type your bucket name in the confirmation field and click Delete bucket.
Delete your IAM user
  • You need to be signed in as the root user (not the IAM user) to delete the IAM user. Sign out, then sign back in with your root email and password.
  • Search for IAM in the top search bar and open it.
  • In the left navigation pane, choose Users.
  • Select the checkbox next to your IAM user name.
  • At the top of the page, choose Delete.
  • Enter the username in the confirmation field and choose Delete.
Delete your local files
  • On your PC, find the index.html and 404.html files you saved earlier.
  • Right-click each file and choose Delete.
Close your AWS account (optional)

Keeping your account open is strongly recommended. You have 6 months of Free Tier credits to explore more services for your Cloud Practitioner exam prep. Only close if you are certain you will not use AWS again.

  • Sign in as the root user.
  • In the upper-right corner, click your account name and choose Account.
  • On the Account page, click Close account.
  • Enter your account ID in the confirmation dialog and click Close account again.
  • You have a 90-day grace period to reopen the account if you change your mind. After 90 days, the closure is permanent.

That's a Wrap!

That's a Wrap!

Nice work! You just deployed your first website to the cloud and built a complete roadmap to becoming a triple-certified multi-cloud professional.

Here's what you accomplished:

  • Secured an AWS account with MFA and created an IAM admin user following security best practices.
  • Built and deployed a live static website on Amazon S3 with public bucket policies and zero servers to manage.
  • Created a complete 16-week multi-cloud certification roadmap with free study resources covering AWS Cloud Practitioner, Azure Fundamentals, and Google Cloud Digital Leader.
  • Added a custom error page and enabled S3 versioning to protect data from accidental deletion.

Ready to quiz yourself?