title: Why do people use Puppet/Chef with Amazon Cloud Formation instead of just using CloudInit?
body: <p>We're planning to use AMI EC2 instances which are not "pre-baked". I.e. when they are spun up, they are bare installs of AWS linux. Our bootstrap process will pull in the various installs that we need e.g. python, tomcat. We'll have min of 3 instances and max of 8. </p>
  
  <p>Given these requirements, would using Puppet/Chef be useful rather than using Amazon Cloud Formation (CloudInit)? </p>
  
  <p>Best I can see is if we used Puppet, then we'd have declarative programming which is easier to audit to see what's happening versus a script. Also CloudInit has a 16k script size limit which we may or may not run into. </p>
  
  <p>Has anyone moved from CloudInit to Puppet or Chef for a specific reason that they can provide here in answer to my question?</p>