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á:
- Crie automaticamente uma nova AMI - uma das ferramentas mais populares para fazer isso é o Packer
- Reconstrua automaticamente sua frota Nginx - você já deve ter todos os servidores Nginx em um grupo de dimensionamento automático com um Application Load Balancer na frente. Se você não fizer isso você deve como ele vai fazer a atualização tão simples como atualizar a configuração de lançamento ASG e esperando para as instâncias para obter re-construído a partir do novo AMI.
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.
- AWS Elastic Beanstalk que usa o Chef internamente e você pode criar um script de suas atualizações do Nginx dessa maneira.
- AWS Code Deploy, que é uma ferramenta de implantação totalmente programável por script que se integra bem a outras partes do AWS Code Suite :
- Confirmação de código onde você pode manter seus arquivos de configuração do Nginx no Git.
- Code Pipeline que pode disparar automaticamente a implantação sempre que um arquivo de configuração é atualizado no Code Commit.
- Ansible ou Puppet, que são ferramentas populares que não são da AWS, que podem ajudar a manter todos os servidores configurados da mesma maneira.
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 :)