Architected and deployed a fault-tolerant, auto-scalable full-stack web application on AWS EKS, using Kubernetes with 2 t3.small nodes and auto-scaling up to 3 nodes, achieving ~99.5% uptime and reducing downtime by over 60% through automated scaling and self-healing capabilities. Configured Horizontal Pod Autoscaler, Cluster Autoscaler, and AWS Application Load Balancer to ensure seamless traffic handling for 1,000+ concurrent users, scalable up to 10,000+ sessions.
- Frontend: Next.js + Tailwind CSS
- Backend: Node.js + Express.js
- Database: MongoDB
- Containerization: Docker, Docker Hub
- Orchestration: Kubernetes on AWS EKS
- Provisioning: Terraform
- Tools: AWS CLI, kubectl
docker build -t anuplohar001/img_name:latest .
- Image 1 - Frontend (Next.js)
- Image 2 - Backend (Node.js)
- Image 3 - Mongodb (Database)
Push Images to DockerHub (anuplohar001)
docker push anuplohar001/img_name:latest
cmsiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
Define ec2 instance with key pair and security group for enabling require PORTS in main.tf
aws configure
terraform init
terraform apply
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7`
ARCH=amd64
PLATFORM=$(uname -s)_$ARCH
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
# (Optional) Verify checksum
curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check
tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
sudo install -m 0755 /tmp/eksctl /usr/local/bin && rm /tmp/eksctl
eksctl create cluster --name promptsy --region us-east-1 --node-type t2.medium --nodes-min 2 --nodes-max 2 aws eks update-kubeconfig --region us-east-1 --name promptsy kubectl get nodes
kubectl get all







