Elastic Beanstalk 환경에 애플리케이션 배포 - AWS Elastic Beanstalk

Elastic Beanstalk 환경에 애플리케이션 배포

AWS Elastic Beanstalk 콘솔을 사용하여 업데이트된 소스 번들을 업로드한 후 Elastic Beanstalk 환경에 배포하거나 이전에 업로드한 버전을 다시 배포합니다.

각 배포는 배포 ID로 식별됩니다. 배포 ID는 1부터 시작되며 배포와 인스턴스 구성이 변경될 때마다 1씩 증가합니다. 확장 상태 보고를 활성화하면 Elastic Beanstalk가 인스턴스 상태를 보고할 때 상태 콘솔EB CLI 둘 다에 배포 ID를 표시합니다. 롤링 업데이트에 실패할 때 배포 ID로 환경의 상태를 확인할 수 있습니다.

Elastic Beanstalk는 여러 배포 정책 및 설정을 제공합니다. 정책 및 추가 설정 구성에 대한 자세한 내용은 정책 및 설정 배포 단원을 참조하십시오. 다음 표에는 정책과 이를 지원하는 환경의 종류가 나와 있습니다.

지원되는 배포 정책
배포 정책 로드 밸런싱된 환경 단일 인스턴스 환경 레거시 Windows Server 환경†

한 번에 모두

롤링

아니요

추가 배치를 사용한 롤링

아니요

아니요

변경 불가능

아니요

트래픽 분할

예(Application Load Balancer)

아니요

아니요

† 이 표에서 레거시 Windows Server 환경은 IIS 8.5보다 이전의 IIS 버전을 사용하는 Windows Server 플랫폼 구성을 기반으로 하는 환경입니다.

주의

일부 정책은 배포 또는 업데이트 중에 모든 인스턴스를 대체합니다. 따라서 누적된 모든 Amazon EC2 버스트 잔고가 소실됩니다. 이 동작은 다음과 같은 경우에 발생합니다.

  • 인스턴스 교체가 활성화된 관리형 플랫폼 업데이트

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

  • 변경 불가능한 업데이트 또는 트래픽 분할이 활성화된 배포

배포 정책 선택

애플리케이션에 적합한 배포 정책을 선택하는 것은 몇 가지 상반되는 고려 사항 중에서 특정 요구 사항에 따라 선택하는 것입니다. 정책 및 설정 배포 페이지에는 각 정책에 대한 자세한 정보와 그 중 일부의 작동에 대한 자세한 설명이 나와 있습니다.

다음 목록에서는 다양한 배포 정책에 대한 요약 정보를 제공하고 관련 고려 사항을 추가합니다.

  • 한 번에 모두 – 가장 빠른 배포 방법입니다. 단기간의 서비스 손실이 허용될 수 있고 빠른 배포가 중요한 경우에 적합합니다. 이 방법을 사용하면 Elastic Beanstalk는 새 애플리케이션 버전을 각 인스턴스에 배포합니다. 그런 다음 웹 프록시 또는 애플리케이션 서버를 다시 시작해야 할 수 있습니다. 결과적으로 짧은 시간 동안 사용자가 애플리케이션을 사용할 수 없거나 가용성이 감소할 수 있습니다.

  • 롤링 – 가동 중지를 방지하고 가용성 감소를 최소화하는 대신 배포 시간이 길어집니다. 완전한 서비스 손실이 허용될 수 없는 경우에 적합합니다. 이 방법을 사용하면 애플리케이션이 한 번에 한 인스턴스 배치로 사용자 환경에 배포됩니다. 배포 전반에 걸쳐 대부분의 대역폭이 유지됩니다.

  • 추가 배치를 사용한 롤링 – 가용성 감소를 방지하지만 배포 시간이 롤링 방법보다도 오래 걸립니다. 배포 전반에 걸쳐 동일한 대역폭을 유지해야 하는 경우에 적합합니다. 이 방법을 사용하면 Elastic Beanstalk는 추가 인스턴스 배치를 시작한 다음 롤링 배포를 수행합니다. 추가 배치를 시작하는 데는 시간이 걸리며 배포 전반에 걸쳐 동일한 대역폭이 유지됩니다.

  • 변경 불가능 – 기존 인스턴스를 업데이트하는 대신 새 애플리케이션 버전이 항상 새 인스턴스에 배포되도록 하는 더 느린 배포 방법입니다. 또한 배포가 실패할 경우 빠르고 안전하게 롤백할 수 있다는 추가 이점이 있습니다. 이 방법을 사용하면 Elastic Beanstalk는 애플리케이션을 변경 불가능한 업데이트를 수행하여 애플리케이션을 배포합니다. 변경 불가능한 업데이트에서 두 번째 Auto Scaling 그룹이 사용자 환경에서 시작되고 새 인스턴스가 상태 확인을 통과할 때까지 새 버전과 기존 버전이 함께 트래픽을 처리합니다.

  • 트래픽 분할 – Canary 테스트 배포 방법입니다. 이전 애플리케이션 버전을 통해 나머지 트래픽을 계속 처리하면서 수신 트래픽의 일부를 사용하여 새 애플리케이션 버전의 상태를 테스트하려는 경우에 적합합니다.

