How londheshubham153/three-tier-eks-iac works
This repository implements a browser-based to-do application and the AWS/EKS infrastructure and Kubernetes resources intended to run it. The user workflow is to load tasks, add them, toggle completion, or delete them; frontend state handlers call an HTTP service, which reaches the API routes and MongoDB model. The README documents cluster autoscaling, load balancing, and Grafana monitoring as deployment capabilities. Infrastructure wiring is summarized from filenames and README instructions; Terraform and manifest source contents were not sampled, so uncertain resource-level links are omitted.
Main entry points: eks.tf EKS cluster · mongo MongoDB · index.js API server · full_stack_lb.yaml Full-stack load balancer
Components 24
To-do frontend
- Task interface
app/frontend/src/App.js - Task handlers
app/frontend/src/Tasks.js - Task HTTP service
app/frontend/src/services/taskServices.js - React entry
app/frontend/src/index.js
Task API
- API server
app/backend/index.js - Task routes
app/backend/routes/tasks.js
Task persistence
- DB connection
app/backend/db.js - Task model
app/backend/models/task.js - MongoDB
k8s_manifests/mongo
Kubernetes application
- Frontend deployment
k8s_manifests/frontend-deployment.yaml - Frontend service
k8s_manifests/frontend-service.yaml - Backend deployment
k8s_manifests/backend-deployment.yaml - Backend service
k8s_manifests/backend-service.yaml - Mongo service
k8s_manifests/mongo/service.yaml - Full-stack load balancer
k8s_manifests/full_stack_lb.yaml
AWS infrastructure
- EKS cluster
terraform/eks.tf - VPC networking
terraform/vpc.tf - Cluster autoscaler
terraform/autoscaler-manifest.tf - LB controller
terraform/helm-load-balancer-controller.tf - Monitoring
terraform/monitoring.tf
Other components
- User
- Browser
- Grafana
- AWS
Connections 27
- User → Browser: uses
- Browser → React entry: loads
- React entry → Task interface: renders
- Task interface → Task handlers: invokes
- Task handlers → Task HTTP service: calls
- Task HTTP service → API server: HTTP requests
- API server → Task routes: mounts
- API server → DB connection: connects
- Task routes → Task model: queries
- DB connection → MongoDB: connects
- Task model → MongoDB: reads/writes
- Browser → Full-stack load balancer: requests app
- Full-stack load balancer → Frontend service: routes traffic
- Frontend service → Frontend deployment: targets
- Backend service → Backend deployment: targets
- Mongo service → MongoDB: targets
- EKS cluster → Frontend deployment: runs
- EKS cluster → Backend deployment: runs
- EKS cluster → MongoDB: runs
- VPC networking → EKS cluster: network for
- AWS → EKS cluster: hosts
- AWS → VPC networking: provides
- EKS cluster → Cluster autoscaler: supports
- EKS cluster → LB controller: runs
- LB controller → Full-stack load balancer: provisions
- EKS cluster → Monitoring: hosts
- Monitoring → Grafana: exposes