Création d’un fournisseur de capacité pour les instances gérées Amazon ECS - Amazon Elastic Container Service

Création d’un fournisseur de capacité pour les instances gérées Amazon ECS

Les instances gérées Amazon ECS font appel à des fournisseurs de capacité pour gérer la capacité de calcul de vos charges de travail. Par défaut, Amazon ECS fournit un fournisseur de capacité par défaut qui sélectionne automatiquement les types d’instances à usage général les plus optimisés en termes de coûts. Vous pouvez toutefois créer des fournisseurs de capacité personnalisés pour spécifier des attributs d’instance tels que les types d’instance, les fabricants d’UC, les types d’accélérateurs et d’autres exigences.

Les fournisseurs de capacité personnalisés utilisent la sélection du type d’instance basée sur des attributs, qui vous permet d’exprimer les exigences d’instance sous la forme d’un ensemble d’attributs. Ces exigences sont automatiquement transposées à tous les types d’instances Amazon EC2 correspondants, ce qui simplifie la création et la maintenance des configurations de types d’instances. Pour en savoir plus sur les exigences relatives aux instances et la sélection basée sur les attributs, consultez la documentation relative à la sélection du type d’instance basée sur les attributs de flotte d’Amazon EC2 dans le Guide de l’utilisateur Amazon EC2.

Prérequis

Avant de commencer, assurez-vous d’avoir effectué les opérations suivantes :

Découvrez comment choisir vos instances. Pour de plus amples informations, consultez Pratiques exemplaires en matière de sélection d’instances pour les instances gérées Amazon ECS.

Procédure pour la console

Pour créer un fournisseur de capacité pour instances gérées Amazon ECS (console Amazon ECS)
  1. Ouvrez la console à partir de l'adresse https://console.aws.amazon.com/ecs/v2.

  2. Dans la barre de navigation, sélectionnez la région à utiliser.

  3. Dans le panneau de navigation, choisissez Clusters.

  4. Sur la page Clusters, choisissez le nom de votre cluster.

  5. Sur la page Clusters, choisissez l’onglet Infrastructure.

  6. Dans la section Fournisseur de capacité, choisissez Créer un fournisseur de capacité.

  7. Sous Configuration du fournisseur de capacité, configurez les éléments suivants :

    • Pour Nom du fournisseur de capacité, saisissez un nom unique pour votre fournisseur de capacité.

    • Pour Type de fournisseur de capacité, choisissez Instances gérées Amazon ECS.

  8. Sous Configuration de l’instance, configurez les éléments suivants :

    • Pour Profil d’instance, choisissez le rôle de profil d’instance créé pour les instances gérées Amazon ECS.

    • Pour Rôle d’infrastructure, choisissez le rôle d’infrastructure créé pour les instances gérées Amazon ECS.

  9. Sous Exigences de l’instance, spécifiez les attributs de vos instances. Vous pouvez configurer n’importe quelle combinaison de ce qui suit :

    • Nombre de vCPU : spécifiez le nombre de vCPU (par exemple, 4 ou 8-16 pour une plage).

    • Mémoire (Mio) : spécifiez la quantité de mémoire en Mio (par exemple, 8192 ou 16384-32768 pour une plage).

    • Types d’instances : spécifiez des types d’instances spécifiques (par exemple, m5.large,m5.xlarge,c5.large).

    • Fabricants d’UC : choisissez parmi intel, amd, ou amazon-web-services.

    • Types d’accélérateurs : spécifiez les types d’accélérateurs tels que gpu, fpga, ou inference.

    • Nombre d’accélérateurs : spécifiez le nombre d’accélérateurs (par exemple, 1 ou 2-4 pour une plage).

  10. Sous Configuration avancée, choisissez l’une des options de surveillance suivantes :

    • Pour que CloudWatch envoie des métriques de vérification du statut, choisissez Basic.

    • Pour que CloudWatch envoie toutes les métriques, choisissez Détaillé.

  11. (Facultatif) Pour vous aider à identifier votre cluster, développez Balises, puis configurez vos balises.

    Pour activer la propagation des balises du fournisseur de capacité vers les ressources gérées, telles que les instances lancées depuis le fournisseur de capacité, pour Propager les balises depuis, choisissez Fournisseur de capacité.

    [Add a tag] Choisissez Add tag (Ajouter une balise) et procédez comme suit :

    • Pour Key (Clé), saisissez le nom de la clé.

    • Pour Valeur, saisissez la valeur de clé.

  12. Choisissez Créer.

Procédure pour la AWS CLI

Vous pouvez créer un fournisseur de capacité pour les instances gérées Amazon ECS à l’aide de l’AWS CLI. Utilisez la version la plus récente de l’AWS CLI. Pour savoir comment opérer une mise à niveau vers la dernière version, consultez la section Installation ou mise à jour vers la dernière version de l’AWS CLI.

Pour créer un fournisseur de capacité pour les instances gérées Amazon ECS (AWS CLI)
  1. Exécutez la commande suivante :

    aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.json

    Le fichier capacity-provider-definition.json suivant peut être utilisé pour spécifier les exigences de base de l’instance, la taille de stockage de l’instance et activer la propagation des balises :

    { "name": "my-managed-instances-provider", "cluster": "my-cluster", "tags": [ { "key": "version", "value": "test" } ], "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeGiB": 100 }, "propagateTags": "CAPACITY_PROVIDER" } }
  2. Vérifiez que votre fournisseur de capacité a été créé avec succès :

    aws ecs describe-capacity-providers \ --capacity-providers my-managed-instances-provider

    Sortie :

    { "capacityProviders": [ { "capacityProviderArn": "arn:aws:ecs:region:aws_account_id:capacity-provider/my-managed-instances-provider", "cluster": "my-cluster" "name": "my-managed-capacity-provider", "status": "ACTIVE", "type": "MANAGED_INSTANCES", "tags": [ { "key": "version", "value": "test" } ], "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeGiB": 100 }, "propagateTags": "CAPACITY_PROVIDER" } } ] }

Exemples de configuration

Les exemples suivants montrent des configurations courantes de fournisseur de capacité pour différents cas d’utilisation :

Exemple Charges de travail à usage général

Cette configuration sélectionne des instances optimisées en termes de coûts avec 2 à 8 vCPU et 4 à 16 Gio de mémoire :

{ "name": "my-managed-capacity-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 }, "cpuManufacturers": ["intel", "amd"] } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, } }
Exemple Charges de travail accélérées par le GPU

Cette configuration sélectionne les instances de GPU pour les charges de travail de machine learning :

{ "name": "ml-gpu-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "allowedInstanceTypes": [ "p3.2xlarge", "p3.8xlarge", "g4dn.xlarge", "g4dn.2xlarge" ], "acceleratorTypes": ["gpu"], "acceleratorCount": { "max": 4, "min": 1 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] } } }
Exemple Charges de travail à mémoire élevée

Cette configuration sélectionne des instances à mémoire optimisée pour le traitement des données :

{ "name": "high-memory-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "allowedInstanceTypes": [ "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "x1e.xlarge" ], "memoryMiB": { "max": 131072, "min": 32768 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] } } }

Étapes suivantes

Après avoir créé votre fournisseur de capacité, vous pouvez l’utiliser pour créer des services ou exécuter des tâches :