simple-projects-to-build-aws

5 Simple Projects to Build on AWS as a Beginner

Spread the love

Learning AWS can be quite rewarding, but the best way to validate your AWS skills is to practice them on real-world projects.  Training alone on how to set up an EC2 instance or how to create an S3 bucket will not cut it to prove your skills and expertise. What is more important is applying these skills to building projects on AWS. I have outlined five basic projects that can be built on AWS to test your skills when you are fresh out of an “AWS Academy” as a Beginner. The list is as follows:

1. Deploy a website on Amazon S3 and make it a website accessible over the internet

To make it better, configure a CloudFront edge in front of it to make it globally available. The website can be a simple HTML page or a static website built with any JavaScript framework that can run on the client side.

You can also clone this repository, where I have a simple static website I was using to teach some folks a while ago: https://github.com/MCS-Academy/sample_html.

This will give you the basics of how to use Amazon S3 for storing objects and exposing objects to the public internet, it will also help you understand the importance of CDN (Content Delivery Network), which is crucial to the speed and efficiency of a website most especially when serving the website to a global audience. CloudFront will enable the website to load faster because of AWS’s vast network of data centers all over the world.

A better alternative to this is to use AWS Amplify, which is a more advanced service for deploying web applications and can serve both Frontend-based and full-stack JavaScript applications.

2. Deploy an open-source project on an EC2 Instance

There are many open-source projects out there that you can copy and deploy into an EC2 instance. Follow the guides in the installation process and see if you can deploy the service to run in the EC2 instance and access the application via your browser. These are a few open-source projects that you can try with

These projects will test your ability to deploy and configure different types of programming language databases and set up web servers to proxy requests to this application. If you can not get a domain name for them, it is ok to run them on an IP address.

3. Configure monitoring and/or observability for the EC2 Instance

So there are various options for configuring monitoring or observability for applications. The lowest hanging fruit here is to configure Amazon CloudWatch, which automatically monitors CPU, Network, and Disk I/O for your EC2 instances. But you still need to configure monitoring for Disk space, memory consumption, and other important services running in your environment. You can configure an Amazon CloudWatch agent or use a tool such as netdata (https://netdata.io) that can help you monitor the full system and generate an automatic dashboard.

For more advanced use cases, you can configure PrometheusGrafana, and Loki to get more in-depth metrics and have more control.

4. Deploy a WordPress app on AWS Elastic Beanstalk

Use Amazon RDS SQL as the database backend storage for this deployment. This project gives a glimpse of a two-tier application architecture with a web server of nginx or Apache and the application running inside the VM, and connecting to an Amazon RDS instance with the connection string generated from the Amazon RDS Instance. The goal here is to ensure the WordPress website loads, and you can see the demo page of the WordPress blog, create some posts on WordPress, and ensure the WordPress application works appropriately.

5. Set up a Simple Serverless Application

Though not always common, but a good skill to have. It will be good to learn how to use AWS Lambda to deploy a simple application. AWS Lambda is a server compute service that can host different types of programming languages.

Lambda with a combination of other Serverless services can be used to deploy an application that can scale with the needs of any operation management, like applications running on an EC2 Instance.

Conclusion

This list is exhaustive and depends on your level of understanding. For someone who has done some training, these projects are a test of what you have learned and how well they fit into real-world scenarios of common deployments that occur. These projects will improve your database, Linux, and application deployment abilities.

NB: Always ensure you delete every resource you create in your AWS Cloud Account to avoid incurring costs for services/resources not deleted.


Spread the love

Leave a Comment

Your email address will not be published. Required fields are marked *

×