Diferença AWS entre um instantâneo e AMI

107

Portanto, estou tendo problemas para descobrir qual é, especificamente, a diferença entre esses dois.

Pelo que entendi, um instantâneo é simplesmente um backup da unidade de disco, enquanto o AMI é um backup de todo o sistema (ou instância, devo dizer), mas todo o sistema não está tecnicamente localizado totalmente na unidade de disco? e se for esse o caso, então não há diferença clara e estou faltando alguma coisa?

Melbourne2991
fonte

Respostas:

70

Existem dois tipos de AMIs (e instâncias correspondentes):

  1. armazenamento de instância (às vezes chamado de baseado em S3). Esses são menos comuns e não os recomendo para iniciantes. Um AMI de armazenamento de instância é uma cópia do volume de armazenamento de instância raiz mais alguns metadados, todos salvos em um depósito S3 em um formato especial

  2. Inicialização EBS. Provavelmente é isso que você está usando. Um AMI de inicialização EBS é um instantâneo EBS do volume raiz do EBS mais alguns metadados como a arquitetura, kernel, nome AMI, descrição, mapeamentos de dispositivos de bloco e muito mais.

Você pode obter um instantâneo de um volume de inicialização EBS e transformá-lo em uma AMI de inicialização EBS, registrando-o com os metadados apropriados. A parte mais complicada disso é especificar o id de AKI correto (kernel) para que ele inicialize corretamente.

Eric Hammond
fonte
Obrigado Eric, fiz backup de uma imagem AMI e tenho a opção de iniciá-la e registrá-la? Estou confuso quanto à diferença aqui ...
Melbourne2991
Eu não sei o que você quer dizer com "backup de uma imagem AMI".
Eric Hammond
8
Quando você clica em "criar AMI", o EC2 cria um instantâneo EBS do volume EBS dessa instância e o registra como AMI. Você pode iniciar novas instâncias especificando esse AMI como o ponto de partida. Você também pode criar novos volumes do instantâneo do EBS se quiser apenas ver os arquivos nele sem executar uma nova instância.
Eric Hammond
6
Como alternativa, você mesmo pode criar um instantâneo EBS do volume EBS e, posteriormente, registrar esse instantâneo como AMI. Essa é uma maneira um pouco mais difícil de criar uma AMI, pois requer que você conheça os atributos de registro da AMI apropriados a serem configurados. "Create AMI" faz tudo isso por você.
Eric Hammond
1
@ cosbor11 Você não pode excluir o instantâneo de um AMI.
Eric Hammond
24

A principal diferença está no tipo de serviço referido. Um instantâneo é de um volume EBS em que você pode salvar o estado e reinicializar com os mesmos dados em um determinado momento.

Um AMI é semelhante, mas é para as próprias instâncias do EC2. Você não pode tirar um instantâneo de uma instância sem backup ebs, mas pode criar uma AMI (imagem do sistema) de uma.

Geralmente eu uso instantâneos EBS como soluções de backup para um volume de banco de dados e uso um AMI para salvar a configuração da instância

BrianJakovich
fonte
1
E se meu volume contiver meus bancos de dados, bem como minha configuração de instância? O que o AMI salva que um snapshot do EBS não salva (e vice-versa)? Obrigado
Melbourne2991
1
uma AMI é imediatamente inicializada para uma nova instância. um snapshot do EBS pode ser copiado para um novo volume (disco virtual). Esse disco virtual pode ser usado como base para uma nova instância, mas não é uma instância em si.
Dan Pritts
16

Um AMI pode ser criado usando um instantâneo. Por exemplo, usando um único "instantâneo", você pode criar vários AMIs, digamos um PV e um HVM AMI usando o mesmo instantâneo.

Portanto, o instantâneo contém os dados do sistema / SO. AMI é (instantâneo + máquina / metadados de hardware).

Anshu Prateek
fonte
1
se eu tiver um AMI, que uma instância foi criada a partir dele. A AMI inclui os dados dessa instância? Quer dizer, se a instância contém arquivos WAR do tomcat, a AMI a partir da qual essa instância foi criada também inclui?
Dejell
1
Se você criar uma AMI fora da instância que contém o tomcat (ou qualquer arquivo), a nova AMI criada conterá esses arquivos / dados. Qualquer instância criada posteriormente a partir desta AMI terá esses arquivos. No entanto, a AMI de origem da qual você criou a instância não os terá (supondo que você adicionou os arquivos à instância após a criação da instância).
Anshu Prateek
15

