Wie automatisiere ich den Start einer Amazon EC2-Instanz, die Ausführung einiger Befehle und das Herunterfahren?


8

Ich muss innerhalb von 7 Tagen 100 GB Dateien herunterladen (es sind ungefähr 150 Dateien), bevor sie ablaufen. Der Download ist vom Host zeitlich begrenzt, so dass es VIEL länger dauert als die theoretische Übertragungsrate, die auf normalen Internetgeschwindigkeiten basiert. Ich habe ein Skript mit Curl- Befehlen http://curl.haxx.se/docs/manpage.html - eine Zeile pro Datei.

Ich hatte die Idee, n EC2-Instanzen automatisch hochzufahren, den Befehl auszuführen und die Dateien per FTP an einen zentralen Ort zu senden und dann die Maschinen herunterzufahren. Wie würde ich das machen?

Es ist mir egal, ob es Linux oder Windows ist.

Antworten:


7

Ich würde empfehlen, einen der AMIs von Canonical in Verbindung mit Cloud-Init zu verwenden

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

Suchen Sie nach dem Abschnitt über "Benutzerdatenskripte", in dem Sie die Datei --user-data verwenden können, um ein Skript beim Start automatisch zu starten. Sie können also einfach alle Befehle, die Sie ausführen möchten, in das Skript einfügen und am Ende des Skripts "shutdown -h now" einfügen.


Es sieht so aus, als ob das offizielle Amazon Linux AMI auch CloudInit unterstützt: aws.typepad.com/aws/2010/09/introducing-amazon-linux-ami.html
dialt0ne

1

Ich habe Boto verwendet, um solche Dinge zu schreiben. Am einfachsten ist es, Linux-Images hochzufahren und dann in sie zu ssh, damit sie funktionieren.


0

Ich bin mir nicht sicher, welche Lösung die beste ist. Wenn Sie dies jedoch regelmäßig tun und etwas benötigen, um Ihre Maschinen automatisch zu starten und zu stoppen, sollten Sie sich dieses Produkt ansehen : http://LabSlice.com (mit dem Haftungsausschluss, dass ich der CTO bin).


Ihr Produkt sieht gut aus und Ihre Website sieht auch großartig aus. Ich habe die andere Antwort akzeptiert, weil sie spezifischer für die Skripte war.
Howiecamp

0

Vagrant mit dem AWS-Anbieter macht das einfach und ist plattformübergreifend.

Sobald das Vagrantfileerstellt ist, starten Sie die Instanz mit vagrant up, melden sich mit vagrant sshan und zerstören sie mit vagrant destroy. Super einfach.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.