Overview

This project provisions an EC2 instance using Terraform, installs NGINX and monitoring scripts via cloud-init, and includes a Bash-based self-healing system. It monitors service health and disk usage, restarts services when they fail, and sends alerts via Slack. Logs and uptime data are pushed to an S3 bucket.

Technologies Used

  • Terraform (AWS provider, cloud-init injection)
  • Bash (health checks, logging, Slack alerts)
  • AWS EC2 (infrastructure layer)
  • S3 (log storage)
  • Slack Webhook (alerting)
  • systemd (timers for health checks)

Features

  • ๐Ÿ’ก Auto-heals failing services
  • ๐Ÿ“ฆ Slack alert integration
  • ๐Ÿชต S3 log backups
  • ๐Ÿ” Cloud-init automation
  • ๐Ÿงช Tested and validated with real AWS instances

Repo

๐Ÿ‘‰ View on GitHub


If you’re interested in building something similar, check the NOTES.md files in the repo for lessons learned and architecture breakdowns.