4.7 KiB
layout | page_title | sidebar_current | description |
---|---|---|---|
aws | AWS: aws_launch_configuration | docs-aws-resource-launch-configuration | Provides a resource to create a new launch configuration, used for autoscaling groups. |
aws_launch_configuration
Provides a resource to create a new launch configuration, used for autoscaling groups.
~> NOTE: You may want to omit name
attribute from attached aws_launch_configuration
. When you create a launch configuration, you cannot edit it. Terraform will treat a change in this resource as a destroy and create action. If you add a name to your launch configuration, then terraform will not be able to create the replacement launch configuration due to the name being the same.
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:
name
- (Optional) The name of the launch configuration. If you leave this blank, Terraform will auto-generate it.image_id
- (Required) The EC2 image ID to launch.instance_type
- (Required) The size of instance to launch.iam_instance_profile
- (Optional) The IAM instance profile to associate with launched instances.key_name
- (Optional) The key name that should be used for the instance.security_groups
- (Optional) A list of associated security group IDS.associate_public_ip_address
- (Optional) Associate a public ip address with an instance in a VPC.user_data
- (Optional) The user data to provide when launching the instance.enable_monitoring
- (Optional) Enables/disables detailed monitoring. This is enabled by default.ebs_optimized
- (Optional) If true, the launched EC2 instance will be EBS-optimized.block_device_mapping
- (Optional) A list of block devices to add. Their keys are documented below.
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
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. This must be set with avolume_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
- (Required) 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. This must be set with avolume_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 (e.g."ephemeral0"
)
Each AWS Instance type has a different set of Instance Store block devices
available for attachment. AWS publishes a
list
of which ephemeral devices are available on each type. The devices are always
identified by the virtual_name
in the format "ephemeral{0..N}"
.
~> 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.
Attributes Reference
The following attributes are exported:
id
- The ID of the launch configuration.