Hi, I'm ThadeusB.

I code, I play, I love, I innovate

Setting Up a Minecraft Server for My Kid's Summer Break with Terraform

Introduction

As a parent and a software engineer, finding ways to blend family time with technology is always rewarding. This summer, I took on a project to set up a Minecraft server for my kid and their friends to play together, using my skills in cloud computing, devops, and Terraform.

How I Set Up the Server

The process was streamlined using a variety of AWS services orchestrated with Terraform:

  1. DNS Lookup with Route 53: Minecraft client attempts to connect, triggering a DNS query that's logged.
  2. Event Handling with CloudWatch and Lambda: The query is forwarded to a Lambda function via CloudWatch, which then adjusts the ECS task count.
  3. Server Deployment with ECS Fargate: Two containers, one for Minecraft and another for a watchdog, are launched. The watchdog updates the DNS record and manages server availability.
  4. Notification with Twilio and SNS: Alerts about server readiness are sent through Twilio or published to an SNS topic.
  5. Auto-Scaling: The server shuts down automatically based on player activity, optimizing costs.

Cost-Effectiveness

Thanks to AWS's pricing model, the setup is not only efficient but also cost-effective, averaging around $1.50 per month for moderate usage.

Conclusion

This project was a perfect blend of my professional expertise and personal life, allowing me to provide a fun and educational experience for my child and their friends while keeping costs low. It demonstrates the power of cloud solutions in everyday applications.