컴퓨팅 환경에 대한 블루/그린 업데이트 수행 - AWS Batch

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

컴퓨팅 환경에 대한 블루/그린 업데이트 수행

블루/그린 업데이트는 기존 컴퓨팅 환경(블루)과 함께 새 컴퓨팅 환경(그린)을 생성하여 가동 중지 시간과 위험을 줄이는 업데이트 전략입니다. 이 접근 방식을 사용하면 기존 환경을 계속 작동하면서 워크로드를 새 환경으로 점진적으로 전환할 수 있습니다. 블루/그린 업데이트는 가장 안전한 업데이트 경로를 제공하며 모든 서비스 역할 유형 또는 할당 전략으로 작동합니다.

개요

블루/그린 업데이트는 프로덕션 환경에 적합한 몇 가지 이점을 제공합니다. 업데이트 프로세스 중에 워크로드를 지속적으로 실행하여 가동 중지 시간을 0으로 유지합니다. 이 접근 방식을 사용하면 롤백 기능이 쉬워져 문제가 발생할 경우 원래 환경으로 빠르게 되돌릴 수 있습니다. 점진적 전환 전략을 구현하여 프로덕션 워크로드를 완전히 전환하기 전에 새 환경의 성능을 확인할 수 있습니다. 또한이 방법은 원래 환경이 변경되지 않고 제거하도록 선택할 때까지 작동하므로 뛰어난 위험 완화 기능을 제공합니다.

블루/그린 업데이트가 필요한 경우

다음과 같은 상황에서는 블루/그린 업데이트를 사용해야 합니다.

  • 컴퓨팅 환경에서 BEST_FIT 할당 전략을 사용하는 경우(인프라 업데이트를 지원하지 않음)

  • 컴퓨팅 환경에서 AWSServiceRoleForBatch 서비스 연결 역할을 사용하지 않는 경우

  • 서로 다른 서비스 역할 유형 간에 전환해야 하는 경우

블루/그린 업데이트는 워크로드에 가동 중지 시간이 없는 프로덕션 환경에 특히 권장됩니다. 이 접근 방식은 프로덕션 워크로드를 전환하기 전에 새 구성을 테스트해야 할 때 효과적이므로 변경 사항이 성능 및 안정성 요구 사항을 충족하는지 확인합니다. 특히 상당한 변경 사항이 있는 사용자 지정 AMIs를 업데이트하는 경우 작업에 빠른 롤백 기능이 중요한 경우 블루/그린 업데이트를 선택합니다. 이 방법은 변경 사항을 완전히 적용하기 전에 성능 특성 및 동작을 검증하여 업데이트 프로세스에 대한 신뢰도를 제공하려는 경우에도 적합합니다.

사전 조건

블루/그린 업데이트를 수행하기 전에 다음을 확인해야 합니다.

  • 컴퓨팅 환경을 생성하고 관리하기 위한 적절한 IAM 권한

  • 작업 대기열 설정을 보고 수정할 수 있는 액세스 권한

  • 작업 정의가 전환 중에 발생할 수 있는 장애를 처리하도록 구성된 작업 재시도 전략입니다. 자세한 내용은 작업 자동 재시도 단원을 참조하십시오.

  • 새 컴퓨팅 환경의 AMI ID입니다. 다음 중 하나일 수 있습니다.

    • Amazon ECS 최적화 AMI의 승인된 최신 버전(기본적으로 사용됨)

    • Amazon ECS 컨테이너 인스턴스 AMI 사양을 충족하는 사용자 지정 AMI입니다. 사용자 지정 AMI를 사용하는 경우 다음 방법 중 하나로 지정할 수 있습니다.

      • EC2 구성에서 이미지 ID 재정의 필드 사용

      • 시작 템플릿에서 지정

      사용자 지정 AMIs자습서: 컴퓨팅 리소스 AMI 생성.

새 환경을 생성하기 전에 기존 컴퓨팅 환경의 구성을 기록해야 합니다. AWS Management Console 또는를 사용하여이 작업을 수행할 수 있습니다 AWS CLI.

참고

다음 절차에서는 AMI만 변경하는 블루/그린 업데이트를 수행하는 방법을 자세히 설명합니다. 새 환경에 대한 다른 설정을 업데이트할 수 있습니다.

중요

이전 (블루) 컴퓨팅 환경을 제거하면 인스턴스가 종료되므로 해당 인스턴스에서 현재 실행 중인 작업이 모두 실패합니다. 이러한 실패를 자동으로 처리하도록 작업 정의에서 작업 재시도 전략을 구성합니다. 자세한 내용은 작업 자동 재시도 단원을 참조하십시오.

