Free Online Course · Self-paced · Hands-on

AWS Tutorial for Beginners - End-to-End Cloud Hands-On

Free hands-on AWS tutorial for beginners: the AWS CLI, EC2, S3, RDS, Lambda, CloudFormation, CDK, and CI/CD, with labs you run in your own AWS account.

  • 9 chapters
  • 66 lessons
  • ~14h
  • Beginner to Intermediate
  • Tested with AWS CLI 2.36.x
  • Updated Sep 2026
AWS Tutorial for Beginners - End-to-End Cloud Hands-On
By Last updated

About this course

This free course covers the AWS services most applications are built from: the AWS CLI, EC2 and Elastic Beanstalk, S3 and CloudFront, RDS and DynamoDB, Lambda and the other serverless services, CloudFormation and CDK, and a CI/CD pipeline. The syllabus also includes tested troubleshooting lessons for IAM AccessDenied, EC2 user data, EBS resize failures, and offline root-volume recovery. Each lesson builds something in your own account or reproduces a real failure path with CLI evidence, and links to the matching page in the AWS documentation when you need the full reference.

The course starts with the AWS CLI because every later lesson is easier once you can check and clean up resources from a terminal. The first lab signs in with aws login, which issues temporary credentials, so you never create a long-lived access key for your practice account. It also ends by deleting everything it launched, which is the habit that keeps a lab account inside its free credits.

If you are new to AWS, finish the AWS CLI tutorial first and then go chapter by chapter. If you already run workloads on AWS, jump to the service you need. The storage, serverless, infrastructure as code, and troubleshooting chapters each stand on their own.

What you'll learn

  • Sign in with the AWS CLI, confirm your identity, and create and clean up EC2 and S3 resources from the terminal
  • Deploy applications on EC2, Lightsail, and Elastic Beanstalk, and scale them with Auto Scaling behind an Application Load Balancer
  • Create and secure S3 buckets, host a static website, and serve it through CloudFront
  • Provision RDS, DynamoDB, and ElastiCache, and pick the right one for an application
  • Build serverless back ends with Lambda, Step Functions, AppSync, Cognito, and Amplify
  • Define infrastructure as code with CloudFormation and CDK, and keep Terraform state in S3
  • Build a CI/CD pipeline on AWS with CodeBuild, CodeDeploy, and CodePipeline

Who this course is for

  • Developers who deploy to AWS and want to understand the services behind their pipeline instead of copying console steps
  • Sysadmins moving on-premises servers, storage, and databases to EC2, S3, and RDS
  • DevOps engineers who want to script AWS from the CLI and define it as code with CloudFormation or CDK
  • Anyone studying for an AWS associate certification who wants hands-on time with the core services alongside their exam prep

Prerequisites

  • An AWS account on the Free or Paid plan. New accounts get up to $200 in credits, and the Free plan closes after 6 months or when the credits run out
  • Comfortable on the Linux command line, including SSH, file editing, and package installs
  • AWS CLI 2.32.0 or later on a Linux workstation for the CLI lessons, which sign in with aws login
  • Terraform or CloudFormation experience is optional for the infrastructure as code chapter

Versions and testing environment

Every command in this course was run on this stack

ComponentVersionNotes
AWS CLI 2.36.x Used in the CLI lesson. aws login needs AWS CLI 2.32.0 or later
Ubuntu 26.04 LTS Workstation for the CLI and Terraform backend lessons
Terraform and hashicorp/aws 1.16.x and 6.63.x S3 backend lesson, using native S3 state locking
AWS Region ap-south-1 Example Region in the CLI lessons. Change --region to the one closest to you
AWS Management Console — The console lessons were last reviewed between 2024 and 2026, and AWS renames console menus often

Syllabus

