EC2实例InstanceLimitExceeded如何处理?

How to deal with InstanceLimitExceeded for EC2 instances?

我正在使用 vagrant 并行 运行 多个 AWS EC2 实例,但是我已经达到每个区域 20 个实例的 default limitt2.smallus-east-1):

There was an error talking to AWS.

InstanceLimitExceeded => Your quota allows for 0 more running instance(s). You requested at least 1

阅读 troubleshooting page, it's suggested that I should contact AWS support and create a case 要求更高的限制(我已经这样做了,我正在等待回复)。

EC2 Service Limits: AWS sets limits for these resources on a per-region basis.

但是在缩放方面是否有任何其他解决方法可以解决这种限制

换句话说,如果每个区域都有限制,有没有办法动态分配不同的区域或实例类型来解决限制?


我在 Vagrantfile 中使用具有以下 AWS 设置的 vagrant-aws vagrant 插件:

config.vm.provider :aws do |aws, override|
    aws.ami = "ami-fce3c696"
    aws.instance_type = "t2.small"
    aws.keypair_name = keypair_name
    aws.region = "us-east-1"
    aws.terminate_on_shutdown = true
    if private_key then override.ssh.private_key_path = private_key end
    if security_group then aws.security_groups = [ security_group ] end
    if subnet_id then aws.subnet_id = subnet_id end
    override.nfs.functional = false
    override.ssh.username = "ubuntu"
    override.vm.box = "my_test"
    override.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box"
end

不,您不能"borrow"不受其他地区的限制。您可以创建另一个帐户,但是您必须处理跨帐户启用资源共享访问的额外管理开销。另请注意,限制是针对每个实例类型的。您可以尝试使用不同的实例类型。

将来,由于限制增加的周转时间可能需要几天,并且会因限制增加的类型而异,因此请务必提前计划。特别是对于下层支持合同,他们不认为增加限制请求是紧急情况。

正如 已经提到的,限制是针对每个实例类型的,因此对于解决方法,对于 t2.nano、t2.micro、[=,20 个实例可以是 运行 24=],等等

这里是Vagrantfile中的代码,可以加载实例类型作为参数:

require 'getoptlong'

# Parse CLI arguments.
opts = GetoptLong.new(
  [ '--instance-type',  GetoptLong::OPTIONAL_ARGUMENT ],
)

instance_type  = ENV['INSTANCE_TYPE'] || 't2.small'
begin
  opts.each do |opt, arg|
    case opt
      when '--instance-type';  instance_type  = arg
    end # case
  end # each
  rescue
end

Vagrant.configure(2) do |config|
  # ...
  config.vm.provider :aws do |aws, override|
    aws.instance_type = instance_type
#   ...
  end
end

然后你可以运行作为:

INSTANCE_TYPE=t2.nano vagrant up
INSTANCE_TYPE=t2.micro vagrant up
INSTANCE_TYPE=t2.small vagrant up
INSTANCE_TYPE=t2.medium vagrant up
INSTANCE_TYPE=t2.large vagrant up

等等。因此有 5 个不同的实例,限制可能同时达到 100 个实例 运行。