github.com/armen/terraform@v0.5.2-0.20150529052519-caa8117a08f1/website/source/docs/providers/aws/r/autoscale.html.markdown (about)

     1  ---
     2  layout: "aws"
     3  page_title: "AWS: aws_autoscaling_group"
     4  sidebar_current: "docs-aws-resource-autoscale"
     5  description: |-
     6    Provides an AutoScaling Group resource.
     7  ---
     8  
     9  # aws\_autoscaling\_group
    10  
    11  Provides an AutoScaling Group resource.
    12  
    13  ## Example Usage
    14  
    15  ```
    16  resource "aws_autoscaling_group" "bar" {
    17    availability_zones = ["us-east-1a"]
    18    name = "foobar3-terraform-test"
    19    max_size = 5
    20    min_size = 2
    21    health_check_grace_period = 300
    22    health_check_type = "ELB"
    23    desired_capacity = 4
    24    force_delete = true
    25    launch_configuration = "${aws_launch_configuration.foobar.name}"
    26  
    27    tag {
    28      key = "foo"
    29      value = "bar"
    30      propagate_at_launch = true
    31    }
    32    tag {
    33      key = "lorem"
    34      value = "ipsum"
    35      propagate_at_launch = false
    36    }
    37  }
    38  ```
    39  
    40  ## Argument Reference
    41  
    42  The following arguments are supported:
    43  
    44  * `name` - (Required) The name of the auto scale group.
    45  * `max_size` - (Required) The maximum size of the auto scale group.
    46  * `min_size` - (Required) The minimum size of the auto scale group.
    47      (See also [Waiting for Capacity](#waiting-for-capacity) below.)
    48  * `availability_zones` - (Required) A list of AZs to launch resources in.
    49  * `launch_configuration` - (Required) The ID of the launch configuration to use.
    50  * `health_check_grace_period` - (Optional) Time after instance comes into service before checking health.
    51  * `health_check_type` - (Optional) "EC2" or "ELB". Controls how health checking is done.
    52  * `desired_capacity` - (Optional) The number of Amazon EC2 instances that
    53      should be running in the group. (See also [Waiting for
    54      Capacity](#waiting-for-capacity) below.)
    55  * `min_elb_capacity` - (Optional) Setting this will cause Terraform to wait
    56      for this number of healthy instances all attached load balancers.
    57      (See also [Waiting for Capacity](#waiting-for-capacity) below.)
    58  * `force_delete` - (Optional) Allows deleting the autoscaling group without waiting
    59     for all instances in the pool to terminate.
    60  * `load_balancers` (Optional) A list of load balancer names to add to the autoscaling
    61     group names.
    62  * `vpc_zone_identifier` (Optional) A list of subnet IDs to launch resources in.
    63  * `termination_policies` (Optional) A list of policies to decide how the instances in the auto scale group should be terminated.
    64  * `tag` (Optional) A list of tag blocks. Tags documented below.
    65  
    66  Tags support the following:
    67  
    68  * `key` - (Required) Key
    69  * `value` - (Required) Value
    70  * `propagate_at_launch` - (Required) Enables propagation of the tag to
    71     Amazon EC2 instances launched via this ASG
    72  
    73  ## Attributes Reference
    74  
    75  The following attributes are exported:
    76  
    77  * `id` - The autoscaling group name.
    78  * `availability_zones` - The availability zones of the autoscale group.
    79  * `min_size` - The minimum size of the autoscale group
    80  * `max_size` - The maximum size of the autoscale group
    81  * `default_cooldown` - Time between a scaling activity and the succeeding scaling activity.
    82  * `name` - The name of the autoscale group
    83  * `health_check_grace_period` - Time after instance comes into service before checking health.
    84  * `health_check_type` - "EC2" or "ELB". Controls how health checking is done.
    85  * `desired_capacity` -The number of Amazon EC2 instances that should be running in the group.
    86  * `launch_configuration` - The launch configuration of the autoscale group
    87  * `vpc_zone_identifier` - The VPC zone identifier
    88  * `load_balancers` (Optional) The load balancer names associated with the
    89     autoscaling group.
    90  
    91  <a id="waiting-for-capacity"></a>
    92  ## Waiting for Capacity
    93  
    94  A newly-created ASG is initially empty and begins to scale to `min_size` (or
    95  `desired_capacity`, if specified) by launching instances using the provided
    96  Launch Configuration. These instances take time to launch and boot.
    97  
    98  Terraform provides two mechanisms to help consistently manage ASG scale up
    99  time across dependent resources.
   100  
   101  #### Waiting for ASG Capacity
   102  
   103  The first is default behavior. Terraform waits after ASG creation for
   104  `min_size` (or `desired_capacity`, if specified) healthy instances to show up
   105  in the ASG before continuing.
   106  
   107  Terraform considers an instance "healthy" when the ASG reports `HealthStatus:
   108  "Healthy"` and `LifecycleState: "InService"`. See the [AWS AutoScaling
   109  Docs](https://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/AutoScalingGroupLifecycle.html)
   110  for more information on an ASG's lifecycle.
   111  
   112  Terraform will wait for healthy instances for up to 10 minutes. If ASG creation
   113  is taking more than a few minutes, it's worth investigating for scaling activity
   114  errors, which can be caused by problems with the selected Launch Configuration.
   115  
   116  #### Waiting for ELB Capacity
   117  
   118  The second mechanism is optional, and affects ASGs with attached Load
   119  Balancers. If `min_elb_capacity` is set, Terraform will wait for that number of
   120  Instances to be `"InService"` in all attached `load_balancers`. This can be
   121  used to ensure that service is being provided before Terraform moves on.
   122  
   123  As with ASG Capacity, Terraform will wait for up to 10 minutes for
   124  `"InService"` instances. If ASG creation takes more than a few minutes, this
   125  could indicate one of a number of configuration problems. See the [AWS Docs on
   126  Load Balancer Troubleshooting](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-troubleshooting.html)
   127  for more information.