AWS Batch 사용 예제 AWS CLI - AWS Command Line Interface

이 설명서는 의 버전 1 AWS CLI 전용입니다. 의 버전 2와 관련된 설명서는 버전 2 사용 설명서 를 AWS CLI참조하세요.

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

AWS Batch 사용 예제 AWS CLI

다음 코드 예제에서는 AWS Command Line Interface 와 함께 를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다 AWS Batch.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 cancel-job을 사용하는 방법을 보여 줍니다.

AWS CLI

작업을 취소하려면

이 예제에서는 지정된 작업 ID로 작업을 취소합니다.

명령:

aws batch cancel-job --job-id bcf0b186-a532-4122-842e-2ccab8d54efb --reason "Cancelling job."
  • 자세한 API 내용은 명령 참조CancelJob의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 create-compute-environment을 사용하는 방법을 보여 줍니다.

AWS CLI

온디맨드 인스턴스를 사용하여 관리형 컴퓨팅 환경을 생성하려면

이 예제에서는 온디맨드 방식으로 시작되는 특정 C4 인스턴스 유형을 사용하여 관리형 컴퓨팅 환경을 생성합니다. 컴퓨팅 환경을 C4OnDemand라고 합니다.

명령:

aws batch create-compute-environment --cli-input-json file://<path_to_json_file>/C4OnDemand.json

JSON 파일 형식:

