Temos uma frota de servidores Nginx no Amazon EC2, onde ocasionalmente precisamos atualizar os arquivos de configuração para implementar novas configurações.
Atualmente, temos as configurações em uma AMI personalizada e, se precisarmos atualizar, precisamos reconstruir a AMI e, em seguida, as instâncias do EC2. Temos alguns scripts auxiliares, mas ainda é um grande esforço para fazer isso. Existe alguma maneira melhor?
amazon-web-services
amazon-ec2
Bububu
fonte
fonte
Respostas:
Há vários conceitos que você pode aproveitar.
A chave do sucesso é a automação
A primeira opção é continuar fazendo o que você está fazendo agora, ou seja, reconstruir os EC2s a cada alteração na configuração . Apenas de uma maneira totalmente automatizada.
Agora que você está fazendo atualizações de configuração por meio de AMIs, você dá um passo adiante e cria um pipeline que, após uma alteração no arquivo de configuração em algum repositório, irá:
A segunda opção é manter as instâncias no lugar e implantar apenas os arquivos de configuração , sem reconstruí-los. Geralmente, você pode tratar os arquivos de configuração como código e implantar suas alterações de configuração da mesma maneira que implementaria liberações de código. A AWS tem muitas ferramentas para ajudar nisso.
Depois de se familiarizar com a automação dessas atualizações de configuração do Nginx, convém estender a automação para o restante de sua infraestrutura.
Há um ótimo whitepaper Visão geral das opções de implantação na AWS que fornecerá uma boa visão geral.
Espero que ajude :)
fonte
Armazene suas configurações no EFS e monte o EFS no local em que as configurações do Nginx são esperadas. Em alternativa, coloque-os no Amazon S3 e execute uma sincronização ocasionalmente ou use s3fs (cuidado com o s3fs pode não ser bom o suficiente para uso em produção).
Quando você precisar alterar sua configuração, aumente o tamanho desejado do grupo de dimensionamento automático para dobrar o que você precisa para acionar novas instâncias com a nova configuração e, em seguida, volte para o que você precisa, o que removerá as instâncias antigas. Como alternativa, basta fazer uma reinicialização contínua dos servidores.
Outra opção é simplesmente enviar as novas configurações para o servidor usando uma ferramenta básica de automação, como a implantação de código da AWS.
As opções totalmente automatizadas acima são tecnicamente melhores e mais limpas, mas se você raramente alterar as configurações e desejar uma solução fácil, isso poderá ajudar.
fonte
Comando de Execução da AWS https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html
Ou você pode usar o Opsworks https://aws.amazon.com/opsworks/
fonte
Reconstruir as AMIs ou criar pipelines de implantação completos como os outros sugerem apenas para uma alteração no arquivo de configuração parece um exagero. Você deve usar o Ansible para enviar alterações e manter todos os seus nós sincronizados. Existem muitos módulos Ansible que podem ajudá-lo a automatizar as tarefas comuns.
fonte