

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EKS ジョブ
<a name="eks-jobs"></a>

ジョブは、作業の最小単位です AWS Batch。Amazon EKS の AWS Batch ジョブには、ポッドへの one-to-one Kubernetes のマッピングがあります。 AWS Batch ジョブ定義は、 AWS Batch ジョブのテンプレートです。 AWS Batch ジョブを送信するときは、ジョブ定義を参照し、ジョブキューをターゲットにして、ジョブの名前を指定します。Amazon EKS の AWS Batch ジョブのジョブ定義では、[eksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) パラメータは、Amazon EKS AWS Batch ジョブで がサポートするパラメータのセットを定義します。[SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) リクエストでは、[eksPropertiesOverride](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPropertiesOverride.html) パラメーターを使用するといくつかの一般的なパラメーターをオーバーライドできます。これにより、複数のジョブにジョブ定義のテンプレートを使用できます。ジョブが Amazon EKS クラスターにディスパッチされると、 はジョブを `podspec` () AWS Batch に変換します`Kind: Pod`。は、いくつかの追加の AWS Batch パラメータ`podspec`を使用して、ジョブが正しくスケーリングおよびスケジュールされるようにします。 AWS Batch はラベルとテイントを組み合わせて、ジョブが AWS Batch マネージドノードでのみ実行され、他のポッドがそれらのノードで実行されないようにします。

**重要**  
Amazon EKS ジョブ定義で `hostNetwork`パラメータが明示的に設定されていない場合、 のポッドネットワークモードは AWS Batch デフォルトでホストモードになります。具体的には、`hostNetwork=true` と `dnsPolicy=ClusterFirstWithHostNet` という設定が適用されます。
AWS Batch は、ポッドがジョブを完了するとすぐにジョブポッドをクリーンアップします。ポッドアプリケーションログを表示するには、クラスターのロギングサービスを設定します。詳細については、「[CloudWatch Logs を使用して Amazon EKS ジョブ AWS Batch をモニタリングする](batch-eks-cloudwatch-logs.md)」を参照してください。

**Topics**
+ [チュートリアル: 実行中のジョブをポッドとノードにマップする](eks-jobs-map-running-job.md)
+ [チュートリアル: 実行中のポッドをそのジョブにマップし直す](eks-jobs-map-running-pod-to-job.md)

# チュートリアル: 実行中のジョブをポッドとノードにマップする
<a name="eks-jobs-map-running-job"></a>

実行中のジョブの `podProperties` には現在のジョブ試行用に `podName` と `nodeName` のパラメータが設定されています。これらのパラメータを表示するには、[DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API オペレーションを使用してください。

以下は出力の例です。

```
$ aws batch describe-jobs --job 2d044787-c663-4ce6-a6fe-f2baf7e51b04
{
 "jobs": [
  {
   "status": "RUNNING",
   "jobArn": "arn:aws:batch:us-east-1:123456789012:job/2d044787-c663-4ce6-a6fe-f2baf7e51b04",
   "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/MyJobOnEks_SleepWithRequestsOnly:1",
   "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/My-Eks-JQ1",
   "jobId": "2d044787-c663-4ce6-a6fe-f2baf7e51b04",
   "eksProperties": {
    "podProperties": {
     "nodeName": "ip-192-168-55-175.ec2.internal",
     "containers": [
      {
       "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
       "resources": {
        "requests": {
         "cpu": "1",
         "memory": "1024Mi"
        }
       }
      }
     ],
     "podName": "aws-batch.b0aca953-ba8f-3791-83e2-ed13af39428c"
    }
   }
  }
 ]
}
```

リトライが有効なジョブの場合、`podName`、`nodeName` の完了したすべての試行の終了は [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) API `eksAttempts` オペレーションのリストパラメータに含まれます。現在実行中の `podName`、`nodeName` の試行の終了は `podProperties` オブジェクト内にあります。

# チュートリアル: 実行中のポッドをそのジョブにマップし直す
<a name="eks-jobs-map-running-pod-to-job"></a>

ポッドには、それが属するコンピューティング環境`uuid`の `jobId`と を示すラベルがあります。 AWS Batch は、ジョブのランタイムがジョブ情報を参照できるように環境変数を挿入します。詳細については、「[AWS Batch ジョブ環境変数](job_env_vars.md)」を参照してください。以下のコマンドを実行すれば、この情報を見ることができる。出力は次のとおりです。

```
$ kubectl describe pod aws-batch.14638eb9-d218-372d-ba5c-1c9ab9c7f2a1 -n my-aws-batch-namespace
Name:         aws-batch.14638eb9-d218-372d-ba5c-1c9ab9c7f2a1
Namespace:    my-aws-batch-namespace
Priority:     0
Node:         ip-192-168-45-88.ec2.internal/192.168.45.88
Start Time:   Wed, 26 Oct 2022 00:30:48 +0000
Labels:       batch.amazonaws.com/compute-environment-uuid=5c19160b-d450-31c9-8454-86cf5b30548f
              batch.amazonaws.com/job-id=f980f2cf-6309-4c77-a2b2-d83fbba0e9f0
              batch.amazonaws.com/node-uid=a4be5c1d-9881-4524-b967-587789094647
...
Status:       Running
IP:           192.168.45.88
IPs:
  IP:  192.168.45.88
Containers:
  default:
    Image:         public.ecr.aws/amazonlinux/amazonlinux:2
    ...
    Environment:
      AWS_BATCH_JOB_KUBERNETES_NODE_UID:  a4be5c1d-9881-4524-b967-587789094647
      AWS_BATCH_JOB_ID:                   f980f2cf-6309-4c77-a2b2-d83fbba0e9f0
      AWS_BATCH_JQ_NAME:                  My-Eks-JQ1
      AWS_BATCH_JOB_ATTEMPT:              1
      AWS_BATCH_CE_NAME:                  My-Eks-CE1

...
```

**AWS Batch Amazon EKS ジョブがサポートする機能**

以下は、Amazon EKS で実行されるKubernetesジョブにも共通する AWS Batch 特定の機能です。
+ [ジョブの依存関係](job_dependencies.md)
+ [配列ジョブ](array_jobs.md)
+ [ジョブのタイムアウト](job_timeouts.md)
+ [ジョブの再試行の自動化](job_retries.md)
+ [公平配分スケジューリングを使用してジョブをスケジュールする](fair-share-scheduling.md)

**Kubernetes および `Secrets` `ServiceAccounts`**  
AWS Batch は、 Kubernetes`Secrets`および の参照をサポートしています`ServiceAccounts`。サービスアカウントの Amazon EKS IAM ロールを使用するようにポッドを設定できます。詳細については、[https://docs.aws.amazon.com/eks/latest/userguide/](https://docs.aws.amazon.com/eks/latest/userguide/) の [Kubernetes サービスアカウントを使用するポッドの設定](https://docs.aws.amazon.com/eks/latest/userguide/pod-configuration.html) を参照してください。

**関連ドキュメント**
+ [Amazon EKS の AWS Batch におけるメモリと vCPU に関する考慮事項](memory-cpu-batch-eks.md)
+ [GPU ジョブを実行する](gpu-jobs.md)
+ [`RUNNABLE` 状態でジョブが止まる](job_stuck_in_runnable.md)