So, you've applied your manifests to a number of servers, and puppet is working great! Now you've grown more ambitious and want to puppetize an infrastructure on a public cloud like AWS. But after weeks of clicking around in the AWS console and manually hooking up EC2 instances in Puppet you find yourself thinking: "There must be an easier and more structured way to do this, RIGHT?" Well, there is! This talk combines all the secrets I learned at PuppetConf 2015 and will help you leverage tools like puppetlabs-aws, terraform, hiera, cloud-init, CodeDeploy and foreman (autosigning and default_hostgroup) to deploy your "Infrastructure as Code" and overcome the difficulties of bootstrapping and managing a variable number of distributed systems using Puppet. We focus primarily on AWS, but the principles and difficulties apply to most public cloud platforms and all distributed systems in general.