Reutilizar o volume do EBS com o escalonamento automático da AWS

2

Estou tentando configurar a correção automática da minha instância do EC2. Assim, sempre que minha instância ficar inativa ou for inacessível, deverá reinicializar automaticamente ou iniciar uma nova instância preferencialmente em um AZ diferente na mesma região da AWS.

Procurei configurar o alarme do relógio de nuvem e adicionar ação para reinicializar a instância em caso de falha. Isso funciona bem se eu quiser que minha instância do EC2 seja reinicializada apenas em caso de falha.

Mas não abrange o caso em que o próprio AZ não está acessível. Então, estou tentando configurar o grupo de escalonamento automático da AWS com o número de instância de min / max como 1. Em caso de falha, quero que a nova instância seja iniciada com o volume do EBS da instância finalizada. Como eu vou em frente com isso?

Ou se houver uma maneira alternativa de alcançar o que eu quero, isso também será apreciado.

    
por Rakesh Ranjan 12.09.2017 / 11:32

3 respostas

1

Por isso, executo vários servidores únicos em ASGs para a correção automática.

O que eu fiz foi dar ao volume do EBS uma tag set.

Na inicialização, há um script cloud-init que usa o aws meta data api e CLI e obtém seu próprio ID de instância por meio da API e, em seguida, procura um volume EBS com uma tag set em seu próprio AZ. Uma vez que ele tenha o ID do volume, ele obriga a desanexar para estar no lado seguro. Em seguida, anexa a si mesmo.

Até agora, funcionou muito bem.

    
por 27.09.2017 / 18:15
0

Você conhece o EFS ou o Amazon Elastic File System? É um serviço de armazenamento de arquivos para instâncias do EC2 e você pode fazer com o que descreveu. Se você não precisar de um dispositivo de bloco (volume EBS), experimente.

Há um bom exemplo de modelo do CloudFormation que implanta instâncias do EC2 em um grupo de AutoScaling associado a um sistema de arquivos do Amazon EFS: Modelo de amostra do Amazon Elastic File System

    
por 14.09.2017 / 13:11
0

Isso é algo que poderia ser feito, mas não acho que seria fácil.

Você precisará usar um volume secundário para qualquer dado que deseje persistir nas reinicializações de instâncias. Eu não acredito que você pode criar uma instância com um volume existente como a partição raiz. Não de qualquer maneira sensata ou fácil, pelo menos.

Defina EBS "Delete on Termination" como false e faça com que o script de configuração / inicialização de inicialização verifique volumes não anexados na inicialização. Se você encontrar o volume marcado como "KeepMeAlive: true" ou algo semelhante, anexe automaticamente esse volume a si mesmo.

    
por 27.09.2017 / 17:26