Criando uma imagem AMI do EC2 a partir de uma instância em execução vs. de um instantâneo de volume

22

Desejo fazer backup de uma instância do EC2 baseada em Linux enquanto estiver em execução sem tempo de inatividade e, posteriormente, iniciar uma nova instância. (A instância está executando um servidor da Web e um banco de dados Postgres.)

Descobri que há duas maneiras de fazer isso, mas estou confuso sobre qual é a diferença no resultado entre elas.

Opção 1: Crie uma AMI diretamente de uma instância em execução:

  1. Crie uma nova AMI diretamente da instância original em execução.
  2. Iniciar uma nova instância da AMI

Opção 2: Crie manualmente uma AMI a partir de um instantâneo:

  1. Tire uma captura instantânea do volume anexado à instância original em execução
  2. Crie AMI a partir do instantâneo, inserindo manualmente detalhes como arquitetura e ID do kernel
  3. Iniciar uma nova instância a partir da imagem criada manualmente

Agora, o que é confuso é que, ao criar uma AMI diretamente de uma instância, o EC2 reinicia a instância por padrão. Há uma caixa de seleção "Sem reinicialização" com a seguinte dica de ferramenta:

Quando ativado, o Amazon EC2 não encerra a instância antes de criar a imagem. Quando essa opção é usada, a integridade do sistema de arquivos na imagem criada não pode ser garantida.

Existe realmente uma diferença no resultado dessas opções de duas maneiras? Para mim, parece que estou fazendo manualmente as mesmas coisas que o assistente automatizado faria de qualquer maneira. Ele gera instantâneos, seleciona os IDs e arquiteturas do kernel.

Por que um tem um texto de aviso e o outro não? Fazer um instantâneo de uma instância em execução é considerado relativamente seguro e, se a criação da AMI fizer um instantâneo em segundo plano, será mais perigoso do que fazer tudo manualmente?

Vilsepi
fonte

Respostas:

13

Eles fazem exatamente o mesmo se você selecionar a no rebootopção ao criar a AMI diretamente do EC2. Isso basicamente cria um instantâneo que pode estar potencialmente em um estado inconsistente. Por exemplo, você corre o risco de ter um estado inconsistente se estiver fazendo muitas gravações de disco ao criar o instantâneo.

Se você deseja criar um instantâneo em um estado "consistente", será necessário encerrar sua instância primeiro e, em seguida, tirar um instantâneo e, em seguida, reiniciar sua instância. É por isso que a opção de criação de AMI do EC2 é bastante útil porque você não precisa parar e reiniciar. A Amazon cuida disso e também o endereço IP não muda na sua instância. (Se você parar / reiniciar sua instância, seu endereço IP realmente muda)

Não sei ao certo por que a Amazon não tem um aviso se você tirar um instantâneo diretamente do volume, mas do ponto de vista do volume, realmente não importa se o volume está sendo usado por uma instância em execução ou não em execução ( só importa se é anexado ou desanexado sem efeito na criação de instantâneos)

Rico
fonte
Concordo que você deve criar AMIs, pois não deseja encerrar a instância. Você pode procurar soluções que fazem isso imediatamente para economizar tempo. Eu pessoalmente uso o totalcloud.io para automatizar minhas ações na AWS.
Veer Abheek Singh Manhas