Tutoriel : Configurer EC2 Fleet pour utiliser la pondération des instances - 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.

Tutoriel : Configurer EC2 Fleet pour utiliser la pondération des instances

Ce didacticiel utilise une société fictive appelée Example Corp pour illustrer le processus de demande d'une EC2 flotte à l'aide de la pondération des instances.

Objectif

Example Corp, une société pharmaceutique, souhaite utiliser la puissance de calcul d'Amazon EC2 pour sélectionner des composés chimiques susceptibles d'être utilisés pour lutter contre le cancer.

Planification

Example Corp commence par examiner les bonnes pratiques en matière d’instances Spot. Example Corp détermine ensuite les besoins de sa EC2 flotte.

Types d’instances

Example Corp possède une application gourmande en calcul et en mémoire qui fonctionne le mieux avec au moins 60 Go de mémoire et huit unités virtuelles CPUs ()vCPUs. 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'EC2instances suivants répondrait à ses besoins :

Type d’instance Mémoire (Gio) vCPUs

r3.2xlarge

61

8

r3.4xlarge

122

16

r3.8xlarge

244

32

Capacité cible en unités

Avec la pondération des instances, la capacité cible peut être égale à un nombre d'instances (valeur par défaut) ou à une combinaison de facteurs tels que les cœurs (vCPUs), la mémoire (GiBs) et le stockage (GBs). En considérant la base de son application (60 Go RAM et huitvCPUs) comme une seule unité, Example Corp décide que 20 fois cette quantité répondrait à ses besoins. L'entreprise fixe donc la capacité cible de sa demande de EC2 flotte à 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, 8vCPUs) = 1 unité de 20

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

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

Par conséquent, Example Corp attribue des poids d'instance de 1, 2 et 4 aux configurations de lancement respectives dans sa demande de EC2 flotte.

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,2 xLarge

0,7 USD

1

0,7 USD

r3,4 xLarge

1,4 USD

2

0,7 USD

r3,8 xLarge

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 EC2 flotte, Example Corp vérifie qu'elle possède un IAM rôle doté des autorisations requises. Pour de plus amples informations, veuillez consulter EC2Prérequis relatifs à la flotte.

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éation d'un modèle de EC2 lancement Amazon.

Créez la EC2 flotte

Example Corp crée un fichier avec la configuration suivante pour sa EC2 flotte. config.json 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 la EC2 flotte à l'aide de la commande create-fleet suivante.

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

Pour de plus amples informations, veuillez consulter Création d'une EC2 flotte.

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 EC2 flotte lance 20 r3.2xlarge instances (20 divisées par 1), 10 r3.4xlarge instances (20 divisées par 2) ou 5 r3.8xlarge instances (20 divisées par 4).

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