web-dev-qa-db-ja.com

AWSバッチジョブが実行可能のままになるのはなぜですか?

0〜256 m3.mediumのオンデマンドインスタンスのコンピューティング環境を使用しています。私のジョブの定義には、m3.mediumが持っている1つのCPUと3 GBのRamが必要です。

AWSバッチジョブがRUNNABLE状態のままになる理由として考えられるものは何ですか?

[〜#〜] aws [〜#〜] 言います:

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.

しかし、それは私の質問に答えません

20
arm

ジョブがRUNNABLEのままになる理由は他にもあります。

  • 計算環境に関連付けられたロールの権限が不十分です
  • Compute Environmentインスタンスからインターネットにアクセスできません。 [〜#〜] nat [〜#〜] または Internet Gateway をCompute Environmentサブネットに関連付ける必要があります。
    • コンピューティング環境のサブネットで「パブリックIPv4アドレスの自動割り当てを有効にする」設定を必ず確認してください。 (コメントで@thisisbriansが指摘)
  • 画像に問題があります。 ECS最適化AMIを使用するか、ECSコンテナーエージェントが機能していることを確認する必要があります。詳細は aws docs
  • アカウントが0インスタンスに制限されているインスタンスを起動しようとしています(左側のメニューの[EC2コンソール]> [制限])。 (詳細は gergely-danyiコメント
  • そして、言及したように、不十分なリソース

また、必ず AWS Batchのトラブルシューティング をお読みください

20
nachoab

ロールは、少なくとも次のポリシーと信頼関係を使用して定義する必要があります。そうでない場合、開始するのに十分な権限がないため、実行可能状態になります。

AWSBatchServiceRole

  • 添付ポリシー:AWSBatchServiceRole
  • 信頼関係:batch.amazonaws.com

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

ecsInstanceRole

  • 添付ポリシー:AmazonEC2ContainerServiceforEC2Role
  • 信頼関係:ec2.amazonaws.com

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

私はこれとしばらくの間戦いましたが、 答え を見つけました。

ジョブがRunnableでスタックする理由の1つは、ジョブを実行するインスタンスがないためです。この場合、上記の回答で述べた自動スケーリンググループを見ると、インスタンスの起動を妨げている実際のエラーが表示され、あなたがしなかった問題に対する多くの解決策を試すことなく、正確な問題に導くことができます。持っていない。エラーメッセージは私たちの友達です。

2
Semimono

コンピューティング環境が無効である可能性があります。 [AWSバッチ]-> [コンピューティング環境]-> [ステータス]列を確認します。私は無効だと言い、このシンボルはコンピューティング環境名の隣にありました:

enter image description here

コンピューティング環境をクリックすると、より多くの情報が得られました-AMI IDが間違っていました。

0
Chris Anderson