Uso de AMIs personalizadas - AWS OpsWorks

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á.

Uso de AMIs personalizadas

Importante

O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

AWS OpsWorks O Stacks oferece suporte a duas formas de personalizar instâncias: Amazon Machine Images (AMIs) personalizadas e receitas do Chef. Ambas as abordagens oferecem a você o controle sobre quais pacotes e versões são instalados, como eles são configurados e assim por diante. No entanto, cada abordagem tem vantagens diferentes, de modo que o melhor depende de seus requisitos.

A seguir, os principais motivos a serem considerados usando uma AMI personalizada:

  • Você deseja criar pacotes específicos com antecedência em vez de instalá-los depois que a instância é inicializada.

  • Você deseja controlar o momento de empacotar as atualizações para fornecer uma imagem base consistente para a camada.

  • Você quer instâncias — instâncias baseadas em carga em particular — para inicializar o mais rápido possível.

A seguir, os principais motivos para considerar o uso de receitas do Chef:

  • Elas são mais flexíveis do que as AMIs personalizadas.

  • Elas são mais fáceis de atualizar.

  • Elas podem executar atualizações em instâncias em execução.

Na prática, a solução ideal pode ser uma combinação de ambas as abordagens. Para obter mais informações sobre receitas, consulte Livros de receitas e receitas.

Como as AMIs personalizadas funcionam com pilhas AWS OpsWorks

Para especificar uma AMI personalizada para suas instâncias, selecione Usar AMI personalizada como sistema operacional da instância ao criar uma nova instância. AWS OpsWorks Em seguida, o Stacks exibe uma lista das AMIs personalizadas na região da pilha e você seleciona a apropriada na lista. Para ter mais informações, consulte Adicionar uma instância a uma camada.

nota

Você não pode especificar uma AMI personalizada em particular como um sistema operacional padrão de uma pilha. Você pode definir Use custom AMI como o sistema operacional padrão da stack, mas você só poderá especificar uma AMI em particular quando adicionar novas instâncias a camadas. Para obter mais informações, consulte Adicionar uma instância a uma camada e Criar uma nova pilha. Embora seja possível criar instâncias com outros sistemas operacionais (como o CentOS 6.x) criados a partir de AMIs personalizadas ou geradas pela comunidade, elas não são compatíveis oficialmente.

Este tópico discute alguns problemas gerais que você deve considerar antes de criar ou usar uma AMI personalizada.

Comportamento de startup

Quando você inicia a instância, o AWS OpsWorks Stacks usa a AMI personalizada especificada para iniciar uma nova instância do Amazon EC2. AWS OpsWorks Em seguida, o Stacks usa cloud-init para instalar o agente AWS OpsWorks Stacks na instância e o agente executa as receitas de configuração da instância seguidas pelas receitas de implantação. Depois que a instância estiver online, o agente executará Configurar receitas para todas as instâncias da pilha, incluindo a instância recém-adicionada.

Escolha de uma camada

O agente AWS OpsWorks Stacks geralmente não entra em conflito com os pacotes instalados. No entanto, a instância deve ser membro de pelo menos uma camada. AWS OpsWorks O Stacks sempre executa as receitas dessa camada, o que pode causar problemas. Você deve compreender exatamente o que as receitas de uma camada fazem a uma instância antes de adicionar uma instância com uma AMI personalizada a essa camada.

Para ver quais receitas um determinado tipo de camada executa em sua instância, abra uma pilha que inclua essa camada. Em seguida, clique em Layers no painel de navegação e clique em Recipes para a camada de interesse. Para ver o código real, clique no nome da receita.

nota

Para AMIs Linux, uma forma de reduzir a possibilidade de conflitos é usar AWS OpsWorks pilhas para provisionar e configurar a instância que é a base da sua AMI personalizada. Para ter mais informações, consulte Crie uma AMI Linux personalizada a partir de uma instância do AWS OpsWorks Stacks.

Tratamento de aplicativos

Além de pacotes, você também pode incluir um aplicativo na AMI. Se você tiver um aplicativo grande e complexo, incluí-lo na AMI poderá reduzir o tempo de startup da instância. Você pode incluir aplicativos pequenos em sua AMI, mas geralmente há pouca ou nenhuma vantagem de tempo em relação à implantação do aplicativo pelo AWS OpsWorks Stacks.

