You are previewing Python and AWS Cookbook.

Python and AWS Cookbook

Cover of Python and AWS Cookbook by Mitch Garnaat Published by O'Reilly Media, Inc.
  1. Python and AWS Cookbook
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Preface
      1. Conventions Used in This Book
      2. Using Code Examples
      3. Safari® Books Online
      4. How to Contact Us
    3. 1. General Info
      1. A Quick Note About Python
      2. Installing boto
      3. Getting Started with Amazon Web Services
      4. Using boto with Eucalyptus
      5. Using boto with Google Cloud Storage
      6. Finding Available Regions for AWS
      7. Enabling Debug Output with boto
      8. Controlling Socket Timeouts in boto
    4. 2. EC2 Recipes
      1. Launching an Instance
      2. Keeping Track of Instances with Tags
      3. Accessing the Console Log
      4. Uploading Your Own SSH Keypair
      5. Synchronizing SSH Keypairs Across EC2 Regions
      6. Associate an Elastic IP Address with an Instance
      7. Attach a Persistent EBS Volume to an Instance
      8. Back Up Your EBS Volumes
      9. Restore a Volume from a Snapshot
      10. Clone an Existing Instance
      11. Find All Running EC2 Instances
      12. Monitoring the Performance of Your Instance
      13. Getting Notifications
      14. Storing Custom Data in CloudWatch
      15. Executing Custom Scripts upon Instance Startup
    5. 3. S3 Recipes
      1. Create a Bucket
      2. Create a Bucket in a Specific Location
      3. Store Private Data
      4. Store Metadata with an Object
      5. Computing Total Storage Used by a Bucket
      6. Copy an Existing Object to Another Bucket
      7. Modify the Metadata of an Existing Object
      8. Find Out Who Is Accessing Your Data
      9. Reduce the Cost of Storing Noncritical Data
      10. Generating Expiring URLs for S3 Objects
      11. Preventing Accidental Deletion of Data from S3
      12. Hosting Static Websites on S3
      13. Uploading Large Objects to S3
    6. About the Author
    7. SPECIAL OFFER: Upgrade this ebook with O’Reilly
O'Reilly logo

Executing Custom Scripts upon Instance Startup


You need to run custom scripts each time a new instance is started.


Use the user_data feature to pass scripts and/or data to your newly started instance.


Once you get beyond the experimentation phase with EC2, you will quickly find that in addition to just starting an instance, you want to prepare that instance for a particular task. Why would you be starting an instance if you didn’t have an important job for it to perform? It turns out there are two main schools of thought regarding how best to accomplish this:

Custom images

This approach focuses on starting with a plain vanilla image and then configuring all of the required software necessary to perform the desired task. Once everything is installed and configured, you create a new image based on this fully configured image, and that becomes the image that you use. When an instance based on this image is started, it has everything it needs to perform its task.

Startup time configuration

This approach also starts with a plain vanilla image, but all of the installation and configuration is done when the instance starts up. This could be accomplished with scripts and/or data that are passed the instance at startup time, or it could use a more sophisticated, centralized configuration service like Puppet or Chef.

Deciding which is right for you is a trade-off. Custom images provide quick start time and fewer dependencies but are less flexible. Each time you want to update ...

The best content for your career. Discover unlimited learning on demand for around $1/day.