Comment puis-je obtenir l'ID ou l'adresse IP d'une instance Amazon EC2 pour une tâche AWS Batch ?

Date de la dernière mise à jour : 25/02/2020

Je souhaite obtenir l'ID ou l'adresse IP d'une instance Amazon Elastic Compute Cloud (Amazon EC2) pour une tâche AWS Batch.

Brève description

Pour obtenir des informations sur l'instance Amazon EC2 qui s'exécute sur votre tâche AWS Batch, vous devez d'abord obtenir l'ID de conteneur de votre tâche. Ensuite, vous pouvez utiliser l'ID d'instance de conteneur pour obtenir votre ID d'instance EC2. Enfin, vous pouvez utiliser votre ID d'instance EC2 pour obtenir l'adresse IP de cette instance.

Résolution

Obtenir l'ID d'instance de conteneur de votre tâche AWS Batch

1.    Pour obtenir l'ID d'instance de conteneur de votre tâche AWS Batch, exécutez la commande describe-jobs suivante :

$ aws batch describe-jobs --jobs YourJobID

La sortie décrit toutes les propriétés et tous les paramètres de la tâche, y compris l'ID d'instance de conteneur. La propriété containerInstanceArn affiche votre ID d'instance de conteneur. Reportez-vous à l'exemple suivant :

{
    "jobs": [
        {
            "status": "SUCCEEDED",
            "container": {
                "mountPoints": [],
                "taskArn": "arn:aws:ecs:us-east-1:1234567890:task/8fde8ebf-c5d8-40ca-8999-b0c2185f577a",
                "logStreamName": "job-definition/default/8fde8ebf-c5d8-40ca-8999-b0c2185f577a",
                "image": "busybox",
                "containerInstanceArn": "arn:aws:ecs:us-east-1:1234567890:container-instance/Your_Container_Instance_ID",
                "environment": [],
                "vcpus": 2,
                "jobRoleArn": "arn:aws:iam::1234567890:role/ecsTaskExecutionRole",
                "volumes": [],
                "memory": 2000,
                "command": [
                    "echo",
                    "'hello world'"
                ],
            },
}

2.    Pour trouver le cluster Amazon Elastic Container Service (Amazon ECS) correspondant à votre environnement de calcul AWS Batch, ouvrez la console Amazon ECS, puis choisissez « Clusters ».

Remarque : chaque environnement de calcul AWS Batch que vous créez possède un cluster Amazon ECS correspondant.

3.    Dans l'onglet « Services », recherchez le nom du cluster qui s'affiche au format suivant : ComputeEnvironmentName_Batch_RandomStringOfCharacters

Obtenir l'ID d'instance EC2 de votre tâche

Pour obtenir l'ID d'instance EC2, exécutez la commande describe-container-instances et transmettez l'ID d'instance de conteneur que vous avez récupéré à l'étape 1 précédente :

$ aws ecs describe-container-instances --cluster Your_Cluster_Name --container-instances Your_Container_Instance_ID

La sortie indique l'ID de l'instance EC2. Reportez-vous à l'exemple suivant :

CONTAINERINSTANCES          True     arn:aws:ecs:us-east-1:1234567890:container-instance/Your_EC2_Instance_ID           i-0ab1cdefghij23k45    0          1234567890.12           0          ACTIVE 5

Obtenir l'adresse IP de l'instance

Maintenant que vous avez l'ID d'instance EC2, vous pouvez l'utiliser pour trouver l'adresse IP de votre instance EC2.

1.    Ouvrez la console Amazon EC2.

2.    Choisissez « Running instances » (Instances en cours d'exécution).

3.    Dans la colonne « Instance ID » (ID d'instance), recherchez l'ID d'instance que vous avez récupéré précédemment.

4.    Pour l'instance que vous identifiez à l'étape 3 précédente, recherchez son adresse IP dans la colonne adresse « IPv4 Public IP » (IP publique IPv4).

Obtenir des informations sur l'instance pour les tâches AWS Batch à plusieurs nœuds

Pour obtenir l'ID d'instance de conteneur pour la tâche enfant, exécutez la commande describe-jobs suivante sur une tâche enfant individuelle :

$ aws batch describe-jobs --jobs Your_Job_ID#1

Important : la tâche parente n'a pas d'informations sur l'instance de conteneur, car chaque tâche enfant se trouve sur un nœud unique. Pour les tâches enfants, utilisez la notation de nœud pour ajouter l'index de la tâche enfant à l'ID de tâche. Dans la commande précédente, # 1 accède au premier nœud de la tâche tandis que # 2 accède au deuxième nœud, et ainsi de suite. Pour plus d'informations, consultez Tâches parallèles à plusieurs nœuds.

Pour obtenir l'ID d'instance EC2, exécutez la commande describe-container-instances et transmettez l'ID d'instance de conteneur que vous avez récupéré précédemment :

$ aws ecs describe-container-instances --cluster Your_Cluster_Name --container-instances Your_Container_Instance_ID

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

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?