9 chapters · 66 lessons · ~14h of reading

  1. 1 Getting Started - CLI and Foundations 2 lessons · ~15 min
    1. Part 1 AWS CLI tutorial - EC2, S3, and Ubuntu setup 10 min read
    2. Part 2 Get started with Amazon Lightsail (the easiest AWS service) 5 min read
  2. 2 Compute - EC2 and Beanstalk 5 lessons · ~55 min
    1. Part 3 Deploy a website on EC2 with Let's Encrypt 8 min read
    2. Part 4 Install Jenkins on an EC2 instance 7 min read
    3. Part 5 Deploy an application with Elastic Beanstalk 7 min read
    4. Part 6 Auto Scaling Groups tutorial 16 min read
    5. Part 7 Application Load Balancer (ALB) tutorial 17 min read
  3. 3 Storage - S3 and EBS 7 lessons · ~57 min
    1. Part 8 S3 bucket tutorial - create, configure, secure 7 min read
    2. Part 9 Host a static website on S3 5 min read
    3. Part 10 Static site on S3 with a custom domain 11 min read
    4. Part 11 Use CloudFront in front of S3 9 min read
    5. Part 12 Protect an S3 bucket with basic authentication 6 min read
    6. Part 13 Use S3 as a Terraform backend 10 min read
    7. Part 14 Amazon EBS - Elastic Block Store explained 9 min read
  4. 4 Databases 3 lessons · ~24 min
    1. Part 15 Amazon RDS tutorial 7 min read
    2. Part 16 Amazon DynamoDB tutorial 8 min read
    3. Part 17 ElastiCache for Redis - cluster setup 9 min read
  5. 5 Serverless and Application Services 5 lessons · ~49 min
    1. Part 18 AWS Lambda tutorial 18 min read
    2. Part 19 AWS Step Functions tutorial 8 min read
    3. Part 20 AWS AppSync (managed GraphQL) tutorial 6 min read
    4. Part 21 Amazon Cognito tutorial - user authentication 12 min read
    5. Part 22 AWS Amplify tutorial 5 min read
  6. 6 Infrastructure as Code 2 lessons · ~13 min
    1. Part 23 AWS CloudFormation tutorial 6 min read
    2. Part 24 AWS Cloud Development Kit (CDK) tutorial 7 min read
  7. 7 CI/CD on AWS 2 lessons · ~31 min
    1. Part 25 Getting started with CI/CD on AWS - Part 1 17 min read
    2. Part 26 Getting started with CI/CD on AWS - Part 2 14 min read
  8. 8 IAM and access troubleshooting 12 lessons · ~2h 39m
    1. Part 27 Explicit vs implicit deny 10 min read
    2. Part 28 AccessDenied despite AdministratorAccess 20 min read
    3. Part 29 AWS CLI unable to locate credentials 12 min read
    4. Part 30 Fix InvalidClientTokenId 12 min read
    5. Part 31 AWS CLI endpoint connection failed 14 min read
    6. Part 32 Fix AWS CLI ExpiredToken 12 min read
    7. Part 33 AWS CLI SSL certificate verify failed 12 min read
    8. Part 34 AWS CLI multiple profiles 14 min read
    9. Part 35 Which credentials AWS CLI uses 16 min read
    10. Part 36 Fix InvalidAccessKeyId 14 min read
    11. Part 37 Fix STS AssumeRole AccessDenied 11 min read
    12. Part 38 IAM PassRole AccessDenied 12 min read
  9. 9 EC2 troubleshooting and recovery 28 lessons · ~6h 29m
    1. Part 39 Fix growpart No space left on device on EC2 16 min read
    2. Part 40 Fix growpart NOCHANGE on EC2 13 min read
    3. Part 41 EBS resized but df unchanged 19 min read
    4. Part 42 xfs_growfs data size unchanged 11 min read
    5. Part 43 resize2fs bad magic number on EBS 12 min read
    6. Part 44 EC2 EBS device names vs NVMe 11 min read
    7. Part 45 Convert EBS gp2 to gp3 10 min read
    8. Part 46 Attach existing EBS volume 15 min read
    9. Part 47 Move EBS volume to another EC2 13 min read
    10. Part 48 EBS attached but /dev/sdf missing 11 min read
    11. Part 49 Shrink EBS volume safely 15 min read
    12. Part 50 EC2 user data not running 15 min read
    13. Part 51 Run EC2 user data on every reboot 12 min read
    14. Part 52 Recover unbootable EC2 with a rescue instance 13 min read
    15. Part 53 EC2 Linux stuck in emergency mode 15 min read
    16. Part 54 EC2 fstab boot failure repair 14 min read
    17. Part 55 EC2 system vs instance status check 13 min read
    18. Part 56 Fix EC2 instance reachability check failed 15 min read
    19. Part 57 CloudWatch agent not sending logs 15 min read
    20. Part 58 EC2 SSH connection timed out 14 min read
    21. Part 59 EC2 SSH connection refused 16 min read
    22. Part 60 EC2 permission denied publickey 15 min read
    23. Part 61 Recover lost EC2 key pair 15 min read
    24. Part 62 EC2 metadata 401 Unauthorized 13 min read
    25. Part 63 EC2 disk full cannot SSH 16 min read
    26. Part 64 EC2 Instance Connect Endpoint 15 min read
    27. Part 65 EC2 Instance Connect not working 14 min read
    28. Part 66 SSM TargetNotConnected 13 min read

