A tiny Node.js app packaged with Docker, built by Jenkins, pushed to Docker Hub, and deployed to AWS ECS Fargate behind an ALB. Logs stream to CloudWatch. Infra is provisioned via Terraform.
Check App - http://devopstask-alb-286760224.ap-south-1.elb.amazonaws.com/
- GitHub (branches:
dev,main) - CI/CD: Jenkins (webhook triggered)
- Registry: Docker Hub →
sammy34719/devopstask - Runtime: AWS ECS Fargate + ALB
- Observability: CloudWatch Logs
- IaC: Terraform
Push → Jenkins (Build/Test → Dockerize → Push) → Update ECS Task Definition → Rolling deploy via ALB
├─ app.js ├─ package.json ├─ Dockerfile ├─ Jenkinsfile ├─ infra/ │ ├─ providers.tf │ ├─ variables.tf │ ├─ main.tf │ └─ outputs.tf └─ deployment-proof/ ├─ url.txt └─ screenshots/
- cd infra
- terraform init && terraform apply -auto-approve
- note outputs: alb_dns, cluster, service, task_family
sudo su - jenkins && aws configure
- AWS_REGION=ap-south-1
- ECS_CLUSTER=devopstask-cluster
- ECS_SERVICE=devopstask-svc
- TASK_FAMILY=devopstask
- DOCKER_NS=sammy34719
- APP_NAME=devopstask
aws logs describe-log-streams
--log-group-name /devopstask
--order-by LastEventTime --descending
--max-items 5 --region ap-south-1