Michael McKibbin
← Back to projects

Project

Cloud DevOps Automation Project 2

This project automates the provisioning and monitoring of a scalable web application infrastructure (EC2/S3/alarms) on AWS using Python and Bash.

AWS • Python • Bash • Apache HTTP Server • Node.js • VPC • Load Balancing • Auto Scaling • Cloudwatch

View on GitHub
Cloud and DevOps automation
Cloud and DevOps automation

Further Details

A university assignment, submitted as part of the DevOps module of a BSc in Computer Science at SETU Waterford. The full report is available in the GitHub repository.

Features

  • Launches EC2 instances using Boto3 (up to 3 in a single call)
  • Installs Apache and hosts a dynamic index.html page with instance metadata
  • Uploads and runs monitoring scripts (monitor.sh and memv2.sh) via SCP and SSH
  • Deploys and starts a custom Node.js app (app.js)
  • Sets up AWS CloudWatch alarms for auto-scaling based on CPU utilization
  • Describes and outputs active alarms from CloudWatch


Tools & Technologies

  • AWS EC2, CloudWatch, Auto Scaling
  • Python 3, Boto3
  • Bash scripting
  • Apache HTTP Server
  • Node.js
  • AMI creation
  • Custom monitoring metrics


Architecture

  • VPC with 3 Availability Zones
  • Public and private subnets
  • Load Balancer and Auto Scaling Group
  • Custom AMI for efficient scaling
  • CloudWatch alarms:
    • Scale out above 50% CPU
    • Scale in below 30% CPU


Testing

  • Auto-scaling behavior tested using synthetic traffic (e.g. curl loops)
  • Confirmed load balancer routing, CloudWatch triggering, and instance termination
  • Verified monitoring output from monitor.sh and memv2.sh