Attacher automatiquement le volume EBS à une nouvelle instance ponctuelle?

14

J'expérimente avec des instances ponctuelles EC2 et j'ai besoin de certaines données à conserver entre les terminaisons. Maintenant, si je comprends bien, lorsque le prix actuel dépasse mon max. enchère, il sera automatiquement résilié. Je suppose que tous les scripts d'initialisation que j'ai seront exécutés à l'arrêt afin que je puisse pousser les données vers l'EBS avant de les démonter.

Ma question est, comment puis-je monter automatiquement le même volume EBS sur la nouvelle instance spot une fois le prix baissé, car il n'aura aucun de mes scripts d'initialisation que j'aurais chargé sur le volume racine la première fois?

Dois-je créer une AMI personnalisée ou existe-t-il un autre moyen d'y parvenir?

Jeff
la source

Réponses:

11

Si vous souhaitez simplement que l'instance démarre avec un point de départ fixe à chaque exécution, vous pouvez:

  1. Créez votre propre AMI et exécutez-la en tant qu'instance à chaque fois, ou

  2. Spécifiez un script de données utilisateur qui installe et configure le logiciel selon vos spécifications chaque fois qu'une nouvelle instance est démarrée à partir d'une AMI de base standard.

Si vous devez conserver l'état entre les exécutions d'instance, vous devrez enregistrer les données quelque part en dehors de l'instance / AMI. Par exemple:

  1. Les données pourraient être mises à jour sur S3, SimpleDB, DynamoDB, RDS, etc.

  2. Vous pouvez désigner un volume EBS permanent que l'instance attache et monte dynamiquement au démarrage. Cela pourrait être fait avec un script de données utilisateur.

Eric Hammond
la source
Spécifier un script de données utilisateur qui installe semble intéressant; Comment cela peut-il être fait lorsqu'une demande ponctuelle démarre automatiquement une nouvelle instance? J'ai déjà un volume EBS permanent stockant des données, et je continuerai probablement à l'utiliser
Jeff
1
Lorsque vous créez la demande ponctuelle, vous spécifiez les données utilisateur qui doivent être transmises à chaque nouvelle instance ponctuelle.
Eric Hammond
Ah je ne m'en rendais pas compte avec le cloud-init mettant #! d'abord dans les données utilisateur exécuté un script. Merci
Jeff
3
@Jeff: Oui, j'ai inventé cela et les AMI populaires l'ont adopté :-) alestic.com/2009/06/ec2-user-data-scripts
Eric Hammond
Dans cette optique, est-il possible qu'une instance ponctuelle monte un volume EBS particulier en tant que disque racine au démarrage?
Derek Morrison
5

Découvrez le projet ec2-spotter sur GitHub. Il a été créé pour résoudre le problème que vous décrivez.

Les problèmes (# 1 à # 4) décrits dans la réponse de @ mcenzm sont réels et sont traités correctement dans ec2-spotter.

Alex R
la source
Je ne sais pas qui a rejeté cela, mais cela signifie que je peux arrêter de perdre du temps à essayer de le coder! Aimer.
Jeremy
3

J'essaie depuis un certain temps maintenant, et il y a encore un certain nombre de problèmes avec les instances ponctuelles EC2 et le stockage attaché.

  1. Le volume que vous souhaitez attacher n'est peut-être pas dans la même zone que l'instance? Les zones ne peuvent pas être spécifiées au lancement.
  2. Attacher en interne avec le script init fonctionnera, mais est un peu asynchrone, vous devrez donc le tester ou le sleep 10dire.
  3. Je ne comprends pas pourquoi la console AWS affiche une "partition" comme périphérique de bloc principal. Peut-être pour nous refuser des images Windows piratées sur une autre partition? (sda1 au lieu de sda). Bonne chance pour trouver la table de partition.

    entrez la description de l'image ici

  4. Actuellement difficile à attacher à l'aide de CLI à partir d'un point de contrôle externe, ce qui rend difficile l'utilisation d'instantanés pour le contrôle de version.

  5. Donc, en général, je sauvegarde ... tar.bz2 dans une autre boîte, puis je peux remplir la "zone de travail" au démarrage. Ceci n'est utile que pour de petits volumes de données, donc la création d'un nouvel ami avec les deux volumes est une bonne idée. Les instances ponctuelles sont vraiment bonnes pour le travail en «unité de travail» ou «redémarrable», de sorte que le concept de récupération du travail à partir d'un serveur est bien établi. Étant donné que vous attendez 9 minutes à l'extrême pour un lancement, cela ne vous dérange pas de formater votre disque (aussi petit que possible).

    1. EBS est encore assez floconneux et vous devez payer un supplément pour "optimisé". C'est encore plus rapide que d'essayer de télécharger votre travail terminé dans les années 90 environ lorsque l'instance est «tarifée».

    2. Je soupçonne que tout cela changera avec toute offre de "fichier élastique".

mckenzm
la source
1
1. Vous spécifiez le sous-réseau lié à une zone AZ. 2. Attendre que / dev / xvdx apparaisse est facile. 3. En quoi est-ce pertinent?
Morgan Christiansson