簡體   English   中英

Terraform中的ECS服務如何連接到AWS自動縮放組

[英]How is an ECS service in Terraform connected to an AWS autoscaling group

我是 Terraform 和 ECS 的新手,我正在使用此示例創建一個 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資源定義中沒有指向aws_autoscaling_group資源的插值變量,因此 ECS 服務定義如何知道在哪里可以找到此自動縮放組? 它引用目標組,但目標組不引用自動縮放組。 這就是為什么我很困惑,因為資源“ecs-service”和資源“aws-autoscaling”之間沒有明顯的參考。 或者也許代碼丟失了? 請盡可能提供詳盡的解釋。

它沒有。

ECS 服務安排在 ECS 集群上,該集群是實例的邏輯分組,EC2 或 Fargate(甚至不在帶有ECS Anywhere 的AWS 上!)或混合。

如果要將 EC2 實例加入 ECS 集群,則需要安裝 ECS 代理,將其配置為加入正確的集群,並為實例提供必要的 IAM 權限,以便能夠與 ECS 交互。 您可以使用獨立的 EC2 實例或自動擴展組來執行此操作。

對於目標群體,這就是負載均衡器知道將流量發送到哪些對象的方式。 在直接 EC2 實例的情況下,您將以某種方式向目標組注冊 EC2 實例。 使用 ECS 服務,可以將這些服務配置為向目標組注冊服務中的所有任務。 然后,當應該發送到目標組的流量到達負載均衡器時,流量將被發送到相關的 ECS 任務。 請注意,負載均衡器可以有多個具有不同負載均衡器偵聽器規則的目標組,這些目標組配置為將流量發送到不同的目標組(或執行固定響應或重定向等),以便負載均衡器可以支持多個 ECS 服務。

它由 Listener 連接。 這里是:

resource "aws_alb_listener" "front_end" {
  load_balancer_arn = aws_alb.main.id
  port              = "80"
  protocol          = "HTTP"

  default_action {
    target_group_arn = aws_alb_target_group.test.id
    type             = "forward"
  }
}

取自您提到的確切示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM