AWS Bootcamp - Q1 - Deploy a 3-tier application using EC2, S3, and RDS

Deploy a 3 - Tier application using AWS S3, EC2, and RDS database.

In this first task, we will deploy an Application called JobsEzy which has Frontend code in NextJS, Backend code in FastAPI (Python framework) and Database used is Postgresql.

Readme of these Github repo contains instructions on how to deploy it,

  1. JobsEzy Frontend Repo - https://github.com/ezyinfra/jobsezy-ui

  2. JobsEzy Backend Repo - https://github.com/ezyinfra/jobsezy-server

Difficulty Level - Easy

Days to complete - 2 to 3 days

Architecture

3 Tier Architecture setup using AWS

Objectives

  1. Should know about the fundamentals of working with different AWS services

  2. All the resources should be created using IAM user and not as root user

  3. We should able to access the Application using the S3 bucket URL and create new jobs

AWS Services / Technologies

AWS EC2 & Application Load Balancer

IAM

AWS S3

AWS RDS

NextJS (ReactJS)

FastAPI (Python)

High level Tasks

  1. Create a new IAM user with Administrator Access (for now) and login as that user to create the resources

  2. Create a Postgres database using AWS RDS and give access to it publicly (for now). Create initial database - jobsezy

  3. Create an EC2 instance, SSH into it, and setup Python based backend service using this Repo and Readme

  4. Build static assets from the frontend repository and serve them using AWS S3

  5. Finally, give a URL, that points to frontend and we should able to insert data in the backend

Reference material

You can use any reference - AI, AWS Docs, Youtube videos. But the objective is you should able to complete the task and should able to explain what you did clearly.

EC2 Getting started video

Static site hosting using S3

RDS Getting started video

Load Balancers Getting started

Video Solution

Coming Soon


Share this post

Want to discuss about DevOps practices, Infrastructure Audits or Free consulting for your AWS Cloud?

Prasanna would be glad to jump into a call
Loading...