Answer – C
Option A is incorrect because CloudFormation is best for creating and maintaining all the infrastructure resources in the cloud environment.
Option B is incorrect because when your stack grows in scale and broadens in scope, managing a single stack can be cumbersome and time-consuming. Also, coordinating and communicating updates can become difficult.
Option C is CORRECT because (a) having multiple (or sub) stacks is easier to maintain, (b) there is a clear separation of ownership and concerns, (c) better chances of you staying within the limit for `Template body size` which happens to be 460,800 bytes, and (d) you can reuse common template patterns. See the "More information..." section for more details.
Option D is incorrect because you can provision and maintain the infrastructure if the CloudFormation templates are created correctly.
More information on CloudFormation Best Practices:
The following use case scenario is given in the AWS documentation to support the answer:
For example, imagine a team of developers and engineers who own a website that is hosted on autoscaling instances behind a load balancer. Because the website has its own lifecycle and is maintained by the website team, you can create a stack for the website and its resources. Now imagine that the website also uses back-end databases, where the databases are in a separate stack that is owned and maintained by database administrators. Whenever the website team or database team needs to update their resources, they can do so without affecting each other`s stack. If all resources were in a single stack, coordinating and communicating updates can be difficult.
For more information on Cloudformation best practices, please visit the below URL
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html