| Index: third_party/gsutil/boto/docs/source/ec2_tut.rst
|
| diff --git a/third_party/gsutil/boto/docs/source/ec2_tut.rst b/third_party/gsutil/boto/docs/source/ec2_tut.rst
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..48f5e79fec17a97e041b3ebbecffbe31631d3f7e
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/docs/source/ec2_tut.rst
|
| @@ -0,0 +1,86 @@
|
| +.. _ec2_tut:
|
| +
|
| +=======================================
|
| +An Introduction to boto's EC2 interface
|
| +=======================================
|
| +
|
| +This tutorial focuses on the boto interface to the Elastic Compute Cloud
|
| +from Amazon Web Services. This tutorial assumes that you have already
|
| +downloaded and installed boto.
|
| +
|
| +Creating a Connection
|
| +---------------------
|
| +
|
| +The first step in accessing EC2 is to create a connection to the service.
|
| +The recommended way of doing this in boto is::
|
| +
|
| + >>> from boto.ec2
|
| + >>> conn = boto.ec2.connect_to_region("us-east-1",
|
| + ... aws_access_key_id='<aws access key>',
|
| + ... aws_secret_access_key='<aws secret key>')
|
| +
|
| +At this point the variable ``conn`` will point to an EC2Connection object. In
|
| +this example, the AWS access key and AWS secret key are passed in to the method
|
| +explicitly. Alternatively, you can set the boto config environment variables
|
| +and then simply specify which region you want as follows::
|
| +
|
| + >>> conn = boto.ec2.connect_to_region("us-east-1")
|
| +
|
| +In either case, conn will point to an EC2Connection object which we will
|
| +use throughout the remainder of this tutorial.
|
| +
|
| +Launching Instances
|
| +-------------------
|
| +
|
| +Possibly, the most important and common task you'll use EC2 for is to launch,
|
| +stop and terminate instances. In its most primitive form, you can launch an
|
| +instance as follows::
|
| +
|
| + >>> conn.run_instances('<ami-image-id>')
|
| +
|
| +This will launch an instance in the specified region with the default parameters.
|
| +You will not be able to SSH into this machine, as it doesn't have a security
|
| +group set. See :doc:`security_groups` for details on creating one.
|
| +
|
| +Now, let's say that you already have a key pair, want a specific type of
|
| +instance, and you have your :doc:`security group <security_groups>` all setup.
|
| +In this case we can use the keyword arguments to accomplish that::
|
| +
|
| + >>> conn.run_instances(
|
| + '<ami-image-id>',
|
| + key_name='myKey',
|
| + instance_type='c1.xlarge',
|
| + security_groups=['your-security-group-here'])
|
| +
|
| +The main caveat with the above call is that it is possible to request an
|
| +instance type that is not compatible with the provided AMI (for example, the
|
| +instance was created for a 64-bit instance and you choose a m1.small instance_type).
|
| +For more details on the plethora of possible keyword parameters, be sure to
|
| +check out boto's :doc:`EC2 API reference <ref/ec2>`.
|
| +
|
| +Stopping Instances
|
| +------------------
|
| +Once you have your instances up and running, you might wish to shut them down
|
| +if they're not in use. Please note that this will only de-allocate virtual
|
| +hardware resources (as well as instance store drives), but won't destroy your
|
| +EBS volumes -- this means you'll pay nominal provisioned EBS storage fees
|
| +even if your instance is stopped. To do this, you can do so as follows::
|
| +
|
| + >>> conn.stop_instances(instance_ids=['instance-id-1','instance-id-2', ...])
|
| +
|
| +This will request a 'graceful' stop of each of the specified instances. If you
|
| +wish to request the equivalent of unplugging your instance(s), simply add
|
| +``force=True`` keyword argument to the call above. Please note that stop
|
| +instance is not allowed with Spot instances.
|
| +
|
| +Terminating Instances
|
| +---------------------
|
| +Once you are completely done with your instance and wish to surrender both
|
| +virtual hardware, root EBS volume and all other underlying components
|
| +you can request instance termination. To do so you can use the call bellow::
|
| +
|
| + >>> conn.terminate_instances(instance_ids=['instance-id-1','instance-id-2', ...])
|
| +
|
| +Please use with care since once you request termination for an instance there
|
| +is no turning back.
|
| +
|
|
|