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

Date de la dernière mise à jour : 21/11/2019

Comment puis-je utiliser Amazon Elastic Container Service (Amazon ECS) pour allouer de la mémoire aux tâches ?

Brève description

Amazon ECS utilise deux paramètres pour allouer de la mémoire aux tâches : memoryReservation (une limite logicielle) et memory (une limite matérielle). La valeur de chaque paramètre est soustraite des unités de mémoire disponibles d'une instance de conteneur Amazon ECS lorsqu'une tâche est en cours d'exécution. Le calcul est basé sur la limite logicielle ou sur la limite matérielle d'une définition de tâche. Pour plus d'informations, consultez Utilisation du cluster.

Remarque : les paramètres memory et memoryReservation sont définis en tant que paramètres de définition du conteneur d'une définition de tâche Amazon ECS. Si vous spécifiez une valeur pour la mémoire au niveau du conteneur et memoryReservation, puis la mémoire doit être supérieure à memoryReservation. Si vous spécifiez memoryReservation, cette valeur est soustrait des ressources de mémoire disponibles pour l'instance de conteneur sur laquelle le conteneur est placé. Sinon, la valeur de memory est utilisée. Pour plus d'informations, consultez la section Mémoire.

Résolution

Avant de commencer, vérifiez que vous disposez d'un cluster Amazon ECS qui inclut une instance Amazon Elastic Compute Cloud (Amazon EC2). Pour plus d'informations sur la création d'un cluster, consultez Création d'un cluster à l'aide de la console classique. Pour plus d'informations sur la configuration du cluster et de l'instance de conteneur, consultez Gestion de la mémoire des instances de conteneur.

Affichage des allocations de mémoire d'une instance de conteneur

  1. Ouvrez la console Amazon ECS.
  2. Dans le panneau de navigation, choisissez Clusters.
  3. Choisissez le cluster que vous avez créé.
  4. Choisissez la vue Instances ECS puis choisissez l'instance de conteneur incluse avec le cluster que vous avez créé à partir de la colonne Instance de conteneur.
    Remarque : le volet « Details »s (Informations) indique que la mémoire de la colonne « Available » (Disponible) est égale à la mémoire de la colonne « Registered » (Enregistré).
  5. Pour obtenir des statistiques sur l'utilisation des ressources de l'instance, connectez-vous à l'instance à l'aide de SSH, puis exécutez la commande docker stats.

Création d'une définition de tâche avec une limite logicielle

  1. À partir de la console Amazon ECS, dans le volet de navigation, choisissez Task Definitions (Définitions de tâche).
  2. Choisissez « Create new Task Definition » (Créer une nouvelle définition de tâche).
  3. Pour le type de lancement, choisissez EC2, puis « Next step » (Étape suivante).
  4. Pour « Task Definition Name » (Nom de définition de tâche), saisissez un nom.
  5. Dans la section « Container Definitions » (Définitions de conteneur), sélectionnez « Add container » (Ajouter un conteneur).
  6. Pour « Container name » (Nom du conteneur), entrez un nom.
  7. Pour Image, entrez nginx ou l'image Docker appropriée pour votre environnement.
  8. Pour « Memory Limits (Mio) » (Memory Limits (Mio)), choisissez « Soft limit » (Limite flexible), puis saisissez 700.
  9. Choisissez Add (Ajouter), puis choisissez Create (Créer).

