EC2: o DNS público de uma instância é estável? Posso confiar que isso não muda?

41

Lancei minha primeira instância e estou usando-a como servidor da web. Vejo que ele possui um DNS público (uma URL pública), por exemplo:

ec2-123-45-6-789.compute-1.amazonaws.com

Posso ir com sucesso a este servidor no meu navegador, acessá-lo via cURL etc.

Quero usar este servidor da Web para um serviço de back-end em um aplicativo que estou criando, por isso coloquei esse URL na configuração do meu aplicativo e ele funciona muito bem.

Mas quando eu paro e reinicio manualmente minha instância, vejo que o DNS público muda! Eu li que isso acontece quando você para e reinicia explicitamente, mas não acontece se você apenas "reinicia".

Eu não planejo parar e reiniciar explicitamente esse servidor, mas a minha pergunta é: esse DNS público será alterado por algum motivo? Por exemplo, se a máquina travar de maneira anormal, ou o que seja.

Em outras palavras, é seguro enviar um aplicativo conectado a este URL?

Aseem Kishore
fonte

Respostas:

67

O nome DNS público sempre corresponde ao endereço IP público.

O endereço IP público permanece o mesmo para uma instância até que seja finalizado ou parado. Uma reinicialização não altera o endereço IP público.

Se uma instância do EC2 estiver em uma VPC, ela manterá o mesmo endereço IP público por meio de uma parada e inicialização.

Se uma instância do EC2 que não esteja em uma VPC for interrompida e iniciada novamente, provavelmente receberá um endereço IP público diferente.

Instâncias podem falhar. Quando você inicia uma nova instância para substituir uma instância com falha ou finalizada, provavelmente receberá um endereço IP público diferente.

Como as instâncias podem falhar e porque você pode alterar o tamanho de uma instância (com uma parada / inicialização), não é recomendável "enviar um aplicativo conectado ao [endereço IP público]" (ou nome DNS). Depois que sua instância for interrompida / finalizada / com falha, outro usuário poderá obter esse endereço IP atribuído à instância e todo o tráfego será direcionado a eles.

É recomendável usar endereços IP elásticos para associar serviços públicos à sua instância. Você mantém o endereço IP Elastic e pode atribuí-lo a qualquer instância que desejar ao longo do tempo, mesmo que seja a mesma instância após uma parada / partida.

Cada endereço IP Elastic vem com um nome DNS público, mas é melhor mapear seu próprio nome de host para o endereço IP Elastic, para que o nome faça mais sentido para os seres humanos.

Aqui está um guia para os endereços IP elásticos:

http://aws.amazon.com/articles/1346

Aqui está um artigo que escrevi que fala sobre as diferenças entre reiniciar e parar / iniciar uma instância:

Reinicialização x Parada / Início da instância do Amazon EC2
http://alestic.com/2011/09/ec2-reboot-stop-start

Aqui está um artigo que escrevi que fornece um motivo pelo qual você pode querer parar / iniciar uma instância, mesmo que você não pense que irá hoje:

Movendo uma instância do EC2 para um tamanho maior
http://alestic.com/2011/02/ec2-change-type

Eric Hammond
fonte
Bem, por informação, eu reiniciei minha instância ec2 e acabei de descobrir que o DNS público mudou para um novo IP. Talvez a instância tenha entrado em colapso, mas não tenho certeza disso.
Nicolas Manzini
A Amazon recomenda apenas que IPs elásticos sejam usados ​​para balanceadores de carga. Portanto, se você tiver um serviço privado em uma instância ec2, precisará atualizar manualmente os ips. docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Jesse
Os ELBs do @Jesse (Elastic Load Balancers) não usam endereços IP Elastic. De fato, os ELBs alteram os endereços IP o tempo todo e não podem ser permanentes. IPs elásticos são aplicados às instâncias do EC2 e, portanto, são exatamente o que é necessário para a pergunta original.
Eric Hammond