Merge branch 'pr-3256'

* pr-3256:
  docs: AWS launch configuration
This commit is contained in:
Clint Shryock 2015-10-02 16:18:50 -05:00
commit 0af9a9f68f
1 changed files with 33 additions and 2 deletions

View File

@ -24,8 +24,8 @@ resource "aws_launch_configuration" "as_conf" {
Launch Configurations cannot be updated after creation with the Amazon Launch Configurations cannot be updated after creation with the Amazon
Web Service API. In order to update a Launch Configuration, Terraform will Web Service API. In order to update a Launch Configuration, Terraform will
destroy the existing resource and create a replacement. If order to effectively destroy the existing resource and create a replacement. In order to effectively
use a Launch Configuration resource with an[AutoScaling Group resource][1], use a Launch Configuration resource with an [AutoScaling Group resource][1],
it's recommend to omit the Launch Configuration `name` attribute, and it's recommend to omit the Launch Configuration `name` attribute, and
specify `create_before_destroy` in a [lifecycle][2] block, as shown: specify `create_before_destroy` in a [lifecycle][2] block, as shown:
@ -53,6 +53,35 @@ With this setup Terraform generates a unique name for your Launch
Configuration and can then update the AutoScaling Group without conflict before Configuration and can then update the AutoScaling Group without conflict before
destroying the previous Launch Configuration. destroying the previous Launch Configuration.
## Using with Spot Instances
Launch configurations can set the spot instance pricing to be used for the
Auto Scaling Group to reserve instances. Simply specifying the `spot_price`
parameter will set the price on the Launch Configuration which will attempt to
reserve your instances at this price. See the [AWS Spot Instance
documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html)
for more information or how to launch [Spot Instances][3] with Terraform.
```
resource "aws_launch_configuration" "as_conf" {
image_id = "ami-1234"
instance_type = "m1.small"
spot_price = "0.001"
lifecycle {
create_before_destroy = true
}
}
resource "aws_autoscaling_group" "bar" {
name = "terraform-asg-example"
launch_configuration = "${aws_launch_configuration.as_conf.name}"
lifecycle {
create_before_destroy = true
}
}
```
## Argument Reference ## Argument Reference
The following arguments are supported: The following arguments are supported:
@ -75,6 +104,7 @@ The following arguments are supported:
instance. See [Block Devices](#block-devices) below for details. instance. See [Block Devices](#block-devices) below for details.
* `ephemeral_block_device` - (Optional) Customize Ephemeral (also known as * `ephemeral_block_device` - (Optional) Customize Ephemeral (also known as
"Instance Store") volumes on the instance. See [Block Devices](#block-devices) below for details. "Instance Store") volumes on the instance. See [Block Devices](#block-devices) below for details.
* `spot_price` - (Optional) The price to use for reserving spot instances.
<a id="block-devices"></a> <a id="block-devices"></a>
## Block devices ## Block devices
@ -139,3 +169,4 @@ The following attributes are exported:
[1]: /docs/providers/aws/r/autoscaling_group.html [1]: /docs/providers/aws/r/autoscaling_group.html
[2]: /docs/configuration/resources.html#lifecycle [2]: /docs/configuration/resources.html#lifecycle
[3]: /docs/providers/aws/r/spot_instance_request.html