Terminologia do Amazon EC2 - AMI vs. EBS vs. Snapshot vs. Volume

127

Venho vasculhando o Amazon EC2 e estou um pouco confuso com algumas das terminologias. Especificamente em relação à AMI, instantâneos e volumes e um EBS

Corrija-me se estiver errado ou preencha lacunas sérias nas minhas seguintes declarações:

  • Uma AMI (Amazon Machine Image) é uma captura completa de 'disco' de um sistema operacional e configuração. Ao iniciar uma instância, você a inicia de uma AMI

  • Um EBS (Elastic Block Storage) é uma maneira de persistir o estado de quaisquer modificações feitas após a inicialização de uma determinada AMI. Na minha opinião, isso é como uma diferença no estado final da sua instância versus a AMI.

  • Um instantâneo é ... bem, não tenho certeza. Só posso assumir que é um instantâneo de uma instância específica, mas não está claro para mim como isso difere do estado armazenado em um EBS. Qual a diferença entre um instantâneo e a criação de uma EBS AMI a partir de uma instância existente?

  • Um volume é ... parece que o espaço em disco está montado no qual um par AMI / EBS está carregado? Também não tenho certeza. Vejo (no AWS Console) que você pode criar um volume a partir de um instantâneo e que pode anexar / desanexar volumes, mas não está claro para mim o porquê ou quando você faria isso.

Matt
fonte

Respostas:

150

Uma AMI, como você observa, é uma imagem de máquina. É um instantâneo total de um sistema armazenado como uma imagem que pode ser iniciado como uma instância. Voltaremos às AMIs em um segundo.

Vamos olhar para o EBS. Seus outros dois itens são subitens disso. O EBS é um dispositivo de bloco virtual. Você pode pensar nisso como um disco rígido, embora seja realmente um monte de mágica de software vincular-se a outro tipo de dispositivo de armazenamento, mas faça com que pareça um disco rígido para uma instância.

EBS é apenas o nome para todo o serviço. Dentro do EBS, você tem o que é chamado de volumes. Essas são as "unidades" que a Amazon está vendendo. Você cria um volume e eles alocam um número X de gigabytes e o usam como um disco rígido que pode ser conectado a qualquer um dos computadores em execução (instâncias). Os volumes podem ser criados em branco ou a partir de uma cópia instantânea do volume anterior, o que nos leva ao próximo tópico.

Instantâneos são ... bem ... instantâneos de volumes: uma captura exata da aparência de um volume em um determinado momento no tempo, incluindo todos os seus dados. Você pode ter um volume, anexá-lo à sua instância, preenchê-lo com outras coisas e capturar instantaneamente, mas continue usando-o. O conteúdo do volume continuaria sendo alterado conforme você o usasse como sistema de arquivos, mas o instantâneo seria congelado com o tempo. Você pode criar um novo volume usando esse instantâneo como base. O novo volume seria exatamente igual ao seu primeiro disco quando você tirou o instantâneo. Você pode começar a usar o novo volume no lugar do antigo para reverter seus dados ou talvez anexar o mesmo conjunto de dados a uma segunda máquina. Você pode continuar capturando instantâneos de volumes a qualquer momento. É como um backup de instância de quadro congelado que pode ser facilmente transformado em um novo disco ativo (volume) sempre que você precisar.

Portanto, os volumes podem ser baseados no novo espaço em branco ou em um instantâneo. Percebido? Os volumes podem ser anexados e desanexados de qualquer instância, mas apenas conectados a uma instância por vez, assim como o disco físico do qual eles são uma abstração virtual.

Agora, de volta às AMIs. Estes são complicados porque existem dois tipos. Um deles cria instâncias efêmeras, em que o sistema de arquivos raiz parece uma unidade para o computador, mas na verdade fica na memória em algum lugar e vaporiza no minuto em que deixa de ser usado. O outro tipo é chamado de instância suportada pelo EBS. Isso significa que, quando suas instâncias são carregadas, ele carrega seu sistema de arquivos raiz em um novo volume EBS, basicamente colocando a tecnologia da máquina virtual EC2 sobre a tecnologia EBS. Um volume EBS regular é algo que fica próximo ao EC2 e pode ser anexado, mas uma instância suportada pelo EBS também é um volume em si.

Uma AMI comum é apenas uma grande parte dos dados que são carregados como uma máquina. Uma AMI suportada pelo EBS será carregada em um volume EBS, para que você possa desligá-lo e iniciar novamente a partir de onde parou, exatamente como faria um disco real.

Agora junte tudo. Se uma instância é apoiada pelo EBS, você também pode capturá-la. Basicamente, isso faz exatamente o que um instantâneo comum faria ... um quadro congelado do disco raiz do seu computador em um momento no tempo. Na prática, faz duas coisas diferentes. Uma é que encerra sua instância para que você obtenha uma cópia do disco, como seria para um computador DESLIGADO, não um LIGADO. Isso facilita a inicialização :) Portanto, quando você captura uma instância de uma instância, ela é encerrada, tira a foto do disco e inicia novamente. Em segundo lugar, salva essas imagens como uma AMI em vez de como um instantâneo de disco regular. Basicamente, é um instantâneo inicializável de um volume.

