Serverless 3-Tier Angular and Node.js Application on AWS

Project Overview

In this project, I created a fully serverless 3-tier web application architecture on AWS, comprising an Angular front-end and a Node.js back-end, complemented by serverless APIs. The front-end was hosted on AWS S3, while the back-end microservices were deployed using Amazon ECS Fargate behind an Application Load Balancer (ALB). Additionally, several APIs were implemented using AWS Lambda, accessible via API Gateway with AWS Cognito for authentication and authorization. The database layer was powered by the serverless Amazon Aurora RDS.

Technologies and Services Used

  • Angular: Front-end application hosted on AWS S3 with CloudFront for CDN and faster content delivery.

  • Node.js: Back-end microservices containerized and deployed on Amazon ECS Fargate.

  • Amazon ECS (Fargate): Used for running back-end microservices in a serverless containerized environment.

  • Application Load Balancer (ALB): Distributed traffic to the Node.js microservices running on ECS Fargate.

  • Amazon Aurora RDS (Serverless): The serverless relational database solution for handling dynamic database workloads.

  • AWS S3: For hosting and serving the Angular front-end.

  • AWS Lambda: Serverless APIs implemented for specific functionalities.

  • AWS API Gateway: Managed API traffic and exposed Lambda-based APIs to external users.

  • AWS Cognito: Provided secure user authentication and authorization for accessing APIs.

  • AWS CLI: Used for automating front-end deployment from Bitbucket to S3.

  • AWS CodeDeploy: Employed to update back-end microservices on ECR during continuous deployment pipelines.

Key Responsibilities:

  • Serverless Architecture Design: Designed and implemented a 3-tier application architecture utilizing serverless services for scalability and reduced operational overhead.

  • Front-End Deployment: Automated the deployment of the Angular front-end using AWS CLI to S3, triggered by Bitbucket pipelines for continuous integration and deployment.

  • Back-End Deployment: Containerized the Node.js microservices, deployed them on Amazon ECS Fargate, and used AWS CodeDeploy to update the back-end services on Amazon ECR with each pipeline update.

  • API Design and Authentication: Created Lambda-based APIs for key functionalities, integrated with AWS API Gateway for routing, and secured access using AWS Cognito for user authentication and authorization.

  • Load Balancing: Configured an Application Load Balancer (ALB) to ensure smooth traffic distribution and redundancy for the Node.js microservices.

  • Database Setup: Set up a serverless Amazon Aurora RDS database for handling dynamic and scalable data storage needs, ensuring high availability and performance.

  • Infrastructure as Code: Utilized CloudFormation templates to automate the provisioning of the AWS infrastructure, ensuring consistency and repeatability.

Project Outcomes

  • Seamless Continuous Deployment: Achieved an automated deployment pipeline for both front-end and back-end components, reducing manual intervention and increasing development efficiency.

  • Scalable Application: The serverless architecture allowed the application to scale dynamically in response to traffic spikes, ensuring smooth operation with minimal management overhead.

  • Secure API Access: Successfully implemented APIs using AWS Lambda, secured with AWS Cognito for user authentication and authorization, enhancing security while providing easy integration with external services.

  • Cost Optimization: Leveraged AWS serverless services like ECS Fargate, Lambda, and Aurora RDS to minimize infrastructure management costs while maintaining high availability.

  • High Availability and Performance: The combination of ALB, ECS Fargate, Lambda APIs, and serverless RDS provided a resilient and high-performing environment for both the front-end and back-end services.

Latest Projects

Things I do

CLOUD

Amazon Web Services

AZURE Cloud

Google Cloud Platform

IBM Cloud

DevOps Tools

Jenkins

Ansible for software provisioning

Packer for automated machine images

AWS CodePipeline

AWS CodeDeploy

Azure Pipelines

Chef

Github Actions

GitLab CI/CD

CircleCI

Microservices

Kubernetes

Docker

AWS ECS

AWS EKS

AKS

Azure Container Apps

Monitoring and Alerting

Telegraf

Prometheus

Grafana

Pagerduty

Infrastructure as Code

CloudFormation

Terraform

AWS CDK (Python & Typescript)

Operating System

Most of Linux Server Distributions

Window Server 2019/2022

Databases

MySQL

MariaDB

MongoDB

PostgreSQL

MSSQL

Scripting

Shell Scripting

Python

YAML

PowerShell

My Certifications

EMAIL: RAJ412214@GMAIL.COM

Let's Talk

Book a call to talk regarding the current vacancy at your organization.