Inicie instancias a través de Elastic Beanstalk sin Elastic IP configurado


10

Estoy creando una herramienta para implementar imágenes de Docker en EC2 a través de ElasticBeanstalk, para que el equipo de desarrollo pueda demostrar rápidamente su trabajo sin tener que fusionarse. No quiero que Elastic IP esté habilitado para estas aplicaciones, ya que son de corta duración.

La razón por la que pregunto esto es porque si mi herramienta construye más de 5 aplicaciones (y lo ha hecho bastante rápido), cualquier aplicación nueva fallará porque no se puede asignar Elastic IP a la nueva aplicación. Esto se debe a que una cuenta de AWS generalmente tiene un máximo de 5 IP elásticas disponibles . Puedo ir a la consola web de aws y elegir 'Disassociate Elastic IP Address' (ver más abajo) en una instancia, después de lo cual la instancia de ec2 obtendrá una nueva ip (después de unos minutos). Esto es lo que quiero, pero quiero hacerlo mediante programación, y preferiría iniciar la aplicación sin ella en lugar de hacerlo una vez que se crea la instancia.

disociar opción de menú

¿Hay alguna opción de configuración que pueda usar para deshabilitar Elastic IP para la nueva instancia?

Estoy usando el nodo aws-sdk , pero cualquier consejo en cualquier idioma servirá.

Estoy creando m1.smallinstancias individuales.

Si esto no es posible al iniciar, tendré que disociar la Elastic IP de la instancia usando la función EC2.disassociateAddress .


Si está iniciando en una subred privada: stackoverflow.com/questions/39086022/…
lonewarrior556

Respuestas:


10

Cuando se usa el tipo de entorno "Instancia única", siempre se obtiene un EIP.

De la guía para desarrolladores de Beanstalk, Tipos de entorno :

Un entorno de instancia única contiene una instancia de Amazon EC2 con una dirección IP elástica.

Deshabilitar la opción "Asociar dirección IP pública" no tiene ningún efecto.

Cambie al entorno "Equilibrio de carga, autoescalado" para pasar sin un EIP.


A diferencia de las otras respuestas aquí, esto realmente resolvió mi problema, así que gracias :) Para futuros viajeros, en el nuevo cuadro de diálogo Creación de entorno, eliges la opción "Equilibrio de carga" debajo del botón "Configurar más opciones" al final de la creación del entorno formar.
Jacob Davis-Hansson

1

No quiero que Elastic IP esté habilitado para estas aplicaciones, ya que son de corta duración.

Si se encuentra en la subred pública de una VPC (lo cual es probable), se necesita una para que esa instancia pueda comunicarse con Internet. Por http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html :

Para habilitar una instancia en su subred pública para comunicarse con Internet, debe tener una dirección IP pública o una dirección IP elástica que esté asociada con una dirección IP privada en su instancia . Su instancia solo conoce el espacio privado (interno) de direcciones IP definido dentro de la VPC y la subred. La puerta de enlace de Internet proporciona lógicamente el NAT uno a uno en nombre de su instancia, de modo que cuando el tráfico abandone su subred VPC y vaya a Internet, el campo de dirección de respuesta se establece en la dirección IP pública o la dirección IP elástica de su instancia , y no su dirección IP privada. Por el contrario, el tráfico destinado a la dirección IP pública o la dirección IP elástica de su instancia tiene su dirección de destino traducida a la dirección IP privada de la instancia antes de que el tráfico se entregue a la VPC.

Los EIP asignados automáticamente que vienen con una nueva instancia no cuestan nada, y desaparecen automáticamente cuando la instancia se da de baja.


Gracias por su respuesta, he agregado más información a la pregunta que explica el problema que estoy viendo y cómo puedo solucionarlo a través de la consola web. Puede que no entienda cómo funciona AWS, pero podría aconsejarme más, estaría muy agradecido.
ed.

@ed. No estoy muy familiarizado con EB pero parece que es de los documentos que desea establecer aws:ec2:vpc:AssociatePublicIpAddressen su configuración de EB (y que esto es peculiar de los EB de instancia única). Alternativamente, solicite a AWS un aumento en su límite de EIP; en mi experiencia, con gusto lo otorgarán en este tipo de situación.
ceejayoz

saludos lo intentaré.
ed.

He probado la bandera de arriba en vano. Creo que voy a llamar a DissociateAddress a través del SDK.
ed.

1
Para el registro: aws:ec2:vpc:AssociatePublicIpAddresses solo para la instancia ec2, si lo configura en falso, disassociateAddressla instancia no tendrá una IP pública.
ed.

0

Hay una opción de entorno de beanstalk elástico que podría ser lo que buscas.

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

Espacio de nombres: aws: ec2: vpc AssociatePublicIpAddress: false

Si lo configura, todos los nodos creados por este entorno no tendrán una IP pública. El tráfico entrante tendrá que usar un equilibrador de carga. La VPC y las subredes deberán asociarse con una puerta de enlace NAT o una puerta de enlace de Internet para obtener acceso a Internet saliente. Si no tiene acceso a Internet saliente, la compilación Elastic Beanstalk fallará (no podrá acceder a los servicios de AWS).


Agregué esto a la configuración de EBS: { "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },aun así, Elastic IP se está asociando a esa instancia. ¿Cualquier pista?
Kostanos

1
esto no es cierto, no tiene ningún efecto en eip
A-Developer-Has-No-Name

0

Después de desasociar la dirección IP elástica, tiene unos 10 segundos para 'liberarla'. Si lo sueltas, no volverá.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.