Como o Amazon Machine Images funciona?

9

Eu já vi muitos tutoriais e outros sobre a criação de AMI, mas nunca entendi o conceito completo de uma AMI. É um link para a instância ou é armazenado e nunca é alterado. Além disso, uma imagem inclui o armazenamento local e todos os pacotes etc instalados nessa instância ou é apenas uma cópia da configuração de uma instância específica. obrigado

Wiz
fonte

Respostas:

10

Na sua forma mais simples, uma AMI é uma descrição de uma máquina virtual - o tipo de virtualização, a arquitetura (32/64 bits), o kernel e o dispositivo raiz. Nas palavras da Amazon:

Uma AMI é um modelo que contém uma configuração de software (sistema operacional, servidor de aplicativos e aplicativos) que você pode executar no ambiente de computação comprovado da Amazon.

As instâncias do EC2 são máquinas virtuais, executadas no hardware da Amazon. Para que a instância seja iniciada, existe uma quantidade mínima de informações necessárias. Além disso, diferentes tipos de instâncias suportam configurações diferentes (por exemplo, algumas não suportam AMIs de 32 bits).

Cada AMI possui um identificador (por exemplo, ami-a1b2c3d4), e a configuração dessa AMI não pode ser alterada após a criação. (No entanto, você pode substituir muitas das configurações no momento da inicialização ou, em alguns casos, mesmo após o lançamento de uma instância).

Em termos de volume raiz, as AMIs contêm uma referência a um volume existente (por exemplo, referenciam um instantâneo para instâncias suportadas pelo EBS ou para as partes da imagem no caso de uma instância suportada pelo S3).

As AMIs também contêm algum grau de verificação de erros - geralmente um ID do usuário para indicar propriedade, chaves de criptografia (que criptografam a imagem) e uma assinatura (para verificar a integridade da imagem). Você pode ter uma boa idéia do que é uma AMI olhando o arquivo de manifesto criado ao criar uma instância suportada pelo S3 - é apenas um arquivo que contém dados e referências a outros itens (armazenamento, kernel, etc.).

Uma imagem referencia-a como um mapeamento de dispositivo de bloco - especifica o dispositivo (por exemplo, / dev / sda1) e a fonte de dados (efêmera (e as partes S3, se relevante) ou ebs-snapshot). Como as partes do S3 são assinadas e o ebs-snapshots não pode ser alterado (somente excluído), o lançamento de uma instância de uma AMI (sem substituir suas configurações) sempre deve resultar em uma instância com a mesma configuração de software. (Observe que ainda é possível que instâncias iniciadas na mesma AMI diferam em seus estados de execução devido a dados do usuário ou mapeamentos de dispositivos de bloco diferentes (por exemplo, micro instâncias não têm armazenamento efêmero, enquanto outros tipos de instâncias). aqui, os volumes anexados são armazenados separadamente da AMI, mas fazem referência à AMI de forma que os volumes não possam ser alterados.

Antes de iniciar uma instância a partir de uma AMI, você pode substituir o mapeamento do dispositivo de bloco (por exemplo, para adicionar um volume EBS adicional ou outro volume efêmero, se o tipo de instância suportar). No caso de volumes EBS, após o lançamento da instância, você pode desanexar o volume raiz e anexar um volume EBS completamente diferente.

Portanto, para responder brevemente às suas perguntas: É um link para a instância ou é armazenado e nunca é alterado. Ele é armazenado e nunca é alterado.

Além disso, uma imagem inclui o armazenamento local e todos os pacotes etc instalados nessa instância ou é apenas uma cópia da configuração de uma instância específica. A imagem inclui o armazenamento local e todos os pacotes etc. instalados nessa instância. (Normalmente, esse é apenas o volume raiz, mas uma AMI pode ser configurada para iniciar uma instância com vários volumes preenchidos).

cyberx86
fonte
Portanto, são referências ao EBS da instância; portanto, se o estado do EBS mudar após a criação da AMI, o estado da AMI também mudará?
Wiz
Não, eles referenciam os instantâneos do EBS, não os volumes do EBS. Os instantâneos do EBS não podem ser alterados, mesmo que o volume do EBS seja alterado. Se você iniciar uma determinada AMI, ela carregará o instantâneo do EBS que referencia. Se desejar, você pode especificar um instantâneo diferente do EBS para usar ao iniciar a instância ou substituir o volume EBS usado após o lançamento da instância.
cyberx86
3

Uma AMI é efetivamente a cópia principal de um sistema de arquivos raiz usado para iniciar novas instâncias do EC2, juntamente com alguns metadados, como a arquitetura. Ele contém os pacotes completos de sistema operacional e software que você normalmente encontraria ao inicializar uma cópia nova dessa distribuição, além do que o criador da AMI achou adequado adicionar.

Se você criar uma AMI a partir de uma instância, basicamente criará uma cópia do sistema de arquivos raiz dessa instância, que poderá ser usado posteriormente para criar novas instâncias.

Minha resposta aqui também pode ajudar: https://stackoverflow.com/a/7895489/111286

Eric Hammond
fonte