기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
컴퓨팅 환경에 대한 블루/그린 업데이트 수행
블루/그린 업데이트는 기존 컴퓨팅 환경(블루)과 함께 새 컴퓨팅 환경(그린)을 생성하여 가동 중지 시간과 위험을 줄이는 업데이트 전략입니다. 이 접근 방식을 사용하면 기존 환경을 계속 작동하면서 워크로드를 새 환경으로 점진적으로 전환할 수 있습니다. 블루/그린 업데이트는 가장 안전한 업데이트 경로를 제공하며 모든 서비스 역할 유형 또는 할당 전략으로 작동합니다.
개요
블루/그린 업데이트는 프로덕션 환경에 적합한 몇 가지 이점을 제공합니다. 업데이트 프로세스 중에 워크로드를 지속적으로 실행하여 가동 중지 시간을 0으로 유지합니다. 이 접근 방식을 사용하면 롤백 기능이 쉬워져 문제가 발생할 경우 원래 환경으로 빠르게 되돌릴 수 있습니다. 점진적 전환 전략을 구현하여 프로덕션 워크로드를 완전히 전환하기 전에 새 환경의 성능을 확인할 수 있습니다. 또한이 방법은 원래 환경이 변경되지 않고 제거하도록 선택할 때까지 작동하므로 뛰어난 위험 완화 기능을 제공합니다.
블루/그린 업데이트가 필요한 경우
다음과 같은 상황에서는 블루/그린 업데이트를 사용해야 합니다.
-
컴퓨팅 환경에서 BEST_FIT 할당 전략을 사용하는 경우(인프라 업데이트를 지원하지 않음)
-
컴퓨팅 환경에서 AWSServiceRoleForBatch 서비스 연결 역할을 사용하지 않는 경우
-
서로 다른 서비스 역할 유형 간에 전환해야 하는 경우
블루/그린 업데이트가 권장되는 경우
블루/그린 업데이트는 워크로드에 가동 중지 시간이 없는 프로덕션 환경에 특히 권장됩니다. 이 접근 방식은 프로덕션 워크로드를 전환하기 전에 새 구성을 테스트해야 할 때 효과적이므로 변경 사항이 성능 및 안정성 요구 사항을 충족하는지 확인합니다. 특히 상당한 변경 사항이 있는 사용자 지정 AMIs를 업데이트하는 경우 작업에 빠른 롤백 기능이 중요한 경우 블루/그린 업데이트를 선택합니다. 이 방법은 변경 사항을 완전히 적용하기 전에 성능 특성 및 동작을 검증하여 업데이트 프로세스에 대한 신뢰도를 제공하려는 경우에도 적합합니다.
사전 조건
블루/그린 업데이트를 수행하기 전에 다음을 확인해야 합니다.
-
컴퓨팅 환경을 생성하고 관리하기 위한 적절한 IAM 권한
-
작업 대기열 설정을 보고 수정할 수 있는 액세스 권한
-
작업 정의가 전환 중에 발생할 수 있는 장애를 처리하도록 구성된 작업 재시도 전략입니다. 자세한 내용은 작업 자동 재시도 단원을 참조하십시오.
-
새 컴퓨팅 환경의 AMI ID입니다. 다음 중 하나일 수 있습니다.
-
Amazon ECS 최적화 AMI의 승인된 최신 버전(기본적으로 사용됨)
-
Amazon ECS 컨테이너 인스턴스 AMI 사양을 충족하는 사용자 지정 AMI입니다. 사용자 지정 AMI를 사용하는 경우 다음 방법 중 하나로 지정할 수 있습니다.
사용자 지정 AMIs자습서: 컴퓨팅 리소스 AMI 생성.
새 환경을 생성하기 전에 기존 컴퓨팅 환경의 구성을 기록해야 합니다. AWS Management Console 또는를 사용하여이 작업을 수행할 수 있습니다 AWS CLI.
다음 절차에서는 AMI만 변경하는 블루/그린 업데이트를 수행하는 방법을 자세히 설명합니다. 새 환경에 대한 다른 설정을 업데이트할 수 있습니다.
이전 (블루) 컴퓨팅 환경을 제거하면 인스턴스가 종료되므로 해당 인스턴스에서 현재 실행 중인 작업이 모두 실패합니다. 이러한 실패를 자동으로 처리하도록 작업 정의에서 작업 재시도 전략을 구성합니다. 자세한 내용은 작업 자동 재시도 단원을 참조하십시오.
새 환경에 확신을 가지면 다음과 같습니다.
-
작업 대기열을 편집하여 이전 컴퓨팅 환경을 제거합니다.
-
이전 환경에서 실행 중인 작업이 완료될 때까지 기다립니다.
-
이전 컴퓨팅 환경을 삭제합니다.
- Performing blue/green updates using the AWS Management Console
-
-
현재 컴퓨팅 환경 복제
-
https://console.aws.amazon.com/batch/ AWS Batch 콘솔을 엽니다.
-
기존 컴퓨팅 환경을 선택합니다.
-
작업을 선택한 다음 복제를 선택합니다.
-
이름에 새 컴퓨팅 환경의 고유한 이름을 입력합니다.
다음을 선택합니다.
-
인스턴스 구성 섹션에서 AMI 설정을 업데이트합니다.
-
추가 구성을 확장합니다.
-
EC2 구성의 경우 이미지 유형에 새 AMI 유형을 지정하고 이미지 ID 재정의 필드에 AMI ID를 지정합니다.
다음을 선택합니다.
네트워크 구성에서 다음을 선택합니다.
-
기존 환경에서 자동으로 복사되는 다른 설정을 검토합니다.
-
컴퓨팅 환경 생성을 선택합니다.
-
새 컴퓨팅 환경 상태가가 될 때까지 기다립니다VALID.
-
작업 대기열 순서 변경
-
탐색 창에서 작업 대기열을 선택합니다.
-
기존 컴퓨팅 환경과 연결된 작업 대기열을 선택합니다.
-
편집을 선택합니다.
-
연결된 컴퓨팅 환경에서 새 컴퓨팅 환경을 추가합니다.
-
작업 대기열 업데이트를 선택합니다.
-
정리
-
새 환경에서 작업 실행을 모니터링하여 모든 것이 예상대로 작동하는지 확인합니다.
-
새 환경에 확신을 가지면 다음과 같습니다.
-
작업 대기열을 편집하여 이전 컴퓨팅 환경을 제거합니다.
-
이전 환경에서 실행 중인 작업이 완료될 때까지 기다립니다.
-
이전 컴퓨팅 환경을 삭제합니다.
- Performing blue/green updates using the AWS CLI
-
를 사용하여 구성을 가져오려면 다음 명령을 AWS CLI사용합니다.
aws batch describe-compute-environments \
--compute-environments your-compute-environment-name
새 환경을 생성할 때 참조할 수 있도록 출력을 저장합니다.
기존 환경의 구성을 사용하지만 새 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
새 환경을 사용할 수 있을 때까지 기다립니다.
aws batch describe-compute-environments \
--compute-environments your-new-compute-environment-name \
--query 'computeEnvironments[].status'
작업 대기열에 새 컴퓨팅 환경을 추가합니다.
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
확인되면를 다시 업데이트하여 새 환경을 기본 환경으로 만듭니다.
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