Michael McKibbin
← Back to projects

Project

Cloud DevOps Automation Project 1

This project automates the deployment of an AWS EC2 instance and S3-hosted static website using Python and Boto3. It installs and configures a web server on EC2, serves dynamic metadata, uploads web content and media to S3, and enables basic monitoring and teardown features.

AWS • Python 3 • Boto3 • Apache Web Server • Bash • SSH/SCP • S3 Static Website Hosting • EC2 Automation • Cloudwatch

View on GitHub
Cloud and DevOps automation
Cloud and DevOps automation

Further Details

Features

  • EC2 Automation

    • Launches a t2.nano Amazon Linux 2 instance
    • Applies tags, security group, key pair, and user data
    • Installs Apache and dynamically generates an index.html using instance metadata
    • Automatically opens the web server in a browser after provisioning
  • S3 Static Website Hosting

    • Generates a unique bucket name, sets access policies
    • Uploads a pre-built index.html and a logo.jpg image
    • Configures static website hosting and opens the S3 site in a browser
  • Monitoring

    • Custom Bash script (monitor.sh) runs on the EC2 instance to report status, ports, services, and usage
    • Includes Apache, SSH, HTTP/S, and memory usage diagnostics
  • CloudWatch Integration

    • Sets up alarms for high (≥85%) and low (≤30%) CPU utilization
    • Alarm actions include rebooting or terminating the instance
    • Describes active CloudWatch alarms for verification
  • Resource Cleanup (Optional)

    • Prompts the user to delete the EC2 instance and/or S3 bucket after execution


Tools & Technologies

  • Python 3
  • Boto3 (AWS SDK for Python)
  • AWS EC2 & S3
  • CloudWatch Alarms
  • Apache Web Server
  • Bash Scripting
  • SSH/SCP File Transfer


Output URLs

  • EC2 Web Server (dynamic metadata): http://<EC2-IP-Address>
  • S3 Static Website: http://<bucket-name>.s3-website-us-east-1.amazonaws.com