Node.js Backend Deployment on AWS Using EC2, Application Load Balancer, Aurora Serverless RDS, and NGINX

Project Overview

This project involves the deployment of a Node.js back-end application on AWS, leveraging a highly scalable and reliable infrastructure. The application is hosted on EC2 instances behind an Application Load Balancer (ALB) to handle incoming traffic, with data managed by an Amazon Aurora Serverless RDS database. The deployment process is automated using Bitbucket Pipeline and AWS CodeDeploy, while the infrastructure is provisioned using AWS CloudFormation. NGINX is used as the web server, running on Ubuntu within the EC2 instances.

Technologies and Services Used

  • Node.js: For developing the back-end application.

  • AWS EC2: To host the Node.js application.

  • AWS Application Load Balancer (ALB): To distribute incoming traffic across multiple EC2 instances.

  • Amazon Aurora Serverless RDS: For a scalable and serverless database solution.

  • NGINX: Used as a web server on Ubuntu instances.

  • AWS CodeDeploy: To automate application deployments to EC2.

  • Bitbucket: For source code management and version control.

  • Bitbucket Pipeline: For CI/CD automation, managing the build and deployment process.

  • AWS CloudFormation: To automate the provisioning and management of AWS resources.

  • Ubuntu: Operating system on the EC2 instances hosting the application.

Key Responsibilities:

  • Node.js Development: Developing and maintaining the back-end application.

  • Infrastructure as Code (IaC): Writing and managing AWS CloudFormation templates to automate the provisioning of EC2 instances, ALB, Aurora Serverless RDS, and other AWS resources.

  • Pipeline Configuration: Setting up Bitbucket Pipeline for continuous integration and deployment, integrating with AWS CodeDeploy for automated deployments.

  • AWS EC2 and NGINX Setup: Configuring EC2 instances with Ubuntu and setting up NGINX as a reverse proxy server.

  • Database Management: Configuring Amazon Aurora Serverless RDS to handle the database requirements of the application.

  • Load Balancing: Setting up and configuring an Application Load Balancer to distribute traffic efficiently across EC2 instances.

  • Automation and Deployment: Implementing automated deployments using Bitbucket Pipeline and AWS CodeDeploy, ensuring seamless and error-free deployment processes.

Project Outcomes

  • Scalable Back-End Infrastructure: Successfully deployed a Node.js back-end application on AWS with a scalable infrastructure, including EC2 instances, ALB, and Aurora Serverless RDS.

  • Automated Deployment Pipeline: Established a robust CI/CD pipeline using Bitbucket and AWS CodeDeploy, significantly reducing manual intervention and deployment time.

  • Efficient Traffic Management: Implemented an Application Load Balancer to ensure efficient traffic distribution, improving application performance and reliability.

  • Cost-Effective and Scalable Database: Leveraged Amazon Aurora Serverless RDS to provide a scalable, serverless database solution that adjusts to the application's needs.

  • Streamlined Infrastructure Management: Utilized AWS CloudFormation to manage infrastructure as code, enabling consistent and repeatable deployments.

  • Optimized Server Configuration: Configured NGINX on Ubuntu to handle requests efficiently, improving the overall performance and security of the application.

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.