Anexar automaticamente o volume EBS a uma nova instância local?

12

Eu estou experimentando com instâncias spot do EC2 e estou precisando de alguns dados para serem retidos entre as terminações. Agora, pelo que entendi, quando o preço atual fica acima do meu máximo lance, será automaticamente rescindido. Presumo que qualquer script de inicialização que eu tenha será executado no desligamento para que eu possa enviar dados para o EBS antes de desmontar.

A minha pergunta é: como posso montar automaticamente o mesmo volume de EBS na nova instância spot quando o preço cair, já que ele não terá nenhum dos meus scripts de inicialização que eu carreguei no volume raiz da primeira vez. tempo?

Preciso criar uma AMI customizada ou existe alguma outra maneira de conseguir isso?

    
por Jeff 13.11.2012 / 02:21

3 respostas

9

Se você quiser que a instância inicie com um ponto de partida fixo sempre que for executada, você poderá:

  1. Crie sua própria AMI e execute isso como a instância a cada vez ou

  2. Especifique um script de dados do usuário que instale e configure o software de acordo com suas especificações sempre que uma nova instância for iniciada a partir de uma AMI de base padrão.

Se você precisar manter o estado entre as execuções da instância, precisará salvar os dados em algum lugar fora da instância / AMI. Por exemplo:

  1. Os dados podem ser mantidos atualizados no S3, SimpleDB, DynamoDB, RDS, etc.

  2. Você pode designar um volume EBS permanente que a instância anexa dinamicamente e monta na inicialização. Isso pode ser feito com um script de dados do usuário.

por 13.11.2012 / 03:28
5

Confira o projeto ec2-spotter no GitHub. Foi criado para resolver o problema que você descreve.

Os problemas (# 1 a 4) descritos na resposta do @mcenzm são reais e são tratados corretamente no ec2-spotter.

    
por 04.10.2015 / 09:35
3

Eu tenho tentado isso há algum tempo, e ainda há vários problemas com as instâncias spot do EC2 e o armazenamento anexado.

  1. O volume que você deseja anexar pode não estar na mesma zona da instância? As zonas não podem ser especificadas no lançamento.
  2. A conexão interna com o script de inicialização funcionará, mas é um pouco assíncrona, então você precisará testá-lo ou sleep 10 .
  3. Não consigo entender por que o console da AWS mostra uma "partição" como o dispositivo de bloco principal. Talvez para nos negar imagens de janelas piratas em outra partição? (sda1 em vez de sda). Boa sorte em encontrar a tabela de partições.

  4. AtualmenteédifícilanexarusandooCLIdopontodecontroleexterno,oquedificultaousodeinstantâneosparacontroledeversão.

  5. Então,emgeral,eufaçoback-up...tar.bz2paraoutracaixa,epossoentãopreenchera"área de trabalho" na inicialização. Isso é útil apenas para pequenos volumes de dados, portanto, baselining uma nova ami com ambos os volumes é uma boa ideia. As instâncias pontuais são realmente boas para o trabalho de "unidade de trabalho" ou "reinicializável", portanto, o conceito de buscar trabalho de um servidor está bem estabelecido. Dado que você está esperando 9 minutos ao extremo para um lançamento, você pode não se importar em formatar seu disco (o menor possível).

    1. O EBS ainda é bem esquisito e você precisa pagar mais por "otimizado". Ainda é mais rápido do que tentar enviar seu trabalho concluído em 90 ou mais quando a instância está "com o preço".

    2. Suspeito que isso mude com qualquer oferta de "arquivo elástico".

por 15.05.2015 / 02:12