如果现货实例在AWS中不可用,我能否获得按需EC2实例

时间:2019-09-25 10:00:07

标签: amazon-web-services amazon-ec2

我需要为CI / CT创建一组c5.12xlarge EC2 Linux实例。我正在使用Terraform和AWS Spot实例创建这些实例。 几天以来,由于AWS中实例的不可用,我看到我的Terraform应用失败,并显示“没有可用的容量满足您的请求”错误。

如何摆脱这种情况并创建实例?在terraform中,如果现货EC2实例不可用,我是否可以创建按需EC2实例。

1 个答案:

答案 0 :(得分:0)

竞价型实例有一个限制,我不确定创建后terraform是否取消订阅?因为有警告提示。

  

注意:因为他们的行为取决于现场的实时状态   市场,竞价型实例请求具有独特的生命周期,这使它们   行为与其他Terraform资源不同。最重要的是:   无法保证存在竞价型实例来满足   在任何给定时间点的请求。查看AWS Spot实例   文档以获取更多信息。

spot_instance_request

竞价请求限制

  

默认情况下,每个地区的帐户限制为20 Spot Instances。   如果您终止竞价型实例,但不取消请求,则   请求将以此为限,直到Amazon EC2检测到   终止并关闭请求。

     

竞价型实例限制是动态的。新帐户时,您的限额   开始时可能会低于20,但随着时间的推移会增加。在   此外,您的帐户可能对特定竞价型实例有限制   类型。如果您提交竞价型实例请求并且收到错误   超过了最大竞价实例数量,您可以完成AWS支持   中心创建案例表格以请求增加竞价型实例限制。对于   限制类型,选择“ EC2竞价型实例”。有关更多信息,请参见   Amazon EC2服务限制。

using-spot-limits

您可以按需创建实例

# Create a new instance of the latest Ubuntu 14.04 on an
# t2.micro node with an AWS Tag naming it "HelloWorld"
provider "aws" {
  region = "us-west-2"
}

data "aws_ami" "ubuntu" {
  most_recent = true

  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }

  owners = ["099720109477"] # Canonical
}

resource "aws_instance" "web" {
  ami           = "${data.aws_ami.ubuntu.id}"
  instance_type = "t2.micro"

  tags = {
    Name = "HelloWorld"
  }
}

instance aws terraform