Como automatizar uma inicialização de instância do Amazon EC2, execução de alguns comandos e desligamento?


8

Preciso fazer o download de 100 GB de arquivos (em cerca de 150) dentro de um período de 7 dias antes que eles expirem. O download é limitado pela taxa pelo host e leva muito mais tempo que a taxa de transferência teórica, com base nas velocidades normais da Internet. Eu tenho um script de comandos curl http://curl.haxx.se/docs/manpage.html - uma linha por arquivo.

Tive a ideia de ativar automaticamente n instâncias do EC2, executar o comando e enviar os arquivos por FTP para um local central e, em seguida, desligar as máquinas. Como eu faria isso?

Eu não me importo se é Linux ou Windows.

Respostas:


7

Eu recomendaria o uso de uma das AMIs da Canonical em conjunto com o cloud-init

https://help.ubuntu.com/community/CloudInit

Procure a seção "Scripts de dados do usuário", na qual você pode usar o arquivo --user-data-file para iniciar automaticamente um script na inicialização. Assim, você pode simplesmente colocar todos os comandos que deseja executar no script e colocar "shutdown -h now" no final do script.


Parece que o oficial Amazon Linux AMI também suporta CloudInit: aws.typepad.com/aws/2010/09/introducing-amazon-linux-ami.html
dialt0ne

1

Eu usei o boto para escrever essas coisas antes. É mais fácil criar imagens linux e depois ssh nelas para que elas funcionem.


0

Não tenho certeza da melhor solução. Mas se você estiver fazendo isso regularmente e precisar de algo para iniciar e parar automaticamente suas máquinas, consulte este produto: http://LabSlice.com (com o aviso de que sou o CTO).


seu produto parece ótimo e seu site também é ótimo. Aceitei a outra resposta, porque era mais específica sobre os scripts.
Howiecamp

0

O Vagrant com o provedor da AWS faz isso com facilidade e é multiplataforma.

Após a Vagrantfilecriação, inicie a instância com vagrant up, efetue login vagrant sshe destrua-a com vagrant destroy. Super fácil.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.