Caleb
fonte
11
Obrigado pela ótima informação, acho que está se juntando para mim. Uma pergunta de acompanhamento: qual é a diferença entre fazer uma captura instantânea de uma EBS AMI em comparação com clicar com o botão direito do mouse e selecionar 'Criar imagem (EBS AMI) no console da web do EC2? Com base na sua descrição acima, parece que eles são idênticos, exceto pela maneira como você os utiliza. Você pode criar um volume a partir de um instantâneo e anexá-lo a uma AMI. Onde, como a imagem EBS AMI simplesmente ... não sei, elimina essa etapa de anexá-la a um volume?
Matt
Na verdade, acho que a ferramenta do console para capturar instantaneamente uma AMI faz a mesma coisa que o console da web. Onde os erros de descrição são um pouco sobre anexos. Se você capturar uma instância de instantâneo, sim, uma captura instantânea é criada do volume raiz, mas mais do que isso, a captura instantânea se torna uma AMI. Um instantâneo regular que você cria em um volume e anexa a uma instância. Um instantâneo de uma instância que você cria em uma instância (você não anexa o volume a uma instância, é a instância). Isso faz sentido?
Caleb
Sempre que eu disse console, quis dizer console da web. Ainda não brinquei com a API da linha de comando ou algo assim. Acho que o que me deixa confuso é: você cria uma AMI do EBS a partir de uma instância e cria um instantâneo de um volume, mas parece que o volume é a AMI do EBS. E então, para criar uma nova instância, você pode 1) iniciar uma de uma AMI criada ou 2) Copiar o instantâneo para um volume e iniciar uma AMI anexada a esse volume, mas, no final, o resultado é o mesmo. Isso está correto?
Matt
Você ficou bem até a parte "parece que", então ela deixa de corresponder à realidade. Particularmente a última parte (seu 2) é um absurdo. Você não anexa AMIs a volumes. As AMIs suportadas pelo EBS são volumes especialmente marcados que são inicializáveis. Os volumes são anexados às instâncias, e não o contrário.
Caleb
2
Quando você estiver capturando instantaneamente algo diferente do disco raiz. Eu tenho muitos discos que armazenam conjuntos de dados que não fazem parte de nenhum computador. Se você estiver capturando instantaneamente o disco / unidade raiz do sistema, use as ferramentas de criação da EBS AMI. Mas às vezes você tem outros volumes com outros conjuntos de dados que podem ou não estar anexados a um determinado sistema. Aqueles que você pode capturar instantaneamente em seu próprio tempo. Um instantâneo automático será criado se eles estiverem anexados a uma instância que você capturou, mas às vezes você também pode criar o seu próprio ... digamos, duplicar um disco e anexá-lo a outra instância.
Caleb
9

Eu acho que vamos simplificar. Crie um modelo de AMI a partir de uma instância existente (por exemplo, a instância nº 1. Observe que, ao criar um modelo de AMI, você também terá um instantâneo de volume, examinará sua seção de instantâneo. Quando desejar criar uma nova instância, escolha o novo objeto criado. Modelo da AMI, ele selecionará o instantâneo no momento em que o modelo da AMI foi criado.

Agora, se você tiver criado instantâneos a partir do volume da instância nº 1, tudo bem. Crie uma nova instância a partir do modelo da AMI, desanexe o volume criado automaticamente para ele e anexe o volume criado a partir de capturas instantâneas do volume da instância nº 1.

Goldwynn T
fonte
2

Para resumir as coisas:

  • EBS = o próprio serviço da AWS

  • Volume EBS = pense nele como um disco rígido que você pode conectar a uma instância do EC2

  • Instantâneo = uma cópia pontual do seu volume

  • AMI = uma cópia de uma instância completa

TH22
fonte
0

Além das explicações acima, aqui está um exemplo para esclarecer tudo isso.

Digamos que sua "Instância EC2 I1" tenha dois volumes EBS anexados - EBS Volume V1a e EBS Volume V1b.

Agora, se você criar uma imagem AMI a partir da Instância EC2 I1, receberá:

uma. Uma imagem AMI da instância EC2 I1, vamos chamá-la de AMI1

b. Um instantâneo do EBS Volume V1a, vamos chamá-lo de S1

c. Um instantâneo do EBS Volume V1b, vamos chamá-lo de S2

Então, se você iniciar uma nova instância da imagem AMI1, receberá:

uma. Uma nova instância do EC2, vamos chamá-lo de I2

b. Um novo volume EBS gerado a partir do Snapshot S1, vamos chamá-lo de V2a

c. Um novo volume EBS gerado a partir do Snapshot S2, vamos chamá-lo de V2b

Resumindo -

  1. Uma imagem AMI cria instantâneo (s) do (s) volume (s) anexado (s) à instância original (a partir da qual a AMI é criada)

  2. Uma nova instância iniciada a partir de uma imagem AMI cria volumes dos instantâneos anexados a essa AMI.

Expliquei em detalhes em http://zilhaz.com/ebs-ami-aws-ec2/

zilhaz
fonte