

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

# Amazon ECS 관리형 인스턴스에서 작업 정의 생성
<a name="create-job-definition-ecs-managed-instances"></a>

Amazon ECS 관리형 인스턴스 작업 정의는 `MANAGED_INSTANCES` 플랫폼 기능과 `ecsProperties` 함께를 사용합니다. Fargate와 달리 vCPU 및 메모리 크기 조합에는 제한이 없으며 GPU 리소스가 지원됩니다. 지원되는 파라미터에 대한 자세한 내용은 섹션을 참조하세요[Amazon ECS 관리형 인스턴스의 작업 정의](ecs-managed-instances-job-definitions.md).

## Amazon ECS 관리형 인스턴스에서 작업 정의 생성(콘솔)
<a name="create-jd-ecs-managed-instances-console"></a>

**Amazon ECS 관리형 인스턴스에서 새 작업 정의를 생성하려면:**

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) AWS Batch 콘솔을 엽니다.

1. 상단 탐색 모음에서 사용할 AWS 리전 를 선택합니다.

1. 왼쪽 탐색 창에서 **작업 정의**를 선택합니다.

1. **생성(Create)**을 선택합니다.

1. **오케스트레이션 유형**에서 **ECS 관리형 인스턴스를** 선택합니다.

1. **이름(Name)**에 고유한 작업 정의 이름을 입력합니다. 각 이름의 최대 길이는 128자입니다. 대문자 및 소문자, 숫자, 하이픈(-) 및 밑줄(\_)을 포함할 수 있습니다.

1. (선택 사항) **실행 제한 시간**에 제한 시간 값(초)을 입력합니다. 실행 제한 시간은 완료되지 않은 작업이 종료되기까지의 시간입니다. 시도가 제한 시간을 초과하면 중지되고 상태가 `FAILED`(으)로 변경됩니다. 자세한 내용은 [작업 제한 시간](job_timeouts.md) 단원을 참조하십시오. 최솟값은 60초입니다.

1. **실행 역할**에서 사용자를 대신하여 AWS API를 호출할 수 있는 권한을 Amazon ECS 컨테이너 에이전트에 부여하는 IAM 역할을 선택합니다. 이 역할은 Amazon ECS 관리형 인스턴스 작업에 필요합니다. 예를 들어 역할은 Amazon ECR에서 컨테이너 이미지를 가져오는 데 사용됩니다.

1. **컨테이너 구성** 섹션에서:

   1. **이미지**에 작업에 사용할 컨테이너 이미지를 입력합니다. Amazon ECR 레지스트리의 이미지는 `{{repository-url}}/{{image}}:{{tag}}` 명명 규칙을 사용하여 지정할 수 있습니다. 퍼블릭 레지스트리의 이미지는 전체 URI(예: `public.ecr.aws/amazonlinux/amazonlinux:2023`)를 사용합니다.

   1. **명령**에 컨테이너에 전달할 명령을 입력합니다.

   1. **vCPU(vCPUs)**에서 컨테이너에 예약할 vCPU 수를 지정합니다.

   1. **메모리**에서 컨테이너에 사용할 수 있는 메모리 제한(MiB)을 지정합니다.

   1. (선택 사항) **GPUs**의 경우 컨테이너에서 사용할 수 있는 GPU 디바이스 수를 지정합니다. 컴퓨팅 환경에는 사용 가능한 GPU 인스턴스가 있어야 합니다.

1. (선택 사항) **태그**를 확장한 다음, **태그 추가**를 선택하여 리소스에 태그를 추가합니다. 작업 및 작업 정의의 태그를 전파하려면 **태그 전파 시작**을 켭니다.

1. **Create job definition(작업 정의 생성)**을 선택합니다.

## Amazon ECS 관리형 인스턴스에서 작업 정의 생성(AWS CLI)
<a name="create-jd-ecs-managed-instances-cli"></a>

`register-job-definition` 명령을 사용하여 Amazon ECS 관리형 인스턴스에 대한 작업 정의를 생성합니다.

### 기본 예제
<a name="create-jd-ecs-managed-instances-cli-basic"></a>

다음 예제에서는 간단한 명령을 실행하는 최소 작업 정의를 생성합니다.

```
$ aws batch register-job-definition \
    --job-definition-name {{my-managed-instances-job-def}} \
    --type container \
    --platform-capabilities MANAGED_INSTANCES \
    --ecs-properties '{
      "taskProperties": [{
        "containers": [{
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2023",
          "name": "main",
          "command": ["echo", "hello managed instances"],
          "resourceRequirements": [
            {"type": "VCPU", "value": "1"},
            {"type": "MEMORY", "value": "1024"}
          ]
        }],
        "executionRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsTaskExecutionRole}}"
      }]
    }'
```

### GPU 작업 정의
<a name="create-jd-ecs-managed-instances-cli-gpu"></a>

다음 예제에서는 GPU 리소스를 요청하는 작업 정의를 생성합니다.

```
$ aws batch register-job-definition \
    --job-definition-name {{my-gpu-managed-instances-job-def}} \
    --type container \
    --platform-capabilities MANAGED_INSTANCES \
    --ecs-properties '{
      "taskProperties": [{
        "containers": [{
          "image": "{{123456789012}}.dkr.ecr.{{us-east-1}}.amazonaws.com/{{my-gpu-image}}:latest",
          "name": "main",
          "command": ["nvidia-smi"],
          "resourceRequirements": [
            {"type": "VCPU", "value": "4"},
            {"type": "MEMORY", "value": "16384"},
            {"type": "GPU", "value": "1"}
          ]
        }],
        "executionRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsTaskExecutionRole}}"
      }]
    }'
```

### 다중 컨테이너(사이드카) 작업 정의
<a name="create-jd-ecs-managed-instances-cli-sidecar"></a>

다음 예시에서는 기본 컨테이너와 사이드카 로깅 컨테이너를 사용하여 작업 정의를 생성합니다.

```
$ aws batch register-job-definition \
    --job-definition-name {{my-sidecar-managed-instances-job-def}} \
    --type container \
    --platform-capabilities MANAGED_INSTANCES \
    --ecs-properties '{
      "taskProperties": [{
        "containers": [{
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2023",
          "name": "main",
          "command": ["echo", "processing data"],
          "essential": true,
          "resourceRequirements": [
            {"type": "VCPU", "value": "2"},
            {"type": "MEMORY", "value": "4096"}
          ]
        },
        {
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2023",
          "name": "sidecar",
          "command": ["echo", "logging sidecar"],
          "essential": false,
          "resourceRequirements": [
            {"type": "VCPU", "value": "1"},
            {"type": "MEMORY", "value": "512"}
          ]
        }],
        "executionRoleArn": "arn:aws:iam::{{123456789012}}:role/{{ecsTaskExecutionRole}}"
      }]
    }'
```