2014-07-23 23:26:47 +02:00
|
|
|
---
|
|
|
|
layout: "aws"
|
|
|
|
page_title: "AWS: aws_launch_configuration"
|
2015-05-30 16:46:42 +02:00
|
|
|
sidebar_current: "docs-aws-resource-launch-configuration"
|
2014-10-22 05:21:56 +02:00
|
|
|
description: |-
|
|
|
|
Provides a resource to create a new launch configuration, used for autoscaling groups.
|
2014-07-23 23:26:47 +02:00
|
|
|
---
|
|
|
|
|
|
|
|
# aws\_launch\_configuration
|
|
|
|
|
|
|
|
Provides a resource to create a new launch configuration, used for autoscaling groups.
|
|
|
|
|
|
|
|
## Example Usage
|
|
|
|
|
|
|
|
```
|
|
|
|
resource "aws_launch_configuration" "as_conf" {
|
|
|
|
name = "web_config"
|
|
|
|
image_id = "ami-1234"
|
|
|
|
instance_type = "m1.small"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## Argument Reference
|
|
|
|
|
|
|
|
The following arguments are supported:
|
|
|
|
|
2015-04-14 01:00:29 +02:00
|
|
|
* `name` - (Optional) The name of the launch configuration. If you leave
|
|
|
|
this blank, Terraform will auto-generate it.
|
2014-07-23 23:26:47 +02:00
|
|
|
* `image_id` - (Required) The EC2 image ID to launch.
|
|
|
|
* `instance_type` - (Required) The size of instance to launch.
|
2014-10-08 19:54:34 +02:00
|
|
|
* `iam_instance_profile` - (Optional) The IAM instance profile to associate
|
|
|
|
with launched instances.
|
2014-07-23 23:26:47 +02:00
|
|
|
* `key_name` - (Optional) The key name that should be used for the instance.
|
2015-01-14 18:28:25 +01:00
|
|
|
* `security_groups` - (Optional) A list of associated security group IDS.
|
2015-02-05 18:05:14 +01:00
|
|
|
* `associate_public_ip_address` - (Optional) Associate a public ip address with an instance in a VPC.
|
2014-07-29 23:31:21 +02:00
|
|
|
* `user_data` - (Optional) The user data to provide when launching the instance.
|
2015-06-21 00:24:28 +02:00
|
|
|
* `enable_monitoring` - (Optional) Enables/disables detailed monitoring. This is enabled by default.
|
2015-04-02 17:47:37 +02:00
|
|
|
* `block_device_mapping` - (Optional) A list of block devices to add. Their keys are documented below.
|
|
|
|
|
|
|
|
<a id="block-devices"></a>
|
|
|
|
## Block devices
|
|
|
|
|
|
|
|
Each of the `*_block_device` attributes controls a portion of the AWS
|
|
|
|
Launch Configuration's "Block Device Mapping". It's a good idea to familiarize yourself with [AWS's Block Device
|
|
|
|
Mapping docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)
|
|
|
|
to understand the implications of using these attributes.
|
|
|
|
|
|
|
|
The `root_block_device` mapping supports the following:
|
|
|
|
|
|
|
|
* `volume_type` - (Optional) The type of volume. Can be `"standard"`, `"gp2"`,
|
|
|
|
or `"io1"`. (Default: `"standard"`).
|
|
|
|
* `volume_size` - (Optional) The size of the volume in gigabytes.
|
|
|
|
* `iops` - (Optional) The amount of provisioned
|
|
|
|
[IOPS](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html).
|
|
|
|
This must be set with a `volume_type` of `"io1"`.
|
|
|
|
* `delete_on_termination` - (Optional) Whether the volume should be destroyed
|
|
|
|
on instance termination (Default: `true`).
|
|
|
|
|
|
|
|
Modifying any of the `root_block_device` settings requires resource
|
|
|
|
replacement.
|
|
|
|
|
|
|
|
Each `ebs_block_device` supports the following:
|
|
|
|
|
|
|
|
* `device_name` - The name of the device to mount.
|
|
|
|
* `snapshot_id` - (Optional) The Snapshot ID to mount.
|
|
|
|
* `volume_type` - (Optional) The type of volume. Can be `"standard"`, `"gp2"`,
|
|
|
|
or `"io1"`. (Default: `"standard"`).
|
|
|
|
* `volume_size` - (Optional) The size of the volume in gigabytes.
|
|
|
|
* `iops` - (Optional) The amount of provisioned
|
|
|
|
[IOPS](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html).
|
|
|
|
This must be set with a `volume_type` of `"io1"`.
|
|
|
|
* `delete_on_termination` - (Optional) Whether the volume should be destroyed
|
|
|
|
on instance termination (Default: `true`).
|
|
|
|
|
|
|
|
Modifying any `ebs_block_device` currently requires resource replacement.
|
|
|
|
|
|
|
|
Each `ephemeral_block_device` supports the following:
|
|
|
|
|
|
|
|
* `device_name` - The name of the block device to mount on the instance.
|
|
|
|
* `virtual_name` - The [Instance Store Device
|
|
|
|
Name](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames)
|
|
|
|
(e.g. `"ephemeral0"`)
|
|
|
|
|
|
|
|
Each AWS Instance type has a different set of Instance Store block devices
|
|
|
|
available for attachment. AWS [publishes a
|
|
|
|
list](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#StorageOnInstanceTypes)
|
|
|
|
of which ephemeral devices are available on each type. The devices are always
|
|
|
|
identified by the `virtual_name` in the format `"ephemeral{0..N}"`.
|
2014-07-23 23:26:47 +02:00
|
|
|
|
2015-04-08 00:05:00 +02:00
|
|
|
~> **NOTE:** Changes to `*_block_device` configuration of _existing_ resources
|
|
|
|
cannot currently be detected by Terraform. After updating to block device
|
|
|
|
configuration, resource recreation can be manually triggered by using the
|
|
|
|
[`taint` command](/docs/commands/taint.html).
|
|
|
|
|
2014-07-23 23:26:47 +02:00
|
|
|
## Attributes Reference
|
|
|
|
|
|
|
|
The following attributes are exported:
|
|
|
|
|
|
|
|
* `id` - The ID of the launch configuration.
|