Didacticiel : configurer la flotte EC2 pour qu’elle utilise la pondération des instances - Amazon Elastic Compute Cloud

Didacticiel : configurer la flotte EC2 pour qu’elle utilise la pondération des instances

Cette procédure utilise une société fictive nommée Example Corp pour illustrer le processus de demande d’une flotte EC2 utilisant la pondération des instances.

Objectif

Example Corp est une entreprise pharmaceutique qui souhaite utiliser la puissance de calcul d’Amazon EC2 pour analyser les composants chimiques susceptibles d’être utilisés dans la lutte contre le cancer.

Planification

Example Corp commence par examiner les bonnes pratiques en matière d’instances Spot. Ensuite, Example Corp détermine les exigences suivantes pour son flotte EC2.

Types d’instance

Example Corp a une application qui exige beaucoup de calculs et de mémoire. Pour un fonctionnement optimal, cette application a besoin d’au moins 60 Go de mémoire et de huit UC virtuelles (vCPU). L’entreprise souhaite optimiser ces ressources pour l’application au prix le plus bas possible. Example Corp décide que l’un des types d’instance EC2 suivants est capable de répondre à ses besoins :

Type d’instance Mémoire (Gio) vCPU

r3.2xlarge

61

8

r3.4xlarge

122

16

r3.8xlarge

244

32

Capacité cible en unités

Avec la pondération d’instance, la capacité cible peut être égale à un certain nombre d’instances (valeur par défaut) ou à une combinaison de critères, par exemple les noyaux (vCPU), la mémoire (GiO) et le stockage (Go). En considérant que la base de son application (60 Go de RAM et huit vCPU) compte pour une unité, Example Corp décide que 20 fois cette quantité suffirait pour répondre à ses besoins. L’entreprise fixe donc la capacité cible de sa demande de flotte EC2 à 20 unités.

Pondérations d’instance

Après avoir déterminé sa capacité cible, Example Corp calcule ses pondérations d’instance. Pour calculer la pondération de chaque type d’instance, l’entreprise détermine les unités de chaque type d’instance nécessaires pour atteindre la capacité cible de la façon suivante :

  • r3.2xlarge (61,0 Go, 8 vCPU) = 1 unité de 20

  • r3.4xlarge (122,0 Go, 16 vCPU) = 2 unités de 20

  • r3.8xlarge (244 Go, 32 vCPU) = 4 unités de 20

Par conséquent, Example Corp assigne des pondérations d’instance de 1, 2 et 4 aux configurations de lancement respectives dans sa demande de flotte EC2.

Prix par heure d’unité

Example Corp utilise le prix à la Demande par heure d’instance comme point de départ de son prix. Elle peut également utiliser les prix Spot récents ou une combinaison des deux. Pour calculer le prix par heure d’unité, elle divise le prix de départ basé sur l’heure d’instance par la pondération. Exemples :

Type d’instance Prix à la Demande Pondération de l’instance Prix par heure d’unité

r3.2xLarge

0,7 USD

1

0,7 USD

r3.4xLarge

1,4 USD

2

0,7 USD

r3.8xLarge

2.8 USD

4

0,7 USD

Example Corp peut utiliser un prix global par heure d’unité s’élevant à 0,7 USD et rester concurrentielle pour les trois types d’instance. Elle peut également utiliser un prix global par heure d’unité s’élevant à 0,7 USD et un prix spécifique par heure d’unité de 0,9 USD dans la spécification de lancement du type d’instance r3.8xlarge.

Vérifier les autorisations

Avant de créer une flotte EC2, la société Example Corp vérifie qu’elle dispose d’un rôle IAM avec les autorisations requises. Pour de plus amples informations, veuillez consulter Conditions préalables requises flotte EC2.

Créer un modèle de lancement

Ensuite, Example Corp crée un modèle de lancement. L’ID de modèle de lancement est utilisé à l’étape suivante. Pour de plus amples informations, veuillez consulter Créer un modèle de lancement Amazon EC2.

Créer la flotte EC2

Example Corp crée un fichier, config.json, avec la configuration suivante pour son flotte EC2. Dans l’exemple suivant, remplacez les identificateurs de ressources par vos propres identificateurs de ressources.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-07b3bc7625cdab851", "Version": "1" }, "Overrides": [ { "InstanceType": "r3.2xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 1 }, { "InstanceType": "r3.4xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 2 }, { "InstanceType": "r3.8xlarge", "MaxPrice": "0.90", "SubnetId": "subnet-482e4972", "WeightedCapacity": 4 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" } }

Example Corp crée le Flotte EC2 à l’aide de la commande create-fleet suivante.

aws ec2 create-fleet --cli-input-json file://config.json

Pour de plus amples informations, consultez Créer une flotte EC2.

Exécution

La stratégie d’allocation détermine de quels groupes de capacités Spot sont issues vos instances Spot.

Avec la stratégie lowest-price (qui est la stratégie par défaut), les Instances Spot sont issues du groupe ayant le prix par unité le plus bas au moment de l’exécution. Pour fournir 20 unités de capacité, la flotte EC2 lance 20 instances r3.2xlarge (20 divisé par 1), 10 instances r3.4xlarge (20 divisé par 2) ou 5 instances r3.8xlarge (20 divisé par 4).

Si Example Corp avait utilisé la stratégie diversified, les instances Spot auraient été issues des trois groupes. La flotte EC2 aurait lancé 6 instances r3.2xlarge (soit 6 unités), 3 instances r3.4xlarge (soit 6 unités) et 2 instances r3.8xlarge (soit 8 unités), pour un total de 20 unités.