View a markdown version of this page

Scaling se connecte AWS PIÈCES - AWS PIÈCES

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Scaling se connecte AWS PIÈCES

Les journaux de dimensionnement vous permettent d'enregistrer la manière dont AWS Parallel Computing Service adapte les groupes de nœuds de calcul de votre cluster. Chaque entrée de journal enregistre une transition d'état pour un nœud de calcul : par exemple, le lancement d'une instance, l'enregistrement d'un nœud, une réduction d'échelle ou un échec de lancement avec sa raison. Vous pouvez utiliser les journaux de dimensionnement pour répondre à des questions telles que pourquoi un groupe de nœuds n'a pas atteint sa taille cible, quels lancements ont échoué pour des raisons de capacité et quand un nœud spécifique a démarré ou s'est arrêté.

Vous pouvez envoyer des journaux de dimensionnement à Amazon CloudWatch, Amazon Simple Storage Service (Amazon S3) et Amazon Data Firehose. Pour chaque transition, AWS PCS enregistre les données suivantes :

  • Identifiants de cluster et de groupe de nœuds de calcul

  • Le nom du nœud

  • Le nouveau statut

  • Un code de motif et une description lisible par l'homme

  • L'ID d'instance EC2, lorsqu'une instance est associée à la transition

  • Contexte de lancement, tel que le type d'instance et le sous-réseau, le cas échéant

AWS PCS fournit des journaux de dimensionnement via le type de PCS_SCALING_LOGS journal. La mise à l'échelle de la livraison des journaux est optionnelle. AWS PCS ne fournit pas de journaux de dimensionnement pour un cluster tant que vous n'avez pas configuré une livraison pour celui-ci.

Conditions préalables

Le principal IAM qui gère le cluster AWS PCS doit autoriser l'pcs:AllowVendedLogDeliveryForResourceaction.

L'exemple de politique IAM suivant accorde les autorisations requises.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PcsAllowVendedLogsDelivery", "Effect": "Allow", "Action": ["pcs:AllowVendedLogDeliveryForResource"], "Resource": [ "arn:aws:pcs:*::cluster/*" ] } ] }

Configurer des journaux de dimensionnement

Vous pouvez configurer des journaux de dimensionnement pour votre cluster AWS PCS à l'aide du Console de gestion AWS ou AWS CLI.

Console de gestion AWS
Pour configurer les journaux de dimensionnement à l'aide de la console
  1. Ouvrez la console AWS PCS.

  2. Dans le panneau de navigation, choisissez Clusters.

  3. Choisissez le cluster dans lequel vous souhaitez ajouter des journaux de dimensionnement.

  4. Sur la page des détails du cluster, choisissez l'onglet Journaux.

  5. Dans Scaling Logs, choisissez Ajouter pour ajouter jusqu'à 3 destinations de livraison des CloudWatch journaux parmi Logs, Amazon S3 et Firehose.

  6. Choisissez Mettre à jour les livraisons de journaux.

AWS CLI
Pour configurer des journaux de dimensionnement avec AWS CLI
  1. Créez une destination de livraison des journaux :

    aws logs put-delivery-destination --region region \ --name pcs-logs-destination \ --delivery-destination-configuration \ destinationResourceArn=resource-arn

    Remplacez :

    • region— L' Région AWS endroit où vous souhaitez créer la destination, par exemple us-east-1

    • pcs-logs-destination— Un nom pour la destination

    • resource-arn— Le nom de ressource Amazon (ARN) d'un groupe de CloudWatch journaux Logs, d'un bucket S3 ou d'un flux de diffusion Firehose.

    Pour plus d'informations, consultez PutDeliveryDestination le manuel Amazon CloudWatch Logs API Reference.

  2. Définissez le cluster PCS comme source de livraison de journaux :

    aws logs put-delivery-source --region region \ --name cluster-logs-source-name \ --resource-arn cluster-arn \ --log-type PCS_SCALING_LOGS

    Remplacez :

    • region— Le Région AWS de votre cluster, tel que us-east-1

    • cluster-logs-source-name— Un nom pour la source

    • cluster-arn— l'ARN de votre cluster AWS PCS

    Pour plus d'informations, consultez PutDeliverySource le manuel Amazon CloudWatch Logs API Reference.

  3. Connectez la source de livraison à la destination de livraison :

    aws logs create-delivery --region region \ --delivery-source-name cluster-logs-source \ --delivery-destination-arn destination-arn

    Remplacez :

    • region— Les Région AWS, tels que us-east-1

    • cluster-logs-source— Le nom de votre source de livraison

    • destination-arn— L'ARN de votre destination de livraison

    Pour plus d'informations, consultez CreateDelivery le manuel Amazon CloudWatch Logs API Reference.