Exécution de la définition de tâche avec une limite logicielle

  1. Dans la console Amazon ECS, dans le volet de navigation, choisissez Clusters, puis choisissez le cluster que vous avez créé.
  2. Choisissez la vue « Tasks » (Tâches ), puis « Run new Task » (Exécuter une nouvelle tâche).
  3. Choisissez Run Task (Exécuter la tâche).
    Remarque : Task Definition (Définition de tâche) et Cluster sont préremplis et contiennent le nom et la définition de tâche du cluster que vous avez créé précédemment.
  4. Lorsque la colonne Last status (Dernier statut) de la tâche avec une limite logicielle indique RUNNING (EN COURS D'EXÉCUTION), choisissez Clusters dans le panneau de navigation.
    Remarque : pour mettre à jour le statut de la tâche sur « RUNNING » (EN COURS D'EXÉCUTION), actualisez la page.
  5. Choisissez la vue ECS Instances (Instances ECS), puis choisissez l'instance à partir de la colonne Container Instance (Instance de conteneur).
    Remarque : le volet « Details » (Informations) indique que la mémoire de la colonne « Available » (Disponible) est inférieure à la mémoire de la colonne « Registered » (Enregistré).
  6. Pour obtenir des statistiques sur l'utilisation des ressources de l'instance, connectez-vous à l'instance à l'aide de SSH, puis exécutez la commande docker stats.
  7. Choisissez Clusters dans le volet de navigation, puis choisissez le cluster.
  8. Choisissez la vue « Tasks » (Tâches), sélectionnez la tâche avec une limite flexible, puis choisissez « Stop » (Arrêter).
  9. Choisissez la vue ECS Instances (Instances ECS), puis choisissez l'instance à partir de la colonne Container Instance (Instance de conteneur).
    Remarque : le volet « Details »s (Informations) indique que la mémoire de la colonne « Available » (Disponible) est égale à la mémoire de la colonne « Registered » (Enregistré).

Créer une nouvelle révision d'une définition de tâche avec une limite stricte

  1. À partir de la console Amazon ECS, dans le volet de navigation, choisissez Task Definitions (Définitions de tâche).
  2. Sélectionnez la définition de tâche que vous avez créée avec une limite flexible, puis choisissez « Create new revision » (Créer une nouvelle révision).
  3. Dans la section « Container Definitions » (Définitions du conteneur) dans la colonne « Container Name » (Nom du conteneur), choisissez le conteneur que vous avez ajouté pour la définition de tâche avec une limite flexible.
  4. Pour « Memory Limits (Mio) » (Limites de mémoire (Mio)), choisissez « Hard limit », (Limite stricte), puis entrez 1 000.
  5. Choisissez Update (Mettre à jour), puis Create (Créer).

Exécution de la définition de tâche révisée avec une limite matérielle

  1. Dans la console Amazon ECS, dans le volet de navigation, choisissez Clusters, puis choisissez le cluster que vous avez créé.
  2. Choisissez la vue « Tasks » (Tâches ), puis « Run new Task » (Exécuter une nouvelle tâche).
  3. Pour « Task Definition » (Définition de tâche), choisissez la définition de tâche avec une limite stricte que vous avez créée, puis choisissez « Run Task » (Exécuter la tâche).
  4. Lorsque la colonne « Last status » (Dernier statut) de la tâche révisée avec une limite stricte indique « RUNNING » (EN COURS D'EXÉCUTION), choisissez Clusters dans le volet de navigation.
    Remarque : pour mettre à jour le statut de la tâche sur RUNNING (EN COURS D'EXÉCUTION), actualisez la page.
  5. Choisissez la vue ECS Instances (Instances ECS), puis choisissez l'instance à partir de la colonne Container Instance (Instance de conteneur).
    Remarque : le panneau Details (Détails) indique que la mémoire disponible dans la colonne Available (Disponible) est inférieure à la mémoire de la colonne Registered (Enregistrée).
  6. Pour obtenir des statistiques sur l'utilisation des ressources de l'instance, connectez-vous à l'instance à l'aide de SSH, puis exécutez la commande docker stats.
  7. Choisissez Clusters dans le volet de navigation, puis choisissez le cluster.
  8. Choisissez la vue « Tasks » (Tâches), sélectionnez la tâche avec une limite stricte, puis choisissez « Stop » (Arrêter).
  9. Choisissez la vue ECS Instances (Instances ECS), puis choisissez l'instance à partir de la colonne Container Instance (Instance de conteneur).
    Remarque : le volet « Details »s (Informations) indique que la mémoire de la colonne « Available » (Disponible) est égale à la mémoire de la colonne « Registered » (Enregistré).

Créer une nouvelle révision d'une définition de tâche avec une limite flexible et une limite stricte

  1. À partir de la console Amazon ECS, dans le volet de navigation, choisissez Task Definitions (Définitions de tâche).
  2. Sélectionnez la définition de tâche que vous avez créée avec une limite stricte, puis choisissez « Create new revision » (Créer une nouvelle révision).
  3. Dans la section « Container Definitions » (Définitions du conteneur) dans la colonne « Container Name » (Nom du conteneur), choisissez le conteneur que vous avez ajouté pour la définition de tâche avec une limite stricte.
  4. Pour « Memory Limits (Mio) » (Memory Limits (Mio)), choisissez « Soft limit » (Limite flexible), puis saisissez 700.
  5. Choisissez « Add Hard limit », (Ajouter une limite stricte), puis saisissez 1 200.
  6. Choisissez Update (Mettre à jour), puis Create (Créer).

Exécution d'une définition de tâche révisée avec une limite logicielle et une limite matérielle

  1. À partir de la console Amazon ECS, dans le panneau de navigation, choisissez Clusters, puis choisissez le cluster que vous avez créé.
  2. Choisissez la vue Tasks (Tâches ), puis Run new Task (Exécuter une nouvelle tâche).
  3. Pour Task Definition (Définition de tâche), choisissez la définition de tâche que vous avez créée avec une limite logicielle et une limite matérielle, puis choisissez Run Task (Exécuter la tâche).
  4. Lorsque la colonne Last status (Dernier statut) de la tâche avec une limite logicielle indique RUNNING (EN COURS D'EXÉCUTION), choisissez Clusters à partir du volet de navigation.
    Remarque : pour mettre à jour le statut de la tâche sur « RUNNING » (EN COURS D'EXÉCUTION), actualisez la page.
  5. Choisissez Clusters dans le volet de navigation, puis choisissez le cluster.
  6. Choisissez la vue « Tasks » (Tâches), sélectionnez la tâche avec une limite flexible et une limite stricte, puis choisissez « Stop » (Arrêter).
  7. Choisissez la vue ECS Instances (Instances ECS), puis choisissez l'instance à partir de la colonne Container Instance (Instance de conteneur).
    Remarque : le volet « Details » (Informations) indique que la mémoire de la colonne « Available » (Disponible) est inférieure à la mémoire de la colonne « Registered » (Enregistré).
  8. Pour obtenir des statistiques sur l'utilisation des ressources de l'instance, connectez-vous à l'instance à l'aide de SSH, puis exécutez la commande docker stats.

Cet article vous a-t-il été utile ?


 Avez-vous besoin d'aide pour une question technique ou de facturation ?