{ "computeEnvironmentName": "C4OnDemand", "type": "MANAGED", "state": "ENABLED", "computeResources": { "type": "EC2", "minvCpus": 0, "maxvCpus": 128, "desiredvCpus": 48, "instanceTypes": [ "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" ], "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "securityGroupIds": [ "sg-cf5093b2" ], "ec2KeyPair": "id_rsa", "instanceRole": "ecsInstanceRole", "tags": { "Name": "Batch Instance - C4OnDemand" } }, "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole" }

출력:

{ "computeEnvironmentName": "C4OnDemand", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand" }

스팟 인스턴스를 사용하여 관리형 컴퓨팅 환경을 생성하려면

이 예제에서는 스팟 입찰 가격이 인스턴스 유형에 대한 온디맨드 가격의 20% 이하일 때 시작되는 M4 인스턴스 유형을 사용하여 관리형 컴퓨팅 환경을 생성합니다. 컴퓨팅 환경을 M4Spot 이라고 합니다.

명령:

aws batch create-compute-environment --cli-input-json file://<path_to_json_file>/M4Spot.json

JSON 파일 형식:

{ "computeEnvironmentName": "M4Spot", "type": "MANAGED", "state": "ENABLED", "computeResources": { "type": "SPOT", "spotIamFleetRole": "arn:aws:iam::012345678910:role/aws-ec2-spot-fleet-role", "minvCpus": 0, "maxvCpus": 128, "desiredvCpus": 4, "instanceTypes": [ "m4" ], "bidPercentage": 20, "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "securityGroupIds": [ "sg-cf5093b2" ], "ec2KeyPair": "id_rsa", "instanceRole": "ecsInstanceRole", "tags": { "Name": "Batch Instance - M4Spot" } }, "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole" }

출력:

{ "computeEnvironmentName": "M4Spot", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/M4Spot" }

다음 코드 예시에서는 create-job-queue을 사용하는 방법을 보여 줍니다.

AWS CLI

단일 컴퓨팅 환경으로 낮은 우선 순위 작업 대기열을 생성하려면

이 예제에서는 M4Spot 컴퓨팅 환경을 LowPriority 사용하는 라는 작업 대기열을 생성합니다.

명령:

aws batch create-job-queue --cli-input-json file://<path_to_json_file>/LowPriority.json

JSON 파일 형식:

{ "jobQueueName": "LowPriority", "state": "ENABLED", "priority": 10, "computeEnvironmentOrder": [ { "order": 1, "computeEnvironment": "M4Spot" } ] }

출력:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/LowPriority", "jobQueueName": "LowPriority" }

두 컴퓨팅 환경으로 높은 우선 순위 작업 대기열을 생성하려면

이 예제에서는 순서 HighPriority 가 1인 C4OnDemand compute 환경과 순서가 2인 M4Spot 컴퓨팅 환경을 사용하는 라는 작업 대기열을 생성합니다. 스케줄러는 먼저 C4OnDemand 컴퓨트 환경에 작업을 배치하려고 시도합니다.

명령:

aws batch create-job-queue --cli-input-json file://<path_to_json_file>/HighPriority.json

JSON 파일 형식:

{ "jobQueueName": "HighPriority", "state": "ENABLED", "priority": 1, "computeEnvironmentOrder": [ { "order": 1, "computeEnvironment": "C4OnDemand" }, { "order": 2, "computeEnvironment": "M4Spot" } ] }

출력:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobQueueName": "HighPriority" }
  • 자세한 API 내용은 명령 참조CreateJobQueue의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 delete-compute-environment을 사용하는 방법을 보여 줍니다.

AWS CLI

컴퓨팅 환경을 삭제하려면

이 예제에서는 P2OnDemand compute 환경을 삭제합니다.

명령:

aws batch delete-compute-environment --compute-environment P2OnDemand

다음 코드 예시에서는 delete-job-queue을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 대기열을 삭제하려면

이 예제에서는 GPGPU 작업 대기열을 삭제합니다.

명령:

aws batch delete-job-queue --job-queue GPGPU
  • 자세한 API 내용은 명령 참조DeleteJobQueue의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 deregister-job-definition을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 정의를 등록 취소하려면

이 예제에서는 sleep10이라는 작업 정의를 등록 취소합니다.

명령:

aws batch deregister-job-definition --job-definition sleep10

다음 코드 예시에서는 describe-compute-environments을 사용하는 방법을 보여 줍니다.

AWS CLI

컴퓨팅 환경을 설명하는 방법

이 예제에서는 P2OnDemand compute 환경을 설명합니다.

명령:

aws batch describe-compute-environments --compute-environments P2OnDemand

출력:

{ "computeEnvironments": [ { "status": "VALID", "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand", "computeResources": { "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "tags": { "Name": "Batch Instance - P2OnDemand" }, "desiredvCpus": 48, "minvCpus": 0, "instanceTypes": [ "p2" ], "securityGroupIds": [ "sg-cf5093b2" ], "instanceRole": "ecsInstanceRole", "maxvCpus": 128, "type": "EC2", "ec2KeyPair": "id_rsa" }, "statusReason": "ComputeEnvironment Healthy", "ecsClusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/P2OnDemand_Batch_2c06f29d-d1fe-3a49-879d-42394c86effc", "state": "ENABLED", "computeEnvironmentName": "P2OnDemand", "type": "MANAGED" } ] }

다음 코드 예시에서는 describe-job-definitions을 사용하는 방법을 보여 줍니다.

AWS CLI

활성 작업 정의를 설명하려면

이 예제에서는 모든 활성 작업 정의를 설명합니다.

명령:

aws batch describe-job-definitions --status ACTIVE

출력:

{ "jobDefinitions": [ { "status": "ACTIVE", "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1", "containerProperties": { "mountPoints": [], "parameters": {}, "image": "busybox", "environment": {}, "vcpus": 1, "command": [ "sleep", "60" ], "volumes": [], "memory": 128, "ulimits": [] }, "type": "container", "jobDefinitionName": "sleep60", "revision": 1 } ] }

다음 코드 예시에서는 describe-job-queues을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 대기열을 설명하려면

이 예제에서는 HighPriority 작업 대기열을 설명합니다.

명령:

aws batch describe-job-queues --job-queues HighPriority

출력:

{ "jobQueues": [ { "status": "VALID", "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "computeEnvironmentOrder": [ { "computeEnvironment": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand", "order": 1 } ], "statusReason": "JobQueue Healthy", "priority": 1, "state": "ENABLED", "jobQueueName": "HighPriority" } ] }
  • 자세한 API 내용은 명령 참조DescribeJobQueues의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 describe-jobs을 사용하는 방법을 보여 줍니다.

AWS CLI

작업을 설명하려면

다음 describe-jobs 예제에서는 지정된 작업 ID가 있는 작업에 대해 설명합니다.

aws batch describe-jobs \ --jobs bcf0b186-a532-4122-842e-2ccab8d54efb

출력:

{ "jobs": [ { "status": "SUBMITTED", "container": { "mountPoints": [], "image": "busybox", "environment": [], "vcpus": 1, "command": [ "sleep", "60" ], "volumes": [], "memory": 128, "ulimits": [] }, "parameters": {}, "jobDefinition": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1", "jobQueue": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobId": "bcf0b186-a532-4122-842e-2ccab8d54efb", "dependsOn": [], "jobName": "example", "createdAt": 1480483387803 } ] }
  • 자세한 API 내용은 명령 참조DescribeJobs의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 list-jobs을 사용하는 방법을 보여 줍니다.

AWS CLI

실행 중인 작업을 나열하려면

이 예제에서는 작업 대기열에서 실행 중인 HighPriority 작업을 나열합니다.

명령:

aws batch list-jobs --job-queue HighPriority

출력:

{ "jobSummaryList": [ { "jobName": "example", "jobId": "e66ff5fd-a1ff-4640-b1a2-0b0a142f49bb" } ] }

제출된 작업을 나열하려면

이 예제에서는 작업 대기열에서 HighPriority 작업 상태에 있는 SUBMITTED 작업을 나열합니다.

명령:

aws batch list-jobs --job-queue HighPriority --job-status SUBMITTED

출력:

{ "jobSummaryList": [ { "jobName": "example", "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786" } ] }
  • 자세한 API 내용은 명령 참조ListJobs의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 register-job-definition을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 정의를 등록하려면

이 예제에서는 간단한 컨테이너 작업에 대한 작업 정의를 등록합니다.

명령:

aws batch register-job-definition --job-definition-name sleep30 --type container --container-properties '{ "image": "busybox", "vcpus": 1, "memory": 128, "command": [ "sleep", "30"]}'

출력:

{ "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1", "jobDefinitionName": "sleep30", "revision": 1 }

다음 코드 예시에서는 submit-job을 사용하는 방법을 보여 줍니다.

AWS CLI

작업을 제출하려면

이 예제에서는 예제라는 간단한 컨테이너 작업을 HighPriority 작업 대기열에 제출합니다.

명령:

aws batch submit-job --job-name example --job-queue HighPriority --job-definition sleep60

출력:

{ "jobName": "example", "jobId": "876da822-4198-45f2-a252-6cea32512ea8" }
  • 자세한 API 내용은 명령 참조SubmitJob의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 terminate-job을 사용하는 방법을 보여 줍니다.

AWS CLI

작업을 종료하려면

이 예제에서는 지정된 작업 ID로 작업을 종료합니다.

명령:

aws batch terminate-job --job-id 61e743ed-35e4-48da-b2de-5c8333821c84 --reason "Terminating job."
  • 자세한 API 내용은 명령 참조TerminateJob의 섹션을 참조하세요. AWS CLI

다음 코드 예시에서는 update-compute-environment을 사용하는 방법을 보여 줍니다.

AWS CLI

컴퓨팅 환경을 업데이트하려면

이 예제에서는 P2OnDemand compute 환경을 비활성화하여 삭제할 수 있습니다.

명령:

aws batch update-compute-environment --compute-environment P2OnDemand --state DISABLED

출력:

{ "computeEnvironmentName": "P2OnDemand", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand" }

다음 코드 예시에서는 update-job-queue을 사용하는 방법을 보여 줍니다.

AWS CLI

작업 대기열을 업데이트하려면

이 예제에서는 작업 대기열을 삭제하도록 비활성화합니다.

명령:

aws batch update-job-queue --job-queue GPGPU --state DISABLED

출력:

{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/GPGPU", "jobQueueName": "GPGPU" }
  • 자세한 API 내용은 명령 참조UpdateJobQueue의 섹션을 참조하세요. AWS CLI