What is a circular dependency in AWS CloudFormation?
When a Template references an earlier version of itself.
When Nested Stacks depend on each other.
When Resources form a DependOn loop.
When a Template references a region, which references the original Template.
To resolve a dependency error, add a DependsOn attribute to resources that depend on other resources in your template.
In some cases, you must explicitly declare dependencies so that AWS CloudFormation can create or delete resources in
the correct order. For example, if you create an Elastic IP and a VPC with an Internet gateway in the same stack, the
Elastic IP must depend on the Internet gateway attachment. For additional information, see DependsOn Attribute.