web-dev-qa-db-fra.com

Pourquoi les travaux par lots AWS sont-ils bloqués dans RUNNABLE?

J'utilise un environnement informatique de 0-256 m3.medium sur des instances à la demande. La définition de mon travail nécessite 1 processeur et 3 Go de RAM, ce que m3.medium possède.

Quelles sont les raisons possibles pour lesquelles les jobs batch AWS sont bloqués dans l'état RUNNABLE?

AWS dit:

A job that resides in the queue, has no outstanding dependencies, and is therefore ready to be scheduled to a Host. Jobs in this state are started as soon as sufficient resources are available in one of the compute environments that are mapped to the job’s queue. However, jobs can remain in this state indefinitely when sufficient resources are unavailable.

mais cela ne répond pas à ma question

17
arm

Il y a d'autres raisons pour lesquelles un travail peut rester bloqué dans RUNNABLE:

  • Autorisations insuffisantes pour le rôle associé à l'environnement calculé
  • Pas d'accès Internet à partir de l'instance de Compute Environment . Vous devrez associer un NAT ou Internet Gateway au sous-réseau Compute Environment ..
    • Assurez-vous de cocher le paramètre «Activer l’attribution automatique d’adresse IPv4 publique» sur le sous-réseau de votre environnement Compute Environment. (Signalé par @thisisbrians dans les commentaires)
  • Problèmes avec votre image .. Vous devez utiliser une AMI optimisée pour ECS ou vous assurer que l'agent de conteneur ECS fonctionne. Plus d'infos sur aws docs
  • Vous essayez de lancer des instances pour lesquelles votre compte est limité à 0 instance (console EC2> limites, dans le menu de gauche). (Lire la suite sur commentaire de gergely-danyi )
  • Et comme mentionné ressources insuffisantes

Assurez-vous également de lire le AWS Batch Troubleshooting

18
nachoab

Les rôles doivent être définis en utilisant, au moins, les prochaines stratégies et relations de confiance. Sinon, ils resteront bloqués dans RUNNABLE car ils n'auront pas assez de privilèges pour commencer: 

 AWSBatchServiceRole

  • Stratégies attachées: AWSBatchServiceRole
  • Relation de confiance: batch.amazonaws.com

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
             "Service": "batch.amazonaws.com"
           },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    

ecsInstanceRole

  • Stratégies attachées: AmazonEC2ContainerServiceforEC2Role
  • Relation de confiance: ec2.amazonaws.com

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
             "Service": "ec2.amazonaws.com"
           },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
4
Pau

Je me suis juste battu avec ça pendant un moment, et j'ai trouvé la réponse .

Une raison possible pour laquelle des tâches peuvent rester bloquées dans Runnable est qu’il n’ya aucune instance sur laquelle exécuter la tâche. Si tel est le cas, examiner le groupe de mise à l'échelle automatique mentionné dans la réponse ci-dessus peut vous montrer l'erreur réelle qui empêche le démarrage d'instances, vous guidant vers le problème exact plutôt que de vous laisser tenter par des solutions numériques. ne pas avoir. Les messages d'erreur sont nos amis.

1
Semimono

Votre environnement de calcul peut être invalide. Vérifiez AWS Batch -> Compute Environments -> Status. Le mien dit invalide, et ce symbole était à côté du nom de l'environnement de calcul:

 enter image description here

En cliquant sur l'environnement de calcul, j'ai obtenu plus d'informations - mon ID AMI était erroné.

0
Chris Anderson