AWS Batch 사용 예제 AWS CLI - AWS SDK 코드 예제

AWS Doc SDK ExamplesWord AWS SDK 리포지토리에는 더 많은 GitHub 예제가 있습니다.

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

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 세부 정보는 AWS CLI 명령 참조CancelJob를 참조하세요.

다음 코드 예시에서는 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" }

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

이 예제에서는 순서가 1인 C4W HighPriority 가 2인 M4Spot 컴퓨팅 환경을 사용하는 Word라는 작업 대기열을 생성합니다.OnDemand 스케줄러는 먼저 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 세부 정보는 AWS CLI 명령 참조CreateJobQueue를 참조하세요.

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

AWS CLI

컴퓨팅 환경을 삭제하려면

이 예제에서는 P2OnDemand 컴퓨팅 환경을 삭제합니다.

명령:

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

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

AWS CLI

작업 대기열을 삭제하려면

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

명령:

aws batch delete-job-queue --job-queue GPGPU
  • API 세부 정보는 AWS CLI 명령 참조DeleteJobQueue를 참조하세요.

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

AWS CLI

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

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

명령:

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

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

AWS CLI

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

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

명령:

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 세부 정보는 AWS CLI 명령 참조DescribeJobQueues를 참조하세요.

다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조DescribeJobs를 참조하세요.

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

AWS CLI

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

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

명령:

aws batch list-jobs --job-queue HighPriority

출력:

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

제출된 작업을 나열하려면

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

명령:

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

출력:

{ "jobSummaryList": [ { "jobName": "example", "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786" } ] }
  • API 세부 정보는 AWS CLI 명령 참조ListJobs를 참조하세요.

다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조SubmitJob를 참조하세요.

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

AWS CLI

작업을 종료하려면

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

명령:

aws batch terminate-job --job-id 61e743ed-35e4-48da-b2de-5c8333821c84 --reason "Terminating job."
  • API 세부 정보는 AWS CLI 명령 참조TerminateJob를 참조하세요.

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

AWS CLI

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

이 예제에서는 P2OnDemand 컴퓨팅 환경을 비활성화하므로 삭제할 수 있습니다.

명령:

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 세부 정보는 AWS CLI 명령 참조UpdateJobQueue를 참조하세요.