AWS mistakes to avoid
I like CloudFormation. Unfortunately it is very unwieldy to write CloudFormation templates directly, and we&#x27;re not about to start using the AWS CFN GUI editor!<p>It seems like the assembly of the AWS ecosystem.<p>Does anyone else have a favourite hammer for this particular nail? I&#x27;d love to have something better than our home-baked solution, but I&#x27;m yet to find anything which doesn&#x27;t introduce other flaws, such as an incomplete implementation (missing parameters or resource types) or ultimately making a leaky abstraction on top of CloudFormation somehow.<p>I ended up brewing a reasonably straightforward solution using Python as a (minimal) DSL which emits JSON. Its primary purpose is to support <i>the whole</i> of the CFN ecosystem (not just implement some small part of EC2, for instance) while also not trying to be too clever.<p>It has about 50-100 lines of python which implements helper functions such as ref(), join() and load_user_data(), and not many other things. There is an almost 1-to-1 correspondence between the generated CFN configuration and the python source. As a bonus it checks for a few common mistakes like broken refs or parameters which aren&#x27;t used.<p>I have heard that similar solutions have been reinvented in a few places, including the BBC. But I&#x27;m yet to see a good public solution!