Lançar instâncias via Elastic Beanstalk sem o Elastic IP configurado

8

Estou criando uma ferramenta para implantar imagens do Docker no EC2 via ElasticBeanstalk, para que a equipe de desenvolvimento possa rapidamente demonstrar seu trabalho sem precisar mesclar. Não quero que o Elastic IP seja ativado para esses aplicativos, pois eles são de curta duração.

A razão pela qual estou perguntando isso é porque, se a minha ferramenta criar mais de cinco aplicativos (e isso acontecer rapidamente), qualquer novo aplicativo falhará, pois nenhum Elastic IP pode ser atribuído ao novo aplicativo. Isso ocorre porque uma conta da AWS geralmente tem um no máximo 5 IPs elásticos disponíveis . Eu posso ir para o console web aws e escolher 'Disassociate Elastic IP Address' (veja abaixo) em uma instância, após o qual a instância ec2 receberá um novo ip (após alguns minutos). Isto é o que eu quero, mas eu quero fazer isso de forma programática, e preferiria inicializar o aplicativo sem ele, em vez de fazê-lo uma vez que a instância é criada.

ExisteumaopçãodeconfiguraçãoqueeupossausarparadesativaroElasticIPparaanovainstância?

Estouusandoonó aws-sdk , mas qualquer dica em qualquer idioma serve .

Estou criando m1.small instâncias únicas.

Se isso não for possível durante o lançamento, terei que desassociar o Elastic IP da instância usando o Função EC2.disassociateAddress .

    
por ed. 10.06.2015 / 18:02

4 respostas

6

Ao usar o tipo de ambiente "Single instance", você sempre obtém um EIP.

De Guia do desenvolvedor do Beanstalk, Tipos de ambientes :

A single-instance environment contains one Amazon EC2 instance with an Elastic IP address.

Desativar a opção "Associar endereço IP público" não tem efeito.

Mude para o ambiente "Balanceamento de carga, escalonamento automático" para passar sem um EIP.

    
por 18.08.2017 / 12:51
1

I don't want Elastic IP to be enabled for these apps as they are short lived.

Se você estiver em uma sub-rede pública de VPC (o que é provável), será necessário que uma instância se comunique com a Internet. Por link :

To enable an instance in your public subnet to communicate with the Internet, it must have a public IP address or an Elastic IP address that's associated with a private IP address on your instance. Your instance is only aware of the private (internal) IP address space defined within the VPC and subnet. The Internet gateway logically provides the one-to-one NAT on behalf of your instance, so that when traffic leaves your VPC subnet and goes to the Internet, the reply address field is set to the public IP address or Elastic IP address of your instance, and not its private IP address. Conversely, traffic that's destined for public IP address or Elastic IP address of your instance has its destination address translated into the instance's private IP address before the traffic is delivered to the VPC.

Os EIPs atribuídos automaticamente que vêm com uma nova instância não custam nada e desaparecem automaticamente quando a instância é desatribuída.

    
por 10.06.2015 / 18:24
1

Existe uma opção de ambiente de pé de feijão elástico que pode ser o que você procura.

link

Namespace: aws: ec2: vpc AssociatePublicIpAddress: false

Se você definir, todos os nós criados por esse ambiente não terão um IP público. O tráfego de entrada precisará usar um balanceador de carga. O VPC e as sub-redes precisarão ser associados a um gateway NAT ou a um gateway da Internet para obter acesso à Internet de saída. Se você não tiver acesso à Internet de saída, a compilação do Elastic Beanstalk falhará (não será possível acessar os serviços da AWS).

    
por 30.06.2016 / 12:37
0

Depois de desassociar o endereço IP elástico, você tem cerca de 10 segundos para "liberá-lo". Se você soltá-lo, ele não voltará.

    
por 21.04.2017 / 23:20