Uma opção é incluir o aplicativo na sua AMI e também criar um aplicativo que implante o aplicativo nas instâncias desde um repositório. Essa abordagem reduz o tempo de inicialização, mas também oferece uma forma conveniente para atualizar o aplicativo depois que a instância estiver em execução. Observe que as receitas do Chef são imutáveis, de modo que a implantação de receitas não modificará o aplicativo, desde que a versão no repositório seja igual à da instância.

Criação de uma AMI personalizada para AWS OpsWorks pilhas

Para usar uma AMI personalizada com AWS OpsWorks pilhas, primeiro você deve criar uma AMI a partir de uma instância personalizada. Você pode escolher entre duas opções:

  • Use o console ou a API do Amazon EC2 para criar e personalizar uma instância, com base em uma versão de 64 bits das AMIs com suporte do AWS OpsWorks Stacks.

  • Para AMIs Linux, use OpsWorks para criar uma instância do Amazon EC2, com base na configuração de suas camadas associadas.

Antes de criar uma AMI Linux personalizada, desative-a noexec na /tmp partição para permitir que o AWS OpsWorks Stacks instale seu agente em instâncias Linux personalizadas.

nota

Lembre-se de que uma AMI pode não trabalhar com todos os tipos de instância; portanto, certifique-se de que sua AMI inicial é compatível com os tipos de instância que você planeja usar. Especificamente, os tipos de instância R3 exigem uma AMI com virtualização assistida por hardware (HVM).

Então você usa o console ou a API do Amazon EC2 para criar uma AMI personalizada da instância personalizada. Você pode usar suas AMIs personalizadas em qualquer pilha que esteja na mesma região ao adicionar uma instância a uma camada e especificar sua AMI personalizada. Para obter mais informações sobre como criar uma instância que usa uma AMI personalizada, consulte Adicionar uma instância a uma camada.

nota

Por padrão, o AWS OpsWorks Stacks instala todas as atualizações do Amazon Linux na inicialização, o que fornece a versão mais recente. Além disso, o Amazon Linux libera uma nova versão aproximadamente a cada seis meses, o que pode envolver alterações significativas. Por padrão, as AMIs personalizadas com base no Amazon Linux são atualizadas automaticamente para a nova versão quando ela é lançada. Recomenda-se bloquear a AMI personalizada em uma versão específica do Amazon Linux, o que permite a você adiar a atualização até que a nova versão tenha sido testada. Para obter mais informações, consulte Como bloquear a AMI em uma versão específica?.

Criar uma AMI personalizado usando o Amazon EC2

A maneira mais simples de criar uma AMI personalizada, e a única opção para AMIs do Windows, é realizar toda a tarefa usando o console ou a API do Amazon EC2. Para obter mais detalhes sobre as próximas etapas, consulte Como criar suas próprias AMIs.

Para criar uma AMI personalizada usando o console ou a API do Amazon EC2
  1. Crie uma instância usando uma versão de 64 bits das AMIs com suporte do AWS OpsWorks Stacks.

  2. Personalize a instância na Etapa 1, configurando-a, instalando pacotes e assim por diante. Lembre-se de que tudo o que você instalar será reproduzido em todas as instâncias baseadas com base na AMI, portanto não inclua itens específicos de uma determinada instância.

  3. Pare a instância e crie uma AMI personalizada.

Crie uma AMI Linux personalizada a partir de uma instância do AWS OpsWorks Stacks

Para usar uma instância personalizada do AWS OpsWorks Stacks Linux para criar uma AMI, esteja ciente de que cada instância do Amazon EC2 criada OpsWorks pela inclui uma identidade exclusiva. Se você criar uma AMI personalizada de tal instância, ela inclui a identidade, e todas as instâncias com base na AMI tem a mesma identidade. Para garantir que as instâncias com base em sua AMI personalizada tenham uma identidade exclusiva, remova a identidade da instância personalizada antes de criar a AMI.

