Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Instances Spot : tirer le meilleur des Auto Scaling groups et de Spot Scaling

By Matan BordoDec 12, 20236 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Comment optimiser l'utilisation des instances Spot via les Auto Scaling groups (ASG), avec des stratégies adaptées à chaque scénario, et maximiser vos économies grâce à DoiT Spot Scaling.

Dans la première partie de notre série consacrée aux instances Spot, nous avons posé les concepts fondamentaux, leurs avantages et les points clés pour les exploiter efficacement.

Dans cette suite, nous verrons comment optimiser l'utilisation des instances Spot avec les Auto Scaling groups (ASG), et nous décortiquerons les stratégies d'allocation Spot pour identifier celle qui convient le mieux à chaque situation, et pourquoi.

Enfin, nous verrons comment maximiser vos économies avec DoiT Spot Scaling, qui simplifie le travail complexe de configuration et de gestion des ASG pour les instances Spot.

Les Auto Scaling groups (ASG) en clair

Les ASG sont un mécanisme de gestion de groupes d'instances. Ils rendent vos workloads plus élastiques en ajustant automatiquement le nombre d'instances déployées en fonction de la demande, et renforcent la tolérance aux pannes.

Monter en capacité (scale out) lorsque la demande augmente garantit performance et réactivité ; la réduire (scale in) en période creuse permet d'éviter des coûts inutiles.

Vous pouvez les configurer pour définir les types d'instances et les zones de disponibilité autorisés, les seuils minimum et maximum du nombre d'instances, ou encore la politique d'instances mixtes (part d'instances Spot par rapport aux instances on-demand), entre autres. Une fois paramétrés, les ASG automatisent l'essentiel de la gestion des ressources.

Schéma d'un Auto Scaling group

Pour un site e-commerce, par exemple, il est bien plus simple d'absorber les variations de trafic web grâce aux Auto Scaling groups.

Sans eux, gérer manuellement ces fluctuations exigerait une surveillance permanente et des réactions immédiates pour éviter pannes et ralentissements, au risque de dégrader l'expérience utilisateur et de provoquer des pertes de revenus.

ASG et instances Spot

Les ASG jouent un rôle particulièrement important avec les instances Spot, car ils gèrent les interruptions Spot et optimisent leur utilisation en remplaçant automatiquement les instances interrompues.

Les ASG ne répartissent pas directement les workloads entre les instances, mais ils garantissent que le nombre d'instances voulu reste disponible. La répartition des workloads entrants ou des requêtes web est généralement assurée par des services comme les Elastic Load Balancers. Les ASG s'appuient sur ces équilibreurs de charge pour diriger automatiquement le trafic vers chaque nouvelle instance créée, et ainsi équilibrer efficacement la charge.

Ils offrent en plus la flexibilité d'utiliser différents types d'instances au sein d'un même groupe. Vous pouvez ainsi exploiter divers types d'instances Spot selon la disponibilité et le coût.

Stratégies d'allocation Spot

Lors de la configuration de vos Auto Scaling groups, l'un des paramètres à définir est la stratégie d'allocation Spot. Voici les différentes approches possibles pour enchérir sur les instances Spot et les obtenir :

Lowest price

La stratégie Lowest price cible les pools d'instances les moins chers disponibles. Comme elle privilégie le prix sur la capacité, rien ne garantit que ces pools disposent d'une capacité suffisante : le risque d'interruption augmente d'autant.

Cas d'usage type : un pipeline d'analyse de données traitant de gros volumes. Il peut planifier ses jobs durant les périodes de prix Spot bas avec la stratégie lowest-price. Les interruptions pendant les périodes de prix Spot plus élevés ont un impact minimal, le pipeline reprenant son traitement dès que les prix Spot retombent.

Capacity-optimized

La stratégie Capacity-optimized privilégie les pools d'instances disposant de la plus grande capacité disponible, ce qui réduit le risque d'interruption.

Adoptez-la lorsque la haute disponibilité est cruciale et que votre workload exige un pool d'instances stable, avec peu d'interruptions.

Pour un service de streaming, par exemple, la disponibilité passe avant tout : il s'agit de ne pas dégrader l'expérience de visionnage de vos utilisateurs.

Diversified

La stratégie Diversified répartit votre allocation d'instances Spot sur l'ensemble des pools disponibles.

Privilégiez-la si vous avez la latitude d'utiliser différents types d'instances ou plusieurs zones de disponibilité, afin de maximiser vos chances d'obtenir des instances.

