Passer au contenu

Comment allouer de la mémoire aux tâches dans Amazon ECS ?

Lecture de 6 minute(s)
0

Je souhaite utiliser Amazon Elastic Container Service (Amazon ECS) pour allouer de la mémoire aux tâches.

Brève description

Dans Amazon ECS, vous pouvez définir la mémoire de votre tâche selon 2 définitions de tâches :

Amazon ECS calcule les métriques d'utilisation de la mémoire du service selon que vous utilisez le paramètre memoryReservation ou mémoire. Pour plus d'informations, consultez la section Utilisation du processeur et de la mémoire au niveau du service.

Dans le tableau suivant, vous pouvez consulter les options minimales à configurer pour les types de lancements Amazon Elastic Compute Cloud (Amazon EC2) et AWS Fargate :

Tâche sans taille de tâcheTâche avec taille de tâche
CPU de tâcheConfiguration facultativeConfiguration obligatoire
Mémoire de tâcheConfiguration facultativeConfiguration obligatoire
Processeur de conteneurConfiguration facultativeConfiguration facultative
Mémoire de conteneurConfiguration obligatoireConfiguration facultative
Compatibilité du type de lancementEC2 uniquementEC2 et Fargate

Pour les tâches dont la taille n'est pas définie, vous devez configurer la mémoire de conteneur pour la tâche. Vous ne pouvez utiliser ces tâches que pour les types de lancements Amazon EC2. Pour les tâches dont la taille est définie, vous pouvez utiliser les tâches correspondant aux types de lancements Amazon EC2 ou AWS Fargate. Puis, configurez la mémoire de tâche et le processeur. Pour plus d'informations, consultez la section Paramètres de définition des tâches Amazon ECS pour le type de lancement Fargate.

Résolution

Vérifier les allocations de mémoire de votre conteneur

Procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Dans le volet de navigation, choisissez Clusters, puis sélectionnez votre cluster.
  3. Sur la page des détails du cluster, sélectionnez Infrastructure.
  4. Sous Instances de conteneur, sélectionnez l'ID d'instance de conteneur enregistrée dans votre cluster.
  5. Sous Ressources et mise en réseau, consultez les informations sur la mémoire.

Le paramètre mémoire fournit des informations sur les détails de cluster suivants :

  • Capacité totale de mémoire disponible lorsque l'appel d'API RegisterContainerInstance API est effectué
  • Mémoire en cours d'utilisation allouée aux tâches ECS exécutées sur l'instance
  • Mémoire disponible que vous pouvez allouer à de nouvelles tâches

Remarque : Pour obtenir des statistiques sur l'utilisation des ressources de l'instance, utilisez SSH ou SSM pour vous connecter à l'instance. Puis, exécutez la commande docker stats. Pour plus d'informations, consultez les statistiques du conteneur Docker sur le site Web de docker.

Pour les types de lancements EC2, vous devez connaître la mémoire disponible sur vos instances de conteneur pour spécifier correctement la mémoire dans vos définitions de tâches. Si la mémoire spécifiée dans la définition de tâche est supérieure à la mémoire disponible sur l'instance enregistrée, la tâche échoue.

Utiliser l'éditeur JSON de la console Amazon ECS

Pour créer une définition de tâche Amazon ECS et allouer de la mémoire aux tâches, vous pouvez utiliser l'éditeur JSON de la console Amazon ECS. Pour plus d'informations, consultez la section Procédure.

Utiliser la console Amazon ECS

Pour utiliser la console Amazon ECS afin d'allouer de la mémoire à des tâches, effectuez l'une des tâches suivantes.

Créer une définition de tâche avec une limite flexible (memoryReservation)

Procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Dans le volet de navigation, sélectionnez Définition de tâche, puis Créer une nouvelle définition de tâche.
  3. Sur l'écran Créer une définition de tâche, entrez les informations suivantes :
    Dans Nom de la famille de définitions de tâches, entrez un nom pour votre tâche.
    Dans Type de lancement, sélectionnez Instances Amazon EC2.
    Dans la section Conteneur, pour Détails du conteneur, entrez le nom et l'URI de l'image pour le conteneur.
    Dans Limites d'allocation de ressources, entrez une valeur pour Limite flexible de mémoire. Puis, sélectionnez Créer.
    Remarque : La limite flexible de mémoire correspond au paramètre memoryReservation.

Créer une définition de tâche avec une limite stricte (mémoire)

Procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Dans le volet de navigation, sélectionnez Définition de tâche, puis Créer une nouvelle définition de tâche.
  3. Sur l'écran Créer une définition de tâche, entrez les informations suivantes :
    Dans Nom de la famille de définitions de tâches, entrez un nom pour votre tâche.
    Dans Type de lancement, sélectionnez Instances Amazon EC2.
    Dans la section Conteneur, pour Détails du conteneur, entrez le nom et l'URI de l'image pour le conteneur.
    Dans Limites d'allocation de ressources, entrez une valeur pour Limite stricte de mémoire. Puis, sélectionnez Créer.
    Remarque : La limite stricte de mémoire correspond au paramètre de mémoire.

Vérifier les allocations de mémoire de votre conteneur

Procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Dans le volet de navigation, choisissez Clusters, puis sélectionnez votre cluster.
  3. Sur la page Détails du cluster, choisissez l'onglet Infrastructure.
  4. Sélectionnez l'instance de conteneur qui est enregistrée dans le cluster.
  5. Dans l'onglet Instance de conteneur, sous Ressources, vérifiez la valeur de Mémoire enregistrée.
    Remarque : Lorsqu'aucune tâche n'est en cours d'exécution, la valeur de Mémoire enregistrée est égale à la valeur de Mémoire disponible.

Remarque : Pour obtenir des statistiques sur l'utilisation des ressources de l'instance, utilisez SSH ou SSM pour vous connecter à l'instance. Puis, exécutez la commande docker stats. Pour plus d'informations, consultez les statistiques du conteneur Docker sur le site Web de docker.

Pour les tâches exécutées dans le cadre d'un service, la métrique Utilisation de la mémoire de service indique l'utilisation en pourcentage des ressources de mémoire totales. Ces ressources sont spécifiées pour le service dans la définition de tâche. Pour plus d'informations, consultez la section Utilisation du processeur et de la mémoire au niveau du service.

Vous pouvez également utiliser Container Insights pour votre cluster afin de consulter la métrique MemoryUtilized. Cette métrique indique la mémoire utilisée par les tâches et les conteneurs.

Informations connexes

Comment Amazon ECS gère les ressources du processeur et de la mémoire

Gestion de l'espace mémoire d'échange de conteneurs sur Amazon ECS

Création d'un cluster Amazon ECS pour le type de lancement Amazon EC2

Réservation d’une mémoire d'instance de conteneur Amazon ECS Linux

Contraintes de ressources sur le site Web de Docker

AWS OFFICIELA mis à jour il y a 9 mois