10 fun hands-on projects to learn AWS
There’s no better way to learn AWS than to build real-world applications. Learn by building with these 10 fun projects and kickstart your cloud career.
Jun 08, 2023 • 9 Minute Read
There’s no better way to learn AWS than to use the services provided to build real-world applications. I am a strong proponent of “learn as you build”, so I’ve put together 10 fun projects, with varying degrees of difficulty, that will help jump-start your cloud career.
For each project, I’ve called out the prerequisites, services used, and provided a link to an online tutorial.
Table of contents
- Accelerate your career
- 1. Launch a static website on Amazon S3
- 2. Use CloudFormation to Launch an Amazon EC2 Web Server
- 3. Add a CI/CD pipeline to an Amazon S3 bucket
- 4. Publish Amazon CloudWatch metrics to a CSV file using AWS Lambda
- 5. Train and deploy a machine learning model using Amazon SageMaker
- 6. Create a chatbot that translates languages using Amazon Translate and Amazon Lex
- 7. Deploy a Simple React Web Application using AWS Amplify
- 8. Create an Alexa Skill that provides study tips using AWS Lambda and DynamoDB
- 9. Recognize celebrities using Amazon Rekognition, AWS Lambda, and Amazon S3
- 10. Host a Dedicated Jenkins Server on Amazon EC2
- Next steps
Accelerate your career
Get started with ACG and transform your career with courses and real hands-on labs in AWS, Microsoft Azure, Google Cloud, and beyond.
1. Launch a static website on Amazon S3
Deploying your static website on Amazon S3 is a cost-effective solution that is often cheaper than a traditional hosting provider. I migrated my website to Amazon S3 years ago and have been saving money ever since! This is a super fun project AWS newbies and introduces you to several core services like Amazon S3 and Amazon CloudFront.
You’ll create an Amazon S3 bucket to hold your static website files and an Amazon CloudFront distribution to serve your website globally. Amazon Route 53 will manage your domain name, and AWS Certificate Manager will provide a valid SSL/TLS certificate.
Services used
- Amazon S3
- Amazon CloudFront
- Amazon Route 53
- AWS Certificate Manager r
Prerequisites
You’ll need a few things to get started with this project:
- Static website made up of HTML, CSS, JavaScript, etc. files.
To get started, check out this online tutorial.
2. Use CloudFormation to Launch an Amazon EC2 Web Server
CloudFormation is one of my favorite services. When you have several resources to deploy, you’ll quickly realize how tedious and time-consuming the process can be, especially if you have multiple environments (e.g. development, test, and production).
CloudFormation allows you to deploy resources at scale, more consistently and efficiently, using Infrastructure-as-Code (IaC). This fun project allows you to explore writing a CloudFormation template using either JSON or YAML to stand up a web server on an Amazon EC2 instance.
Services used
- Amazon CloudFormation
- Amazon EC2
- Amazon VPC (and subcomponents)
Prerequisites
You’ll need a few things to get started with this project:
- PuTTY or SSH client
To get started, check out this online tutorial.
3. Add a CI/CD pipeline to an Amazon S3 bucket
Continuous integration and continuous delivery (CI/CD) automates steps in a software delivery pipeline.
How did we ever live without automatic builds and deployments? I remember the days of only being able to deploy code once a quarter due to the manual labor required and the risks to stability! This project is a fun one to introduce CI/CD on AWS. You’ll automatically deploy website changes to production when the code is checked in. Plus, you can use the S3 bucket you created in the Launch a static website on Amazon S3 project as a jumpstart.
Services used
- Amazon S3
- AWS CodePipeline
- AWS CodeStar
Prerequisites
You’ll need a few things to get started with this project:
- Static website
- Static website code checked into GitHub
To get started, check out this online tutorial.
4. Publish Amazon CloudWatch metrics to a CSV file using AWS Lambda
CloudWatch integrates with most services to publish details about the performance of your systems using metrics. Metrics are time-series data sent to Cloudwatch.
I like this project because it uses another one of my favorite services, AWS Lambda. Since we are using Lambda, this project does require a bit of coding experience, so it is not for the absolute beginner. As long as you’re familiar with one of the programming languages supported by Lambda, you’ll have fun getting hands-on.
Services used
- Amazon CloudWatch
- AWS Lambda
- AWS CLI
Prerequisites
You’ll need a few things to get started with this project:
- AWS CLI installed on your local machine
- Text editor
To get started, check out this online tutorial.
WATCH: Solving The "No Experience" Cloud Hiring Problem
You can’t get experience without a job. But who’ll hire you without experience? Conundrum! Watch this free, on-demand webinar featuring a panel discussion on cloud career development and getting your first cloud job.
5. Train and deploy a machine learning model using Amazon SageMaker
If you’re curious about machine learning, but don’t know where to start, try out Amazon SageMaker. SageMaker offers “machine learning as a service (MLaaS)” and meets you where you are in your machine learning journey. SageMaker even offers “no-code” computer vision options for you none-coders out there. For this fun hands-on project, you will train a machine learning model to predict consumer behavior. This project uses the Python programming language, so familiarity with computer programming will be helpful.
Services used
- Amazon SageMaker
Prerequisites
You’ll need a few things to get started with this project:
- Dataset used for training
- Familiarity with Python
To get started, check out this online tutorial.
6. Create a chatbot that translates languages using Amazon Translate and Amazon Lex
I love the high-level AI services provided by AWS. These services use pre-trained machine learning models allowing you to integrate intelligence into your existing applications with ease.
If you’ve never played around Amazon Translate or Amazon Lex, you’re in for a special treat. In this hands-on project, you’ll build a conversational interface that performs language translation. If this project doesn’t sound cool, I don’t know which project will! You’ll also be exposed to additional services like AWS Lambda, AWS CloudFormation, Amazon CloudFront, and more.
Services used
- Amazon Lex
- Amazon Translate
- AWS Lamda
- AWS CloudFormation
- Amazon CloudFront
- Amazon Cognito
Prerequisites
You’ll need a few things to get started with this project:
- Dataset used for training
- Familiarity with Python
To get started, check out this online tutorial.
7. Deploy a Simple React Web Application using AWS Amplify
AWS Amplify helps you build full-stack web applications on AWS and is my new favorite service!
With Amplify, I was able to deploy a React application using Amazon Cognito for user authentication, GraphQL for the API layer using AWS AppSync, Amazon Aurora for the database, and AmazonS3/Amazon CloudFront for storage and content delivery in under two weeks! You can check that project out here and here.
In this hands-on project, you’ll use DynamoDB, instead of Aurora, and deploy the application in under 50 minutes!
Services used
- AWS Amplify
- Amazon Cognito
- Amazon DynamoDB
- AWS AppSync
- Amazon S3
- Amazon CloudFront
Prerequisites
You’ll need a few things to get started with this project:
- Node.js
- GitHub / Git
- Text editor
To get started, check out this online tutorial.
8. Create an Alexa Skill that provides study tips using AWS Lambda and DynamoDB
When I first started learning AWS, an Alexa skill was one of the first apps I developed. If you didn’t know, most Alexa skills run on the AWS ecosystem. I found Alexa skill development to be a gentle introduction to both the cloud and AI.
In this fun hands-on tutorial, you’ll build an Alexa skill backed by an AWS Lambda function and DynamoDB table to serve up helpful study tips.
Services used
- Alexa Skills Kit (ASK)
- AWS Lambda
- Amazon DynamoDB
Prerequisites
You’ll need a few things to get started with this project.
- An account on the Amazon Developer Portal
- A DynamoDB table populated with your favorite study tips
- An Echo device is a nice to have, but not required
To get started, check out this online documentation.
9. Recognize celebrities using Amazon Rekognition, AWS Lambda, and Amazon S3
I’ve always enjoyed playing around with Amazon Rekognition. When they released the celebrity recognition feature, I couldn’t wait to try it out. Did you know that celebrities can contact AWS Support to opt-out? I wonder how I can opt-in? 😂
In this fun hands-on project, you’ll trigger a Lambda function when an image is uploaded to an Amazon S3 bucket. Your Lambda function will then call the RecognizeCelebrities API to identify the person in the photo!
Services used
- Amazon S3
- AWS Lambda
- Amazon Rekognition
Prerequisites
You’ll need a few things to get started with this project:
- Images of celebrities
To get started, check out this online documentation.
10. Host a Dedicated Jenkins Server on Amazon EC2
In this hands-on project, you’ll spin up an EC2 instance and configure Jenkins on it. This project will expose you to EC2 and security.
Services used
- Amazon EC2
- Amazon VPC (and subcomponents)
Prerequisites
You’ll need a few things to get started with this project.
- EC2 key pair
- SSH client or PuTTY
To get started, check out this online tutorial.
Securing Your AWS Environment
In this free, on-demand webinar, see how to take complex AWS environments from zero to secure and learn how to properly audit and secure an AWS account.
Next steps
If you have questions while you’re working through these projects, head on over to the ACG Discord channel and find me.
Before getting started, I do recommend that you make use of the AWS Free Tier plan. The Free Tier plan will reduce any charges you may incur while building on AWS. Also, don’t forget to clean up any resources you’re no longer using, once you complete a project, so that you don’t incur charges.
After finishing these projects, you’ll have a nice portfolio to showcase your talent.
Another way to share your talent with others is to write a blog post on your lessons learned. I’m sure others would love to hear about your journey — myself included. Also, consider applying to join the AWS Community Builders program. AWS Community Builders offers technical resources, mentorship, and networking opportunities to AWS enthusiasts.
Do you need additional fun project ideas? Check out the #CloudGuruChallenge: The Choose-Your-Challenge Mega-Mix. So, what are you waiting for? Let’s build!