Diferença entre reiniciar e parar uma instância do Amazon EC2

13

Notei que chamar ec2.rebootInstancesuma instância do Amazon EC2 era muito mais rápido do que parar e iniciá-la novamente ( ec2.stopInstances ec2.startInstances).

Também preservou o endereço IP da instância (não tenho um IP elástico). O que ec2.rebootInstance faz diferente de parar e iniciar uma instância?

figaro
fonte

Respostas:

23

Quando você interrompe uma instância de inicialização do EBS, está desistindo do hardware físico (ou parte dela) em que o servidor estava executando e o EC2 está livre para iniciar a instância de outra pessoa lá.

Seu volume de inicialização do EBS (e outros volumes anexados do EBS) ainda são preservados, embora não estejam realmente vinculados a um servidor físico ou virtual. Eles estão associados apenas a um ID de instância que não está sendo executado em nenhum lugar.

Quando você inicia a instância novamente, o EC2 seleciona algum hardware para executá-la, vincula o (s) volume (s) EBS e a inicializa novamente a partir do volume raiz.

As coisas que mudam quando você para / inicia incluem:

  1. Novo endereço IP interno (embora possa ser aleatoriamente o mesmo).

  2. Novo endereço IP externo (embora possa ser aleatoriamente o mesmo).

  3. Se um endereço IP Elastic foi associado à instância antes de ser interrompido, será necessário associá-lo novamente após o início.

  4. Qualquer conteúdo do antigo armazenamento efêmero da instância foi limpo e você recebe um armazenamento efêmero.

  5. Você pode deixar uma instância parada pelo tempo que desejar e não ser cobrada pelo tempo de execução (embora seja cobrada uma taxa muito menor pelo armazenamento de volume do EBS). Veja o próximo ponto.

  6. Uma nova hora de cobrança é iniciada para a instância quando você a inicia novamente. Por exemplo, se você iniciar uma nova instância e parar / iniciar 3 vezes nos primeiros 60 minutos, será cobrado por 4 horas em vez de 1.

  7. Há uma pequena chance de o EC2 não ter slots disponíveis do tipo de instância correto para executar sua instância quando você deseja iniciá-la novamente. Isso aconteceu e, temporariamente, mudei para um tipo de instância disponível diferente para fazê-lo funcionar novamente.

Quando você reinicia, é uma reinicialização simples no nível do sistema operacional e a instância permanece em execução no mesmo hardware, com os mesmos endereços IP públicos e privados, mantém o mesmo endereço IP elástico (se associado) e mantém o mesmo armazenamento efêmero sem obter limpo. Nenhuma nova hora de cobrança é iniciada em uma reinicialização e você não desiste do hardware da instância.

Enquanto uma instância está parada, você pode fazer algumas coisas legais antes de iniciá-la novamente. Aqui está um artigo que escrevi sobre como alterar o tipo de instância enquanto está parado:

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

Aqui está um artigo que escrevi sobre como alterar o tamanho de um disco de inicialização do EBS de uma instância enquanto está parado:

Redimensionando o disco raiz em uma instância EC2 de inicialização do EBS em execução
http://alestic.com/2010/02/ec2-resize-running-ebs-root

Aqui está um artigo que escrevi sobre como examinar o disco raiz de uma instância (enquanto está parada) quando você não pode se conectar a ele enquanto está em execução:

Corrigindo arquivos no volume EBS raiz de uma instância do EC2
http://alestic.com/2011/02/ec2-fix-ebs-root

Como o ciclo de parada / inicialização tem uma boa chance de mover sua instância para um novo hardware, é uma maneira fácil de substituir o hardware da instância se você suspeitar que a plataforma atual esteja indo mal e causando problemas. Aqui está um artigo que escrevi sobre isso:

Uma maneira mais simples de substituir o hardware da instância no EC2
http://alestic.com/2011/02/ec2-move-hardware

Eric Hammond
fonte
+1 para o excelente resumo (e disponibilizá-lo no seu blog, onde o encontrei primeiro;) - uma adição / correção menor sobre o tópico 3: Acabei de observar que as instâncias iniciadas dentro de uma VPC (Amazon Virtual Private Cloud) se comportam diferente aqui, ou seja, um endereço IP elástico (se houver) permanece associado mesmo no estado parado (e não parece ser cobrado de acordo); Ainda não encontrei nenhuma documentação específica sobre isso, nem investiguei se há sutilezas relacionadas, mas é provável que alguém esteja ciente dessa possibilidade.
Steffen Opel
Obrigado pela observação. Eu adicionei um comentário apontar isto no post: alestic.com/2011/09/ec2-reboot-stop-start
Eric Hammond