DEV Community

Cover image for 14 AWS Projects: A Practical Guide to My Cloud Engineering Journey
Shubham Murti
Shubham Murti

Posted on

14 AWS Projects: A Practical Guide to My Cloud Engineering Journey

Hello Community! 🌟

My journey to mastering AWS has been enriched by completing 14 hands-on projects over the past few weeks. These practical experiences deepened my understanding of core cloud services and their real-world applications. In this blog, I'll summarize each project, highlighting the key AWS services and providing references for further exploration. These beginner-friendly Level 100 projects have been highly rewarding, and I look forward to tackling more advanced 200-level projects soon.

If you want to replicate these projects, I've also included a GitHub repo link where you can find the detailed steps and resources. Let's get started!

The Rising Demand for Cloud Engineers

The demand for cloud engineers has skyrocketed, both in India and globally. As more companies migrate to the cloud, cloud experts have become one of the most sought-after professionals in the tech world. According to industry reports, cloud engineers in India can expect salaries ranging from β‚Ή12–25 lakhs per annum, while in countries like the U.S., it's common to see annual packages exceeding $100,000. These figures are expected to grow as cloud adoption expands across industries, with projections indicating a global surge in demand for cloud talent by 2025. For those with expertise in AWS, Azure, or Google Cloud, the opportunities are immense and ever-growing.

Image description

The Importance of Hands-On Projects

While certifications are great for validating knowledge, nothing beats the learning experience you get from real-world, hands-on projects. Working on actual cloud projects allows you to apply theoretical knowledge, tackle real challenges, and gain the kind of practical experience that employers value. Whether it's setting up secure infrastructure, automating deployment pipelines, or integrating cloud services, these projects provide invaluable insights that make you job-ready.

My Journey into the Cloud

Three months ago, I embarked on my cloud journey, beginning with the fundamentals of networking, operating systems (OS), SQL, and virtualization. Soon after, I dove into AWS and completed the AWS Certified Cloud Practitioner (CCP) course. With a strong foundation in place, I transitioned into hands-on projects to sharpen my cloud skills. From configuring EC2 instances and setting up auto-scaling groups to working with S3 and CloudFormation, each project has been a stepping stone in my cloud journey. These projects have not only deepened my understanding but also built my confidence in tackling real-world cloud problems.

How This Blog Will Help You

For aspiring cloud engineers, this blog is more than just a showcase of my progress. It's a guide for those looking to follow a similar path. These projects, while introductory, are essential for anyone wanting to gain hands-on experience in the cloud. And if you're planning to break into this field, practical projects are the fastest and most effective way to level up your skills. As I complete these 100-level projects, I'm gearing up for the more challenging 200-level projects in the coming daysβ€Š-β€Šproving that the learning never stops.

14 Hands-On Cloud Projects: A Beginner's Guide for AWS

1. Create Three Billing Alarms

Description:

I configured three AWS billing alarms to effectively monitor and manage AWS costs. By setting up these alarms, I can receive notifications when my spending reaches specific thresholds, allowing me to take action before costs escalate.

AWS Services:

CloudWatch
CloudWatch

Reference:

AWS CloudWatch Documentation

Output:

Successfully configured billing alarms that notify me via email when my spending exceeds predefined limits.
Image description

2. Create a Cost Budget

Description:

I set up a cost budget in AWS to track and manage my spending. This involved defining budget parameters such as the amount and monitoring frequency, enabling proactive cost management and ensuring I stay within my budget limits.

AWS Services:

AWS Budgets

Image description

Reference:

AWS Budgets Documentation

Output:

Image description
A functional budget that tracks my AWS costs, providing insights and alerts if I approach my budget limits.

3. Launch a Hello World Website on the Internet

Description:

This experience involved deploying a simple "Hello World" website on an AWS EC2 instance. I learned how to launch an EC2 instance, configure security groups, and make my web application publicly accessible on the Internet, which is a foundational skill for any cloud engineer.

AWS Services:

Amazon EC2

Image description
Reference:

Amazon EC2 Documentation

Output:

A fully functional "Hello World" website accessible from the Internet, demonstrating the basic concepts of web hosting on AWS.

Image description

4. Push a Docker Image to Amazon ECR Repository

Description:

I built a Docker image and pushed it to an Amazon ECR repository. This involved creating the repository, tagging the image, and using the AWS CLI to authenticate and upload the image, which is essential for containerized applications.

AWS Services:

Amazon Elastic Container Registry (ECR)

Image description

Reference:

Amazon ECR Documentation

Output:

Image description
Successfully pushed a Docker image to my ECR repository, ready for deployment in a containerized environment.

5. Creating an Amazon RDS DB Instance (MS SQL Server)

Description:

This experience focused on setting up and configuring a Microsoft SQL Server database instance using Amazon RDS. I learned to choose the appropriate instance type, configure security settings, and set up backups, which are crucial for maintaining data integrity and availability.

AWS Services:

Amazon Relational Database Service (RDS)
Image description

Reference:

Amazon RDS Documentation

Output:

Image description
A fully functional MS SQL Server instance in Amazon RDS, capable of storing and managing relational data.

