Se eu encerrar a instância do Amazon EC2, inicie-a novamente. Tudo ficará bem?

11

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

Eu preciso desligar essa instância e aumentar o poder de computação por trás dela ... se eu fizer isso, quanto tempo levará, e quando eu girar a máquina novamente, meu site voltará a ficar on-line? O endereço IP, as informações de DNS, etc., serão preservados para que o nome do domínio continue funcionando e ele ainda poderá conversar com o banco de dados?

FYI isso é o que eu vejo atualmente para o servidor da Web no painel de informações do AWS EC2 (os endereços IP precisos mudaram um pouco, mas você teve a ideia):

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
    
por Eric 08.02.2013 / 03:07

5 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 recebe um novo endereço IP interno.

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

  3. Se a instância não estiver em um VPC, qualquer endereço IP elástico será desassociado da instância.

  4. Todos os dados sobre armazenamento efêmero (geralmente em / mnt) são perdidos

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

Rebooting vs. Stop/Start of Amazon EC2 Instance
http://alestic.com/2011/09/ec2-reboot-stop-start

As instâncias de VPC têm um comportamento ligeiramente diferente, incluindo manter endereços IP elásticos por meio de stop / start.

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

Eu entro em mais detalhes sobre essa abordagem neste artigo:

Using Elastic IP to Identify Internal Instances on Amazon EC2
http://alestic.com/2009/06/ec2-elastic-ip-internal

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

Moving an EC2 Instance to a Larger (or Smaller) Instance Type
http://alestic.com/2011/02/ec2-change-type

Para sua situação específica, recomendo atribuir um endereço IP elástico à instância e alterar seu DNS para apontar para o endereço IP elástico usando um CNAME para o nome DNS externo. Você poderia fazer isso logo após a parada / início, ou você poderia fazer isso antes do tempo, certificando-se de que tudo funciona antes da parada / início.

    
por 09.02.2013 / 03:35
4

Parece que você não está usando o Elastic IP, como eu posso ver nas suas informações.

Acredito que você esteja usando o CNAME no DNS para apontar para essa instância. Se você reiniciar o seu computador, esse nome ec2-54-1-1-1.us-west-1.compute.amazonaws.com do DNS será alterado e seu site parará de funcionar.

Quanto mais IP interno estiver em questão, ele também será alterado, a menos que você esteja usando o VPC, o que você não é.

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

Por mais que o tempo esteja preocupado, não levará mais do que alguns minutos.

Além disso, se você tiver qualquer iptables em execução na instância do banco de dados, que permite que apenas esse IP interno se conecte ao banco de dados, ele também não funcionará, já que seu IP interno será alterado.

Portanto, tenha cuidado se quiser reiniciar esta instância e pensar profundamente nela.

    
por 08.02.2013 / 14:39
2

Seu nome de host / IP interno será alterado e seu IP elástico será removido (a menos que você esteja em um VPC).

Reconecte o Elastic IP após reiniciar a instância. Eu faço isso regularmente para alterar o tamanho das instâncias e você está apenas observando alguns minutos de inatividade.

Verifique o Apache, e quaisquer outros serviços estão configurados para iniciar ( chkconfig se você estiver executando o amazon linux ami).

    
por 08.02.2013 / 10:43
1

Tanto quanto me lembro, parar o sistema alterando seu tipo e iniciá-lo novamente não deve demorar mais do que 5-10 minutos (não é dito que é um sistema suportado pelo EBS). Para que os serviços sejam iniciados assim que o sistema voltar, certifique-se de ter todos os serviços habilitados para iniciar na reinicialização (como para o fantoche no meu Ubuntu 12.04, eu o habilitei em / etc / default / puppet). Anote o IP (eu fiz isso há muito tempo, não lembro claramente) e, no máximo, seu IP pode ser desanexado do sistema, mas ainda estaria lá na sua conta, então vá para a seção Elastic IP e associe-o novamente com o reiniciado sistema e você vai ficar bem.

    
por 08.02.2013 / 03:27
1

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

    
por 08.02.2013 / 14:52