Building SpotMan: From Simple AWS Instance Manager to Advanced Hibernation-Enabled Spot Orchestrator
A journey through modern AWS APIs, native YAML processing, and the challenges of hibernation with spot instances
The Problem: AWS Instance Management Shouldn't Be This Hard
Managing AWS EC2 instances should be simple, but it often isn't. Between remembering complex CLI commands, managing different AMI IDs across regions, and juggling various instance configurations, even experienced developers find themselves drowning in documentation. Every time I wanted to spin up a quick development instance or deploy a test environment, I faced the same tedious process: lookup AMI IDs, remember security group configurations, craft long aws ec2 run-instances commands, and hope I didn't miss anything crucial.
I wanted something straightforward: create instances from YAML templates, use them across any AWS region, and optimize costs without sacrificing functionality. This led to SpotMan – a Python-based AWS instance manager that evolved far beyond my initial expectations.
What started as a simple YAML-to-EC2 converter became a sophisticated orchestrator capable of managing hibernation-enabled spot instances, implementing native YAML includes, and handling complex AWS state management scenarios. The journey taught me valuable lessons about API evolution, the importance of standards compliance, and the delicate balance between hiding complexity and providing transparency to users.