6. Create a DynamoDB Table

Description:

I created a DynamoDB table with provisioned capacity. I inserted three random items, performed a scan operation to retrieve all items, and used a query operation to fetch a single item based on specific criteria, showcasing the NoSQL capabilities of DynamoDB.

AWS Services:

Amazon DynamoDB

Image description

Reference:

Amazon DynamoDB Documentation

Output:

Image description
A DynamoDB table populated with data and capable of executing query operations efficiently.

7. Install & Configure AWS CLI then Create an S3 Bucket

Description:

This experience involved setting up AWS CLI on my local machine, configuring it with my AWS credentials, and using it to create, list, and delete an S3 bucket. This process demonstrated how to interact with AWS services programmatically and manage resources effectively.

AWS Services:

AWS CLI

Image description
Reference:

AWS CLI Documentation

Output:

Image description
Successfully created and managed an S3 bucket using AWS CLI, enabling efficient resource management.

8. Create an S3 Bucket and Store an Object in It

Description:

This experience involved creating an Amazon S3 bucket using the AWS Management Console and uploading a file into the bucket. It showcased the basic steps of setting up and using S3 for storage, emphasizing its scalability and durability features.

AWS Services:

Amazon S3

Image description
Reference:

Amazon S3 Documentation

Output:

A functional S3 bucket containing uploaded objects, illustrating the storage capabilities of AWS.
Image description

9. Introduction to SNS (Simple Notification Service)

Description:

I created an Amazon SNS (Simple Notification Service) topic, subscribed an email address to the topic, and confirmed the subscription through email. I then sent a test message to verify that the notification system works, demonstrating how to implement notification systems in AWS.

AWS Services:

Amazon SNS

Image description
Reference:

Amazon SNS Documentation

Output:

Successfully set up SNS to send notifications via email, confirming the functionality of the service.
Image description

10. Create a Lambda Function to Add Two Numbers

Description:

This experience involved developing an AWS Lambda function using Python that takes two numbers as input, adds them together, and returns the result. This exercise introduced me to serverless computing and event-driven architecture in AWS.

AWS Services:

AWS Lambda

Image description
Reference:

AWS Lambda Documentation

Output:

A functioning Lambda function that successfully computes the sum of two numbers, highlighting the power of serverless architecture.
Image description

11. Host a Simple Static Webpage with S3 and CloudFront

Description:

In this experience, I set up an S3 bucket to host a static webpage and uploaded the webpage content. I then configured an Amazon CloudFront distribution to use the S3 bucket as its origin, ensuring that the webpage content is accessible only through the CloudFront endpoint, enhancing security and performance.

AWS Services:

Amazon CloudFront

Image description
Reference:

Amazon CloudFront Documentation

Output:

Image description

A static webpage hosted securely with CloudFront, demonstrating how to serve web content efficiently.

12. Create an IAM User

Description:

This experience involved configuring AWS Identity and Access Management (IAM) by creating a new user with console access and adding them to a newly created group named "adminsGroup" with AdministratorAccess permissions. I also enabled multi-factor authentication (MFA) for enhanced security.

AWS Services:

AWS Identity and Access Management (IAM)

Image description

Reference:

IAM Documentation

Output:

A new IAM user created with appropriate permissions and security settings, ensuring best practices in access management.

Image description

13. Use a Managed Config Rule

Description:

I implemented and monitored an AWS Config rule to ensure compliance with encryption policies for EBS volumes. I enabled AWS Config in the US-EAST-1 region, selected the managed Config rule for encrypted volumes, and verified non-compliance by launching an EC2 instance with an unencrypted EBS volume.

AWS Services:

AWS Config

Image description
Reference:

AWS Config Documentation

Output:

Successfully implemented a managed Config rule that monitored and reported on EBS volume compliance.

Image description

14. Deploy a CloudFormation Template from the AWS Console

Description:

I downloaded a pre-made CloudFormation template and used it to create a CloudFormation stack. I monitored the deployment process through the events tab, confirmed the creation of a DynamoDB table and an S3 bucket, and deleted the stack to ensure both resources were removed as part of the cleanup.

AWS Services:

AWS CloudFormation

Image description
Reference:

AWS CloudFormation Documentation

Output:

A CloudFormation stack created successfully with all resources deployed and cleaned up afterward, illustrating the efficiency of infrastructure as code.

Image description

Closure

Completing these 14 projects has provided me with a strong foundation in AWS. These Level 100 projects were a perfect starting point, helping me understand the fundamental cloud services, security, and architecture.

But this is just the beginning. In the coming days, I'll be moving on to Level 200 projects, which will push my knowledge and skills even further. I'm excited to explore advanced topics like automation, machine learning on AWS, and scalable architectures.

If you're interested in trying out these projects yourself, feel free to check out my GitHub repository where I've documented all the steps:

GitHub Repository

Stay tuned for more updates as I tackle the next level of AWS projects!

Shubham Murti β€” Aspiring Cloud Security Engineer | Weekly Cloud Learning !!

Let’s connect: Linkdin, Twitter, Github

Top comments (0)