gpt4 book ai didi

amazon-web-services - Terraform 中的 ECS 服务如何连接到 AWS 自动扩展组

转载 作者:行者123 更新时间:2023-12-03 23:49:38 27 4
gpt4 key购买 nike

我是 Terraform 和 ECS 的新手,我正在使用 this example创建一个 ECS EC2 类型的集群,该集群将自动扩展并使用应用程序负载均衡器。

我的问题是:main.tf 中的这段代码片段如何?

resource "aws_ecs_service" "test" {
name = "tf-example-ecs-ghost"
cluster = "${aws_ecs_cluster.main.id}"
task_definition = "${aws_ecs_task_definition.ghost.arn}"
desired_count = "${var.service_desired}"
iam_role = "${aws_iam_role.ecs_service.name}"

load_balancer {
target_group_arn = "${aws_alb_target_group.test.id}"
container_name = "ghost"
container_port = "2368"
}

depends_on = [
"aws_iam_role_policy.ecs_service",
"aws_alb_listener.front_end",
]
}

连接到资源 aws_autoscaling_group.app :
resource "aws_autoscaling_group" "app" {
name = "tf-test-asg"
vpc_zone_identifier = ["${aws_subnet.main.*.id}"]
min_size = "${var.asg_min}"
max_size = "${var.asg_max}"
desired_capacity = "${var.asg_desired}"
launch_configuration = "${aws_launch_configuration.app.name}"
}

由于 aws_ecs_service 中没有插值变量,ECS 服务定义如何知道在哪里可以找到此自动缩放组资源定义指向 aws_autoscaling_group资源?它引用了一个目标组,但目标组不引用一个自动缩放组。这就是为什么我感到困惑,因为资源“ecs-service”和资源“aws-autoscaling”之间没有明显的引用。或者也许代码丢失了?如果可能,请提供详尽的解释。

最佳答案

它没有。
ECS 服务安排在 ECS 集群上,该集群是实例的逻辑分组,EC2 或 Fargate(甚至不在 AWS 上使用 ECS Anywhere !)或混合。
如果要将 EC2 实例加入 ECS 集群,则需要安装 ECS 代理,将其配置为加入正确的集群,并为实例提供必要的 IAM 权限,以便能够与 ECS 交互。您可以使用独立的 EC2 实例或自动扩展组来执行此操作。
对于目标群体,这就是负载均衡器知道将流量发送到哪些对象的方式。在直接 EC2 实例的情况下,您将以某种方式向目标组注册 EC2 实例。使用 ECS 服务,可以将这些服务配置为向目标组注册服务中的所有任务。然后,当应该发送到目标组的流量到达负载均衡器时,流量将被发送到相关的 ECS 任务。请注意,负载均衡器可以有多个具有不同负载均衡器监听器规则的目标组,这些目标组配置为将流量发送到不同的目标组(或执行固定响应或重定向等),以便负载均衡器可以支持多个 ECS 服务。

关于amazon-web-services - Terraform 中的 ECS 服务如何连接到 AWS 自动扩展组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59579040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com