3

在单个 ECS 集群中,有没有办法使用最大数量的实例(具体实例类型),如果超出限制,则开始使用另一种实例类型?

我有 20 个预留实例(用于具体实例类型并且非常昂贵),现在它们没有被使用,所以我想用许多不同的 ECS 服务任务填充它们。

我的基础架构由单个 ECS 集群组成,该集群上包含许多不同的 ECS 服务(在同一个 Autoscaling 组中的所有这些服务上使用 t3.micro)。

我想知道我是否可以在我的 ECS 集群中使用我的预留实例,但如果负载使我的基础设施超过 20 个预留实例,则开始启动 t3.micro 实例。

据我了解,AWS EC2 Autoscaling 有可能为它们设置多个实例类型和相对权重容量。但就我而言,我想要一个加权能力的绝对数字:

https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html

就像是:

resource "aws_autoscaling_group" "ec2_autoscaling_group" {
  name                      = var.autoscaling_group_name
  vpc_zone_identifier       = [var.subnets_ids]
  min_size                  = var.min_size
  max_size                  = var.max_size
  desired_capacity          = var.desired_size
  protect_from_scale_in     = var.protection_from_scale_in_status
  health_check_grace_period = var.asg_health_check_grace_period
  wait_for_capacity_timeout = var.asg_wait_for_capacity_timeout
  mixed_instances_policy {
    launch_template {
      launch_template_specification {
        launch_template_id = aws_launch_template.example.id
      }

      override {
        instance_type     = "r5.large"
        weighted_capacity = "20"            <-- This as an absolute number 
      }

      override {
        instance_type     = "t3.micro"
        weighted_capacity = ""              <-- Infinite number
      }
    }
  }
}

这只是一个 Terraform 代码,只是为了显示我的问题。

我想这将是使用 lambdas 或多个 AutoScalingGroups 的另一种解决方法,但我不知道如何处理这个......

4

0 回答 0