

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon EKS 작업
<a name="eks-jobs"></a>

작업은에서 가장 작은 작업 단위입니다 AWS Batch. Amazon EKS의 AWS Batch 작업에는 Kubernetes 포드에 대한 one-to-one 매핑이 있습니다. AWS Batch 작업 정의는 AWS Batch 작업에 대한 템플릿입니다. AWS Batch 작업을 제출할 때 작업 정의를 참조하고, 작업 대기열을 대상으로 지정하고, 작업 이름을 제공합니다. Amazon EKS AWS Batch 에서 작업의 작업 정의에서 [eksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) 파라미터는 AWS Batch Amazon EKS에서가 지원하는 파라미터 세트를 정의합니다. [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)