5 Simple Projects to Build on AWS as a Beginner

author Image

Ewere Diagboya

18th January 2025

#aws#cloudcomputing#opensource#beginner#practice#handson#guide
blog img

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 deployment web applications and can serve both Frontend-based and full-stack Javascript Applications.


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

- Ghost Blog: https://github.com/TryGhost/Ghost

- Fathom: https://github.com/usefathom/fathom

- Pocketbase: https://github.com/pocketbase/pocketbase

- InvoiceNinja: https://github.com/invoiceninja/invoiceninja

- AppFlowy: https://github.com/AppFlowy-IO/AppFlowy


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



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 Prometheus, Grafana, and Loki to get more in-depth metrics and have more control.


Deploy a WordPress app on AWS ElasticBeanstalk

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 webserver 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.


Setup 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 application can scale with the need of any operation management like applications running on an EC2 Instance.


Conclusion

This list is inexhaustive 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 cost for services/resources not deleted.

Subscribe to our Newsletter

Stay updated with the latest news and articles.

Ewere Diagboya
© 2025 Ewere Diagboya | All Right Reserved