

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

# 인프라 업데이트 수행
<a name="infrastructure-updates"></a>

인프라 업데이트는 컴퓨팅 환경의 인스턴스를 설정이 업데이트된 새 인스턴스로 대체합니다. 이 업데이트 전략은 규모 조정 업데이트보다 오래 걸리며 특정 서비스 역할 및 할당 전략 설정이 필요합니다. 인프라 업데이트는 서비스 가용성을 유지하면서 기본 컴퓨팅 환경 구성을 수정할 수 있는 방법을 제공합니다.

**중요**  
인프라 업데이트에는 *AWSServiceRoleForBatch* 서비스 연결 역할과 `BEST_FIT_PROGRESSIVE`, `SPOT_CAPACITY_OPTIMIZED` 또는 `SPOT_PRICE_CAPACITY_OPTIMIZED`의 할당 전략이 필요합니다. 환경이 이러한 요구 사항을 충족하지 않는 경우, 대신 블루/그린 업데이트를 사용합니다.

## 인프라 업데이트를 트리거하는 변경 사항
<a name="infrastructure-updates-triggers"></a>

다음 설정 중 하나를 수정하면가 인프라 업데이트를 AWS Batch 수행합니다. 인프라 업데이트는 규모 조정 업데이트 설정과 함께 이러한 설정을 수정할 때도 발생합니다.

다음 설정은 인프라 업데이트를 트리거합니다.

**컴퓨팅 구성**
+ `allocationStrategy` -가 인스턴스 유형을 AWS Batch 선택하는 방법을 결정합니다.
+ `instanceTypes` - 어느 EC2 인스턴스 유형을 사용할지를 지정합니다.
+ `bidPercentage` - 스팟 인스턴스에 대한 온디맨드 가격의 최대 백분율.
+ `type` - 컴퓨팅 환경 유형(`EC2` 또는 `SPOT`).

**AMI 및 시작 구성**
+ `imageId` - 인스턴스에 사용할 특정 AMI.
+ `ec2Configuration` - `imageIdOverride`를 포함한 EC2 구성.
+ `launchTemplate` - EC2 시작 템플릿 설정.
+ `ec2KeyPair` - 인스턴스 액세스를 위한 SSH 키 페어.
+ `updateToLatestImageVersion` - 자동 AMI 업데이트 설정.

**네트워킹 및 보안**
+ `subnets` - 인스턴스가 시작되는 VPC 서브넷(EC2 컴퓨팅 환경용).
+ `securityGroupIds` - 인스턴스의 보안 그룹(EC2 컴퓨팅 환경용).
+ `placementGroup` - EC2 배치 그룹 구성.

**기타 설정**
+ `instanceRole` - EC2 인스턴스에 대한 IAM 역할.
+ `tags` - EC2 인스턴스에 적용되는 태그.

**중요**  
규모 조정 업데이트 설정(예: `desiredvCpus`, `maxvCpus` 또는 `minvCpus`)과 함께 인프라 업데이트 설정을 수정하면 AWS Batch 에서 인프라 업데이트를 수행합니다. 인프라 업데이트는 규모 조정 업데이트보다 더 오래 걸립니다.

## 인프라 업데이트 중 AMI 선택
<a name="updating-compute-environments-ami"></a>

인프라 업데이트 중에 AMI가 이 세 가지 설정 중 어디에 설정되었는지에 따라 컴퓨팅 환경의 AMI ID가 변경될 수 있습니다. AMI는 `imageId`(`computeResources`에서), `imageIdOverride`(`ec2Configuration`에서)에서 지정되거나 아니면 시작 템플릿이 `launchTemplate`에 지정됩니다. AMI ID가 아무런 설정에도 지정되어 있지 않고 `updateToLatestImageVersion` 설정이 `true`라고 가정해 보겠습니다. 그런 다음에서 지원하는 최신 Amazon ECS 최적화 AMI AWS Batch 가 모든 인프라 업데이트에 사용됩니다.

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가 시작 템플릿에서 가져온 경우 다음 방법 중 하나를 사용하여에서 지원하는 최신 Amazon ECS 최적화 AMI AWS Batch 로 변경할 수 있습니다.
+ `launchTemplateId` 또는 `launchTemplateName` 파라미터에 빈 문자열을 지정하여 시작 템플릿을 제거합니다. 그러면 AMI ID만 제거되는 것이 아니라 전체 시작 템플릿이 제거됩니다.
+ 업데이트된 버전의 시작 템플릿에 AMI ID가 지정되지 않은 경우 `updateToLatestImageVersion` 파라미터를 `true`로 설정해야 합니.

## 업데이트 중 작업 처리
<a name="infrastructure-updates-job-handling"></a>

