Recently I ran into a few circular dependency problems when creating resources with AWS CloudFormation. While creating the stack AWS will throw a “Circular dependency between resources: [ ResourceA, Resource B, …]”. The error message is not very specific on where exactly this happened. The message can even set you on the wrong track while solving the problem.
CloudFormation is the core component of AWS for implementing Infrastructure as Code. It allows easy creation and management of related AWS resources by writing CloudFormation templates. Originally those templates were all written in JSON but nowadays there is also an option to use YAML (AWS CloudFormation Update – YAML, Cross-Stack References, Simplified Substitution). Good stuff! Surprisingly the vast majority of example templates is still written in JSON. So here is my take on why I think you should definitely give CloudFormation in YAML a try.