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