AWSFargate의 AWS Batch - AWS Batch

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

AWSFargate의 AWS Batch

AWS Fargate는 Amazon EC2 인스턴스의 서버나 클러스터를 관리할 필요 없이 컨테이너를 실행하기 위해 AWS Batch에 사용할 수 있는 기술입니다. AWS Fargate를 사용하면 더 이상 컨테이너를 실행하기 위해 가상 머신의 클러스터를 프로비저닝, 구성 또는 조정할 필요가 없습니다. 따라서 서버 유형을 선택하거나, 클러스터를 조정할 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없습니다.

Fargate 리소스를 사용하여 작업을 실행할 때는 애플리케이션 패키지를 컨테이너에 작성하고, CPU 및 메모리 요구 사항을 지정한 다음, 네트워킹 및 IAM 정책을 정의하고, 애플리케이션을 시작합니다. 각 Fargate 작업에는 자체 격리 경계가 있으며 다른 작업과 기본 커널, CPU 리소스, 메모리 리소스 또는 탄력적 네트워크 인터페이스를 공유하지 않습니다.

Fargate를 사용하는 경우

대부분의 시나리오에서 Fargate를 사용하는 것이 좋습니다. Fargate는 컨테이너에 지정하는 리소스 요구 사항에 근접하게 일치하도록 컴퓨팅을 시작하고 규모를 조정합니다. Fargate를 사용하면 과도하게 프로비저닝하거나 추가 서버를 위해 비용을 지불할 필요가 없습니다. 또한 인스턴스 유형과 같은 인프라 관련 파라미터의 세부 사항에 대해서도 걱정할 필요가 없습니다. 컴퓨팅 환경을 스케일 업해야 하는 경우 Fargate 리소스에서 실행되는 작업을 더 빠르게 시작할 수 있습니다. 일반적으로 새 Amazon EC2 인스턴스를 가동하는 데 몇 분 정도 걸립니다. 하지만 Fargate에서 실행되는 작업은 약 30초 내에 프로비저닝할 수 있습니다. 정확한 소요 시간은 컨테이너 이미지 크기, 작업 수 등 여러 요인에 따라 달라집니다.

그러나 작업에 다음이 필요한 경우에는 Amazon EC2를 사용하는 것이 좋습니다.

  • 16개 이상의 vCPU

  • 120기가바이트(GiB) 이상의 메모리

  • GPU

  • 사용자 지정 Amazon Machine Image(AMI)

  • 모든 linuxParameters 파라미터

작업 수가 많은 경우 Amazon EC2 인프라를 사용하는 것이 좋습니다. 동시 실행 작업 수가 Fargate의 조절 제한을 초과하는 경우를 예로 들 수 있습니다. 이는 EC2를 사용하면 Fargate 리소스보다 EC2 리소스로 작업을 더 빠르게 전송할 수 있기 때문입니다. 또한 EC2를 사용하면 더 많은 작업을 동시에 실행할 수 있습니다. 자세한 내용은 Amazon Elastic Container Service 개발자 안내서AWS Fargate Service Quotas을 참조하세요.

Fargate의 작업 정의

Fargate에서 AWS Batch 작업은 사용 가능한 모든 작업 정의 파라미터를 지원하지는 않습니다. 전혀 지원되지 않는 파라미터도 있고 Fargate 작업에 다르게 작동하는 파라미터도 있습니다.

다음 목록은 Fargate 작업에서 유효하지 않거나 제한되는 작업 정의 파라미터를 설명합니다.

platformCapabilities

FARGATE로 지정되어야 합니다.

"platformCapabilities": [ "FARGATE" ]
type

container로 지정되어야 합니다.

"type": "container"
containerProperties의 파라미터
executionRoleArn

Fargate 리소스에서 실행되는 작업에 지정해야 합니다. 자세한 내용은 Amazon Elastic Container Service 개발자 안내서태스크에 대한 IAM 역할을 참조하세요.

"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole"
fargatePlatformConfiguration

(선택 사항, Fargate 작업 정의에만 해당). Fargate 플랫폼 버전을 지정하거나 최신 플랫폼 버전에 대한 LATEST를 지정합니다. platformVersion에 가능한 값은 1.3.0, 1.4.0LATEST입니다(기본값).

