Skip to content
All projects

AWS Fullstack Deployment

Full-stack Node.js/Express/TypeScript app (Udagram) deployed on AWS with a complete automated pipeline — Elastic Beanstalk hosting, RDS PostgreSQL, S3 image storage, and CircleCI CI/CD end-to-end.

Production · TypeScript · Cloud · DevOps · 2023

Node.js, Express, TypeScript, AWS Elastic Beanstalk, AWS RDS, AWS S3, CircleCI

  • AWS Fullstack Deployment screenshot 1

The problem

Shipping a Node.js/Express app locally is easy, but standing up a real AWS deployment — a managed database, decoupled object storage, and a pipeline that safely auto-deploys every push — is where most portfolio projects stop short.

My role

Responsibilities

Provisioned and configured the AWS infrastructure end-to-end and wired up the CI/CD pipeline for this Udacity Cloud DevOps Nanodegree capstone (Udagram).

Main workflows

  1. 1.Push to the repository triggers the CircleCI pipeline
  2. 2.Pipeline builds and tests the Node.js/Express/TypeScript app
  3. 3.On success, CircleCI deploys straight to the Elastic Beanstalk environment
  4. 4.The running app reads/writes to RDS PostgreSQL and stores media in the S3 bucket

Architecture

  1. Client
  2. Node.js / Express (TypeScript)
  3. AWS Elastic Beanstalk
  4. RDS PostgreSQL and S3

Backend API service with no UI to screenshot. See the source for endpoint documentation.

  • AWS Elastic Beanstalk hosting for the Node.js/Express/TypeScript API and frontend
  • AWS RDS (PostgreSQL) as the managed production database
  • AWS S3 bucket for image/media storage, decoupled from the app server
  • CircleCI pipeline automating build, test, and deployment on every push

Security and deployment

  • Environment variables and secrets managed through CircleCI's project environment settings, not committed to the repo
  • RDS provisioned as a managed, access-controlled database instance separate from the app tier
  • S3 bucket used specifically to decouple media storage from the compute layer

Results

Fully automated pipeline — a push to master builds, tests, and deploys to Elastic Beanstalk with no manual steps.