Para criar uma AMI personalizada a partir de uma instância do AWS OpsWorks Stacks
  1. Crie uma pilha do Linux e adicione uma ou mais camadas para definir a configuração da instância personalizada. Você pode usar layers integrados, personalizados como apropriado, bem como layers totalmente personalizadas. Para ter mais informações, consulte Personalizando pilhas AWS OpsWorks.

  2. Edite as camadas e desative AutoHealing.

  3. Adicione uma instância com a sua distribuição preferida do Linux à camada ou camadas e a inicie. Recomendamos o uso de uma instância baseada no Amazon EBS. Abra a página de detalhes da instância e registre seu ID do Amazon EC2 para mais tarde.

  4. Quando a instância estiver online, faça login com o SSH e execute um dos quatro comandos a seguir, dependendo do sistema operacional da instância.

  5. Para uma instância do Amazon Linux em uma pilha do Chef 11 ou do Chef 12 ou uma instância do Red Hat Enterprise Linux 7 em uma pilha do Chef 11, faça o seguinte:

    1. sudo /etc/init.d/monit stop

    2. sudo /etc/init.d/opsworks-agent stop

    3. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /etc/chef

      nota

      Para instâncias em uma pilha do Chef 12, adicione as duas pastas a seguir a este comando:

      • /var/chef

      • /opt/chef

    4. sudo rpm -e opsworks-agent-ruby

    5. sudo rpm -e chef

  6. Para uma instância do Ubuntu 16.04 LTS ou 18.04 LTS em uma pilha do Chef 12, faça o seguinte:

    1. sudo systemctl stop opsworks-agent

    2. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /var/chef /opt/chef /etc/chef

    3. sudo apt-get -y remove chef

    4. sudo dpkg -r opsworks-agent-ruby

    5. systemctl stop apt-daily.timer

    6. systemctl stop apt-daily-upgrade.timer

    7. rm /var/lib/systemd/timers/stamp-apt-daily.timer

    8. rm /var/lib/systemd/timers/stamp-apt-daily-upgrade.timer

  7. Para outras versões do Ubuntu compatíveis em uma pilha do Chef 12, faça o seguinte:

    1. sudo /etc/init.d/monit stop

    2. sudo /etc/init.d/opsworks-agent stop

    3. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /var/chef /opt/chef /etc/chef

    4. sudo apt-get -y remove chef

    5. sudo dpkg -r opsworks-agent-ruby

  8. Para uma instância do Red Hat Enterprise Linux 7 em uma pilha do Chef 12, faça o seguinte:

    1. sudo systemctl stop opsworks-agent

    2. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /etc/chef /var/chef

    3. sudo rpm -e opsworks-agent-ruby

    4. sudo rpm -e chef

  9. Esta etapa depende do tipo de instância:

  10. Limpe sua pilha retornando ao console do AWS OpsWorks Stacks e excluindo a instância da pilha.

Criar uma AMI do Windows personalizada

Os procedimentos a seguir criam AMIs personalizadas para o Windows Server 2022 Base. Você pode escolher outros sistemas operacionais Windows Server no console de gerenciamento do Amazon EC2.

Importante

Atualmente, o agente AWS OpsWorks Stacks não pode ser instalado e o AWS OpsWorks Stacks não pode gerenciar instâncias baseadas em Windows que usam um idioma de interface de usuário do sistema diferente de inglês - Estados Unidos (en-US).

Criação de uma AMI personalizada do Windows com o Sysprep

A criação de AMIs personalizadas do Windows usando o Sysprep normalmente resulta em uma execução mais lenta de uma instância, mas é um processo mais claro. A primeira inicialização de uma instância criada a partir de uma imagem criada com Sysprep leva mais tempo devido Sysprep às atividades, reinicializações, provisionamento de AWS OpsWorks pilhas e primeira execução de AWS OpsWorks pilhas, incluindo instalação e configuração. Conclua as etapas para a criação de uma AMI personalizada do Windows no console Amazon EC2.

