Usar uma imagem de máquina da Amazon (AMI) personalizada - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar uma imagem de máquina da Amazon (AMI) personalizada

Ao criar um AWS Elastic Beanstalk ambiente, você pode especificar uma Amazon Machine Image (AMI) para usar em vez da AMI padrão do Elastic Beanstalk incluída na versão da sua plataforma. Uma AMI personalizada pode melhorar o tempo de provisionamento quando as instâncias são iniciadas em seu ambiente e você precisa instalar muitos softwares que não são incluídos nas AMIs padrão.

O uso de arquivos de configuração é ideal para configurar e personalizar seu ambiente de maneira rápida e consistente. A aplicação de configurações, entretanto, pode demorar muito tempo durante a criação do ambiente e atualizações. Se você especificar muitas configurações de servidor em arquivos de configuração, poderá reduzir esse tempo ao criar uma AMI personalizada que já tenha o software e a configuração de que precisa.

Uma AMI personalizada também permite fazer alterações em componentes de baixo nível, como o kernel do Linux, que são difíceis de implantar ou que demoram muito tempo para aplicar em arquivos de configuração. Para criar uma AMI personalizada, inicie uma AMI da plataforma do Elastic Beanstalk no Amazon EC2, personalize o software e a configuração de acordo com suas necessidades e, depois, interrompa a instância e salve uma AMI a partir dela.

Criar uma AMI do personalizada

Como identificar a AMI base do Elastic Beanstalk
  1. Em uma janela de comando, execute um comando semelhante ao seguinte. Para obter mais informações, consulte describe-platform-versionna Referência de AWS CLI Comandos.

    Especifique a AWS região em que você deseja usar sua AMI personalizada e substitua o ARN da plataforma e o número da versão pela plataforma Elastic Beanstalk na qual seu aplicativo se baseia.

    exemplo - Mac OS/SO Linux
    $ aws elasticbeanstalk describe-platform-version --region us-east-2 \ --platform-arn "arn:aws:elasticbeanstalk:us-east-2::platform/Tomcat 8.5 with Java 8 running on 64bit Amazon Linux/3.1.6" \ --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
    exemplo - SO Windows
    C:\> aws elasticbeanstalk describe-platform-version --region us-east-2 --platform-arn"arn:aws:elasticbeanstalk:us-east-2::platform/IIS 10.0 running on 64bit Windows Server 2019/2.6.4" --query PlatformDescription.CustomAmiList [ { "VirtualizationType": "pv", "ImageId": "" }, { "VirtualizationType": "hvm", "ImageId": "ami-020ae06fdda6a0f66" } ]
  2. Anote o valor ImageId, que será semelhante a ami-020ae06fdda6a0f66 no resultado.

O valor é a AMI padrão do Elastic Beanstalk para a versão da plataforma, a arquitetura AWS da instância EC2 e a região que são relevantes para seu aplicativo. Se você precisar criar AMIs para várias plataformas, arquiteturas ou AWS regiões, repita esse processo para identificar a AMI base correta para cada combinação.

Observações
  • Não crie uma AMI a partir de uma instância que foi executada em um ambiente do Elastic Beanstalk. O Elastic Beanstalk faz alterações nas instâncias durante o provisionamento que podem causar problemas na AMI salva. Salvar uma imagem de uma instância em um ambiente do Elastic Beanstalk também faz com que a versão da aplicação que foi implantada na instância seja uma parte fixa da imagem.

  • Recomendamos usar sempre a versão mais recente da plataforma. Ao atualizar para uma nova versão da plataforma, também recomendamos que você restabeleça a base da sua AMI personalizada na AMI da nova versão da plataforma. Isso minimiza falhas de implantação devido a versões incompatíveis de pacotes ou bibliotecas.

Para o Linux, também é possível criar uma AMI personalizada a partir de uma AMI de comunidade que não foi publicada pelo Elastic Beanstalk. É possível usar a AMI mais recente do Amazon Linux como ponto de partida. Quando você executa um ambiente com uma AMI do Linux que não é gerenciada pelo Elastic Beanstalk, o Elastic Beanstalk tenta instalar o software da plataforma (idioma, estrutura, servidor de proxy, etc.) e os componentes adicionais para oferecer suporte a recursos como relatórios de integridade aprimorada.

nota

AMIs personalizadas baseadas no Windows Server exigem a AMI do Elastic Beanstalk de estoque retornada de describe-platform-version, como mostrado anteriormente na Etapa 1.