"fargatePlatformConfiguration": { "platformVersion": "1.4.0" }
instanceType
ulimits

Fargate 리소스에서 실행되는 작업에는 적용되지 않습니다.

memory
vcpus

이러한 설정은 resourceRequirements에서 지정해야 합니다.

privileged

이 파라미터를 지정하지 않거나 false를 지정합니다.

"privileged": false
resourceRequirements

메모리 및 vCPU 요구 사항 모두 지원되는 값을 사용하여 지정해야 합니다. Fargate 리소스에서 실행되는 작업에는 GPU 리소스가 지원되지 않습니다.

GuardDuty 런타임 모니터링을 사용하는 경우 GuardDuty 보안 에이전트에 약간의 메모리 오버헤드가 발생합니다. 따라서 메모리 제한에는 GuardDuty 보안 에이전트의 크기가 포함되어야 합니다. GuardDuty 보안 에이전트 메모리 제한에 대한 자세한 내용은 GuardDuty 사용 설명서의 CPU 및 메모리 제한을 참조하십시오. 모범 사례에 대한 자세한 내용은 Amazon ECS 개발자 안내서의 런타임 모니터링을 활성화한 후 Fargate 작업의 메모리 부족 오류를 해결하려면 어떻게 해야 합니까? 를 참조하십시오.

"resourceRequirements": [ {"type": "MEMORY", "value": "512"}, {"type": "VCPU", "value": "0.25"} ]
linuxParameters의 파라미터
devices
maxSwap
sharedMemorySize
swappiness
tmpfs

Fargate 리소스에서 실행되는 작업에는 적용되지 않습니다.

logConfiguration의 파라미터
logDriver

awslogssplunk만 지원됩니다. 자세한 설명은 awslogs 로그 드라이버 사용 섹션을 참조하세요.

networkConfiguration의 멤버
assignPublicIp

프라이빗 서브넷에 인터넷으로 트래픽을 전송하기 위한 NAT 게이트웨이가 연결되어 있지 않은 경우 assignPublicIp는 "ENABLED"여야 합니다. 자세한 설명은 AWS Batch 실행: IAM 역할 섹션을 참조하세요.

Fargate의 작업 대기열

Fargate에서 AWS Batch 작업 대기열은 기본적으로 변경되지 않습니다. 유일한 제한 사항은 computeEnvironmentOrder에 나열된 컴퓨팅 환경이 모두 Fargate 컴퓨팅 환경(FARGATE 또는 FARGATE_SPOT)이어야 한다는 것입니다. EC2와 Fargate 컴퓨팅 환경은 함께 사용할 수 없습니다.

Fargate의 컴퓨팅 환경

Fargate의 AWS Batch 컴퓨팅 환경은 사용 가능한 컴퓨팅 환경 파라미터 중 일부를 지원하지 않을 수 있습니다. 전혀 지원되지 않는 파라미터도 있습니다. 다른 파라미터는 Fargate에 대한 특정 요구 사항이 있습니다.

다음 목록은 Fargate 작업에서 유효하지 않거나 제한되는 컴퓨팅 환경 파라미터를 설명합니다.

type

이 파라미터는 MANAGED여야 합니다.

"type": "MANAGED"
computeResources 객체의 파라미터
allocationStrategy
bidPercentage
desiredvCpus
imageId
instanceTypes
ec2Configuration
ec2KeyPair
instanceRole
launchTemplate
minvCpus
placementGroup
spotIamFleetRole

이는 Fargate 컴퓨팅 환경에는 적용할 수 없으며 제공될 수 없습니다.

subnets

이 파라미터에 나열된 서브넷에 NAT 게이트웨이가 연결되어 있지 않은 경우 작업 정의의 assignPublicIp 파라미터를 ENABLED로 설정해야 합니다.

tags

이는 Fargate 컴퓨팅 환경에는 적용할 수 없으며 제공될 수 없습니다. Fargate 컴퓨팅 환경에 태그를 지정하려면 computeResources 객체에 없는 tags 파라미터를 사용합니다.

type

FARGATE 또는 FARGATE_SPOT여야 합니다.

"type": "FARGATE_SPOT"