Comment automatiser le démarrage d'une instance Amazon EC2, l'exécution de certaines commandes et l'arrêt?

8

J'ai besoin de télécharger 100 Go de fichiers (c'est environ 150 fichiers) dans un délai de 7 jours avant leur expiration. Le taux de téléchargement est limité par l'hôte, donc cela prend BEAUCOUP plus longtemps que le taux de transfert théorique basé sur des vitesses Internet normales. J'ai un script de commandes curl http://curl.haxx.se/docs/manpage.html - une ligne par fichier.

J'ai eu l'idée de faire tourner automatiquement n instances EC2, d'exécuter la commande et de transférer les fichiers par FTP vers un emplacement central, puis d'arrêter les machines. Comment pourrais-je faire ça?

Je me fiche que ce soit Linux ou Windows.

Howiecamp
la source

Réponses:

7

Je recommanderais d'utiliser l'une des AMI de Canonical en conjonction avec cloud-init

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

Recherchez la section «User-Data Scripts» où vous pouvez utiliser le fichier --user-data-file pour lancer automatiquement un script au démarrage. Ainsi, vous pouvez simplement mettre toutes les commandes que vous souhaitez exécuter dans le script et mettre "shutdown -h now" à la fin du script.

dialt0ne
la source
Il semble que l'AMI d'Amazon Linux officielle prenne également en charge CloudInit: aws.typepad.com/aws/2010/09/introducing-amazon-linux-ami.html
dialt0ne
1

J'ai déjà utilisé boto pour écrire de telles choses. Le plus simple est de faire tourner des images linux puis de les faire ssh pour les faire fonctionner.

pjz
la source
0

Pas sûr de la meilleure solution. Mais si vous faites cela régulièrement et que vous avez besoin de quelque chose pour démarrer et arrêter automatiquement vos machines, alors vous voudrez peut-être regarder ce produit: http://LabSlice.com (avec l'avertissement que je suis le CTO).

Simon chez LabSlice-com
la source
votre produit est superbe et votre site aussi magnifique. J'ai cependant accepté l'autre réponse car elle était plus spécifique sur les scripts.
Howiecamp
0

Vagrant avec le fournisseur AWS le fait facilement et est multi-plateforme.

Une fois le Vagrantfilefichier créé, vous lancez l'instance avec vagrant up, vous y connectez avec vagrant sshet la détruisez avec vagrant destroy. Super simple.

Florin Andrei
la source