Quando inicio a instância no console da AWS, posso definir "Atribuir IP público automaticamente" como verdadeiro e a instância recém-criada será atribuída com o endereço IP público do pool.
Agora suponha que eu lancei a instância com esta configuração definida como falsa e desejo atribuir um IP público a esta instância. O mesmo IP público do primeiro caso, não o IP elástico.
PS Eu sei que posso iniciar uma nova instância e desligar a antiga. Estou particularmente interessado em atribuir a um já em execução.
A instância que você executou sem um IP público permanecerá sem um, pois só pode ser atribuída quando você iniciar a instância. Mesmo tendo uma sub-rede
auto assign public IP
ligada, não atribuirá um IP público à sua instância se, ao iniciar a instância, você optar por não ter um IP público.A única maneira que conheço é selecionar
assign a public IP
antes de iniciar a instância ou configurar a sub-rede para atribuir IPs públicos automaticamente, o que fará isso somente quando você iniciar uma nova instância.Então, para resumir: não é possível
assign a public IP
depois de iniciar essa instância, a menos que você use EIPs.Para corrigi-lo posteriormente, desative seu servidor original, ative um novo com a atribuição automática de IP público ativado e os volumes existentes anexados.
Você pode então descartar a instância original.
Se você estiver usando ELB e Autoscaling, criar uma instância em tempo real e testar a instância é difícil. Uma solução durante este cenário:
Selecione Instância do EC2> Ações>Rede> Gerenciar endereços IP. Em seguida, use a opção "Para adicionar ou editar um IP público IPv4 Aloque um IP elástico para esta instância ou interface de rede".
Agora você terá a instância do EC2 com IP público sem reiniciar/excluir a instância do EC2.
Supondo que sua instância esteja sendo executada em uma VPC, você pode criar uma Elastic Network Interfaces (ENI) que tenha um IP público atribuído a ela e associar essa ENI à sua instância sem a necessidade de criar uma nova.
Para atribuir um IP público à instância em tempo de execução:
Isso não era possível em 2016, mas agora é claro que a AWS permite: