Mantendo o sistema de arquivos do usuário persistente nas instâncias spot do AWS EC2

5

Notei que, depois que uma nova instância de Amazon AWS EC2 spot é iniciada automaticamente (eu tenho essa opção ativada), o estado do sistema de arquivos não é atual (representa o último estado anterior A instância spot é desligamento automático devido ao preço atual ultrapassando o limite definido. Eu acho que o estado inicial do sistema de arquivos da instância spot recém-lançado é baseado no AMI que eu uso para iniciar automaticamente a instância spot. Eu tenho as seguintes perguntas:

É possível, e, se sim, o que pode ser feito, para automatizar o salvamento do estado do sistema de arquivos antes do desligamento automático e restaurá-lo durante o lançamento automático de uma nova instância spot? Se não for possível, pelo menos, é possível automatizar o download e a execução de scripts de shell que levariam o sistema a um estado desejado (atualizar automaticamente o sistema via apt-get , obter o código-fonte mais recente via git etc. )?

Obrigado!

    
por Aleksandr Blekh 21.05.2014 / 13:20

2 respostas

7

Você pode iniciar sua instância spot com um volume de raiz persistente do EBS (ou anexar um pós-inicialização de volume do EBS separado). O volume do EBS permanecerá após sua instância spot terminar.

Veja o link

    
por 21.05.2014 / 16:21
1

As instâncias spot (e realmente todas do EC2) são otimizadas para casos de uso em que você não precisa manter o estado. Quando você configurou sua solicitação de instância spot, forneceu um ID da AMI que cada instância usa para inicializar. Como você descobriu, as alterações não são confirmadas para essa AMI.

Se você realmente precisa de um sistema de arquivos compartilhado, configure um servidor de longa execução (não-spot-instância) no EC2 e exporte um sistema de arquivos NFS para suas instâncias spot.

Se tudo o que você realmente precisa fazer, no entanto, é executar alguns comandos na inicialização para atualizar as coisas e implantar seu código, o que pode ser feito através do texto de dados do usuário que você pode configurar em sua solicitação de instância spot. . Basta escrever um script de shell para fazer o que você deseja e, em seguida, fornecer isso como seus dados de usuário em sua solicitação spot (ou qualquer outra configuração de inicialização de instância do EC2). Esse script será executado como root quando a instância for inicializada.

    
por 21.05.2014 / 14:47