在单个 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 的另一种解决方法,但我不知道如何处理这个......