2016-06-26 3 views
-1

J'utilise errante pour exécuter plusieurs instances EC2 AWS en parallèle, mais j'ai touché le default limit de 20 cas par région (en t2.smallus-east-1):Comment gérer InstanceLimitExceeded pour les instances EC2?

Il y avait une erreur de parler à AWS. InstanceLimitExceeded => Votre quota autorise 0 instance (s) supplémentaire (s) en cours d'exécution. Vous avez demandé au moins 1

lecture troubleshooting page, il est suggéré que je contacter le support technique AWS et create a case pour demander une limite plus élevée (que je l'ai fait et je suis en attente de la réponse).

Limites de service EC2: AWS définit des limites pour ces ressources par région.

Cependant est-il une autre solution de contournement pour cette limitation en termes de mise à l'échelle? En d'autres termes, s'il y a une limite par région, est-il possible d'assigner dynamiquement une autre région ou un type d'instance pour contourner la limitation?


J'utilise vagrant-aws plug-in errante avec les paramètres suivants AWS dans mon Vagrantfile:

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 

Répondre

3

Non, vous ne pouvez pas "emprunter" des limites dans d'autres régions. Vous pouvez créer un autre compte, mais vous devrez alors gérer les frais administratifs supplémentaires liés à l'activation de l'accès partagé aux ressources entre les comptes. Notez également que les limites sont par type d'instance. Vous pourriez essayer d'utiliser un type d'instance différent. À l'avenir, étant donné que le délai d'exécution des augmentations de limite peut être de quelques jours et varie selon le type d'augmentation de la limite, assurez-vous de planifier à l'avance. En particulier pour les contrats de soutien de niveau inférieur, ils ne considèrent pas les demandes d'augmentation des limites comme des situations d'urgence.

0

Comme @Karen déjà mentionné, la limite est par type d'instance, afin de contourner le problème, 20 cas peuvent être exécutés pour t2.nano, t2.micro, t2.small, etc.

Voici le code Vagrantfile qui peut charger le type d'instance comme paramètre:

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 

vous pouvez exécuter comme:

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 

et ainsi de suite. Donc ayant 5 instances différentes, la limite peut atteindre 100 instances pour s'exécuter simultanément.