Utilisez des stratégies d'allocation pour déterminer comment EC2 Fleet ou Spot Fleet exploite les capacités sur place et à la demande - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisez des stratégies d'allocation pour déterminer comment EC2 Fleet ou Spot Fleet exploite les capacités sur place et à la demande

Lorsque vous utilisez plusieurs pools de capacités (chacun comprenant un type d'instance et une zone de disponibilité) dans un EC2 parc ou un parc d'emplacements, vous pouvez utiliser une stratégie d'allocation pour gérer la manière dont Amazon EC2 utilise vos capacités ponctuelles et à la demande à partir de ces pools. Les stratégies d'allocation peuvent optimiser la capacité disponible, le prix et les types d'instances à utiliser. Il existe différentes stratégies d'allocation pour les instances ponctuelles et les instances à la demande.

Stratégies d’allocation pour instances Spot

Votre configuration de lancement détermine tous les pools de capacité Spot possibles (types d'instances et zones de disponibilité) à partir desquels EC2 Fleet ou Spot Fleet peut lancer des instances Spot. Toutefois, lors du lancement d'instances, le parc utilise la stratégie d'allocation que vous spécifiez pour sélectionner les pools spécifiques parmi tous les pools possibles.

Note

(Instances Linux uniquement) Si vous configurez votre instance Spot pour qu'elle soit lancée avec AMDSEV- SNP activé, des frais d'utilisation supplémentaires vous sont facturés, équivalant à 10 % du tarif horaire à la demande pour le type d'instance sélectionné. Si la stratégie d'allocation utilise le prix comme entrée, la flotte n'inclut pas ces frais supplémentaires ; seul le prix spot est utilisé.

Vous pouvez spécifier l’une des stratégies d’allocation suivantes pour les instances Spot :

Capacité de prix optimisée (recommandé)

La flotte identifie les pools présentant la disponibilité de capacité la plus élevée compte tenu du nombre d'instances lancées. Cela signifie que nous demanderons des instances Spot auprès des groupes qui, selon nous, présentent le moins de risques d’interruption à court terme. La flotte demande ensuite des instances Spot auprès du pool le moins cher.

La stratégie d'allocation optimisée en termes de prix/capacité est le meilleur choix pour la plupart des charges de travail ponctuelles, telles que les applications conteneurisées sans état, les microservices, les applications Web, les tâches de données et d'analyse et le traitement par lots.

Si vous utilisez le AWS CLI, le nom du paramètre est price-capacity-optimized pour EC2 Fleet et priceCapacityOptimized pour Spot Fleet.

Capacité optimisée

La flotte identifie les pools présentant la disponibilité de capacité la plus élevée compte tenu du nombre d'instances lancées. Cela signifie que nous demanderons des instances Spot auprès des groupes qui, selon nous, présentent le moins de risques d’interruption à court terme. Vous pouvez éventuellement définir une priorité pour chaque type d'instance de votre parc, le parc étant d'abord optimisé en termes de capacité, mais respectant les priorités relatives aux types d'instance dans la mesure du possible.

Avec les instances Spot, la tarification change lentement au fil du temps en fonction des tendances à long terme en matière d’offre et de demande, mais la capacité fluctue en temps réel. La stratégie d'optimisation des capacités lance automatiquement les instances Spot dans les pools les plus disponibles en examinant les données de capacité en temps réel et en prédisant lesquelles sont les plus disponibles. Cela fonctionne bien pour les charges de travail dont le coût d'interruption lié au redémarrage du travail peut être plus élevé, telles que les longues charges de travail liées à l'intégration continue (CI), au rendu d'images et de médias, à l'apprentissage profond et au calcul haute performance (HPC) qui peuvent entraîner un coût d'interruption plus élevé associé au redémarrage du travail. En offrant la possibilité de réduire les interruptions, la stratégie d'optimisation des capacités peut réduire le coût global de votre charge de travail.

Vous pouvez également utiliser la stratégie d'allocation priorisée optimisée en termes de capacité avec un paramètre de priorité pour classer les types d'instances de la priorité la plus élevée à la plus faible. Vous pouvez définir la même priorité pour différents types d’instance. La flotte optimisera d'abord la capacité, mais respectera les priorités relatives aux types d'instances dans la mesure du possible (par exemple, si le respect des priorités n'affecte pas de manière significative la capacité de la flotte à fournir une capacité optimale). C’est une bonne option pour les charges de travail pour lesquelles la possibilité de perturbation doit être minimisée, mais la priorité de certains types d’instances est également importante. Notez que lorsque vous définissez la priorité des types d'instances pour votre capacité Spot, la même priorité est également appliquée à vos instances à la demande si la stratégie d'allocation à la demande est définie sur Priorisée. Pour Spot Fleet, l'utilisation de priorités n'est prise en charge que si votre flotte utilise un modèle de lancement.

Si vous utilisez le AWS CLI, les noms des paramètres sont capacity-optimized et capacity-optimized-prioritized pour EC2 Fleet capacityOptimized et capacityOptimizedPrioritized pour Spot Fleet.

Diversifié

Les instances Spot sont réparties sur tous les groupes de capacité Spot. Si vous utilisez le AWS CLI, le nom du paramètre correspond à la fois diversified à EC2 Fleet et à Spot Fleet.

Prix le plus bas (non recommandé)
Avertissement

Nous ne recommandons pas la stratégie d'allocation du prix le plus bas, car c'est elle qui présente le risque d'interruption le plus élevé pour vos instances Spot.

Les instances Spot proviennent du groupe dont le tarif est le plus bas et qui dispose d’une capacité disponible. Lorsque vous utilisez le AWS CLI, il s'agit de la stratégie par défaut. Cependant, nous vous recommandons de remplacer la valeur par défaut en spécifiant la stratégie d'allocation optimisée par le prix et la capacité.

Dans le cadre de la stratégie de prix le plus bas, si le pool le moins cher ne dispose pas de capacité disponible, les instances Spot proviennent du pool le moins cher qui dispose de la capacité disponible. Si un pool est à court de capacité avant d'atteindre la capacité souhaitée, la flotte continuera de répondre à votre demande en puisant dans le pool le moins cher suivant. Pour garantir que la capacité souhaitée est atteinte, vous pouvez recevoir des instances Spot de plusieurs groupes.

Cette stratégie prenant uniquement en compte que le prix des instances et non la capacité disponible, elle peut entraîner des taux d’interruption élevés.

La stratégie d'allocation du prix le plus bas n'est disponible que lorsque vous utilisez le AWS CLI. Le nom du paramètre est lowest-price pour EC2 Fleet et lowestPrice pour Spot Fleet.

Nombre de piscines à utiliser

Nombre de groupes d’instances Spot auxquels allouer votre capacité Spot cible. Valable uniquement lorsque la stratégie d'allocation est définie sur le prix le plus bas. La flotte sélectionne les pools de Spot les moins chers et répartit uniformément votre capacité de Spot cible entre le nombre de pools de Spot que vous spécifiez.

Notez que le parc essaie de tirer des instances Spot à partir du nombre de pools que vous spécifiez dans la mesure du possible. Si un pool est à court de capacité ponctuelle avant d'atteindre votre capacité cible, la flotte continuera de répondre à votre demande en puisant dans le pool le moins cher suivant. Pour garantir l’atteinte de votre capacité cible, il se peut que vous receviez des instances Spot provenant d’un nombre de groupes supérieur à celui que vous avez spécifié. De même, si la plupart des pools n’ont pas de capacité Spot, il se peut que vous receviez votre capacité cible complète à partir d’un nombre de groupes inférieur à celui que vous avez spécifié.

Ce paramètre n'est disponible que lorsque vous spécifiez la stratégie d'allocation du prix le plus bas et uniquement lorsque vous utilisez le AWS CLI. Le nom du paramètre concerne InstancePoolsToUseCount à la fois EC2 Fleet et Spot Fleet.

Stratégies d'allocation pour les instances à la demande

Votre configuration de lancement détermine tous les pools de capacités possibles (types d'instances et zones de disponibilité) à partir desquels EC2 Fleet ou Spot Fleet peut lancer des instances à la demande. Toutefois, lors du lancement d'instances, le parc utilise la stratégie d'allocation que vous spécifiez pour sélectionner les pools spécifiques parmi tous les pools possibles.

Vous pouvez définir l'une des stratégies d'allocation suivantes pour les instances à la demande :

Prix le plus bas

Les instances à la demande proviennent du pool le moins cher disposant de la capacité disponible. Il s’agit de la stratégie par défaut.

Si le pool le moins cher ne dispose pas de capacité disponible, les instances à la demande proviennent du pool le moins cher qui dispose de la capacité disponible.

Si un pool est à court de capacité avant d'atteindre la capacité souhaitée, la flotte continuera de répondre à votre demande en puisant dans le pool le moins cher suivant. Pour garantir que la capacité souhaitée est atteinte, vous pouvez recevoir des instances à la demande provenant de plusieurs pools.

Priorisé

La flotte utilise la priorité que vous avez attribuée à chaque remplacement de modèle de lancement, en lançant les types d'instances par ordre de priorité la plus élevée en premier. Cette stratégie ne peut pas être utilisée avec la sélection du type d'instance basée sur les attributs. Pour un exemple d'utilisation de cette stratégie d'allocation, voirHiérarchiser les types d’instance pour la capacité à la demande.

Choisissez la stratégie d'allocation au comptant appropriée

Vous pouvez optimiser votre flotte en fonction de votre cas d’utilisation en choisissant la stratégie d’allocation de points appropriée.

Trouver un équilibre entre le prix le plus bas et la capacité disponible

Pour équilibrer les compromis entre les pools de capacité spot les moins chers et les pools de capacité spot offrant la plus grande disponibilité de capacité, nous vous recommandons d'utiliser la stratégie d'allocation optimisée en termes de prix/capacité. Cette stratégie prend des décisions concernant les groupes auprès desquels il convient de demander des instances Spot en fonction à la fois du prix des groupes et de la capacité disponible des instances Spot dans ces groupes. Cela signifie que nous demanderons des instances Spot auprès des groupes qui, selon nous, présentent le moins de risques d’interruption à court terme, tout en tenant compte du prix.

Si votre flotte exécute des charges de travail résilientes et apatrides, notamment des applications conteneurisées, des microservices, des applications Web, des tâches de données et d'analyse, ainsi que le traitement par lots, utilisez la stratégie d'allocation optimisée des capacités en termes de prix pour des économies de coûts et une disponibilité des capacités optimales.

Si votre flotte exécute des charges de travail dont l’interruption entraîne des coûts plus élevés associés au travail de redémarrage, vous devez implémenter des points de contrôle afin que les applications puissent redémarrer à partir de ce point, si elles sont interrompues. En utilisant le point de contrôle, vous adaptez la stratégie d'allocation optimisée en termes de prix/capacité à ces charges de travail, car elle alloue de la capacité à partir des pools les moins chers qui offrent également un faible taux d'interruption des instances ponctuelles.

Pour des exemples de JSON configurations qui utilisent la stratégie d'allocation optimisée par le prix et la capacité, consultez ce qui suit :

Lorsque les charges de travail ont un coût d’interruption élevé

Vous pouvez éventuellement utiliser la stratégie d'optimisation des capacités si vous exécutez des charges de travail qui utilisent des types d'instances à prix similaires ou lorsque le coût des interruptions est si important que toute économie de coûts est insuffisante par rapport à une augmentation marginale des interruptions. Cette stratégie alloue la capacité à partir des groupes de capacité Spot les plus disponibles qui offrent la possibilité de moins d’interruptions, ce qui peut réduire le coût global de votre charge de travail.

Lorsque les risques d'interruptions doivent être minimisés mais que la préférence pour certains types d'instances est importante, vous pouvez exprimer les priorités de votre pool en utilisant la stratégie d'allocation priorisée optimisée en termes de capacité, puis en définissant l'ordre des types d'instances à utiliser, de la priorité la plus élevée à la plus faible.

Notez que lorsque vous définissez des priorités pour l'optimisation des capacités, les mêmes priorités sont également appliquées à vos instances à la demande si la stratégie d'allocation à la demande est définie sur Priorisée. Notez également que, pour Spot Fleet, l'utilisation de priorités n'est prise en charge que si votre flotte utilise un modèle de lancement.

Pour des exemples de JSON configurations qui utilisent la stratégie d'allocation optimisée en termes de capacité, consultez les rubriques suivantes :

Pour des exemples de JSON configurations qui utilisent la stratégie d'allocation priorisée optimisée en termes de capacité, consultez ce qui suit :

Lorsque votre charge de travail est flexible dans le temps et que la capacité disponible n’est pas un facteur

Si votre flotte est petite ou fonctionne pendant une courte période, vous pouvez utiliser la capacité tarifaire optimisée pour maximiser les économies tout en tenant compte de la disponibilité des capacités.

Lorsque votre flotte est importante ou s’exécute pendant une longue période

Si votre flotte est importante ou fonctionne depuis longtemps, vous pouvez améliorer la disponibilité de votre flotte en répartissant les instances ponctuelles sur plusieurs pools en utilisant la stratégie diversifiée. Par exemple, si votre parc indique 10 pools et une capacité cible de 100 instances, le parc lance 10 instances ponctuelles dans chaque pool. Si le prix Spot d’un pool dépasse le prix maximum de ce pool, seul 10 % de votre flotte est touché. Avec cette stratégie, votre flotte est également moins affecté par les augmentations du prix Spot dans un pool au fil du temps. Dans le cadre de cette stratégie diversifiée, la flotte ne lance pas d'instances ponctuelles dans des pools dont le prix au comptant est égal ou supérieur au prix à la demande.

Maintien de la capacité cible pour les instances Spot

Une fois les instances Spot résiliées en raison d'une modification du prix Spot ou de la capacité disponible d'un pool de capacités Spot, un parc de ce type maintain lance des instances Spot de remplacement. La stratégie d’allocation détermine les groupes à partir desquels les instances de remplacement sont lancées, comme suit :

  • Si la stratégie d'allocation est optimisée en termes de prix/capacité, le parc lance des instances de remplacement dans les pools présentant la plus grande disponibilité de capacité d'instances ponctuelles, tout en tenant compte du prix et en identifiant les pools les moins chers présentant une disponibilité de capacité élevée.

  • Si la stratégie d'allocation est optimisée en termes de capacité, le parc lance des instances de remplacement dans les pools présentant la plus grande disponibilité de capacité d'instances ponctuelles.

  • Si la stratégie d'allocation est diversifiée, le parc distribue les instances Spot de remplacement dans les pools restants.

Hiérarchiser les types d’instance pour la capacité à la demande

Lorsqu'une EC2 flotte ou une flotte ponctuelle tente d'atteindre votre capacité à la demande, elle lance par défaut le type d'instance le moins cher en premier. Si la stratégie d'allocation à la demande est définie sur Priorisée, le parc utilise la priorité pour déterminer le type d'instance à utiliser en premier lors de l'exploitation de la capacité à la demande. La priorité est affectée au remplacement du modèle de lancement, et la priorité la plus élevée est lancée en premier.

Exemple : donner la priorité aux types d’instance

Dans cet exemple, vous configurez trois dérogations au modèle de lancement, chacune avec un type d’instance différent.

Le prix à la demande des types d’instance varie. Voici les types d’instance utilisés dans cet exemple, classés par ordre de prix, en commençant par le type d’instance le moins cher :

  • m4.large : le moins cher

  • m5.large

  • m5a.large

Si vous n’utilisez pas la priorité pour déterminer l’ordre, la flotte remplit la capacité à la demande en commençant par le type d’instance le moins cher.

Toutefois, supposons que vous avez des instances réservées m5.large inutilisées que vous voulez utiliser en premier. Vous pouvez définir la priorité de remplacement du modèle de lancement afin que les types d’instance soient utilisés dans l’ordre de priorité, comme suit :

  • m5.large : priorité 1

  • m4.large : priorité 2

  • m5a.large : priorité 3