

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

# Elastic Beanstalk 환경에 애플리케이션 배포
<a name="using-features.deploy-existing-version"></a>

 AWS Elastic Beanstalk 콘솔을 사용하여 업데이트된 [소스 번들](applications-sourcebundle.md)을 업로드하여 Elastic Beanstalk 환경에 배포하거나 이전에 업로드한 버전을 재배포할 수 있습니다.

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

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


**지원되는 배포 정책**  

| 배포 정책 | 로드 밸런싱된 환경 | 단일 인스턴스 환경 | 레거시 Windows Server 환경† | 
| --- | --- | --- | --- | 
| **한 번에 모두** |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 | 
| **롤링** |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 | 
| **추가 배치를 사용한 롤링** |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 | 
| **변경 불가능** |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 | 
| **트래픽 분할** |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예(Application Load Balancer) |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 | 

† 이 표에서 *레거시 Windows Server 환경*은 IIS 8.5보다 이전의 IIS 버전을 사용하는 [Windows Server 플랫폼 구성](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.net)을 기반으로 하는 환경입니다.

**주의**  
일부 정책은 배포 또는 업데이트 중에 모든 인스턴스를 대체합니다. 따라서 누적된 모든 [Amazon EC2 버스트 잔고](https://docs.aws.amazon.com/AWSEC2/latest/DeveloperGuide/burstable-performance-instances.html)가 소실됩니다. 이 동작은 다음과 같은 경우에 발생합니다.  
인스턴스 교체가 활성화된 관리형 플랫폼 업데이트
변경이 불가능한 업데이트
변경 불가능한 업데이트 또는 트래픽 분할이 활성화된 배포

## 배포 정책 선택
<a name="deployments-scenarios"></a>

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

다음 목록에서는 다양한 배포 정책에 대한 요약 정보를 제공하고 관련 고려 사항을 추가합니다.
+ **한 번에 모두(All at once)** - 가장 빠른 배포 방법입니다. 단기간의 서비스 손실이 허용될 수 있고 빠른 배포가 중요한 경우에 적합합니다. 이 방법을 사용하면 Elastic Beanstalk에서 각 인스턴스에 새 애플리케이션 버전을 배포합니다. 그런 다음 웹 프록시 또는 애플리케이션 서버를 다시 시작해야 할 수 있습니다. 결과적으로 짧은 시간 동안 사용자가 애플리케이션을 사용할 수 없거나 가용성이 감소할 수 있습니다.
+ **롤링(Rolling)** - 가동 중지를 방지하고 가용성 감소를 최소화하는 대신 배포 시간이 길어집니다. 완전한 서비스 손실이 허용될 수 없는 경우에 적합합니다. 이 방법을 사용하면 애플리케이션이 한 번에 한 인스턴스 배치로 사용자 환경에 배포됩니다. 배포 전반에 걸쳐 대부분의 대역폭이 유지됩니다.
+ **추가 배치를 사용한 롤링(Rolling with additional batch)** - 가용성 감소를 방지하지만 배포 시간이 *롤링* 방법보다도 오래 걸립니다. 배포 전반에 걸쳐 동일한 대역폭을 유지해야 하는 경우에 적합합니다. 이 방법을 사용하면 Elastic Beanstalk에서 추가 인스턴스 배치를 시작한 다음 롤링 배포를 수행합니다. 추가 배치를 시작하는 데는 시간이 걸리며 배포 전반에 걸쳐 동일한 대역폭이 유지됩니다.
+ **변경 불가능(Immutable)** - 기존 인스턴스를 업데이트하는 대신 새 애플리케이션 버전이 항상 새 인스턴스에 배포되도록 하는 더 느린 배포 방법입니다. 또한 배포가 실패할 경우 빠르고 안전하게 롤백할 수 있다는 추가 이점이 있습니다. 이 방법을 사용하면 Elastic Beanstalk에서 [변경 불가능한 업데이트](environmentmgmt-updates-immutable.md)를 수행하여 애플리케이션을 배포합니다. 변경이 불가능한 업데이트에서 두 번째 Auto Scaling 그룹이 사용자 환경에서 시작되고 새 인스턴스가 상태 확인을 통과할 때까지 새 버전과 기존 버전이 함께 트래픽을 처리합니다.
+ **트래픽 분할(Traffic splitting)** - canary 테스트 배포 방법입니다. 이전 애플리케이션 버전을 통해 나머지 트래픽을 계속 처리하면서 수신 트래픽의 일부를 사용하여 새 애플리케이션 버전의 상태를 테스트하려는 경우에 적합합니다.

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


**배포 방법**  

| **방법** | **배포 실패로 인한 영향** | **배포 시간** | **가동 중지 없음** | **DNS 변경 없음** | **롤백 프로세스** | **코드 배포 위치** | 
| --- | --- | --- | --- | --- | --- | --- | 
| 한 번에 모두 | 다운타임 | ![Deployment time: 1 of 4 (fastest).](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png) |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 | 수동 재배포 | 기존 인스턴스 | 
| 롤링 | 단일 배치가 서비스에서 제외됨. 실패하기 전 성공한 배치가 새 애플리케이션 버전 실행 | ![Deployment time: 2 of 4 (moderate).](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)† |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 | 수동 재배포 | 기존 인스턴스 | 
| 추가 배치를 사용한 롤링 | 첫 번째 배치가 실패할 경우 최소화. 그렇지 않은 경우 롤링과 유사함 | ![Deployment time: 3 of 4 (slower).](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)† |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 | 수동 재배포 | 새 인스턴스 및 기존 인스턴스 | 
| 변경 불가능 | 최소화 | ![Deployment time: 4 of 4 (slowest).](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png) |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 | 새 인스턴스 종료 | 새 인스턴스 | 
| 트래픽 분할 | 일시적으로 영향을 받는 새 버전으로 라우팅되는 클라이언트 트래픽의 비율 | ![Deployment time: 4 of 4 (slowest).](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)†† |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 | 트래픽 재라우팅 및 새 인스턴스 종료 | 새 인스턴스 | 
| 블루/그린 | 최소화 | ![Deployment time: 4 of 4 (slowest).](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png)![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/clock.png) |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예 |  ![](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요 | Swap URL | 새 인스턴스 | 

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

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

## 새 애플리케이션 버전 배포
<a name="deployments-newversion"></a>

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

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

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

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

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

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

1. **배포(Deploy)**를 선택합니다.

## 이전 버전 재배포
<a name="deployments-existingversion"></a>

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

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

1. [Elastic Beanstalk 콘솔](https://console.aws.amazon.com/elasticbeanstalk)을 열고 **리전** 목록에서를 선택합니다 AWS 리전.

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

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

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

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

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

## 애플리케이션을 배포하는 다른 방법
<a name="deployments-other"></a>

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

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

빌드, 테스트 및 배포 프로세스를 자동화하기 위해 Elastic Beanstalk 환경과의 지속적 통합 및 지속적 배포(CI/CD)를 구현할 수 있습니다. 자세한 내용은 [Elastic Beanstalk 환경과의 CI/CD 통합 구현](deployments.cicd.md) 단원을 참조하십시오.