Eu também estava confuso com isso. Esta é a maneira mais simples de entender:

  • EBS Snapshot muito frequentemente representa um backup de volume EBS específico, pode ser qualquer volume (volume raiz, volume de dados, etc.)

  • AMI(Amazon Machine Image) é um backup de toda a instância EC2. Por exemplo, com a configuração adequada, é possível criar AMI que inclui vários volumes EBS.

Agora, pode parecer confuso, mas ambos são armazenados como um "EBS Snapshots".

Pense assim:

  • EBS Snapshot é apenas um backup de dados.
  • AMIé uma representação do estado do sistema em um momento específico. Você também pode inicializar a partir dele.
Skryvets
fonte
Então, se eu criei um instantâneo do volume raiz, esse instantâneo pode ser usado para iniciar uma instância?
gaurav parashar
1
Resposta curta: Não. Não pode ser feito diretamente usando apenas o volume, pois a única "opção de inicialização" disponível para EC2 é AMI. No entanto, você pode criar AMI a partir do volume e iniciar uma instância da AMI criada recentemente (como uma opção indireta).
Skryvets
7

EBS Volumeé o disco subjacente por trás do EC2. Snapshoté um backup pontual de específico volumeenquanto AMI é um backup de toda a instância EC2 que pode ter vários volumes conectados, exatamente como máquinas virtuais.

Com o Packer , você pode construir imagens de máquina automatizadas, incluindo AMIs para EC2, arquivos VMDK / VMX para VMware, exportações OVF para VirtualBox, etc.

EC2  <-- EBS Volume (Boot) + EBS Volume 
                        ^
                        |
                     Snapshot (only of specific volume)       
                        ^
                        |
                       AMI (Combined snapshots of all volumes, snapshot must have boot volume) 
                        ^
                        | 
                  Launch a new Instance (same installed softwares and configs, different specs) 

Os instantâneos podem ser usados ​​para fazer backup de unidades / volumes. É uma operação de backup incremental, o que significa que cada vez que você tira um instantâneo de um volume, ele adicionará apenas as novas alterações adicionadas / introduzidas no volume desde seu último backup (não o backup completo), o que economiza tempo de backup, espaço e, finalmente, o custo .

Os instantâneos podem ser usados ​​em:

  • Faça backup das unidades regularmente

  • Altere o tipo de volume, por exemplo, você tem tráfego ou leituras e gravações e precisa aumentar as operações de E / S para mudar de gp2para io1com maiorIOPs

AMIs personalizados podem ser usados ​​em:

  • Para recuperação de desastres no caso de a instância atual do EC2 em execução estar corrompida e não puder ser executada sem motivo.

  • AMIs da empresa padrão que têm todos os softwares de pré-requisitos instalados que simplificam o processo de implantação (por exemplo, configurado para se conectar ao Splunk, tem alguns softwares de monitoramento e observação instalados, tem docker instalado ou está configurado para conectar Puppet ou Chef na inicialização)

  • AMIs podem ser usados ​​para implementar seus aplicativos em diferentes regiões com facilidade.

  • Atualize seu servidor para especificações superiores ou diferentes com todos os softwares instalados e suas configurações

  • AMIs podem ser compartilhados publicamente entre contas AWS.

Muhammad Soliman
fonte
Seu primeiro parágrafo é a definição mais clara que li até agora. Obrigado!
specialk1st
5

Aqui estão mais algumas diferenças entre AMI e EBS Snapshots:

1) Uma AMI é inicializável e contém links para o dispositivo raiz e pode conter links para instantâneos de outros volumes de dados.

2) A imagem de dados contida em uma AMI não representa um ponto no tempo bem definido, a menos que a instância seja reinicializada, algo que normalmente não é aceitável para o ambiente de produção. Os instantâneos podem ser obtidos de maneira consistente, pois seu ponto exato no tempo pode ser controlado, portanto, antes do início do instantâneo, pode-se ter certeza de que tudo está "pronto para backup".

