Créer un groupe d’instances mixtes en choisissant manuellement les types d’instances - 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 choisissant manuellement les types d’instances

Cette rubrique explique comment lancer plusieurs types d’instances dans un seul groupe Auto Scaling en choisissant manuellement vos types d’instances.

Si vous préférez utiliser des attributs d’instance comme critères de sélection des types d’instance, consultez Créer un groupe d’instances mixtes en utilisant la sélection du type d’instance basée sur des attributs.

Prérequis

Créer un groupe d’instances mixtes (console)

Utilisez la procédure suivante pour créer un groupe d’instances mixtes en choisissant manuellement les types d’instance que votre groupe peut lancer. Pour vous aider à suivre les étapes de manière efficace, certaines sections facultatives sont ignorées.

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 les Exigences relatives au type d'instance, choisissez Override launch template (Remplacer le modèle de lancement), puis Manually add instance types (Ajouter manuellement les types d'instance).

    2. Choisissez vos types d'instance. Vous pouvez utiliser nos recommandations comme point de départ. Family and generation flexible (Famille et génération flexibles) est sélectionnée par défaut.

      • (Facultatif) Pour modifier l'ordre des types d'instances, utilisez les flèches. Si vous choisissez une stratégie d'allocation qui prend en charge la priorisation, l'ordre des types d'instance définit leur priorité de lancement.

      • Pour supprimer un type d'instance, choisissez X.

      • (Facultatif) Pour les cases de la colonne Poids, attribuez une pondération relative à chaque type d’instance. Pour ce faire, entrez le nombre d'unités qu'une instance de ce type compte par rapport à la capacité souhaitée du groupe. Cela peut s'avérer notamment utile si les types d'instance offrent des capacités différentes de vCPU, de mémoire, de stockage ou de bande passante du réseau. Pour plus d’informations, consultez Configurer un groupe Auto Scaling pour utiliser les poids d'instance.

        Notez que si vous choisissez d’utiliser les recommandations de Taille flexible, tous les types d’instance qui font partie de cette section ont automatiquement une valeur de pondération. Si vous ne souhaitez pas spécifier de pondération, décochez les cases de la colonne Weight (Poids) pour tous les types d'instances.

    3. Dans Instance purchase options (Options d'achat d'instance), pour Instance distribution (Distribution des instances), spécifiez les pourcentages du groupe à lancer en tant qu'instances à la demande et en tant qu'instances Spot, respectivement. 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.

    4. (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.

    5. Sous Allocation strategies (Stratégies d'allocation), pour On-Demand allocation strategy (Stratégie d'allocation à la demande), choisissez une stratégie d'allocation. Lorsque vous choisissez manuellement vos types d'instances, Prioritized (Priorisé) est sélectionné par défaut.

    6. 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.

      • Si vous choisissez Capacité optimisée, vous pouvez éventuellement cocher la case Prioriser les types d’instances pour permettre à Amazon EC2 Auto Scaling de choisir le type d’instance à lancer en premier en fonction de l’ordre dans lequel vos types d’instances sont répertoriés.

    7. 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.

    8. 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.

    9. 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.

    10. 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. Dans Taille du groupe, pour la Capacité souhaitée, entrez le nombre initial d’instances à lancer.

      Par défaut, la capacité souhaitée est exprimée en nombre d’instances. Si vous avez attribué des pondérations à vos types d’instances, vous devez convertir cette valeur en la même unité de mesure que celle que vous avez utilisée pour attribuer des poids, par exemple le nombre de vCPU.

    2. 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éer un groupe d’instances mixtes (AWS CLI)

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

Utilisez l’une des commandes suivantes :

Exemples de configuration

Les exemples de configuration suivants montrent comment créer des instances mixtes à l’aide des différentes stratégies d’allocation Spot.

Note

Ces exemples montrent comment utiliser un fichier de configuration au format JSON ou YAML. Si vous utilisez AWS CLI la version 1, vous devez spécifier un fichier de configuration au format JSON. Si vous utilisez AWS CLI la version 2, vous pouvez spécifier un fichier de configuration au format YAML ou JSON.

Exemple 1 : lancer des instances Spot à l'aide de la stratégie d'allocation capacity-optimized

La commande create-auto-scaling-group suivante crée un groupe Auto Scaling qui spécifie les éléments suivants :

  • Pourcentage du groupe à lancer en tant qu'instances à la demande (0) et nombre de base d'instances à la demande (1)

  • Types d'instance à lancer par ordre de priorité (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large)

  • Les sous-réseaux dans lesquels lancer les instances (subnet-5ea0c127, subnet-6194ea3b, subnet-c934b782) Chacun d'eux correspond à une zone de disponibilité différente.

  • Modèle de lancement (my-launch-template) et version du modèle de lancement ($Default)

Lorsqu'Amazon EC2 Auto Scaling tente de satisfaire votre capacité à la demande, il lance d'abord le type d'instance c5.large. Les instances Spot proviennent du pool d'instances Spot optimal de chaque zone de disponibilité en fonction de la capacité d'instances Spot.

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

Le fichier config.json contient le contenu suivant.

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

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

Le fichier config.yaml contient le contenu suivant.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Exemple 2 : lancer des instances Spot à l'aide de la stratégie d'allocation capacity-optimized-prioritized

La commande create-auto-scaling-group suivante crée un groupe Auto Scaling qui spécifie les éléments suivants :

  • Pourcentage du groupe à lancer en tant qu'instances à la demande (0) et nombre de base d'instances à la demande (1)

  • Types d'instance à lancer par ordre de priorité (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large)

  • Les sous-réseaux dans lesquels lancer les instances (subnet-5ea0c127, subnet-6194ea3b, subnet-c934b782) Chacun d'eux correspond à une zone de disponibilité différente.

  • Modèle de lancement (my-launch-template) et version du modèle de lancement ($Latest)

Lorsqu'Amazon EC2 Auto Scaling tente de satisfaire votre capacité à la demande, il lance d'abord le type d'instance c5.large. Lorsqu'Amazon EC2 Auto Scaling tente de satisfaire votre capacité Spot, il implémente au mieux les priorités relatives aux types d'instances sur la base du meilleur effort. Cependant, il optimise d'abord la capacité.

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

Le fichier config.json contient le contenu suivant.

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized-prioritized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

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

Le fichier config.yaml contient le contenu suivant.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized-prioritized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Exemple 3 : lancer des instances Spot à l'aide de la stratégie d'allocation lowest-price diversifiée sur deux pools

La commande create-auto-scaling-group suivante crée un groupe Auto Scaling qui spécifie les éléments suivants :

  • Pourcentage du groupe à lancer en tant qu'instances à la demande (50). (Cela ne spécifie pas de nombre de base d'instances à la demande pour commencer.)

  • Types d'instance à lancer par ordre de priorité (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large)

  • Les sous-réseaux dans lesquels lancer les instances (subnet-5ea0c127, subnet-6194ea3b, subnet-c934b782) Chacun d'eux correspond à une zone de disponibilité différente.

  • Modèle de lancement (my-launch-template) et version du modèle de lancement ($Latest)

