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éterminer le type de surveillance à utiliser. Pour de plus amples informations, consultez Surveillance détaillée des instances gérées Amazon ECS.
-
Avoir un cluster existant ou prévoir d’en créer un. Pour de plus amples informations, consultez Création d’un cluster pour les instances gérées Amazon ECS.
-
Vous disposez des rôles IAM requis pour les instances gérées Amazon ECS. Cela consiste notamment à :
-
Rôle d’infrastructure : permet à Amazon ECS d’appeler les services AWS en votre nom afin de gérer l’infrastructure des instances gérées Amazon ECS.
Pour de plus amples informations, consultez Amazon ECS infrastructure IAM role.
-
Profil d’instance : fournit des autorisations pour l’agent de conteneur Amazon ECS et le démon Docker exécutés sur des instances gérées.
Pour de plus amples informations, consultez Profil d’instance des instances gérées Amazon ECS.
-
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)
Ouvrez la console à partir de l'adresse https://console.aws.amazon.com/ecs/v2
. -
Dans la barre de navigation, sélectionnez la région à utiliser.
-
Dans le panneau de navigation, choisissez Clusters.
-
Sur la page Clusters, choisissez le nom de votre cluster.
-
Sur la page Clusters, choisissez l’onglet Infrastructure.
-
Dans la section Fournisseur de capacité, choisissez Créer un fournisseur de capacité.
-
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.
-
-
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.
-
-
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,
4ou8-16pour une plage). -
Mémoire (Mio) : spécifiez la quantité de mémoire en Mio (par exemple,
8192ou16384-32768pour 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, ouamazon-web-services. -
Types d’accélérateurs : spécifiez les types d’accélérateurs tels que
gpu,fpga, ouinference. -
Nombre d’accélérateurs : spécifiez le nombre d’accélérateurs (par exemple,
1ou2-4pour une plage).
-
-
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é.
-
-
(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é.
-
-
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)
-
Exécutez la commande suivante :
aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.jsonLe fichier
capacity-provider-definition.jsonsuivant 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" } } -
Vérifiez que votre fournisseur de capacité a été créé avec succès :
aws ecs describe-capacity-providers \ --capacity-providersmy-managed-instances-providerSortie :
{ "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 :
-
Pour utiliser le fournisseur de capacité avec un service, consultez la section Création d’un déploiement de mise à jour propagée Amazon ECS.
-
Pour utiliser le fournisseur de capacité avec des tâches autonomes, consultez la section Exécution d’une application en tant que tâche Amazon ECS.