3) Um AMI pode ser criado a partir de instantâneos existentes do dispositivo raiz para Linux, mas não para Windows.

OK1
fonte
2

De acordo com a definição fornecida pela AWS,

Um AMI é um modelo a partir do qual você pode iniciar uma instância EC2. Um EBS Snapshot é uma cópia em nível de bloco de um volume EBS. O volume EBS pode ser um volume de inicialização (ou seja, contendo um sistema operacional) ou um volume somente de dados (contendo arquivos de banco de dados, por exemplo). Você usa RegisterImage para criar um AMI (a partir de um instantâneo).

Esses são dois conceitos diferentes, aplicados em níveis diferentes (volumes EBS vs modelos EC2) No entanto, existem algumas dependências entre os dois conceitos.

Para instâncias EC2 apoiadas por EBS (ou seja, instâncias EC2 que inicializam de um volume EBS), o AMI é implementado como um Snapshot EBS de um volume de inicialização + alguns metadados (a arquitetura da máquina - 32 vs 64 bits -, o tipo de virtualização - HVM vs PV - etc ...)

Portanto, para instâncias EC2 apoiadas por EBS, uma AMI é um instantâneo EBS + um arquivo XML. Você pode até criar seu próprio AMI com base em qualquer instantâneo de um volume de inicialização que você possui.

Ashish Khandelwal
fonte
1

Snapshots são menos caros para usar como estratégia de backup, porque quando você tem vários snapshots, você paga apenas por um backup completo e o restante é, em essência, apenas diffs e geralmente muito menor.

Cary Gordon
fonte
6
Isso não é verdade para AMIs de inicialização do EBS, pois são exatamente instantâneos do EBS mais alguns metadados. A despesa seria idêntica.
Eric Hammond
1

Você pode pensar em uma AMI como um modelo genérico para uma máquina com sistema operacional e componentes instalados sendo preservados.

Um Snapshot pode incluir tudo o que um AMI faz, mas também salva os dados do disco de um volume EBS.

Qual você decidir usar geralmente será ditado pelo fato de suas instâncias serem apoiadas por EBS e se você deseja recriar exatamente uma máquina com todos os dados intactos ou apenas deseja um modelo de máquina genérico.

CIGuy
fonte
Então o AMI não salva o volume do EBS?
Melbourne2991
1
Um AMI pode ser configurado para incluir um ou mais volumes EBS, mas esses volumes ficarão em branco na inicialização, eles não conterão os dados que a máquina de origem original continha.
CIGuy
Portanto, o AMI é realmente apenas metadados (não tenho certeza se esse é o termo correto)? Como qual sistema operacional você está usando, o tamanho da instância, etc? Tecnicamente, deveria ter apenas alguns kb de tamanho, imagino?
Melbourne2991
1
Um AMI também armazena quaisquer programas que você instalou na máquina, opções de configuração de nível de sistema operacional, etc ... então não são apenas metadados, mas sim, eles geralmente são muito menores do que um instantâneo.
CIGuy
1
Esta resposta está errada. Um AMI inclui um ou mais instantâneos. Ou seja, ele faz referência a um ou mais instantâneos (não há cópia de dados) e também contém alguns metadados adicionais. É por isso que você não pode excluir um instantâneo se ele estiver sendo usado por um AMI. docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html Veja também as contribuições de Eric Hammond neste tópico.
Max Barraclough
0

A partir da definição fornecida pela AWS, ele esclarece a diferença - Uma Amazon Machine Image (AMI) é um modelo que contém uma configuração de software (por exemplo, um sistema operacional, um servidor de aplicativos e aplicativos). De um AMI, você inicia uma instância, que é uma cópia do AMI em execução como um servidor virtual na nuvem. Considerando que para Snapshots Você pode fazer backup dos dados em seus volumes EBS para o Amazon S3 tirando snapshots point-in-time. Snapshots são backups incrementais, o que significa que apenas os blocos no dispositivo que mudaram após o snapshot mais recente são salvos. Quando você exclui um instantâneo, apenas os dados exclusivos desse instantâneo são removidos.

Sidharth
fonte