I am launching two ec2 instances with an autoscale group in terraform. The hostnames of the two ec2 need to be different based on the su.net (vpc_zone_identifier) its launched into (one should be xxxx-proxy01 and the other should be xxxx-proxy02). Is there a way i can do this?
### EC2, ASG, LAUNCH CONFIG
resource "aws_launch_configuration" "as_conf" {
name = "${local.name}-launchconfig"
image_id = "ami-xxxxxx"
instance_type = "t4g.xxxxx"
iam_instance_profile = aws_iam_instance_profile.xxxxx_profile.id
key_name = aws_key_pair.proxy.key_name
user_data = templatefile("${path.module}/templates/user_data_proxy.tftpl",
{
hostname = format("%s-proxy%02d", local.name_prefix, 1)
region = var.region
enable_x11_forwarding = "false"
}
)
}
resource "aws_autoscaling_group" "auto_scaler" {
name = "${local.name}-group"
max_size = 2
min_size = 2
health_check_grace_period = 30
health_check_type = "EC2"
desired_capacity = 2
force_delete = true
launch_configuration = aws_launch_configuration.as_conf.name
vpc_zone_identifier = [module.vpc.subnet_ids["app"][0], module.vpc.subnet_ids["app"][1]]
``
You can do that. You have to amend your userdata
to fetch the su.net-id
, availability-zone-id
or what you want from ec2 metadata .
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.