AWS Spot Instance

 

Qu'est-ce qu'une instance spot ?

Une instance "spot" AWS est une instance EC2 éphémère utilisant des capacités de computing non utilisées dans le cloud AWS et disponibles à un tarif inférieur à ceux des instances EC2 classiques. Le service est disponible depuis 2009 et a vu une évolution importante depuis les deux dernières années.

Le prix d'une instance spot fluctue en fonction de la capacité AWS disponible et les tarifs sont mis à jour par AWS toutes les 5 minutes sur leur site. En moyenne le prix d'un spot peut descendre jusqu'à 90% du prix d'une instance classique à la demande !

 Cependant, une instance Spot peut être interrompue avec un préavis de 2 min lorsque la capacité doit être récupérée par AWS. Il est cependant possible de réserver des instances Spot sur des durées prédéfinies pour une réduction de 30 à 50%.

AWS propose des règles d’orchestration afin de remplacer des instances Spot interrompues dans un "parc Spot" défini sur des critères choisis par l'utilisateur : prix, nombre d'instances souhaitées dans le parc, ou encore type d'instance.

 

Cas d'usage

Une instance Spot peut être utilisée pour des applications stateless, résilientes aux interruptions et aux pannes.

  • En particulier, elles peuvent être utilisées pour du calcul haute performance (Big data ou Hadoop), de l'encodage ou du streaming vidéo en rajoutant à la demande des nœuds de calcul à prix réduit. Mais ces cas d'usage s'adressent à des sociétés ayant une forte composante R&D ou une maturité dans le Big data ou le Machine Learning.

  • Une instance spot peut être intégrée à des applications web scalable et "stateless" utilisant notamment l'auto-scaling et le service ECS. Cela peut s'avérer particulièrement avantageux pour des entreprises ayant commencé leur transformation digitale vers des applications en micro-service.

  • Enfin, les instances Spot sont très utiles pour des environnements ad-hoc notamment pour des instances de développement des IT structurées en DevOps, ou encore des PoC.

Néanmoins, l'utilisation de services d'orchestration et de scripting est nécessaire afin de profiter de l'ensemble des fonctionnalités du spot, ce qui demande une montée en compétence et peut ajouter des charges opérationnelles supplémentaires.

 

Vue sur la concurrence

Microsoft Azure et Google Cloud Platorm offrent des services similaires sur leurs plateformes :

Google VMs Préemptives

Le service de VMs Préemptives de GCP est disponible depuis déjà 2015. Il est très similaire au service spot d'AWS mais avec une différence majeure : les VMs ne sont disponibles que pour 24h au maximum, et sont éteintes avec un préavis de moins d'une minute. Par conséquent, le service est risqué pour des environnements de production, et nécessite l'implémentation d'une chaîne d'automatisation robuste pour ne pas impacter la disponibilité applicative.

Azure Low Priority VMs

Le service "Azure Low Priority VMs" d'Azure a été mis à disposition début 2018.

Contrairement à AWS Spot, le prix des VMs est fixe. Mais le service souffre d'un manque d'intégration avec le reste des services Azure et ne possède pas la même flexibilité en limitant des démarrages uniquement par "batch" de VMs via Azure batch. Le service est moins adapté à des environnements ayant de fortes dépendances, typiquement des environnements d'intégration testant une application dans un écosystème Azure.