AWS Elastic Beanstalk
개발자 가이드

변경이 불가능한 환경 업데이트

변경 불가능한 환경 업데이트는 롤링 업데이트의 대안입니다. 변경 불가능한 환경 업데이트를 통해 인스턴스 교체가 필요한 구성 변경이 효율적이고 안전하게 적용됩니다. 변경이 불가능한 환경 업데이트에 실패하면 롤백 프로세스는 Auto Scaling 그룹만 종료하면 됩니다. 반면에 롤링 업데이트에 실패하면 롤백 업데이트를 추가로 수행하여 변경 사항을 롤백해야 합니다.

Elastic Beanstalk는 변경이 불가능한 환경 업데이트를 수행하기 위해 환경의 로드 밸런서 뒤에 새 인스턴스를 포함할 두 번째 임시 Auto Scaling 그룹을 만듭니다. 먼저 Elastic Beanstalk는 새로운 그룹에서 새로운 구성으로 단일 인스턴스를 시작합니다. 이 인스턴스는 이전 구성을 실행 중인 원래 Auto Scaling 그룹의 모든 인스턴스와 함께 트래픽을 처리합니다.

첫 번째 인스턴스가 상태 확인을 통과하면 Elastic Beanstalk는 원래 Auto Scaling 그룹에서 실행 중인 인스턴스 수와 일치하는 새로운 구성으로 추가 인스턴스를 시작합니다. 모든 새 인스턴스가 상태 확인을 통과하면 Elastic Beanstalk는 이를 원래 Auto Scaling 그룹으로 전송하고 임시 Auto Scaling 그룹 및 이전 인스턴스를 종료합니다.

참고

변경이 불가능한 환경 업데이트 중에 새 Auto Scaling 그룹의 인스턴스가 요청을 처리하기 시작하고 원래 Auto Scaling 그룹의 인스턴스가 종료되기 전에 잠시 동안 환경의 용량이 두 배가 됩니다. 환경에 인스턴스가 많거나 온디맨드 한도가 낮은 인스턴스가 있는 경우, 변경이 불가능한 환경 업데이트를 수행할 용량이 충분한지 확인하십시오. 한도에 근접한 경우 롤링 업데이트를 대신 사용하십시오.

변경이 불가능한 업데이트를 수행하려면 업데이트 중에 환경의 상태를 평가하기 위한 확장 상태 보고가 필요합니다. 확장 상태 보고는 표준 로드 밸런서 상태 확인과 인스턴스 모니터링을 결합하여 새로운 구성을 실행하는 인스턴스가 요청을 처리하는지 확인합니다.

롤링 배포의 대안으로 변경이 불가능한 업데이트를 사용하여 새 애플리케이션 버전을 배포할 수도 있습니다. 애플리케이션 배포에 변경이 불가능한 업데이트를 사용하도록 Elastic Beanstalk를 구성하면 새 애플리케이션 버전을 배포할 때마다 환경의 모든 인스턴스가 교체됩니다. 변경이 불가능한 애플리케이션 배포에 실패하면 Elastic Beanstalk는 새 Auto Scaling 그룹을 종료하여 변경 사항을 즉시 되돌립니다. 이를 통해 일부 배치가 이미 완료된 후 롤링 배포에 실패할 경우 발생하는 플릿 부분 배포를 방지할 수 있습니다.

주의

인스턴스 교체가 활성화된 관리형 플랫폼 업데이트, 변경 불가능 업데이트 및 변경 불가능 업데이트가 활성화된 배포 과정에서는 모든 인스턴스가 교체됩니다. 따라서 누적된 모든 Amazon EC2 버스트 잔고가 소실됩니다.

변경이 불가능한 업데이트에 실패할 경우 Elastic Beanstalk가 번들 로그를 종료하기 전에 새 인스턴스는 이를 Amazon S3에 업로드합니다. Elastic Beanstalk는 실패한 변경이 불가능한 업데이트의 로그를 삭제하기 전에 번들 및 테일 로그에 적용되는 표준 15분이 아닌 1시간 동안 Amazon S3에 이를 남겨 둡니다.

참고

애플리케이션 버전 배포에 변경 불가능한 업데이트를 사용하지만 구성에는 사용하지 않는 경우 일반적으로 롤링 업데이트(예: 인스턴스 유형을 변경하는 구성)를 트리거하는 구성 변경이 포함된 애플리케이션 버전을 배포하려고 하면 오류가 발생할 수 있습니다. 이를 방지하려면 별도의 업데이트에서 구성 변경을 수행하거나 배포와 구성 변경 모두에 변경이 불가능한 업데이트를 구성하십시오.

리소스 구성 변경과 함께 변경이 불가능한 업데이트를 수행할 수 없습니다. 예를 들어, 다른 설정을 업데이트하는 동안 인스턴스 교체가 필요한 설정을 변경하거나, 소스 코드의 구성 설정 또는 추가 리소스를 변경하는 구성 파일과 함께 변경이 불가능한 배포를 수행할 수 없습니다. 리소스 설정(예: 로드 밸런서 설정)을 변경하는 동시에 변경이 불가능한 업데이트를 수행하려고 하면, Elastic Beanstalk에서 오류를 반환합니다.

리소스 구성 변경이 소스 코드 변경 또는 인스턴스 구성에 종속되지 않는 경우, 두 업데이트에서 이를 수행합니다. 종속되는 경우, 대신에 블루/그린(Blue/Green) 배포를 수행합니다.

변경이 불가능한 업데이트 구성

Elastic Beanstalk 콘솔에서 변경 불가능한 업데이트를 활성화하고 구성할 수 있습니다.

변경이 불가능한 업데이트를 활성화하려면(콘솔)

  1. Elastic Beanstalk 콘솔을 엽니다.

  2. 해당 환경의 관리 페이지로 이동합니다.

  3. [Configuration]을 선택합니다.

  4. 롤링 업데이트와 배포 구성 범주에서 수정을 선택합니다.

  5. 구성 업데이트 단원에서 롤링 업데이트 유형변경 불가능으로 설정합니다.

    
            롤링 업데이트와 배포 수정 구성 페이지의 구성 업데이트 단원
  6. 적용을 선택합니다.

aws:autoscaling:updatepolicy:rollingupdate 네임스페이스

aws:autoscaling:updatepolicy:rollingupdate 네임스페이스의 옵션을 사용하여 변경이 불가능한 업데이트를 구성할 수도 있습니다. 다음은 구성 변경에 변경 불가능한 업데이트를 사용하는 구성 파일 예입니다.

예 .ebextensions/immutable-updates.config

option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable

다음은 구성 변경과 배포 모두에 변경 불가능한 업데이트를 사용하는 예입니다.

예 .ebextensions/immutable-all.config

option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable aws:elasticbeanstalk:command: DeploymentPolicy: Immutable

EB CLI 및 Elastic Beanstalk 콘솔은 위의 옵션에 권장 값을 적용합니다. 구성 파일을 사용해 동일하게 구성하고자 하는 경우 이러한 설정을 제거해야 합니다. 세부 정보는 권장 값 단원을 참조하십시오.