← Back to projects

Minecraft Server Automation on AWS (Terraform + Ansible + Docker)

An end-to-end infrastructure automation project that provisions, configures, and launches a Minecraft server on AWS without touching the AWS Management Console or SSHing into the instance manually. The workflow is split across three tools: Terraform provisions the EC2 instance, security groups, and key pair; Ansible connects over SSH to install Docker and dependencies and push configuration; Docker Compose runs the Minecraft server container with persistent volume mounts for world data and server config. The project is organized by tool (terraform/, ansible/, docker/, scripts/) with clear separation of infrastructure state from application config. Environment-specific values (region, instance type, key path) are parameterized via Terraform variables and Ansible inventory, making the setup reproducible across environments. A setup script ties the phases together and documents the expected execution order. This project demonstrates practical IaC fluency: defining infrastructure declaratively, managing configuration drift with Ansible idempotency, and running stateful workloads in containers on cloud VMs.

TerraformAnsibleAWSEC2DockerBash

Gallery

Photograph of Infrastructure diagram illustrating Terraform + Ansible provisioning and Docker deployment on AWS.
Infrastructure diagram illustrating Terraform + Ansible provisioning and Docker deployment on AWS.
Photograph of Client join screen showing server address and connection status used in testing.
Client join screen showing server address and connection status used in testing.
Photograph of In‑game gameplay screenshot demonstrating the running Minecraft server and player environment.
In‑game gameplay screenshot demonstrating the running Minecraft server and player environment.