Créer un groupe d’instances mixtes en utilisant la sélection du type d’instance basée sur des attributs - Amazon EC2 Auto Scaling

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.

Créer un groupe d’instances mixtes en utilisant la sélection du type d’instance basée sur des attributs

Au lieu de choisir manuellement les types d’instance pour votre groupe d’instances mixtes, vous pouvez spécifier un ensemble d’attributs d’instance qui décrivent vos besoins en calcul. Lorsque Amazon EC2 Auto Scaling lance des instances, tous les types d'instance utilisés par le groupe Auto Scaling doivent correspondre à vos attributs d'instance requis. C'est ce qu'on appelle la sélection de type d'instance basée sur des attributs.

Cette approche est idéale pour les charges de travail et les cadres qui peuvent être flexibles quant aux types d'instance qu'ils utilisent, comme les conteneurs, le big data et le CI/CD.

Voici les avantages de la sélection du type d'instance basée sur les attributs :

  • Flexibilité optimale pour les instances Spot : Amazon EC2 Auto Scaling peut choisir parmi un large éventail de types d'instances pour le lancement d'instances Spot. Cela répond à la bonne pratique Spot d'être flexible sur les types d'instance, ce qui donne au service Amazon EC2 Spot une meilleure chance de trouver et d'allouer votre quantité requise de capacité de calcul.

  • Utilisez facilement les bons types d'instances : compte tenu du grand nombre de types d'instances disponibles, la recherche des types d'instances adaptés à votre charge de travail peut prendre beaucoup de temps. Lorsque vous spécifiez des attributs d’instance, les types d’instance auront automatiquement les attributs requis pour votre charge de travail.

  • Utilisation automatique de nouveaux types d'instances : vos groupes Auto Scaling peuvent utiliser des types d'instances de nouvelle génération au fur et à mesure de leur publication. Les types d'instance de nouvelle génération sont automatiquement utilisés lorsqu'ils correspondent à vos besoins et s'alignent sur les stratégies d'allocation que vous choisissez pour votre groupe Auto Scaling.

Fonctionnement de la sélection de type d’instance basée sur des attributs

Avec la sélection du type d'instance basée sur les attributs, au lieu de fournir une liste de types d'instances spécifiques, vous fournissez une liste des attributs d'instance dont vos instances ont besoin, tels que :

  • Nombre de vCPU : nombre minimum et maximum de vCPU par instance.

  • Mémoire : mémoire minimale et maximale GiBs par instance.

  • Stockage local : s'il faut utiliser EBS ou des volumes de stockage d'instance pour le stockage local.

  • Performances éclatantes : s'il faut utiliser la famille d'instances T, y compris les types T4g, T3a, T3 et T2.

De nombreuses options sont disponibles pour définir les exigences de votre instance. Pour une description de chaque option et des valeurs par défaut, consultez InstanceRequirementsle manuel Amazon EC2 Auto Scaling API Reference.

Lorsque votre groupe Auto Scaling doit lancer une instance, il recherche les types d'instances qui correspondent aux attributs que vous avez spécifiés et qui sont disponibles dans cette zone de disponibilité. La stratégie d'allocation détermine ensuite le type d'instance correspondant à lancer. Par défaut, la sélection du type d'instance basée sur les attributs comporte une fonctionnalité de protection des prix activée pour empêcher votre groupe Auto Scaling de lancer des types d'instances dépassant vos seuils budgétaires.

Par défaut, vous utilisez le nombre d'instances comme unité de mesure lorsque vous définissez la capacité souhaitée de votre groupe Auto Scaling, ce qui signifie que chaque instance compte pour une unité.