새 환경에 확신을 가지면 다음과 같습니다.

  1. 작업 대기열을 편집하여 이전 컴퓨팅 환경을 제거합니다.

  2. 이전 환경에서 실행 중인 작업이 완료될 때까지 기다립니다.

  3. 이전 컴퓨팅 환경을 삭제합니다.

Performing blue/green updates using the AWS Management Console
  1. 현재 컴퓨팅 환경 복제

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

    2. 기존 컴퓨팅 환경을 선택합니다.

    3. 작업을 선택한 다음 복제를 선택합니다.

    4. 이름에 새 컴퓨팅 환경의 고유한 이름을 입력합니다.

    5. 다음을 선택합니다.

    6. 인스턴스 구성 섹션에서 AMI 설정을 업데이트합니다.

      1. 추가 구성을 확장합니다.

      2. EC2 구성의 경우 이미지 유형에 새 AMI 유형을 지정하고 이미지 ID 재정의 필드에 AMI ID를 지정합니다.

    7. 다음을 선택합니다.

    8. 네트워크 구성에서 다음을 선택합니다.

    9. 기존 환경에서 자동으로 복사되는 다른 설정을 검토합니다.

    10. 컴퓨팅 환경 생성을 선택합니다.

    11. 새 컴퓨팅 환경 상태가가 될 때까지 기다립니다VALID.

  2. 작업 대기열 순서 변경

    1. 탐색 창에서 작업 대기열을 선택합니다.

    2. 기존 컴퓨팅 환경과 연결된 작업 대기열을 선택합니다.

    3. 편집을 선택합니다.

    4. 연결된 컴퓨팅 환경에서 새 컴퓨팅 환경을 추가합니다.

      • 기존 환경보다 순서 번호가 높은 새 컴퓨팅 환경을 추가하여 워크로드를 전환합니다.

      • 새 환경이 올바르게 작동하는지 확인한 후 더 낮은 주문 번호를 제공하여 기본 환경으로 만들 수 있습니다.

    5. 작업 대기열 업데이트를 선택합니다.

  3. 정리

    1. 새 환경에서 작업 실행을 모니터링하여 모든 것이 예상대로 작동하는지 확인합니다.

    2. 새 환경에 확신을 가지면 다음과 같습니다.

      1. 작업 대기열을 편집하여 이전 컴퓨팅 환경을 제거합니다.

      2. 이전 환경에서 실행 중인 작업이 완료될 때까지 기다립니다.

      3. 이전 컴퓨팅 환경을 삭제합니다.

Performing blue/green updates using the AWS CLI
  1. 를 사용하여 구성을 가져오려면 다음 명령을 AWS CLI사용합니다.

    aws batch describe-compute-environments \ --compute-environments your-compute-environment-name

    새 환경을 생성할 때 참조할 수 있도록 출력을 저장합니다.

  2. 기존 환경의 구성을 사용하지만 새 AMI를 사용하여 새 컴퓨팅 환경을 생성합니다. 다음은 명령 구조의 예입니다.

    예제 값을 이전 단계의 실제 구성으로 바꿉니다.

    cat <<EOF > ./blue-green-compute-environment.json { "computeEnvironmentName": "your-new-compute-environment-name", "type": "MANAGED", "state": "ENABLED", "computeResources": { "instanceRole": "arn:aws:iam::012345678901:instance-profile/ecsInstanceRole", "type": "EC2", "minvCpus": 2, "desiredvCpus": 2, "maxvCpus": 256, "instanceTypes": [ "optimal" ], "allocationStrategy": "BEST_FIT_PROGRESSIVE", "ec2Configuration": [ { "imageType": "ECS_AL2023", "imageIdOverride": "ami-0abcdef1234567890" } ], "subnets": [, "subnet-0abcdef1234567890" ], "securityGroupIds": [ "sg-0abcdef1234567890" ] } } EOF
    $ aws batch create-compute-environment --cli-input-json file://./blue-green-compute-environment.json
  3. 새 환경을 사용할 수 있을 때까지 기다립니다.

    aws batch describe-compute-environments \ --compute-environments your-new-compute-environment-name \ --query 'computeEnvironments[].status'
  4. 작업 대기열에 새 컴퓨팅 환경을 추가합니다.

    aws batch update-job-queue \ --job-queue your-job-queue \ --compute-environment-order order=1,computeEnvironment=your-existing-environment \ order=2,computeEnvironment=your-new-compute-environment-name
  5. 확인되면를 다시 업데이트하여 새 환경을 기본 환경으로 만듭니다.

    aws batch update-job-queue \ --job-queue your-job-queue \ --compute-environment-order order=1,computeEnvironment=your-new-compute-environment-name

    이전 환경에서 모든 작업이 완료되면 비활성화한 다음 삭제합니다.

    aws batch update-compute-environment \ --compute-environment your-existing-environment \ --state DISABLED
    aws batch delete-compute-environment \ --compute-environment your-existing-environment