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

Lecture de 12 minute(s)
0

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

Brève description

Dans Amazon ECS, la mémoire peut être définie à la fois au niveau de la tâche et au niveau de chaque conteneur. La mémoire définie au niveau de la tâche est la limite dure de la mémoire pour la tâche. Au niveau du conteneur, il existe deux paramètres pour allouer de la mémoire aux tâches : memoryReservation (une limite douce) et memory (une limite dure). Pour les tâches hébergées sur des instances Amazon EC2, le champ de mémoire au niveau de la tâche est facultatif et n'importe quelle valeur peut être utilisée. Si une valeur de mémoire au niveau des tâches est spécifiée, la valeur de mémoire au niveau du conteneur est facultative. 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 douce ou sur la limite dure d'une définition de tâche. Pour plus d'informations, consultez réservation de 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 soustraite 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 douce

  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 douce), puis saisissez 700.
  9. Choisissez Add (Ajouter), puis choisissez Create (Créer).

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

  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. Choisissez Type de lancement EC2, choisissez la définition de tâche que vous avez créée avec une limite douce, puis choisissez Exécuter la tâche. Remarque : La définition de tâche et le cluster peuvent être prérenseignés avec le nom de la définition de tâche et du cluster que vous avez créés précédemment si vous utilisez ECS pour la première fois.
  4. Lorsque la colonne Dernier état de la tâche avec une limite douce indique EN COURS d'exécution, passez à l'étape suivante.
    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 douce, 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 dure

  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 douce, 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 douce.
  4. Pour « Memory Limits (Mio) » (Limites de mémoire (Mio)), choisissez « Hard limit », (Limite dure), 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 dure

  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. Choisissez le type de lancement comme EC2
  4. Pour Task Definition (Définition de tâche), choisissez la définition de tâche avec une limite dure que vous avez créée, puis choisissez Run Task (Exécuter la tâche).
  5. Lorsque la colonne Dernier état de la tâche révisée avec une limite dure indique EN COURS d'exécution, passez à l'étape suivante.
    Remarque : pour mettre à jour le statut de la tâche sur RUNNING (EN COURS D'EXÉCUTION), actualisez la page.
  6. 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).
  7. 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.
  8. Choisissez Clusters dans le volet de navigation, puis choisissez le cluster.
  9. Choisissez la vue « Tasks » (Tâches), sélectionnez la tâche avec une limite dure, puis choisissez « Stop » (Arrêter).
  10. 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 douce et une limite dure

  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 dure, 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 dure.
  4. Pour « Memory Limits (Mio) » (Memory Limits (Mio)), choisissez « Soft limit » (Limite douce), puis saisissez 700.
  5. Choisissez « Add Hard limit », (Ajouter une limite dure), 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 douce et une limite dure

  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. Choisissez le type de lancement comme EC2
  4. Pour Task Definition (Définition de tâche), choisissez la définition de tâche que vous avez créée avec une limite douce et une limite dure, puis choisissez Run Task (Exécuter la tâche).
  5. Lorsque la colonne Dernier état de la tâche indique EN COURS d'exécution, passez à l'étape suivante.
    Remarque : pour mettre à jour le statut de la tâche sur RUNNING (EN COURS D'EXÉCUTION), actualisez la page.
  6. 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é).
  7. 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.
  8. Choisissez Clusters dans le volet de navigation, puis choisissez le cluster.
  9. Choisissez la vue « Tasks » (Tâches), sélectionnez la tâche avec une limite douce et une limite dure, puis choisissez « Stop » (Arrêter).
  10. 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 de mémoire au niveau de la tâche

  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 douce et dure, puis choisissez Create new revision (Créer une nouvelle révision).
  3. Dans la section Taille de la tâche, pour Mémoire de tâches (MiB), entrez 1000
  4. Dans la section Container Definitions (Définitions de 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 douce et dure.
  5. Pour les limites de mémoire (MiB), supprimez la limite douce en choisissant l'icône x sur le côté droit
  6. Ensuite, pour Limite dure, supprimez la valeur 1200 en la sélectionnant et en la supprimant.
  7. Choisissez Update (Mettre à jour), puis Create (Créer).

Exécutez la définition de tâche révisée avec la limite de mémoire au niveau des tâches

  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. Choisissez type de lancement comme EC2
  4. Pour Task Definition (Définition de tâche), choisissez la définition de tâche avec la mémoire au niveau de la tâche que vous avez créée, puis choisissez Run Task (Exécuter la tâche).
  5. Lorsque la colonne Dernier état de la tâche indique EN COURS d'exécution, passez à l'étape suivante.
    Remarque : pour mettre à jour le statut de la tâche sur RUNNING (EN COURS D'EXÉCUTION), actualisez la page.
  6. 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é).
  7. 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.
    Remarque : vous remarquerez peut-être que la limite de mémoire indiquée par la commande docker stats n'est peut-être pas de 1 000 Mo pour le conteneur. Cela est dû au fait que la mémoire au niveau des tâches est gérée par l'agent ECS et non par le démon Docker.
  8. Choisissez Clusters dans le volet de navigation, puis choisissez le cluster.
  9. Choisissez la vue Tasks (Tâches), sélectionnez la tâche avec une limite de mémoire de la tâche, puis choisissez Stop (Arrêter).
  10. 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é).

Informations connexes

Métriques Amazon ECS CloudWatch

Types d'instances Amazon EC2

Limitation de l'accès d'un conteneur à la mémoire

Taille de la tâche

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans