컴퓨팅 환경 업데이트
EC2 리소스를 사용하는 컴퓨팅 환경을 생성한 후 사용자는 컴퓨팅 환경의 여러 설정을 직접 업데이트할 수 있습니다. 하지만 일부 설정을 변경하려면 컴퓨팅 환경의 인스턴스를 AWS Batch로 교체해야 합니다.
AWS Fargate 컴퓨팅 환경 업데이트
Fargate 리소스를 사용하는 컴퓨팅 환경의 경우 사용자는 다음 사항을 업데이트할 수 있습니다.
-
securityGroupIds
-
subnets
-
desiredvCpus
-
maxvCpus
-
minvCpus
AWS Batch에는 두 가지 업데이트 메커니즘이 있습니다. 첫 번째는 컴퓨팅 환경에 인스턴스를 추가하거나 제거하는 규모 조정 업데이트입니다. 두 번째는 컴퓨팅 환경의 인스턴스가 교체되는 인프라 업데이트입니다. 인프라 업데이트는 규모 조정 업데이트보다 훨씬 오랜 시간이 걸립니다.
AWS Batch를 사용하여 컴퓨팅 환경을 업데이트한다면, 바람직한 vCPU(desiredvCpus
), 최대 vCPU(maxvCpus
), 최소 vCPU(minvCpus
), 서비스 역할(serviceRole
) 및 상태(state
)와 같은 설정만 변경하는 규모 조정 업데이트가 될 것입니다.
참고
desiredvCpus
설정을 업데이트한다면 값은 minvCpus
와 maxvCpus
사이에 있어야 합니다.
또한 업데이트된 desiredvCpus
값은 현재 값 desiredvCpus
와 같거나 이보다 커야 합니다. 자세한 내용은 desiredvCpus 설정을 업데이트할 때 나타나는 오류 메시지 단원을 참조하십시오.
UpdateComputeEnvironment API 작업에서 다음 설정 중 하나라도 변경되면 AWS Batch가 인프라 업데이트를 시작합니다. 인프라를 업데이트하려면 서비스 역할을 AWSServiceRoleForBatch(기본값)로 설정하고 할당 전략을 BEST_FIT_PROGRESSIVE
, SPOT_CAPACITY_OPTIMIZED
, 혹은 SPOT_PRICE_CAPACITY_OPTIMIZED
로 설정해야 합니다. BEST_FIT
은 지원되지 않습니다. 서비스 역할을 제외하고도 규모 조정 업데이트로 변경되는 모든 설정은 인프라 업데이트에서도 변경될 수 있습니다.
참고
대부분의 인스턴스에서 SPOT_CAPACITY_OPTIMIZED
보다 SPOT_PRICE_CAPACITY_OPTIMIZED
을 사용하는 것을 권장합니다.
인프라 업데이트 중에는 컴퓨팅 환경 상태가 UPDATING
로 변경됩니다. 업데이트된 설정을 사용하여 새로운 인스턴스가 시작됩니다. 새로운 인스턴스에 따라 새 작업이 예약됩니다. 현재 실행 중인 작업은 인프라 업데이트 정책에 따라 디스패치됩니다. 자세한 내용은 AWS Batch API 참조의 UpdateComputeEnvironment 및 UpdatePolicy를 참조하십시오.
UpdatePolicy
데이터 유형은 다음 시나리오를 고려해 보십시오.
참고
이 시나리오는 다음과 같습니다. 인스턴스가 종료되면 실행 중인 작업이 중지됩니다. 기본적으로 이 작업은 재시도되지 않습니다. 인스턴스가 종료된 후 이러한 작업 중 하나를 재시도하려면 작업 재시도 전략을 구성하십시오. 자세한 내용은 AWS Batch 사용 설명서의 작업 자동 재시도를 참조하세요.
-
terminateJobsOnUpdate
의 설정을true
로 설정하면 인프라 업데이트 중에 실행 중인 작업이 종료됩니다.jobExecutionTimeoutMinutes
설정은 무시됩니다. -
terminateJobsOnUpdate
설정을false
로 설정하면 인프라 업데이트 이후 추가 시간에 작업이 실행됩니다. 이 추가 시간은jobExecutionTimeoutMinutes
설정에 설정할 수 있습니다.jobExecutionTimeoutMinutes
설정 기본값은 30분입니다.
컴퓨팅 환경에서 용량을 사용할 수 있게 되면 설정을 업데이트하여 새 인스턴스가 시작되고 새 인스턴스에서 작업이 시작됩니다. 이전 설정이 적용된 인스턴스에서 모든 작업이 완료되므로 이전 인스턴스는 종료됩니다. 용량을 사용할 수 있게 된다는 것은 최소 인스턴스 유형에 필요한 vCPU 수만큼 원하는 vCPU 수가 최대 vCPU 수보다 적다는 것을 의미합니다.
인프라 업데이트
컴퓨팅 환경의 일부 설정을 변경하려면 인프라 업데이트가 필요합니다. 다음 설정 중 하나라도 변경되면 인프라 업데이트가 시작됩니다.
중요
컴퓨팅 환경은 인프라 업데이트에 필요한 변경을 수행하기 위해 AWSServiceRoleForBatch 서비스 연결 역할을 사용해야 합니다.
컴퓨팅 환경에서 서비스 연결 역할을 사용하는 경우 정규 IAM 역할을 사용하도록 변경할 수 없습니다. 마찬가지로 컴퓨팅 환경에서 정규 IAM 역할을 사용하는 경우 서비스 연결 역할을 사용하도록 변경할 수 없습니다. 따라서 서비스 연결 역할을 사용하여 생성된 컴퓨팅 환경에서만 인프라 업데이트를 수행할 수 있습니다.
-
할당 전략 (
allocationStrategy
은BEST_FIT_PROGRESSIVE
,SPOT_CAPACITY_OPTIMIZED
, 또는SPOT_PRICE_CAPACITY_OPTIMIZED
중 하나여야 합니다. 원래 할당 전략이BEST_FIT
이라면 인프라 업데이트는 지원되지 않습니다.)참고
대부분의 인스턴스에서
SPOT_CAPACITY_OPTIMIZED
보다SPOT_PRICE_CAPACITY_OPTIMIZED
을 사용하는 것을 권장합니다. -
입찰 비율 (
bidPercentage
) -
EC2 구성(
ec2Configuration
) -
키 페어 (
ec2KeyPair
) -
이미지 ID (
imageId
) -
인스턴스 역할 (
instanceRole
) -
인스턴스 유형 (
instanceTypes
) -
시작 템플릿 (
launchTemplate
) -
배치 그룹 (
placementGroup
) -
보안 그룹 (
securityGroupIds
) -
VPC 서브넷 (
subnets
) -
EC2 태그 (
tags
) -
컴퓨팅 환경 유형 (
type
,EC2
또는SPOT
중 하나일 수 있음) -
인프라 업데이트
updateToLatestImageVersion
중, AWS Batch에 의해 지원되는 최신 AMI로 업데이트할지 여부
AMI ID 업데이트
인프라 업데이트 중에 AMI가 이 세 가지 설정 중 어디에 설정되었는지에 따라 컴퓨팅 환경의 AMI ID가 변경될 수 있습니다. AMI는 imageId
(computeResources
에서), imageIdOverride
(ec2Configuration
에서)에서 지정되거나 아니면 시작 템플릿이 launchTemplate
에 지정됩니다. AMI ID가 아무런 설정에도 지정되어 있지 않고 updateToLatestImageVersion
설정이 true
라고 가정해 보겠습니다. 그러면 AWS Batch에서 지원하는 최신 Amazon ECS 최적화 AMI가 모든 인프라 업데이트에 사용됩니다.
AMI ID가 이러한 설정 중 하나 중에 지정되면 업데이트 전에 사용한 AMI ID 제공 설정에 따라 업데이트가 달라집니다. 컴퓨팅 환경을 생성할 때 AMI ID 선택 우선 순위는 가장 먼저 시작 템플릿, 그리고 imageId
설정, 마지막으로 imageIdOverride
설정입니다. 하지만 사용한 AMI ID를 시작 템플릿에서 가져오면 imageId
또는 imageIdOverride
설정은 AMI ID를 업데이트하지 않습니다. 시작 템플릿에 선택된 AMI ID를 업데이트하는 유일한 방법은 시작 템플릿을 업데이트하는 것입니다. 시작 템플릿의 버전 파라미터가 $Default
혹은 $Latest
인 경우 지정된 시작 템플릿의 기본 버전 또는 최신 버전이 평가됩니다. 기본적으로 다른 AMI ID를 선택하거나 시작 템플릿의 최신 버전을 선택한 경우 해당 AMI ID가 업데이트에 사용됩니다.
시작 템플릿에 AMI ID를 선택하지 않은 경우 imageId
또는 imageIdOverride
파라미터에 지정된 AMI ID가 사용됩니다. 둘 다 지정된 경우 imageIdOverride
파라미터에 지정된 AMI ID가 사용됩니다.
컴퓨팅 환경에 또는 imageId
, imageIdOverride
, 혹은 launchTemplate
파라미터로 지정한 AMI ID를 사용하고 AWS Batch에서 지원하는 최신 Amazon ECS 최적화 AMI를 사용하기를 원한다고 가정해 보겠습니다. 그러면 업데이트는 AMI ID를 제공한 설정을 제거해야 합니다. imageId
의 경우, 해당 파라미터에 빈 문자열을 지정해야 합니다. imageIdOverride
의 경우 ec2Configuration
파라미터에 빈 문자열을 지정해야 합니다.
AMI ID를 시작 템플릿에서 가져온 경우 사용자는 다음 방법 중 하나로 AWS Batch가 지원하는 최신 Amazon ECS 최적화 AMI로 변경할 수 있습니다.
-
launchTemplateId
또는launchTemplateName
파라미터에 빈 문자열을 지정하여 시작 템플릿을 제거합니다. 그러면 AMI ID만 제거되는 것이 아니라 전체 시작 템플릿이 제거됩니다. -
업데이트된 버전의 시작 템플릿에 AMI ID가 지정되지 않은 경우
updateToLatestImageVersion
파라미터를true
로 설정해야 합니.