Come automatizzare l'avvio di un'istanza Amazon EC2, l'esecuzione di alcuni comandi e l'arresto?


8

Devo scaricare 100 GB di file (in circa 150 file) entro un periodo di 7 giorni prima che scadano. Il download è limitato dalla velocità dell'host, quindi impiega molto più tempo della velocità di trasferimento teorica basata sulle normali velocità di Internet. Ho uno script di curl http://curl.haxx.se/docs/manpage.html comandi - una riga per file.

Ho avuto l'idea di girare automaticamente su n istanze EC2, eseguire il comando e inviare i file FTP in una posizione centrale, quindi spegnere le macchine. Come lo farei?

Non mi importa se è Linux o Windows.

Risposte:


7

Consiglierei di utilizzare una delle AMI di Canonical in combinazione con cloud-init

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

Cerca la sezione "Script utente-dati" in cui è possibile utilizzare il file --user-data per avviare automaticamente uno script all'avvio. Quindi, puoi semplicemente mettere tutti i comandi che vuoi eseguire nello script e mettere "shutdown -h now" alla fine dello script.


Sembra che l'AMI Amazon Linux ufficiale supporti anche CloudInit: aws.typepad.com/aws/2010/09/introducing-amazon-linux-ami.html
dialt0ne

1

Ho usato boto per scrivere queste cose prima. È più facile far girare le immagini di Linux e poi usarle per farle funzionare.


0

Non sono sicuro della soluzione migliore. Ma se lo fai su base regolare e hai bisogno di qualcosa per avviare e arrestare automaticamente le tue macchine, allora potresti voler guardare questo prodotto: http://LabSlice.com (con la dichiarazione di non responsabilità che sono il CTO).


il tuo prodotto ha un bell'aspetto e anche il tuo sito è fantastico. Ho accettato l'altra risposta, però, perché era più specifica sugli script.
Howiecamp,

0

Vagrant con il provider AWS lo fa facilmente ed è multipiattaforma.

Una volta Vagrantfilecreato, quindi avvia l'istanza con vagrant up, accedi con vagrant sshe distruggila con vagrant destroy. Super-facile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.