Recherche de journaux de dimensionnement

Vous pouvez configurer les destinations des CloudWatch journaux dans Logs et Amazon S3. AWS PCS utilise les noms de chemin et de fichier structurés suivants.

CloudWatch Journaux

AWS PCS utilise le format de nom suivant pour le flux CloudWatch Logs :

AWSLogs/PCS/cluster-id/node_lifecycle.log

Par exemple : AWSLogs/PCS/pcs_abc123de45/node_lifecycle.log

Amazon S3

AWS PCS utilise le format de nom suivant pour le chemin S3 :

AWSLogs/account-id/PCS/region/cluster-id/node_lifecycle/year/month/day/hour/

Par exemple : AWSLogs/111122223333/PCS/us-east-1/pcs_abc123de45/node_lifecycle/2026/09/03/11/

AWS PCS utilise le format de nom suivant pour les fichiers journaux :

PCS_cluster-id_node_lifecycle_year-month-day-hour_random-id.log.gz

Par exemple : PCS_pcs_abc123de45_node_lifecycle_2026-09-03-11_04be080b.log.gz

Dimensionnement des champs de journal

AWS PCS écrit les données du journal de dimensionnement sous forme d'objets JSON. Chaque entrée de journal contient des champs de métadonnées de niveau supérieur et un details objet. Les champs de niveau supérieur identifient le cluster, l'heure de l'événement et les identifiants du groupe de nœuds de calcul et des nœuds du planificateur. L'detailsobjet contient les détails de la transition.

Le tableau suivant décrit les champs de niveau supérieur de chaque entrée de journal.

Top-level champs
Nom Exemple de valeur Obligatoire Remarques
resource_id "pcs_22l8nzr3t9" Oui L'identifiant du cluster AWS PCS
resource_type "PCS_CLUSTER" Oui Toujours "PCS_CLUSTER"
event_timestamp 1789179816460 Oui Époque Unix : millisecondes à laquelle l'événement s'est produit
compute_node_group_id "pcs_56zr33g8" Oui Le groupe de nœuds de calcul auquel appartient le nœud
scheduler_node_id "compute-1" Oui L'identifiant du nœud du planificateur
status_code "LAUNCH_FAILED" Oui Le nouvel état du nœud. Consultez Codes de statut et codes de motif
reason_code "INSUFFICIENT_CAPACITY" Oui Pourquoi la transition s'est produite
description "The launch failed because EC2 did not have enough capacity" Oui Un résumé lisible par l'homme dérivé des codes de statut et de motif
details {...} Non Contexte supplémentaire pour la transition. Les clés dépendent du type de transition

Le tableau suivant décrit les touches qui peuvent apparaître à l'intérieur de l'detailsobjet.

Champs à l'intérieur de l'objet de détails
Nom Exemple de valeur Obligatoire Remarques
instance_id "i-0abcdef01234567a" Non L'instance EC2 associée au nœud. Absent lorsqu'aucune instance n'est associée, par exemple après un échec de lancement
ec2_error_code "InsufficientInstanceCapacity" Non Code d'erreur EC2 correspondant à un échec de lancement. Le même code apparaît dans l' CloudTrail enregistrement de l' CreateFleet appel sur votre compte
instance_type "t4g.micro" Non Le type d'instance lancé
subnet_id "subnet-0abc123" Non Le sous-réseau visé par le lancement

Codes de statut et codes de motif

