

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

# 에서 서비스 작업 제출 AWS Batch
<a name="service-job-submit"></a>

서비스 작업을 제출하려면 [SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html) API를 AWS Batch사용합니다. AWS CLI 또는 SDK를 사용하여 작업을 제출할 수 있습니다.

아직 실행 역할이 없는 경우 먼저 실행 역할을 생성해야 서비스 작업을 제출할 수 있습니다. SageMaker AI 실행 역할을 생성하려면 *[SageMaker AI 개발자 안내서](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)*의 [SageMaker AI 실행 역할을 사용하는 방법](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)을 참조하세요.

## 서비스 작업 제출 워크플로
<a name="service-job-submit-workflow"></a>

서비스 작업을 제출하면는 다음 워크플로를 AWS Batch 따릅니다.

1. AWS Batch 는 `[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)` 요청을 수신하고 AWS Batch특정 파라미터를 검증합니다. `serviceRequestPayload`는 검증 없이 전달됩니다.

1. 작업이 `SUBMITTED` 상태로 전환되고 지정된 작업 대기열에 배치됩니다.

1. AWS Batch 는 대기열 앞에 있는 `RUNNABLE` 작업에 대해 서비스 환경에 사용 가능한 용량이 있는지 평가합니다.

1. 용량을 사용할 수 있는 경우 작업이 `SCHEDULED`로 이동하고 작업이 SageMaker AI로 전달됩니다.

1. 용량을 획득하고 SageMaker AI가 서비스 작업 데이터를 다운로드하면 서비스 작업이 초기화를 시작하고 작업이 `STARTING`으로 변경됩니다.

1. SageMaker AI가 작업을 실행하기 시작하면 상태가 `RUNNING`으로 변경됩니다.

1. SageMaker AI가 작업을 실행하는 동안는 진행 상황을 AWS Batch 모니터링하고 서비스 상태를 AWS Batch 작업 상태에 매핑합니다. 서비스 작업 상태가 매핑되는 방식에 대한 자세한 내용은 [AWS Batch 서비스 작업 상태를 SageMaker AI 상태로 매핑](service-job-status.md) 섹션을 참조하세요.

1. 서비스 작업이 완료되면 `SUCCEEDED`로 이동하고 출력을 다운로드할 준비가 됩니다.

## 사전 조건
<a name="service-job-submit-prerequisites"></a>

서비스 작업을 제출하기 전에 다음을 갖추어야 합니다.
+ **서비스 환경** - 용량 제한을 정의하는 서비스 환경. 자세한 내용은 [에서 서비스 환경 생성 AWS Batch](create-service-environments.md) 단원을 참조하십시오.
+ **SageMaker 작업 대기열** - 작업 예약을 제공하는 SageMaker 작업 대기열. 자세한 내용은 [AWS Batch에서 SageMaker 훈련 작업 대기열 생성](create-sagemaker-job-queue.md) 단원을 참조하십시오.
+ **IAM 권한** - AWS Batch 작업 대기열 및 서비스 환경을 생성하고 관리할 수 있는 권한. 자세한 내용은 [AWS Batch IAM 정책, 역할 및 권한](IAM_policies.md) 단원을 참조하십시오.

## 서비스 작업 제출
<a name="service-job-submit-example"></a>

아래 표는 SageMaker Python SDK 또는 AWS CLI를 사용하여 서비스 작업을 제출하는 방법을 보여줍니다.

------
#### [ Submit using the SageMaker Python SDK ]

[SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.html)는에 작업 제출을 기본적으로 지원합니다 AWS Batch. 다음 예제에서는 모델 트레이너를 생성하고, 훈련 대기열을 생성하고, 작업을 제출하는 방법을 보여줍니다. 전체 예제는 GitHub의 [전체 샘플 노트북](https://github.com/aws/sagemaker-python-sdk/blob/master/v3-examples/training-examples/aws_batch/sm-training-queues_getting_started_with_model_trainer.ipynb)을 참조하세요.

훈련 작업 구성을 `ModelTrainer` 정의하는를 생성합니다.

```
from sagemaker.train.model_trainer import ModelTrainer
from sagemaker.train.configs import SourceCode, Compute, StoppingCondition

source_code = SourceCode(command="echo 'Hello World'")

model_trainer = ModelTrainer(
    training_image={{"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:2.5-gpu-py311"}},
    source_code=source_code,
    base_job_name={{"my-training-job"}},
    compute=Compute(instance_type={{"ml.g5.xlarge"}}, instance_count={{1}}),
    stopping_condition=StoppingCondition(max_runtime_in_seconds={{300}}),
)
```

작업 대기열을 이름으로 참조하는 `TrainingQueue` 객체를 생성합니다.

```
from sagemaker.train.aws_batch.training_queue import TrainingQueue

queue = TrainingQueue({{"my-sagemaker-job-queue"}})
```

를 호출하여 작업을 제출합니다`queue.submit`.

```
job = queue.submit(
    training_job=model_trainer,
    inputs=None,
)
```

------
#### [ Submit using the AWS CLI ]

다음은 AWS CLI를 사용하여 서비스 작업을 제출하는 방법을 보여줍니다.

```
aws batch submit-service-job \
    --job-name "my-sagemaker-training-job" \
    --job-queue "my-sagemaker-job-queue" \
    --service-job-type "SAGEMAKER_TRAINING" \
    --service-request-payload '{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\":  [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}'
    --client-token "unique-token-12345"
```

`serviceRequestPayload` 파라미터에 대한 자세한 내용은 [의 서비스 작업 페이로드 AWS Batch](service-job-payload.md)을 참조하세요.

------