Question Lancer des instances via Elastic Beanstalk sans Elastic IP configuré


Je crée un outil pour déployer les images Docker sur EC2 via ElasticBeanstalk, afin que l'équipe de développement puisse rapidement faire une démonstration de son travail sans avoir à fusionner. Je ne veux pas que Elastic IP soit activé pour ces applications, car elles sont de courte durée.

La raison pour laquelle je pose cette question est que si mon outil crée plus de 5 applications (et qu'il a assez rapidement), toute nouvelle application échouera car aucune adresse IP Elastic ne peut être affectée à la nouvelle application. En effet, un compte AWS a généralement un maximum de 5 IP élastiques disponibles. Je peux accéder à la console Web aws et choisir "Dissocier l'adresse IP élastique" (voir ci-dessous) dans une instance, après quoi l'instance ec2 recevra une nouvelle adresse IP (après quelques minutes). C’est ce que je veux, mais je veux le faire par programme et je préférerais démarrer l’application sans celle-ci au lieu de le faire une fois l’instance créée.

disassociate menu option

Existe-t-il une option de configuration que je peux utiliser pour désactiver Elastic IP pour la nouvelle instance?

J'utilise le noeud aws-sdk, mais tout conseil dans n'importe quelle langue fera l'affaire.

Je crée m1.small instances uniques.

Si cela n’est pas possible lors du lancement, je devrai dissocier l’adresse IP Elastic de l’instance à l’aide de la EC2.disassociateAddress une fonction.


8
2018-06-10 16:02


origine


Si vous lancez dans un sous-réseau privé: stackoverflow.com/questions/39086022/… - lonewarrior556


Réponses:


Lorsque vous utilisez le type d’environnement "Instance unique", vous obtenez toujours un EIP.

De Guide du développeur Beanstalk, Types d'environnement:

Un environnement à instance unique contient une instance Amazon EC2 avec une adresse IP Elastic.

La désactivation de l'option "Associer l'adresse IP publique" n'a aucun effet.

Passez en environnement "Equilibrage de la charge, mise à l'échelle automatique" pour vous en sortir sans EIP.


6
2017-08-18 10:51



Contrairement aux autres réponses ici, cela résout en fait mon problème, alors merci :) Pour les futurs voyageurs, dans la nouvelle boîte de dialogue de création d'environnement, vous choisissez l'option "Équilibrage de la charge" sous le bouton "Configurer plus d'options" à la fin de la création de l'environnement. forme. - Jacob Davis-Hansson


Je ne veux pas que Elastic IP soit activé pour ces applications, car elles sont de courte durée.

Si vous vous trouvez dans un sous-réseau public de VPC (ce qui est probable), il est nécessaire que l'instance puisse communiquer avec Internet. Par http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html:

Pour permettre à une instance de votre sous-réseau public de communiquer avec Internet, il faut: doit avoir une adresse IP publique ou une adresse IP Elastic associée à une adresse IP privée sur votre instance. Votre instance connaît uniquement l'espace d'adressage IP privé (interne) défini dans le VPC et le sous-réseau. La passerelle Internet fournit logiquement le NAT un-à-un au nom de votre instance. Ainsi, lorsque le trafic quitte votre sous-réseau VPC et passe à Internet, le champ d'adresse de réponse est défini sur l'adresse IP publique ou sur l'adresse IP Elastic de votre instance. et non son adresse IP privée. À l'inverse, le trafic destiné à une adresse IP publique ou à une adresse IP Elastic de votre instance voit son adresse de destination traduite en adresse IP privée de l'instance avant que le trafic ne soit transmis au VPC.

Les EIP attribués automatiquement et fournis avec une nouvelle instance ne coûtent rien, et ils disparaissent automatiquement lorsque l'instance est mise hors service.


1
2018-06-10 16:24



Merci pour votre réponse, j'ai ajouté plus d'informations à la question en expliquant le problème que je vois et comment je peux le contourner via la console Web. Je comprends peut-être mal le fonctionnement d’AWS, mais je vous en serais très reconnaissant. - ed.
@ed. Je ne connais pas très bien EB, mais il semble que d'après la documentation que vous souhaitez définir. aws:ec2:vpc:AssociatePublicIpAddress dans votre configuration EB (et que cela est propre aux EB à instance unique). Vous pouvez également demander à AWS d’augmenter votre limite EIP. Dans mon expérience, ils l’accorderont volontiers dans ce type de situation. - ceejayoz
Bravo je vais essayer ça. - ed.
J'ai essayé le drapeau ci-dessus en vain. Je pense que je vais juste appeler disassociateAddress via le sdk. - ed.
Pour mémoire: aws:ec2:vpc:AssociatePublicIpAddress est uniquement pour l'instance ec2, si vous le définissez sur false, puis disassociateAddress l'instance n'aura pas d'adresse IP publique. - ed.


Il existe une option d'environnement de haricot élastique qui pourrait être ce que vous recherchez.

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbloadbalancer

Espace de noms: aws: ec2: vpc AssociatePublicIpAddress: false

Si vous le définissez, tous les nœuds créés par cet environnement n'auront pas d'adresse IP publique. Le trafic entrant devra utiliser un équilibreur de charge. Le VPC et les sous-réseaux devront être associés à une passerelle NAT ou à une passerelle Internet pour obtenir un accès Internet sortant. Si vous ne disposez pas d'un accès Internet sortant, la construction d'Elastic Beanstalk échouera (les services AWS ne pourront pas être atteints).


1
2018-06-30 10:37



J'ai ajouté ceci à la configuration EBS: { "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" }, Malgré tout, Elastic IP s'associe à cette instance. Un indice? - Kostanos
ce n'est pas vrai, cela n'a aucun effet sur eip - A-Developer-Has-No-Name


Une fois l'adresse IP Elastic dissociée, vous disposez d'environ 10 secondes pour la "relâcher". Si vous le relâchez, il ne reviendra pas.


0
2018-04-21 21:20