Se eu desligar a instância do Amazon EC2 e iniciá-la novamente, tudo ficará bem?

12

Eu tenho um site que é executado em uma instância do Amazon EC2 Linux e é mapeado para um nome de domínio comum (x.com). Este site conversa com um banco de dados em uma segunda instância do EC2.

Preciso encerrar esta instância e aumentar o poder de computação por trás dela ... se fizer isso, quanto tempo levará e, quando eu ligar a máquina novamente, meu site voltará a ficar online? O endereço IP, as informações de DNS etc. serão todos preservados para que o nome de domínio continue funcionando e ele ainda possa conversar com o banco de dados?

Para sua informação, é isso que vejo atualmente para o servidor Web no painel de informações do AWS EC2 (os endereços IP exatos mudaram um pouco, mas você entendeu):

Public DNS: ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Private DNS: ip-10-1-1-1.us-west-1.compute.internal
Private IPs: 10.1.1.1
Eric
fonte

Respostas:

13

Parar e iniciar uma instância de inicialização do EBS é muito semelhante a simplesmente reinicializar a instância com algumas exceções, sendo a mais notável:

  1. A instância recebeu um novo endereço IP interno.

  2. A instância recebeu um novo endereço IP público.

  3. Se a instância não estiver em uma VPC, qualquer endereço IP do Elastic será desassociado à instância.

  4. Todos os dados no armazenamento efêmero (geralmente abaixo de / mnt) são perdidos

Há também algumas implicações de cobrança e disponibilidade que descrevi neste artigo:

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

As instâncias de VPC têm um comportamento ligeiramente diferente, incluindo manter os endereços IP Elastic por meio de parada / inicialização.

Se você estiver usando uma instância como um servidor de banco de dados e quiser se conectar a ela usando o endereço IP interno (mais barato, mais rápido) e não desejar reconfigurar os clientes do banco de dados após uma parada / inicialização, poderá atribuir um endereço IP Elastic para a instância e use o nome DNS Elastic IP externo. Isso resolverá o endereço IP interno atual depois que você associar novamente o endereço IP Elastic à instância reiniciada e seus clientes continuarão de onde pararam.

Entrarei em mais detalhes sobre essa abordagem neste artigo:

Usando o Elastic IP para identificar instâncias internas no Amazon EC2
http://alestic.com/2009/06/ec2-elastic-ip-internal

Como parece que você esperava, parar / iniciar é uma maneira fácil de alterar o hardware que alimenta sua instância. Eu escrevi sobre isso, juntamente com algumas instruções e avisos neste artigo:

Movendo uma instância do EC2 para um tipo de instância maior (ou menor)
http://alestic.com/2011/02/ec2-change-type

Para sua situação específica, recomendo atribuir um endereço IP Elastic à instância e alterar seu DNS para apontar para o endereço IP Elastic usando um CNAME para o nome DNS externo. Você pode fazer isso logo após a parada / partida, ou com antecedência, certificando-se de que tudo funcione antes da parada / partida.

Eric Hammond
fonte
Isso ainda está correto? Eu estava conversando com o suporte da AWS hoje de manhã e eles disseram que o IP elástico não é desassociado quando uma instância é interrompida. Além disso, nunca vi nossos endereços IP internos mudarem ao parar e iniciar uma instância.
bshacklett
@bsacklett Esta resposta foi um pouco desatualizada. Eu o atualizei para explicar que apenas instâncias que não são da VPC perdem o IP elástico. Hoje, a maioria das instâncias é de fato VPC.
Eric Hammond
4

Portanto, parece que você não está usando o Elastic IP, como posso ver pelas suas informações.

Eu acredito que você deve estar usando CNAME no DNS para apontar para esta instância. Se você reiniciar o computador, esse ec2-54-1-1-1.us-west-1.compute.amazonaws.comnome DNS será alterado e seu site deixará de funcionar.

Quanto ao IP interno, ele também será alterado, a menos que você esteja usando o VPC, ou não.

Então, se eu fosse você, serei muito cuidadoso ao reiniciar esta máquina.

Quanto ao tempo, não vai demorar mais do que alguns minutos.

Além disso, se houver alguma tabela de ip em execução na instância do banco de dados, que permita que apenas esse IP interno se conecte ao banco de dados, ele também não funcionará, pois o seu IP interno será alterado.

Portanto, tenha cuidado se desejar reiniciar esta instância e pense bastante sobre isso.

Napster_X
fonte
2

O seu IP / nome de host interno será alterado e o seu Elastic IP será desconectado (a menos que você esteja em uma VPC).

Reconecte o IP Elastic depois de reiniciar a instância. Faço isso regularmente para alterar os tamanhos das instâncias e você só vê alguns minutos de inatividade.

Verifique o Apache e qualquer outro serviço está definido para iniciar ( chkconfigse você estiver executando o amazon linux ami).

Jason Floyd
fonte
1

Tanto quanto me lembro, parar o sistema alterando seu tipo e iniciá-lo novamente não deve demorar mais de 5 a 10 minutos (não é dito que é um sistema apoiado pelo EBS). Para que os serviços iniciem assim que o sistema voltar, verifique se todos os serviços estão habilitados para iniciar na reinicialização (como no puppet no meu ubuntu 12.04, eu o habilite no / etc / default / puppet). Anote o IP (eu fiz isso há muito tempo, então não me lembro com clareza) e, no máximo, seu IP pode ser desconectado do sistema, mas ainda assim estará presente na sua conta; acesse a seção Elastic IP e associe-o novamente ao sistema reiniciado e você vai ficar bem.

APZ
fonte
1

Como já mencionado, se você tiver um IP elástico, ele será anexado novamente à instância, portanto, suas configurações de DNS não precisam ser tocadas. De uma forma ou de outra, no entanto, seu IP privado será alterado. Isso provavelmente significa que você precisará atualizar suas configurações de GRANT no mysql. Porque você não apenas GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%'... certo? ;)

chrskly
fonte