>  기사  >  백엔드 개발  >  Go에서 AWS Batch 사용: 전체 가이드

Go에서 AWS Batch 사용: 전체 가이드

王林
王林원래의
2023-06-17 15:21:07933검색

Go에서 AWS Batch 사용: 전체 가이드

AWS Batch는 배치 컴퓨팅 워크로드를 쉽게 예약하고 실행할 수 있는 완전 관리형 컴퓨팅 리소스 호스팅 서비스입니다. AWS Batch는 다양한 프로그래밍 언어를 지원하지만 이 문서에서는 Go 언어에서 AWS Batch를 사용하는 방법을 설명합니다.

이 가이드에서는 Go SDK를 사용하여 AWS Batch API와 상호 작용하고 작업 정의를 생성, 구성 및 실행하는 방법과 AWS Batch의 포괄적인 기능을 사용하여 작업 및 컴퓨팅 환경을 관리하는 방법을 보여줍니다.

Go SDK를 사용하여 AWS Batch API와 상호 작용

Go SDK를 사용하여 AWS Batch API와 쉽게 상호 작용합니다. 먼저 Go 프로젝트에서 "aws-sdk-go" 종속성을 가져와야 합니다. 다음 명령을 사용하여 종속성을 설치할 수 있습니다.

go get -u github.com/aws/aws-sdk-go

종속성을 가져온 후 Go 코드에서 AWS Batch 클라이언트를 구성해야 합니다. 다음 코드를 사용하여 미국 서부(오레곤)를 리전으로 하는 클라이언트를 생성할 수 있습니다.

import (
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/batch"
)

sess := session.Must(session.NewSessionWithOptions(session.Options{
    Config: aws.Config{
        Region: aws.String("us-west-2"),
    },
}))

svc := batch.New(sess)

작업 정의 생성

AWS Batch를 사용하기 전에 작업 정의를 생성해야 합니다. 작업 정의는 작업 실행 방법을 설명하는 매개변수 집합입니다. 이미지 이름, 컨테이너 명령, 환경 변수 등과 같은 일부 매개변수를 정의하여 작업 요구 사항을 정의할 수 있습니다.

다음 코드 예제는 Go에서 작업 정의를 생성하는 방법을 보여줍니다.

import (
    "github.com/aws/aws-sdk-go/service/batch"
    "github.com/aws/aws-sdk-go/service/batch/batchiface"
)

func createJobDefinition(svc batchiface.BatchAPI, family string, containerName string, image string) (*batch.RegisterJobDefinitionOutput, error) {
    input := &batch.RegisterJobDefinitionInput{
        JobDefinitionName: aws.String(family),
        Type:              aws.String(batch.JobDefinitionTypeContainer),
        ContainerProperties: &batch.ContainerProperties{
            Image:   aws.String(image),
            Vcpus:   aws.Int64(1),
            Memory:  aws.Int64(2000),
            Command: []*string{aws.String("echo"), aws.String("Hello World!")},
        },
    }
    return svc.RegisterJobDefinition(input)
}

이 코드는 이미지, CPU 및 메모리 요구 사항, 실행할 명령 등과 같은 작업에 대한 정보가 포함된 AWS Batch의 컨테이너 작업 정의를 생성합니다. .

컴퓨팅 환경 생성 및 구성

컴퓨팅 환경은 일괄 작업이 실행되는 인프라입니다. 컴퓨팅 리소스와 스택에 대한 설명으로 구성됩니다. AWS Batch 콘솔을 사용하거나 Go SDK를 사용하여 컴퓨팅 환경을 생성할 수 있습니다.

다음 코드 예제는 Go에서 컴퓨팅 환경을 생성하는 방법을 보여줍니다.

func createComputeEnvironment(svc batchiface.BatchAPI, name string, instanceType string, minvCpus int64, maxvCpus int64, desiredvCpus int64, subnets []string, securityGroups []string) (*batch.CreateComputeEnvironmentOutput, error) {
    input := &batch.CreateComputeEnvironmentInput{
        ComputeEnvironmentName: aws.String(name),
        Type:                  aws.String("EC2"),
        ServiceRole:           aws.String("AWSBatchServiceRole"),
        ComputeResources: &batch.ComputeResource{
            Type: aws.String("EC2"),
            Ec2Configuration: &batch.Ec2Configuration{
                ImageIdOverride: aws.String("ami-035b3c7efe6d061d5"),
            },
            Subnets:        aws.StringSlice(subnets),
            SecurityGroupIds: aws.StringSlice(securityGroups),
            InstanceTypes:  []*string{aws.String(instanceType)},
            MinvCpus:       aws.Int64(minvCpus),
            MaxvCpus:       aws.Int64(maxvCpus),
            DesiredvCpus:   aws.Int64(desiredvCpus),
        },
    }
    return svc.CreateComputeEnvironment(input)
}

이 코드는 AWS Batch에서 컴퓨팅 환경을 생성합니다. 컴퓨팅 환경은 일괄 작업을 실행하도록 구성된 인스턴스 집합으로 구성됩니다.

작업 실행

AWS Batch에서 작업을 시작하려면 작업 정의에서 작업을 생성하여 AWS Batch에 제출합니다. 다음 코드 예제는 Go에서 작업을 시작하는 방법을 보여줍니다.

func submitJob(svc batchiface.BatchAPI, jobDefinitionArn string, jobName string) (*batch.SubmitJobOutput, error) {
    input := &batch.SubmitJobInput{
        JobDefinition: aws.String(jobDefinitionArn),
        JobName:       aws.String(jobName),
    }
    return svc.SubmitJob(input)
}

이 코드는 작업 이름을 지정하여 작업 정의가 포함된 작업을 제출합니다.

작업 및 컴퓨팅 환경 관리

작업 및 컴퓨팅 환경을 생성하고 실행하는 것 외에도 AWS Batch API를 사용하여 작업 및 컴퓨팅 환경을 관리할 수도 있습니다. 다음 코드 예제는 Go에서 컴퓨팅 환경을 삭제하는 방법을 보여줍니다.

func deleteComputeEnvironment(svc batchiface.BatchAPI, name string) (*batch.DeleteComputeEnvironmentOutput, error) {
    input := &batch.DeleteComputeEnvironmentInput{
        ComputeEnvironment: aws.String(name),
    }
    return svc.DeleteComputeEnvironment(input)
}

이 코드는 컴퓨팅 환경을 삭제하고 컴퓨팅 환경의 모든 리소스를 지웁니다.

결론

이 가이드에서는 작업 정의 생성 방법, 컴퓨팅 환경, 작업 실행 방법을 포함하여 Go 언어로 AWS Batch를 사용하는 방법에 대한 전체 가이드를 제시했습니다. AWS Batch는 컴퓨팅 리소스를 쉽게 관리하고 확장할 수 있는 강력하고 사용하기 쉬운 플랫폼을 제공합니다. 확장성이 뛰어나고 유연하며 관리하기 쉬운 배치 컴퓨팅 솔루션을 찾고 있다면 AWS Batch가 탁월한 선택입니다.

위 내용은 Go에서 AWS Batch 사용: 전체 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.