Embora o Elastic Beanstalk possa usar uma AMI não gerenciada pelo Elastic Beanstalk, o aumento no tempo de provisionamento que resulta da instalação pelo Elastic Beanstalk de componentes ausentes pode reduzir ou eliminar os benefícios da criação de uma AMI personalizada. Outras distribuições do Linux talvez funcionem com a solução de alguns problemas, mas não são oficialmente compatíveis. Se a aplicação exigir uma distribuição específica do Linux, uma alternativa será criar uma imagem de Docker e executá-la na plataforma Docker ou na plataforma Docker de vários contêineres do Elastic Beanstalk.

Para criar uma AMI personalizada
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Escolha Executar instância.

  3. Escolha Community AMIs (AMIs da comunidade).

  4. Se você identificou uma AMI base do Elastic Beanstalk (usando describe-platform-version) ou uma AMI do Amazon Linux, insira o ID da AMI na caixa de pesquisa. Em seguida, pressione Enter.

    Você também pode pesquisar a lista para outra comunidade AMI que atenda às suas necessidades.

    nota

    Recomendamos que você escolha uma AMI que use a virtualização de HVM. Essas AMIs mostram um tipo de virtualização: hvm em sua descrição.

    AMI com o tipo de virtualização de HVM listados no console do EC2

    Para obter detalhes sobre os tipos de virtualização de instâncias, consulte Tipos de virtualização de AMI do Linux no Guia do usuário do Amazon EC2 ou Tipos de virtualização de AMI do Windows no Guia do usuário do Amazon EC2.

  5. Escolha Select para selecionar a AMI.

  6. Selecione um tipo de instância e, a seguir, escolha Próximo: Configurar detalhes da instância.

  7. (Para plataformas Linux) Expanda a seção Detalhes avançados e cole o texto a seguir no campo Dados do usuário.

    #cloud-config repo_releasever: repository version number repo_upgrade: none

    O número de versão do repositório é a versão de ano e mês no nome da AMI. Por exemplo, AMIs com base na versão de março de 2015 do Amazon Linux têm um número de versão de repositório 2015.03. Para uma imagem do Elastic Beanstalk, isso corresponde à data mostrada no nome da pilha de soluções para a versão da plataforma com base na AMI do Amazon Linux (anterior ao Amazon Linux 2).

    nota

    A repo_releasever configuração configura o lock-on-launch recurso para uma Amazon Linux AMI. Isso faz com que a AMI use uma versão fixa e específica do repositório quando é iniciada. Esse recurso não é compatível com o Amazon Linux 2, ou seja, não o especifique se seu ambiente usa uma ramificação de plataforma atual do Amazon Linux 2. A configuração será necessária se você estiver usando uma AMI personalizada com o Elastic Beanstalk somente nas ramificações da plataforma da AMI do Amazon Linux (anteriores ao Amazon Linux 2).

    A configuração repo_upgrade desativa a instalação automática de atualizações de segurança. É necessário usar uma AMI personalizada com o Elastic Beanstalk.

  8. Siga as instruções do assistente para iniciar a instância do EC2. Quando solicitado, selecione um par de chaves ao qual tenha acesso para que você possa se conectar à instância para as próximas etapas.

  9. Conecte-se à instância com SSH ou RDP.

  10. Execute todas as personalizações desejadas.

  11. (Plataformas Windows) Execute o Sysprep do serviço EC2Config. Para obter informações sobre o EC2Config, consulte Configurar uma instância do Windows usando o serviço EC2Config. Certifique-se de que o Sysprep está configurado para gerar uma senha aleatória que pode ser recuperada no AWS Management Console.

  12. No console do Amazon EC2, interrompa a instância do EC2. Em seguida, no menu Instance Actions (Ações da instância), escolha Create Image (EBS AMI) (Criar imagem (AMI do EBS)).

  13. Para evitar AWS cobranças adicionais, encerre a instância do EC2.

Como usar sua AMI personalizada em um ambiente do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regiões, selecione sua. Região da AWS

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Capacity (Capacidade), escolha Edit (Editar).

  5. Em AMI ID (ID de AMI), insira seu ID de AMI personalizado.

  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Quando você cria um ambiente com a AMI personalizada, deve usar a mesma versão da plataforma usada como base para criar a AMI. Se você aplicar posteriormente uma atualização de plataforma a um ambiente usando uma AMI personalizada, o Elastic Beanstalk tentará aplicar a biblioteca e as atualizações de configurações durante o processo de bootstrapping.

Limpeza de uma AMI personalizada

Quando tiver concluído com uma AMI personalizada e não precisar mais dela para iniciar ambientes do Elastic Beanstalk, considere limpá-la para minimizar o custo de armazenamento. A limpeza de uma AMI personalizada envolve o cancelamento de seu registro no Amazon EC2 e a exclusão de outros recursos associados. Para obter detalhes, consulte Cancelar o registro da AMI do Linux ou Cancelar o registro da AMI do Windows.