For simple bootstrapping, user data text/scripts may be adequate. Keep in mind the limit on size is 16K for user data.
s3cmd is often used to load the bootstrap scripts for S3. More on this can be found here:
A very good document on using user data, CloudFormation, Chef, Puppet and other tools to bootstrap EC2 instances can be found here: