【发布时间】:2022-01-14 00:38:07
【问题描述】:
我想使用自动缩放组启动 EC2 实例。
我创建了一个安全组,其入站规则来自 ALB 安全组,并且与我的自定义 VPC 相关联。
resource "aws_security_group" "asg_sg" {
name = "alb-inbound"
description = "Security group for autoscaling instances"
vpc_id = aws_vpc.vpc_prod.id
}
resource "aws_security_group_rule" "inbound_alb" {
type = "ingress"
from_port = 3000
to_port = 3000
protocol = "tcp"
security_group_id = "${aws_security_group.asg_sg.id}"
source_security_group_id = "${aws_security_group.alb_sg.id}"
}
我想部署一些带有自动缩放组的实例作为项目测试
我的 launch_template 配置如下所示。
resource "aws_launch_template" "as_lt_node_app" {
name_prefix = "as-lt-"
image_id = data.aws_ami.amzlinux2.id
instance_type = "t2.micro"
vpc_security_group_ids = ["${aws_security_group.asg_sg.id}"]
user_data = base64encode(file("${path.module}/install.sh"))
}
我的自动扩缩组配置如下。
resource "aws_autoscaling_group" "asg_node_app" {
# launch_configuration = "${aws_launch_configuration.as_lc_node_app.name}"
availability_zones = [var.azs[0],var.azs[1]]
min_size = 1
max_size = 4
target_group_arns = ["${aws_alb_target_group.node_tg.arn}"]
health_check_type = "ELB"
desired_capacity = 2
launch_template {
id = aws_launch_template.as_lt_node_app.id
version = "$Latest"
}
}
现在当我运行 terraform apply 时出现此错误。
│ Error: Error creating Auto Scaling Group: ValidationError: You must use a valid fully-
formed launch template. Security group sg-01510848bd1c3a79d and subnet subnet-c5d624b8
belong to different networks.
│ status code: 400, request id: 8318256b-4c03-4be5-8be0-51473bc1e0b7
│
│ with aws_autoscaling_group.asg_node_app,
│ on c6-02_autoscaling.tf line 22, in resource "aws_autoscaling_group" "asg_node_app":
│ 22: resource "aws_autoscaling_group" "asg_node_app" {
使用此模板创建的 EC2 实例似乎部署在默认 VPC 子网中。有没有办法在 launch_template 中指定我正在使用的 VPC?
我用 launch_configuration 尝试了这个自动缩放组,但我遇到了类似的错误。
我想尝试 laun_template 中的 network_interfaces 参数,但在这个部署中我创建了一个子网列表
resource "aws_subnet" "public_subnet" {
count = length(var.public_cidr)
availability_zone = var.azs[count.index]
vpc_id = aws_vpc.vpc_prod.id
cidr_block = var.public_cidr[count.index]
tags = local.common_tags
}
在这种情况下我可以使用多个子网吗?
【问题讨论】:
标签: amazon-ec2 terraform terraform-provider-aws autoscaling