Hands-on labs

5 guided builds you run yourself

  1. Launch EC2 and use S3 from the AWS CLI

    Sign in with aws login, launch an Ubuntu 24.04 instance, SSH into it, upload a file to S3, and delete everything you created.

  2. Serve an S3 bucket through CloudFront

    Create a bucket and a CloudFront distribution in front of it, then clear cached files with an invalidation.

  3. Load balance EC2 instances with an ALB

    Put two EC2 instances behind an Application Load Balancer with target groups, listener rules, an HTTPS listener, and Auto Scaling.

  4. Write and invoke your first Lambda function

    Create a Python function, deploy it as a ZIP package, invoke it, and read its logs in CloudWatch.

  5. Store Terraform state in S3

    Bootstrap a state bucket with Terraform, move local state into the S3 backend with native locking, and tear the lab down.

Where to go after this course

Frequently Asked Questions

Is the AWS Free Tier really free?

On the Free plan, yes. AWS gives new accounts $100 in credits when they sign up and up to $100 more as you try key services, for up to $200 over six months. On the Free plan you are not charged unless you upgrade to the Paid plan, and the account closes after six months or when the credits run out, whichever comes first. The Free plan only covers selected services, while the Paid plan opens the full catalogue and bills usage beyond your credits. Check the current terms on the AWS Free Tier page before you sign up.

How do I avoid an unexpected AWS bill while learning?

Delete what you create at the end of each lesson, and check the Billing console the next day until the habit sticks. Load balancers, NAT gateways, RDS instances, and ElastiCache clusters charge by the hour even when nothing uses them. On a Paid plan account, create an AWS Budgets alert with a small monthly amount so you get an email before costs grow. Pick one Region for all your labs, because resources left in a Region you rarely open are the easiest to forget.

Which AWS certification should I start with?

For most engineers it is AWS Certified Solutions Architect - Associate. AWS recommends at least a year of hands-on experience designing on AWS, but says candidates with one to three years of general IT experience have earned it as a starting point, and suggests Cloud Practitioner first if you have no IT work experience. The exam has 65 questions in 130 minutes, costs 150 USD, and the certification is valid for three years. Confirm these details on the official exam page, since AWS updates them.

Do I need to know programming to learn AWS?

Not for most of this course. The CLI, EC2, S3, database, and load balancer lessons need shell skills, not code. The Lambda, CDK, AppSync, and Amplify lessons do use short programs, mostly Python or JavaScript, and CDK is installed with npm. AWS also says the Solutions Architect - Associate exam does not require deep hands-on coding experience.

Should I use the AWS console or the CLI?

Use both. The console is the easier way to see how a service fits together the first time, and the CLI is how you repeat it, script it, and clean up afterwards. A good pattern is to create a resource in the console, then list and delete it with the CLI. Once you are comfortable with both, the infrastructure as code chapter shows how to stop clicking entirely.

Deepak Prasad

R&D Engineer

Founder of GoLinuxCloud with 15+ years of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels across development, DevOps, networking, and security, delivering robust and efficient solutions for diverse projects.

  • Go (programming language)
  • Python (programming language)
  • DevOps
  • Computer Security
  • Cloud Computing
  • Kubernetes
  • Linux
  • Ansible (software)