Vous pouvez également définir la valeur de la capacité souhaitée comme le nombre de vCPU ou la quantité de mémoire. Pour ce faire, utilisez le champ déroulant Type de capacité souhaité dans le champ AWS Management Console ou la DesiredCapacityType propriété dans l'opération CreateAutoScalingGroup ou UpdateAutoScalingGroup API. Amazon EC2 Auto Scaling lance ensuite le nombre d'instances nécessaires pour atteindre la capacité de vCPU ou de mémoire souhaitée. Par exemple, si vous utilisez des vCPU comme type de capacité souhaité et que vous utilisez des instances avec 2 vCPU chacune, une capacité souhaitée de 10 vCPU lancera 5 instances. Il s’agit d’une alternative utile aux pondérations d’instance.

Protection des prix

Grâce à la protection des prix, vous pouvez spécifier le prix maximum que vous êtes prêt à payer pour les instances EC2 lancées par votre groupe Auto Scaling. La protection des prix est une fonctionnalité qui empêche votre groupe Auto Scaling d'utiliser des types d'instances que vous jugeriez trop chers, même s'ils correspondent aux attributs que vous avez spécifiés.

La protection des prix est activée par défaut et comporte des seuils de prix distincts pour les instances à la demande et les instances ponctuelles. Lorsqu'Amazon EC2 Auto Scaling doit lancer de nouvelles instances, aucun type d'instance dont le prix est supérieur au seuil pertinent n'est lancé.

Protection des prix à la demande

Pour les instances à la demande, vous définissez le prix maximum à la demande que vous êtes prêt à payer sous forme de pourcentage supérieur au prix à la demande identifié. Le prix à la demande identifié est le prix du type d'instance C, M ou R de génération actuelle le moins cher avec les attributs que vous avez spécifiés.

Si une valeur de protection des prix à la demande n'est pas explicitement définie, un prix à la demande maximum par défaut supérieur de 20 % au prix à la demande identifié sera utilisé.

Protection des prix au comptant

Par défaut, Amazon EC2 Auto Scaling applique automatiquement une protection tarifaire optimale des instances Spot afin de sélectionner de manière cohérente un large éventail de types d'instances. Vous pouvez également définir vous-même la protection des prix manuellement. Toutefois, laisser Amazon EC2 Auto Scaling le faire à votre place peut améliorer les chances que votre capacité Spot soit atteinte.

Vous pouvez définir manuellement la protection des prix à l'aide de l'une des options suivantes. Si vous définissez manuellement la protection des prix, nous vous recommandons d'utiliser la première option.

  • Pourcentage d'un prix à la demande identifié : le prix à la demande identifié est le prix du type d'instance C, M ou R de génération actuelle le moins cher avec les attributs que vous avez spécifiés.

  • Un pourcentage supérieur au prix spot identifié : le prix spot identifié est le prix du type d'instance C, M ou R de génération actuelle le moins cher avec les attributs que vous avez spécifiés. Nous vous déconseillons d'utiliser cette option car les prix au comptant peuvent fluctuer et, par conséquent, votre seuil de protection contre les prix peut également fluctuer.

Personnalisez la protection des prix

Vous pouvez personnaliser les seuils de protection des prix dans la console Amazon EC2 Auto Scaling ou à l'aide des SDK AWS CLI .

  • Dans la console, utilisez les paramètres de protection des prix à la demande et de protection des prix au comptant dans Attributs d'instance supplémentaires.

  • Dans la InstanceRequirementsstructure, pour spécifier le seuil de protection des prix des instances à la demande, utilisez la OnDemandMaxPricePercentageOverLowestPrice propriété. Pour spécifier le seuil de protection des prix de l'instance Spot, utilisez la propriété MaxSpotPriceAsPercentageOfOptimalOnDemandPrice ou la SpotMaxPricePercentageOverLowestPrice propriété.

Si vous définissez le type de capacité souhaité (DesiredCapacityType) sur vCPU ou Gio de mémoire, la protection tarifaire s'applique en fonction du prix par vCPU ou par mémoire plutôt que du prix par instance.

Vous pouvez également désactiver la protection des prix. Pour n'indiquer aucun seuil de protection des prix, spécifiez un pourcentage élevé, tel que999999.