Para criar uma AMI personalizada do Windows com o Sysprep
  1. No console do Amazon EC2, escolha Iniciar instância.

  2. Localize Microsoft Windows Server 2022 Base e escolha Selecionar.

  3. Selecione o tipo de instância que desejar e escolha Configure Instance Details. Faça as alterações de configuração na AMI, incluindo as configurações de nome da máquina, de armazenamento e de grupo de segurança. Escolha Executar.

  4. Após o término do processo de inicialização da instância, obtenha sua senha e então conecte-se à instância em uma janela Conexão de Área de Trabalho Remota do Windows.

  5. Na tela inicial do Windows, escolha Iniciar e comece a digitar ec2configservice até que os resultados mostrem o console EC2 ConfigServiceSettings. Abra o console de .

  6. Na guia Geral, verifique se a caixa de seleção Habilitar UserData execução está preenchida (embora essa opção não seja necessáriaSysprep, ela é necessária para que o AWS OpsWorks Stacks instale seu agente). Desmarque a caixa de seleção da opção Set the computer name of the instance... (Definir o nome do computador da instância ...), pois essa opção pode causar um loop de reinicialização com o AWS OpsWorks Stacks.

  7. Na aba Imagem, defina Senha do administrador como Aleatória para permitir que o Amazon EC2 gere automaticamente uma senha que poderá ser recuperada com uma chave SSH ou Especificar para especificar sua própria senha. O Sysprep salva essa configuração. Se você especificar sua própria senha, armazene a senha em um local conveniente. Recomendamos que você não escolha Keep Existing.

  8. Escolha Apply e, em seguida, Shutdown with Sysprep. Quando for solicitada sua confirmação, escolha Yes.

  9. Após a interrupção da instância, no console Amazon EC2, clique com o botão direito do mouse na instância na lista Instâncias, escolha Imagem e, depois, Criar imagem.

  10. Na página Create Image, forneça um nome e uma descrição para a imagem e especifique a configuração do volume. Quando terminar, selecione Create Image.

  11. Abra a página Images e espere que sua imagem mude do estágio pending para available. Sua nova AMI está pronta para uso.

Criação de uma AMI personalizada do Windows sem o Sysprep

Conclua as etapas para a criação de uma AMI personalizada do Windows no console Amazon EC2.

Para criar uma AMI personalizada do Windows sem o Sysprep
  1. No console do Amazon EC2, escolha Iniciar instância.

  2. Localize Microsoft Windows Server 2022 Base e escolha Selecionar.

  3. Selecione o tipo de instância que desejar e escolha Configure Instance Details. Faça as alterações de configuração na AMI, incluindo as configurações de nome da máquina, de armazenamento e de grupo de segurança. Escolha Executar.

  4. Após o término do processo de inicialização da instância, obtenha sua senha e então conecte-se à instância em uma janela Conexão de Área de Trabalho Remota do Windows.

  5. Na instância, abra C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml, altere as duas configurações a seguir e salve e feche o arquivo:

    • Ec2SetPassword para Enabled

    • Ec2HandleUserData para Enabled

  6. Desconecte-se da sessão Área de trabalho remota e volte para o console do Amazon EC2.

  7. Na lista Instances, interrompa a instância.

  8. Após a interrupção da instância, no console Amazon EC2, clique com o botão direito do mouse na instância na lista Instâncias, escolha Imagem e, depois, Criar imagem.

  9. Na página Create Image, forneça um nome e uma descrição para a imagem e especifique a configuração do volume. Quando terminar, selecione Create Image.

  10. Abra a página Images e espere que sua imagem mude do estágio pending para available. Sua nova AMI está pronta para uso.

Adição de uma nova instância usando uma AMI personalizada do Windows

Depois que sua imagem mudar para o estado available, você poderá criar novas instâncias que estejam de acordo com a AMI personalizada do Windows. Ao escolher Use custom Windows AMI (Usar a AMI do Windows personalizada) na lista Operating system (Sistema operacional), o AWS OpsWorks Stacks exibe uma lista com as AMIs personalizadas.

Para adicionar uma nova instância com base em uma AMI personalizada do Windows
  1. Quando sua nova AMI estiver disponível, acesse o console AWS OpsWorks Stacks, abra a página Instâncias para uma pilha do Windows e escolha + Instance na parte inferior da página para adicionar uma nova instância.

  2. Na guia New, selecione Advanced.

  3. Na lista suspensa Operating system, escolha Use custom Windows AMI.

  4. Na lista suspensa Custom AMI, escolha a AMI criada e então selecione Add Instance.

Agora você pode iniciar e executar a instância.