Elle s'avère souvent la meilleure option lorsque vous opérez sur plusieurs régions ou exécutez plusieurs applications aux besoins en ressources distincts.

Price & capacity-optimized

La stratégie d'allocation Price & capacity-optimized équilibre prix et disponibilité, et offre les meilleures chances d'obtenir de la capacité Spot sans sacrifier la disponibilité.

Elle est idéale lorsque la demande varie au cours de la journée mais que vos services exigent une disponibilité élevée — typiquement, une boutique en ligne.

Quels écueils peuvent survenir avec les instances Spot dans les ASG ?

Deux préoccupations reviennent chez les clients AWS au moment d'intégrer des instances Spot — ou d'en élargir l'usage — dans leurs ASG : 1) la fiabilité et 2) la complexité de configuration.

Les instances Spot pouvant être interrompues par AWS avec un préavis de deux minutes, la fiabilité applicative peut s'en trouver affectée. Comme évoqué plus haut, l'impact dépend du cas d'usage.

Plus important encore, déployer des instances Spot dans les Auto Scaling Groups peut s'avérer complexe : il faut configurer correctement les launch templates, les politiques d'instances mixtes et bien d'autres paramètres.

Par ailleurs, trouver la configuration la mieux adaptée pour faire tourner vos ASG de manière fiable et économique avec des instances Spot demande l'analyse de nombreuses variables. Il faut sélectionner les bons types d'instances, AZ, VPC et stratégies d'allocation, entre autres, pour garantir une capacité optimale et un maximum d'économies. Cela peut impliquer de spécifier plusieurs zones de disponibilité, de définir des politiques de scaling et d'intégrer d'autres services AWS.

Spot Scaling

DoiT Spot Scaling vous aide à mieux adopter les instances Spot — et donc à économiser davantage — en recommandant des configurations optimales pour vos ASG.

L'outil gère la composition d'instances de vos Auto Scaling Groups (ASG) afin que vous puissiez tirer parti des instances Spot sans craindre les interruptions.

Voici par exemple un Auto Scaling group qui gagnerait à être mieux configuré pour maximiser économies Spot et disponibilité. Dans sa configuration actuelle, il n'autorise qu'un seul type d'instance et uniquement des instances on-demand.

Spot Scaling recommande des types d'instances supplémentaires aux attributs proches de ceux sélectionnés, élargissant ainsi le nombre de pools d'instances exploitables.

En autorisant davantage de types d'instances et de zones de disponibilité, vous réduisez le risque de manquer d'instances Spot.

Si aucun pool ne dispose de capacité disponible, Spot Scaling bascule automatiquement sur des instances on-demand (même si votre politique d'instances mixtes est à 100 % Spot), jusqu'à ce que les instances Spot redeviennent disponibles.

Il vous suffit de passer en revue les recommandations, de les ajuster à votre convenance, puis de cliquer sur Apply Recommendations. Spot Scaling prend ensuite le relais sur cet ASG.

Comment CattleEye a réduit ses dépenses EC2 de plus de 60 % avec Spot Scaling

Avec ses pipelines d'inférence exécutés sur AWS Batch, CattleEye applique la vision par ordinateur à des caméras grand public pour surveiller les vaches et analyser les images afin d'améliorer le bien-être de plus d'un million d'animaux.

Mais l'analyse en temps réel des bovins est gourmande en calcul, et AWS EC2 représente l'essentiel des coûts de CattleEye. L'entreprise utilisait au départ des instances GPU, ce qui rendait difficile l'exploitation des instances Spot. Elle n'avait pas non plus le temps de rechercher d'autres types d'instances adaptés qui lui auraient permis de pousser plus loin l'usage du Spot.

CattleEye s'est appuyée sur Spot Scaling pour mieux adopter les instances Spot. Initialement dépendante exclusivement des instances on-demand, son traitement batch tourne désormais à 100 % sur des instances Spot — et CattleEye économise ainsi plus de 60 % sur EC2.

Découvrez Spot Scaling lors d'une visite interactive

Mettre en place et gérer des instances Spot au sein des ASG peut sembler intimidant, mais des outils comme DoiT Spot Scaling fluidifient le processus. En recommandant des configurations optimales et en gérant dynamiquement la composition des instances, Spot Scaling assure des économies Spot maximales tout en préservant la disponibilité.

Si vous déployez des instances EC2 avec des Auto Scaling groups, découvrez Spot Scaling ici ou contactez-nous pour découvrir comment DoiT peut vous aider à optimiser vos coûts de calcul avec les instances Spot, et plus largement votre facture cloud.