다음은 배포 방법 속성을 비교하는 표입니다.

배포 방법
방법 배포 실패로 인한 영향 배포 시간 가동 중지 없음 DNS 변경 없음 롤백 프로세스 코드 배포 위치
한 번에 모두 가동 중지 아니요 수동 재배포 기존 인스턴스
롤링 단일 배치가 서비스에서 제외됨. 실패하기 전 성공한 배치가 새 애플리케이션 버전 실행 수동 재배포 기존 인스턴스
추가 배치를 사용한 롤링 첫 번째 배치가 실패할 경우 최소화. 그렇지 않은 경우 롤링과 유사함 수동 재배포 새 인스턴스 및 기존 인스턴스
변경 불가능 최소화 새 인스턴스 종료 새 인스턴스
트래픽 분할 일시적으로 영향을 받는 새 버전으로 라우팅되는 클라이언트 트래픽의 비율 †† 트래픽 재라우팅 및 새 인스턴스 종료 새 인스턴스
블루/그린 최소화 아니요 Swap URL 새 인스턴스

배치 크기에 따라 달라집니다.

†† 평가 시간 옵션 설정에 따라 다릅니다.

새 애플리케이션 버전 배포

사용자 환경의 대시보드에서 배포를 수행할 수 있습니다.

새 애플리케이션 버전을 Elastic Beanstalk 환경에 배포하려면

  1. Elastic Beanstalk 콘솔을 연 다음 [Regions] 목록에서 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경의 이름을 선택합니다.

    참고

    환경이 많은 경우 검색 창을 사용하여 환경 목록을 필터링합니다.

  3. [업로드 및 배포]를 선택합니다.

  4. 화면에 표시되는 양식을 사용하여 애플리케이션 소스 번들을 업로드합니다.

  5. [Deploy]를 선택합니다.

이전 버전 재배포

애플리케이션 버전 페이지에서 이전에 업로드한 애플리케이션 버전을 환경에 배포할 수도 있습니다.

기존 애플리케이션 버전을 기존 환경에 배포하려면

  1. Elastic Beanstalk 콘솔을 연 다음 [Regions] 목록에서 AWS 리전을 선택합니다.

  2. 탐색 창에서 애플리케이션을 선택한 다음 목록에서 애플리케이션의 이름을 선택합니다.

    참고

    애플리케이션이 많은 경우 검색 창을 사용하여 애플리케이션 목록을 필터링합니다.

  3. 탐색 창에서 애플리케이션 이름을 찾은 다음 애플리케이션 버전을 선택합니다.

  4. 배포할 애플리케이션 버전을 선택합니다.

  5. [작업]을 선택한 다음 [배포]를 선택합니다.

  6. 환경을 선택한 후 [배포]를 선택합니다.

애플리케이션을 배포하는 다른 방법

자주 배포하는 경우 Elastic Beanstalk 명령줄 인터페이스(EB CLI)를 사용하여 환경을 관리할 수 있습니다. EB CLI는 소스 코드와 함께 리포지토리를 생성합니다. 또한 소스 번들을 생성하고, Elastic Beanstalk에 업로드하고, 단일 명령으로 배포할 수 있습니다.

배포가 리소스 구성 변경에 종속되거나 새 버전을 기존 버전과 함께 실행할 수 없는 경우 새 버전으로 새 환경을 시작하고 블루/그린 배포에 CNAME 스왑을 수행할 수 있습니다.