Le status_code champ indique l'état saisi par le nœud. Le reason_code champ vous explique pourquoi. Par exemple, un LAUNCH_FAILED statut avec une INSUFFICIENT_CAPACITY raison signifie qu'Amazon EC2 n'a pas pu fournir de capacité pour le type d'instance demandé dans le sous-réseau ciblé. A LIMIT_EXCEEDED signifie qu'un quota Amazon EC2 a bloqué le lancement.

Codes de statut et codes de motif
Code de statut Code de motif Description
LAUNCHED SCHEDULER_REQUESTED Instance lancée pour répondre à une demande de mise à l'échelle d'un planificateur
LAUNCHED MAINTAIN_MIN_CAPACITY Instance lancée pour maintenir la capacité minimale du groupe de nœuds
REGISTERED REGISTER_SUCCESS Nœud enregistré avec succès via l'agent PCS
ACTIVE BOOTSTRAP_SUCCESS Le bootstrap du nœud est terminé ; slurmd est en cours d'exécution et accepte les jobs
PENDING_REPLACEMENT NODE_GROUP_UPDATE Le nœud est en train de se vider avant d'être mis hors tension pour une mise à jour du groupe de nœuds
PENDING_REPLACEMENT EC2_HEALTH_CHECK_FAILED Le nœud est en train de se vider car un contrôle de santé du nœud ou de son instance a échoué
PENDING_REPLACEMENT EC2_SCHEDULED_EVENT Le nœud est en train de se vider car son instance comporte un événement de maintenance EC2 planifié
LAUNCH_FAILED INSUFFICIENT_CAPACITY Le nœud n'a pas obtenu d'instance car la capacité disponible était insuffisante
LAUNCH_FAILED LIMIT_EXCEEDED Le lancement de l'instance a échoué car un quota de compte a été dépassé
LAUNCH_FAILED LAUNCH_ERROR Le nœud n'a pas pu lancer son instance
TERMINATED SCHEDULER_REQUESTED L'instance s'est arrêtée après que le planificateur a libéré le nœud (délai d'inactivité ou mise hors tension)
TERMINATED UNHEALTHY_NODE Instance arrêtée car le planificateur a signalé que le nœud était défectueux
TERMINATED BOOTSTRAP_FAILED L'instance s'est arrêtée car le nœud n'a pas pu démarrer
TERMINATED EXTERNALLY_TERMINATED L'instance a été arrêtée en dehors du PCS ; le nœud a été libéré afin de pouvoir être remplacé
TERMINATED REPLACEMENT_REQUESTED L'instance a été arrêtée car le nœud a été vidé pour être remplacé
TERMINATED NODE_GROUP_DELETION Instance arrêtée dans le cadre de la suppression d'un groupe de nœuds de calcul
TERMINATE_FAILED EC2_OPERATION_NOT_PERMITTED La résiliation de l'instance a échoué. Assurez-vous que la protection contre les interruptions n'est pas activée sur l'instance
TERMINATE_FAILED EC2_ERROR La résiliation de l'instance a échoué

Exemples de journaux de dimensionnement

L'exemple suivant montre un lancement d'instance réussi :

{ "resource_id": "pcs_abc123de45", "resource_type": "PCS_CLUSTER", "event_timestamp": 1789179816460, "compute_node_group_id": "pcs_abcdef01", "scheduler_node_id": "compute-1", "status_code": "LAUNCHED", "reason_code": "SCHEDULER_REQUESTED", "description": "Instance launched to satisfy a scheduler scale-up request.", "details": { "instance_id": "i-0abc12345def67890", "instance_type": "c6i.xlarge", "subnet_id": "subnet-0123456789abcdef0" } }

L'exemple suivant montre un échec de lancement dû à une capacité EC2 insuffisante. Non instance_id est présent car aucune instance n'a été lancée.

{ "resource_id": "pcs_abc123de45", "resource_type": "PCS_CLUSTER", "event_timestamp": 1789179816460, "compute_node_group_id": "pcs_abcdef01", "scheduler_node_id": "compute-2", "status_code": "LAUNCH_FAILED", "reason_code": "INSUFFICIENT_CAPACITY", "description": "Node did not get an instance because there was not enough capacity available.", "details": { "ec2_error_code": "InsufficientInstanceCapacity" } }