Note

Si aucun type d'instance C, M ou R de génération actuelle ne correspond aux attributs que vous avez spécifiés, la protection des prix reste applicable. Si aucune correspondance n'est trouvée, le prix identifié provient des types d'instances de la génération actuelle les moins chers ou, à défaut, des types d'instances de la génération précédente les moins chers, qui correspondent à vos attributs.

Prérequis

Création d'un groupe d'instances mixtes avec sélection du type d'instance basée sur les attributs (console)

Utilisez la procédure suivante pour créer un groupe d’instances mixtes à l’aide de la sélection de type d’instance basée sur des attributs. Pour vous aider à suivre les étapes de manière efficace, certaines sections facultatives sont ignorées.

Pour la plupart des charges de travail polyvalentes, il suffit de spécifier le nombre de vCPU et de mémoire dont vous avez besoin. Pour les cas d'utilisation avancés, vous pouvez spécifier des attributs tels que le type de stockage, les interfaces réseau, le fabricant du CPU et le type d'accélérateur.

Pour consulter les meilleures pratiques relatives à un groupe d'instances mixtes, consultezPrésentation de la configuration.

Pour créer un groupe d’instances mixtes
  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/ et choisissez Groupes Auto Scaling dans le panneau de navigation.

  2. Dans la barre de navigation en haut de l'écran, choisissez la même région Région AWS que celle utilisée lors de la création du modèle de lancement.

  3. Choisissez Create an Auto Scaling group (Créer un groupe Auto Scaling).

  4. Dans la page Choisir un modèle de lancement ou une configuration, dans Nom du groupe Auto Scaling, entrez un nom pour le groupe Auto Scaling.

  5. Pour choisir votre modèle de lancement, procédez comme suit :

    1. Dans Launch template (Modèle de lancement), choisissez un modèle de lancement existant.

    2. Pour Version du modèle de lancement, indiquez si le groupe Auto Scaling utilise la version par défaut, la version la plus récente ou une version spécifique du modèle de lancement lors de l'évolutivité horizontale.

    3. Vérifiez que votre modèle de lancement prend en charge toutes les options que vous envisagez d'utiliser, puis choisissez Next (Suivant).

  6. Sur la page Choisir les options de lancement d’instance, procédez comme suit :

    1. Pour Instance type requirements (Exigences en matière de type d'instance), sélectionnez Override launch template (Remplacer le modèle de lancement).

      Note

      Si vous avez choisi un modèle de lancement qui contient déjà un ensemble d’attributs d’instance, tels que des vCPU et de la mémoire, les attributs d’instance sont affichés. Ces attributs sont ajoutés aux propriétés du groupe Auto Scaling, que vous pouvez mettre à jour à tout moment sur la console Amazon EC2 Auto Scaling.

    2. Sous Specify instance attributes (Spécifier les attributs d'instance), commencez par saisir vos besoins en vCPU et en mémoire.

      • Pour vCPU, saisissez les nombres minimum et maximum de vCPU souhaités. Pour ne spécifier aucune limite, sélectionnez No minimum (Pas de minimum), No maximum (Pas de maximum), ou les deux.

      • Pour Memory (GiB) (Mémoire (Gio)), saisissez la quantité minimale et maximale de mémoire souhaitée. Pour ne spécifier aucune limite, sélectionnez No minimum (Pas de minimum), No maximum (Pas de maximum), ou les deux.

    3. (Facultatif) Pour Additional instance attributes (Attributs d’instance supplémentaires), vous pouvez éventuellement spécifier un ou plusieurs attributs pour exprimer vos exigences de calcul plus en détail. Chaque attribut supplémentaire ajoute des contraintes supplémentaires à votre demande.

    4. Développez Aperçu des types d'instances correspondants pour afficher les types d'instance dotés des attributs que vous avez spécifiés.

    5. Dans Options d’achat d’instance, pour Distribution des instances, spécifiez les pourcentages du groupe à lancer en tant qu’instances à la demande et en tant qu’instances Spot. Si votre application est sans état, tolérante aux pannes et peut gérer l’interruption d’une instance, vous pouvez spécifier un pourcentage plus élevé d’Instances Spot.

    6. (Facultatif) Lorsque vous spécifiez un pourcentage pour les instances Spot, sélectionnez Inclure la capacité de base à la demande, puis spécifiez la quantité minimale de la capacité initiale du groupe Auto Scaling qui doit être remplie par des instances à la demande. Tout ce qui dépasse la capacité de base utilise les paramètres de distribution des instances pour déterminer le nombre d'instances à la demande et d'instances Spot à lancer.

    7. Sous Allocation strategies (Stratégies d'allocation), le Lowest price (Prix le plus bas) est automatiquement sélectionné pour la On-Demand allocation strategy (Stratégie d'allocation à la demande) et ne peut pas être modifié.

    8. Pour Spot allocation strategy (Stratégie d'allocation d'instances Spot), choisissez une stratégie d'allocation. Price capacity optimized (Capacité de prix optimisée) est sélectionné par défaut. Lowest price (Tarif le plus bas) est masqué par défaut et n'apparaît que lorsque vous choisissez Show all strategies (Afficher toutes les stratégies). Si vous choisissez Tarif le plus bas, saisissez le nombre de groupes de prix les plus bas pour diversifier les offres pour les Groupes de prix les plus bas.

    9. Dans Rééquilibrage de la capacité, choisissez d’activer ou de désactiver le Rééquilibrage de la capacité. Utiliser le rééquilibrage de la capacité pour répondre automatiquement quand vos instances Spot sont sur le point de se résilier à cause d’une interruption des instances Spot. Pour plus d’informations, consultez Utiliser le rééquilibrage de la capacité pour gérer les interruptions Spot Amazon EC2.

    10. Sous Network (Réseau), pour VPC, choisissez un VPC. Le groupe Auto Scaling doit être créé dans le même VPC que le groupe de sécurité que vous avez spécifié dans votre modèle de lancement.

    11. Pour Availability Zones and subnets (Zones de disponibilité et sous-réseaux), choisissez un ou plusieurs sous-réseaux dans le VPC spécifié. Utilisez les sous-réseaux dans plusieurs zones de disponibilité pour une haute disponibilité. Pour plus d’informations, consultez Considérations à prendre en compte lors du choix des sous-réseaux VPC.

    12. Appuyez sur Suivant, Suivant.

  7. Pour l'étape Configure group size and scaling policies (Configurer la taille du groupe et les politiques de mise à l'échelle), procédez comme suit :

    1. Si vous voulez que la capacité souhaitée soit mesurée en unités autres que des instances, choisissez l’option appropriée pour Taille du groupe et Type de capacité souhaité. Units (Unités), vCPUs (vCPU) et Memory GiB (Gio de mémoire) sont pris en charge. Par défaut, Amazon EC2 Auto Scaling spécifie Units (Unités), ce qui se traduit par le nombre d'instances.

    2. Définissez la capacité souhaitée en fonction de la taille initiale de votre groupe Auto Scaling.

    3. Dans la section Mise à l’échelle, sous Limites de mise à l’échelle, si votre nouvelle valeur pour la capacité souhaitée est supérieure à la capacité minimale souhaitée et à la capacité maximale souhaitée, la capacité maximale souhaitée est automatiquement augmentée à la nouvelle valeur de capacité souhaitée. Vous pouvez modifier ces limites si nécessaire. Pour plus d’informations, consultez Définissez des limites de mise à l’échelle pour votre groupe Auto Scaling.

  8. Choisissez Skip to review (Passer à la révision).

  9. Sur la page Vérifier, sélectionnez Créer un groupe Auto Scaling.

Création d'un groupe d'instances mixtes avec sélection du type d'instance basée sur les attributs ()AWS CLI

Pour créer un groupe d’instances mixtes avec la ligne de commande

Utilisez l’une des commandes suivantes :

Exemple de configuration

Pour créer un groupe Auto Scaling avec une sélection de type d’instance basée sur des attributs en utilisant la AWS CLI, vous pouvez utiliser la commande suivante create-auto-scaling-group.

Les attributs d'instance suivants sont spécifiés :

  • VCpuCount : les types d'instances doivent avoir un minimum de quatre vCPU et un maximum de huit vCPU.

  • MemoryMiB : les types d'instance doivent avoir un minimum de 16 384 Mio de mémoire.

  • CpuManufacturers : les types d'instance doivent avoir un processeur fabriqué par Intel.

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

Voici un exemple de fichier config.json.

{ "AutoScalingGroupName": "my-asg", "DesiredCapacityType": "units", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": {"Min": 4, "Max": 8}, "MemoryMiB": {"Min": 16384}, "CpuManufacturers": ["intel"] } }] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 4, "DesiredCapacityType": "units", "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

Pour définir la valeur de la capacité souhaitée comme le nombre de vCPU ou la quantité de mémoire, spécifiez "DesiredCapacityType": "vcpu" ou "DesiredCapacityType": "memory-mib" dans le fichier. Le type de capacité souhaitée par défaut est units, qui définit la valeur de la capacité souhaitée comme le nombre d'instances.

Utilisez la commande create-auto-scaling-group suivante pour créer le groupe Auto Scaling. Cela fait référence à un fichier YAML comme seul paramètre de votre groupe Auto Scaling.

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

Voici un exemple de fichier config.yaml.

--- AutoScalingGroupName: my-asg DesiredCapacityType: units MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceRequirements: VCpuCount: Min: 2 Max: 4 MemoryMiB: Min: 2048 CpuManufacturers: - intel InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 50 SpotAllocationStrategy: price-capacity-optimized MinSize: 0 MaxSize: 100 DesiredCapacity: 4 DesiredCapacityType: units VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Pour définir la valeur de la capacité souhaitée comme le nombre de vCPU ou la quantité de mémoire, spécifiez DesiredCapacityType: vcpu ou DesiredCapacityType: memory-mib dans le fichier. Le type de capacité souhaitée par défaut est units, qui définit la valeur de la capacité souhaitée comme le nombre d'instances.

Prévisualisez vos types d’instance

Vous pouvez prévisualiser les types d'instance qui correspondent à vos besoins de calcul sans les lancer et ajuster vos besoins si nécessaire. Lors de la création de votre groupe Auto Scaling dans la console Amazon EC2 Auto Scaling, une prévisualisation des types d'instance apparaît dans la section Preview matching instance types (Prévisualisation des types d'instance correspondants) sur la page Choose instance launch options (Choisir des options de lancement d'instance).

Vous pouvez également prévisualiser les types d'instances en effectuant un appel d'GetInstanceTypesFromInstanceRequirementsAPI Amazon EC2 à l'aide du AWS CLI ou d'un SDK. Passez les paramètres InstanceRequirements dans la demande dans le format exact que vous utiliseriez pour créer ou mettre à jour un groupe Auto Scaling. Pour plus d'informations, consultez la section Aperçu des types d'instances avec des attributs spécifiés dans le guide de l'utilisateur Amazon EC2.

Pour en savoir plus sur la sélection du type d'instance basée sur les attributs, consultez la section Sélection du type d'instance basée sur les attributs pour EC2 Auto Scaling et EC2 Fleet sur le blog. AWS

Vous pouvez déclarer une sélection de type d’instance basée sur les attributs lorsque vous créez un groupe Auto Scaling avec AWS CloudFormation. Pour plus d’informations, consultez l’exemple d’extrait dans la section Extraits de modèle de mise à l’échelle automatique du Guide de l’utilisateur AWS CloudFormation .