

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

# AWS Batch 작업 정의의 개정 관리
<a name="batch-jobs"></a>

이 예제에서는 AWS Batch 서비스를 사용하고 Terraform을 IaC 도구로 사용하여 배치 작업을 배포한다고 가정합니다.

## 챌린지
<a name="batch-job-challenges"></a>

AWS Batch 는 각 업데이트와 함께 작업 정의의 새 개정을 생성하여 시간이 지남에 따라 개정이 누적됩니다. 이렇게 하면 리소스 관리가 복잡해지고 특히 작업 정의가 자주 업데이트되고 다운스트림 리소스에 최신 버전에 대한 정확한 참조가 필요한 엔터프라이즈 환경에서 최신 개정을 혼동할 수 있습니다.

## Solution
<a name="batch-job-solution"></a>

다음 Terraform 코드는 몇 가지 주요 구성 요소를 사용하여 AWS Batch 개정 관리를 처리합니다.

```
resource "terraform_data" "batch_job_definition_cleanup" {
  triggers_replace = {
    always_run = timestamp()
  }

  provisioner "local-exec" {
    command = "..."  # AWS CLI commands to list and de-register older revisions
  }
}
```

이 코드에는 다음이 포함됩니다.
+ `terraform_data`는 Terraform 작업 중에 AWS Command Line Interface (AWS CLI) 명령을 실행하기 위해 `local-exec` 프로비저너와 결합됩니다.
+ 타임스탬프 트리거는 모든 `terraform apply` 명령이 정리 스크립트를 실행하도록 합니다.
+ AWS CLI 통합은 모든 활성 작업 정의 개정에 AWS Batch 대한 쿼리를 수행하고 이전 개정의 등록을 취소합니다.
+ 명령 섹션에 사용자 지정 보존 구성을 추가하여 보존할 최근 개정 수를 지정할 수 있습니다.

## 이점
<a name="batch-job-benefits"></a>
+ **간소화된 관리**: 작업 정의에 오래된 개정이 누적되는 것을 방지합니다.
+ **명확한 참조**: 현재 버전의 작업 정의에 대한 정확한 포인터를 유지합니다.
+ **리소스 최적화**: AWS Batch 환경의 어수선함을 줄입니다.
+ **자동화**: 기존 Terraform 워크플로와 원활하게 통합됩니다.

이 접근 방식은 Terraform의 확장성 기능이 IaC 모범 사례를 유지하면서 공급자 제한을 극복하는 방법을 보여줍니다. 이 솔루션을 동적 리소스 검색 및 관리가 필요한 유사한 시나리오의 템플릿으로 사용할 수 있습니다.