Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1639)

Unified Diff: third_party/gsutil/20110627/boto/docs/source/autoscale_tut.rst

Issue 10199002: Upgrade gsutil to 3.4 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed comments Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/20110627/boto/docs/source/autoscale_tut.rst
diff --git a/third_party/gsutil/20110627/boto/docs/source/autoscale_tut.rst b/third_party/gsutil/20110627/boto/docs/source/autoscale_tut.rst
deleted file mode 100644
index a99bc3e003e879da63187f09e5f293216e34dfbe..0000000000000000000000000000000000000000
--- a/third_party/gsutil/20110627/boto/docs/source/autoscale_tut.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-.. _autoscale_tut:
-
-=============================================
-An Introduction to boto's Autoscale interface
-=============================================
-
-This tutorial focuses on the boto interface to the Autoscale service. This
-assumes you are familiar with boto's EC2 interface and concepts.
-
-Autoscale Concepts
-------------------
-
-The AWS Autoscale service is comprised of three core concepts:
-
- #. *Autoscale Group (AG):* An AG can be viewed as a collection of criteria for
- maintaining or scaling a set of EC2 instances over one or more availability
- zones. An AG is limited to a single region.
- #. *Launch Configuration (LC):* An LC is the set of information needed by the
- AG to launch new instances - this can encompass image ids, startup data,
- security groups and keys. Only one LC is attached to an AG.
- #. *Triggers*: A trigger is essentially a set of rules for determining when to
- scale an AG up or down. These rules can encompass a set of metrics such as
- average CPU usage across instances, or incoming requests, a threshold for
- when an action will take place, as well as parameters to control how long
- to wait after a threshold is crossed.
-
-Creating a Connection
----------------------
-The first step in accessing autoscaling is to create a connection to the service.
-There are two ways to do this in boto. The first is:
-
->>> from boto.ec2.autoscale import AutoScaleConnection
->>> conn = AutoScaleConnection('<aws access key>', '<aws secret key>')
-
-Alternatively, you can use the shortcut:
-
->>> conn = boto.connect_autoscale()
-
-A Note About Regions and Endpoints
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Like EC2 the Autoscale service has a different endpoint for each region. By
-default the US endpoint is used. To choose a specific region, instantiate the
-AutoScaleConnection object with that region's endpoint.
-
->>> ec2 = boto.connect_autoscale(host='autoscaling.eu-west-1.amazonaws.com')
-
-Alternatively, edit your boto.cfg with the default Autoscale endpoint to use::
-
- [Boto]
- autoscale_endpoint = autoscaling.eu-west-1.amazonaws.com
-
-Getting Existing AutoScale Groups
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To retrieve existing autoscale groups:
-
->>> conn.get_all_groups()
-
-You will get back a list of AutoScale group objects, one for each AG you have.
-
-Creating Autoscaling Groups
----------------------------
-An Autoscaling group has a number of parameters associated with it.
-
- #. *Name*: The name of the AG.
- #. *Availability Zones*: The list of availability zones it is defined over.
- #. *Minimum Size*: Minimum number of instances running at one time.
- #. *Maximum Size*: Maximum number of instances running at one time.
- #. *Launch Configuration (LC)*: A set of instructions on how to launch an instance.
- #. *Load Balancer*: An optional ELB load balancer to use. See the ELB tutorial
- for information on how to create a load balancer.
-
-For the purposes of this tutorial, let's assume we want to create one autoscale
-group over the us-east-1a and us-east-1b availability zones. We want to have
-two instances in each availability zone, thus a minimum size of 4. For now we
-won't worry about scaling up or down - we'll introduce that later when we talk
-about triggers. Thus we'll set a maximum size of 4 as well. We'll also associate
-the AG with a load balancer which we assume we've already created, called 'my_lb'.
-
-Our LC tells us how to start an instance. This will at least include the image
-id to use, security_group, and key information. We assume the image id, key
-name and security groups have already been defined elsewhere - see the EC2
-tutorial for information on how to create these.
-
->>> from boto.ec2.autoscale import LaunchConfiguration
->>> from boto.ec2.autoscale import AutoScalingGroup
->>> lc = LaunchConfiguration(name='my-launch_config', image_id='my-ami',
- key_name='my_key_name',
- security_groups=['my_security_groups'])
->>> conn.create_launch_configuration(lc)
-
-We now have created a launch configuration called 'my-launch-config'. We are now
-ready to associate it with our new autoscale group.
-
->>> ag = AutoScalingGroup(group_name='my_group', load_balancers=['my-lb'],
- availability_zones=['us-east-1a', 'us-east-1b'],
- launch_config=lc, min_size=4, max_size=4)
->>> conn.create_auto_scaling_group(ag)
-
-We now have a new autoscaling group defined! At this point instances should be
-starting to launch. To view activity on an autoscale group:
-
->>> ag.get_activities()
- [Activity:Launching a new EC2 instance status:Successful progress:100,
- ...]
-
-or alternatively:
-
->>> conn.get_all_activities(ag)
-
-This autoscale group is fairly useful in that it will maintain the minimum size without
-breaching the maximum size defined. That means if one instance crashes, the autoscale
-group will use the launch configuration to start a new one in an attempt to maintain
-its minimum defined size. It knows instance health using the health check defined on
-its associated load balancer.
-
-Scaling a Group Up or Down
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-It might be more useful to also define means to scale a group up or down
-depending on certain criteria. For example, if the average CPU utilization of
-all your instances goes above 60%, you may want to scale up a number of
-instances to deal with demand - likewise you might want to scale down if usage
-drops. These criteria are defined in *triggers*.
-
-For example, let's modify our above group to have a maxsize of 8 and define means
-of scaling up based on CPU utilization. We'll say we should scale up if the average
-CPU usage goes above 80% and scale down if it goes below 40%.
-
->>> from boto.ec2.autoscale import Trigger
->>> tr = Trigger(name='my_trigger', autoscale_group=ag,
- measure_name='CPUUtilization', statistic='Average',
- unit='Percent',
- dimensions=[('AutoScalingGroupName', ag.name)],
- period=60, lower_threshold=40,
- lower_breach_scale_increment='-5',
- upper_threshold=80,
- upper_breach_scale_increment='10',
- breach_duration=360)
->> conn.create_trigger(tr)
-

Powered by Google App Engine
This is Rietveld 408576698