업데이트 정책을 사용하여 인프라 업데이트 중에 실행 중인 작업을 처리하는 방법을 구성합니다. `terminateJobsOnUpdate=true`를 설정하면 실행 중인 작업이 즉시 종료되고 `jobExecutionTimeoutMinutes` 설정이 무시되며 인스턴스를 교체할 수 있게 되는 즉시 업데이트가 진행됩니다. `terminateJobsOnUpdate=false`를 설정하면 지정된 제한 시간(기본 제한 시간은 30분) 동안 실행 중인 작업이 계속 진행되고 제한 시간을 초과하면 작업이 종료됩니다.

**참고**  
업데이트 중에 종료된 작업을 재시도하려면 작업 재시도 전략을 구성합니다. 자세한 내용은 [작업 자동 재시도](job_retries.md) 단원을 참조하십시오.

------
#### [ Performing infrastructure updates using the AWS Management Console ]

**참고**  
콘솔에서 최신 AMI 버전으로 업데이트하려면 섹션을 참조하세요[AMI 버전 업데이트](managing-ami-versions.md#updating-ami-versions).

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) AWS Batch 콘솔을 엽니다.

1. 탐색 창에서 **환경**을 선택한 다음 **컴퓨팅 환경** 탭을 선택합니다.

1. 업데이트할 컴퓨팅 환경을 선택합니다.

1. **작업**을 선택하고 **편집**을 선택합니다.

1. **업데이트 동작** 섹션에서 실행 중인 작업을 처리하는 방법을 구성합니다.
   + **최신 버전으로 AMI 업데이트**를 선택하여 AMI를 최신 버전으로 업데이트합니다.
   + 업데이트 프로세스가 실행된 후 작업을 종료하려면 **업데이트 즉시 작업 종료**를 선택합니다.
   + **작업 실행 제한 시간**에 업데이트 프로세스를 시작하기 전에 대기할 시간(분)을 입력합니다.

1. [인프라 업데이트가 필요한 설정](#infrastructure-updates-triggers)을 하나 이상 수정합니다. 예제:
   + **인스턴스 역할**
   + **EC2 스팟 인스턴스 사용**
   + **허용되는 인스턴스 유형**
   + **배치 그룹**
   + **EC2 키 페어**
   + **EC2 구성**
   + **시작 템플릿**
   + **서브넷**
   + **보안 그룹**

1. **변경 사항 저장**을 선택합니다.

1. 컴퓨팅 환경 상태를 모니터링합니다. 업데이트 프로세스 동안 환경은 `UPDATING`으로 표시됩니다.

------
#### [ Performing infrastructure updates using the AWS CLI ]

**update-compute-environment** 명령을 사용하여 [인프라 업데이트가 필요한 설정](#infrastructure-updates-triggers)을 하나 이상 변경합니다. 다음 세 가지 예제는 흔히 수행되는 인프라 작업입니다.
+ 이 예제는 인스턴스 유형을 업데이트하고 업데이트 정책을 구성합니다.

  ```
  aws batch update-compute-environment \
      --compute-environment {{your-compute-environment-name}} \
      --compute-resources instanceTypes={{default_x86_64}} \
      --update-policy terminateJobsOnUpdate={{false}},jobExecutionTimeoutMinutes={{30}}
  ```
+ 이 예제는 VPC 서브넷 및 보안 그룹을 업데이트합니다.

  ```
  aws batch update-compute-environment \
      --compute-environment {{your-compute-environment-name}} \
      --compute-resources subnets={{subnet-abcd1234}},{{subnet-efgh5678}} securityGroupIds={{sg-abcd1234}} \
      --update-policy terminateJobsOnUpdate={{true}}
  ```
+ 이 예제는 최신 Amazon ECS 최적화 AMI에 대한 자동 업데이트를 활성화합니다.

  ```
  aws batch update-compute-environment \
      --compute-environment {{your-compute-environment-name}} \
      --compute-resources updateToLatestImageVersion={{true}} \
      --update-policy terminateJobsOnUpdate={{false}},jobExecutionTimeoutMinutes={{60}}
  ```

------

## 인프라 업데이트 모니터링
<a name="infrastructure-updates-monitoring"></a>

 AWS Batch 콘솔을 사용하여 인프라 업데이트를 모니터링하여 로의 컴퓨팅 환경 상태 변경을 모니터링하고`UPDATING`, 인스턴스 교체 진행 상황을 모니터링하고, 실패한 업데이트가 있는지 확인합니다. 컴퓨팅 환경 상태가 `VAILD`가 되면 업데이트가 성공한 것입니다. CloudWatch를 사용하여 인스턴스 종료 이벤트를 추적하고 업데이트 동안 작업 상태를 모니터링할 수도 있습니다. 에서 **describe-compute-environments** 명령을 AWS CLI사용하여 상태를 확인하고 인스턴스 수명 주기 이벤트를 모니터링합니다.