Lorsqu'Amazon EC2 Auto Scaling tente de satisfaire votre capacité à la demande, il lance d'abord le type d'instance c5.large. Pour votre capacité Spot, Amazon EC2 Auto Scaling tente de lancer les instances Spot uniformément sur les deux pools les moins chers de chaque zone de disponibilité.

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

Le fichier config.json contient le contenu suivant.

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "lowest-price", "SpotInstancePools": 2 } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

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

Le fichier config.yaml contient le contenu suivant.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 50 SpotAllocationStrategy: lowest-price SpotInstancePools: 2 MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Exemple 4 : Lancer instances Spot à l’aide de la stratégie d’allocation price-capacity-optimized

La commande create-auto-scaling-group suivante crée un groupe Auto Scaling qui spécifie les éléments suivants :

  • Pourcentage du groupe à lancer en tant qu'instances à la demande (30). (Cela ne spécifie pas de nombre de base d'instances à la demande pour commencer.)

  • Types d'instance à lancer par ordre de priorité (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large)

  • Les sous-réseaux dans lesquels lancer les instances (subnet-5ea0c127, subnet-6194ea3b, subnet-c934b782) Chacun d'eux correspond à une zone de disponibilité différente.

  • Modèle de lancement (my-launch-template) et version du modèle de lancement ($Latest)

Lorsqu'Amazon EC2 Auto Scaling tente de satisfaire votre capacité à la demande, il lance d'abord le type d'instance c5.large. Pour votre capacité Spot, Amazon EC2 Auto Scaling tente de lancer les instances Spot à partir des groupes d’instances Spot au prix le plus bas possible, mais également avec une capacité optimale pour le nombre d’instances que vous lancez.

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

Le fichier config.json contient le contenu suivant.

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 30, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

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

Le fichier config.yaml contient le contenu suivant.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 30 SpotAllocationStrategy: price-capacity-optimized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782