在Terraform中为价格配置AWS自动扩展组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Terraform中为价格配置AWS自动扩展组?相关的知识,希望对你有一定的参考价值。

我创建了一个AMI,当使用systemd启动计算机时,该AMI将执行工作。由于工作不是时间紧迫的,因此我想使用AWS自动缩放组来优化成本。我正在使用Terraform来管理我的基础架构。

这是我到目前为止的内容:

# ...

resource "aws_launch_template" "default" 
  name = "autoscaling-launch-template"

  capacity_reservation_specification 
    capacity_reservation_preference = "open"
  

  credit_specification 
    cpu_credits = "standard"
  

  iam_instance_profile 
    name = aws_iam_instance_profile.default.name
  

  image_id = data.aws_ami.default.id

  instance_market_options 
    market_type = "spot"
  

  instance_type = "t2.small"
  key_name      = var.master_key

  monitoring 
    enabled = true
  

  placement 
    availability_zone = "us-east-1a"
  

  vpc_security_group_ids = [ "$aws_security_group.default.id" ]

  tag_specifications 
    resource_type = "instance"
  

  user_data = base64encode(local.user_data)


resource "aws_autoscaling_group" "default" 
  name                 = "my-autoscaling-group"
  min_size             = 1
  max_size             = 5
  desired_capacity     = 2
  availability_zones   = [ "us-east-1a" ]

  launch_template 
    id      = aws_launch_template.default.id
    version = "$Latest"
  

  lifecycle 
    create_before_destroy = true
  


# ...

我想实现以下目标:

  • 现货实例价格低时,扩大到最大值
  • 当现货实例价格很高时,请缩小到最小值

“高”和“低”价格应大致使用滚动平均值或类似方法定义。我不想维持最低和最高价格。

我一直想使用t2.small

如何在Terraform中实现这一目标?

答案

terraform注册表具有一个不错的经过验证的模块,用于创建自动缩放组:

https://registry.terraform.io/modules/terraform-aws-modules/autoscaling/aws/3.4.0

您可以使用spot_price变量将竞价型实例启动到ASG中。

以上是关于在Terraform中为价格配置AWS自动扩展组?的主要内容,如果未能解决你的问题,请参考以下文章

您可以将 AWS Multi-Attach EBS 卷挂载到 Terraform 中的自动扩展组吗?

Terraform 中的 ECS 服务如何连接到 AWS 自动缩放组

使用 terraform 自动扩展 AWS spotfleet 会重置目标容量

如何使用 Terraform 自动切换到 AWS 的 RDS 中的新参数组?

AWS ElasticBeanstalk EC2 终止保护

如何使用 Terraform 配置 AWS EKS 自动扩缩器?