我使用vagrant并行运行多个AWS EC2实例,但是我已经点击了每个区域的default limit个20个实例(t2.small
中的us-east-1
) :
与AWS交谈时出错。
InstanceLimitExceeded =>您的配额允许再运行0个实例。你要求至少1
阅读troubleshooting page,它建议我联系AWS支持人员和create a case,要求更高的限制(我做了,我等待响应)。
EC2服务限制:AWS按地区设置这些资源的限制。
然而在缩放方面是否存在此类限制的其他解决方法?
换句话说,如果每个区域有一个限制,是否有任何方法可以动态分配不同的区域或实例类型来解决限制?
我在我的Vagrantfile
中使用vagrant-aws
vagrant插件并使用以下AWS设置:
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
答案 0 :(得分:3)
不,你不能“借”其他地区的限制。您可以创建另一个帐户,但是您必须处理在帐户中启用资源共享访问的额外管理开销。另请注意,限制是每个实例类型。您可以尝试使用其他实例类型。
将来,由于限制增加的周转时间可能是几天,并且因限制增加的类型而异,请务必提前计划。特别是对于较低级别的支持合同,他们不会将限制增加请求视为紧急情况。
答案 1 :(得分:1)
正如@Karen已提到的,限制是每个实例类型,因此对于变通方法,可以为t2.nano,t2.micro,t2.small等运行20个实例。
以下是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个实例同时运行。