

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

# Elastic Beanstalk 환경의 로드 밸런서
<a name="using-features.managing.elb"></a>

로드 밸런서는 환경의 인스턴스 간에 트래픽을 분산합니다. [로드 밸런싱을 활성화](using-features-managing-env-types.md#using-features.managing.changetype)하면가 환경 전용 [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/) 로드 밸런서를 AWS Elastic Beanstalk 생성합니다. Elastic Beanstalk는 보안 설정을 처리하고 환경이 종료될 때 로드 밸런서를 종료하며 이 로드 밸런서를 완전히 관리합니다.

또는 여러 Elastic Beanstalk 환경에서 로드 밸런서를 공유하도록 선택할 수 있습니다. 공유 로드 밸런서를 사용하면 각 환경에 전용 로드 밸런서를 사용하지 않아도 되므로 운영 비용을 절감할 수 있습니다. 또한 환경에서 사용하는 공유 로드 밸런서에 대해 더 많은 관리 책임을 지게 됩니다.

Elastic Load Balancing에는 다음과 같은 로드 밸런서 유형이 있습니다.
+ [Classic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/) – 이전 세대 로드 밸런서입니다. HTTP, HTTPS 또는 TCP 요청 트래픽을 환경 인스턴스의 다양한 포트로 라우팅합니다.
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/) – 애플리케이션 계층 로드 밸런서입니다. HTTP 또는 HTTPS 요청 트래픽을 요청 경로에 따라 환경 인스턴스의 다양한 포트로 라우팅합니다.
+ [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/) – 네트워크 계층 로드 밸런서입니다. TCP 요청 트래픽을 환경 인스턴스의 다양한 포트로 라우팅합니다. 활성 및 수동 상태 확인을 둘 다 지원합니다.

Elastic Beanstalk에서는 3가지 로드 밸런서 유형을 모두 지원합니다. 다음 표에서는 두 가지 사용 패턴에서 사용할 수 있는 유형을 보여 줍니다.


| 로드 밸런서 유형 | 전용 | 공유 | 
| --- | --- | --- | 
|  Classic Load Balancer  |   ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예  |   ![\[No\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요  | 
|  Application Load Balancer  |   ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예  |   ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예  | 
|  Network Load Balancer  |   ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-yes.png) 예  |   ![\[No\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/icon-no.png) 아니요  | 

**참고**  
**환경 만들기** 콘솔 마법사에서 Classic Load Balancer(CLB) 옵션이 비활성화되었습니다. 기존 환경이 Classic Load Balancer로 구성된 경우 Elastic Beanstalk 콘솔 또는 [EB CLI](using-features.managing.clone.md#using-features.managing.clone.CLI)를 사용하여 [기존 환경을 복제](using-features.managing.clone.md)함으로써 새 환경을 만들 수 있습니다. 또한 EB CLI 또는 [AWS CLI](environments-create-awscli.md)를 사용하여 Classic Load Balancer로 구성된 새 환경을 만들 수도 있습니다. 이러한 명령줄 도구를 사용하면 계정에 이미 CLB가 없더라도 새 환경을 만들 수 있습니다.

기본적으로 Elastic Beanstalk는 Elastic Beanstalk 콘솔 또는 EB CLI로 로드 밸런싱을 활성화하면 환경에 대한 Application Load Balancer를 생성합니다. 포트 80에서 HTTP 트래픽을 수신 대기하고 동일 포트를 통해 이 트래픽을 인스턴스로 전달하도록 로드 밸런서를 구성합니다. 환경 생성 중에만 환경에서 사용하는 로드 밸런서 유형을 선택할 수 있습니다. 이후에 설정을 변경하여 실행 중인 환경의 로드 밸런서 작동을 관리할 수는 있지만 로드 밸런서 유형을 변경할 수는 없습니다.

**참고**  
사용자의 환경은 Application Load Balancer 생성을 위해 둘 이상의 가용 영역에서 서브넷이 있는 VPC에 마련해야 합니다. 모든 새 AWS 계정에는이 요구 사항을 충족하는 기본 VPCs 포함됩니다.

Elastic Beanstalk에서 지원하는 각각의 로드 밸런서 유형과 그 기능, Elastic Beanstalk 환경에서 이를 구성 및 관리하는 방법, Amazon S3로의 [액세스 로그 업로드](environments-cfg-loadbalancer-accesslogs.md)를 위한 로드 밸런서 구성 방법에 대해서는 다음 주제를 참조하세요.

**Topics**
+ [Classic Load Balancer 구성](environments-cfg-clb.md)
+ [Application Load Balancer 구성](environments-cfg-alb.md)
+ [공유 Application Load Balancer 구성](environments-cfg-alb-shared.md)
+ [Network Load Balancer 구성](environments-cfg-nlb.md)
+ [듀얼 스택 Elastic Beanstalk 로드 밸런서 구성](environments-cfg-elbv2-ipv6-dualstack.md)
+ [액세스 로그 구성](environments-cfg-loadbalancer-accesslogs.md)

# Classic Load Balancer 구성
<a name="environments-cfg-clb"></a>

[로드 밸런싱을 활성화](using-features-managing-env-types.md#using-features.managing.changetype)하면 AWS Elastic Beanstalk 환경에 Elastic Load Balancing 로드 밸런서가 설치되어 환경의 인스턴스 간에 트래픽을 분산합니다. Elastic Load Balancing은 몇 가지 로드 밸런서 유형을 지원합니다. 자세한 내용은 [Elastic Load Balancing 사용 설명서](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/)를 참조하세요. Elastic Beanstalk에서는 자동으로 로드 밸런서를 생성하거나, 생성한 공유 로드 밸런서를 지정할 수 있습니다.

이 주제에서는 Elastic Beanstalk에서 생성하고 사용자 환경 전용으로 지정하는 [Classic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/)의 구성에 대해 설명합니다. Elastic Beanstalk에서 지원하는 모든 로드 밸런서 유형 구성에 대한 자세한 내용은 [Elastic Beanstalk 환경의 로드 밸런서](using-features.managing.elb.md) 단원을 참조하세요.

**참고**  
환경 생성 중에만 환경에서 사용하는 로드 밸런서 유형을 선택할 수 있습니다. 이후에 설정을 변경하여 실행 중인 환경의 로드 밸런서 작동을 관리할 수는 있지만 로드 밸런서 유형을 변경할 수는 없습니다.

## 소개
<a name="environments-cfg-clb-intro"></a>

[Classic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/)는 Elastic Load Balancing 이전 세대 로드 밸런서입니다. 환경 인스턴스의 다양한 포트로의 HTTP, HTTPS 또는 TCP 요청 트래픽 라우팅을 지원합니다.

사용자의 환경에서 Classic Load Balancer를 사용할 때는 Elastic Beanstalk가 기본적으로 이를 포트 80에서 HTTP 트래픽 [수신](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html) 후 동일한 포트에서 인스턴스로 전달하도록 구성합니다. 포트 80 기본 리스너는 삭제할 수 없지만 비활성화하면 트래픽을 차단하여 동일한 기능을 수행할 수 있습니다. 다른 리스너를 추가하거나 삭제할 수 있습니다. 보안 연결을 지원하기 위하여 포트 443에 리스너와 TLS 인증서를 갖추어 로드 밸런서를 구성할 수 있습니다.

이 로드 밸런서는 [상태 확인](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html)을 통해 애플리케이션을 실행하는 Amazon EC2 인스턴스가 정상인지 여부를 판단합니다. 상태 확인에서는 지정된 URL에 일정한 간격으로 요청이 보내집니다. URL에서 오류 메시지를 반환하거나 정해진 시간 내에 반환에 실패할 경우에는 상태 확인에 실패합니다.

단일 서버의 동일한 클라이언트에서 여러 요청을 처리하여 애플리케이션이 더 나은 성능을 발휘하는 경우, [고정 세션](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html)을 사용하도록 로드 밸런서를 구성할 수 있습니다. 로드 밸런서는 고정 세션을 사용하여 요청을 처리한 Amazon EC2 인스턴스를 식별하는 쿠키를 HTTP 응답에 추가합니다. 동일한 클라이언트에서 후속 요청을 받게 되면, 로드 밸런서는 쿠키를 사용하여 동일한 인스턴스로 요청을 전송합니다.

[교차 영역 로드 밸런싱](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html)을 사용하면 Classic Load Balancer에 대한 각각의 로드 밸런서 노드가 활성화된 모든 가용 영역에 있는 등록된 인스턴스 간에 요청을 균등하게 분산합니다. 교차 영역 로드 밸런싱이 비활성화된 경우에는 각각의 로드 밸런서 노드가 해당 가용 영역에만 있는 등록된 인스턴스 간에 요청을 균등하게 분산합니다.

비정상적인 상태나 축소된 환경으로 인해 로드 밸런서에서 인스턴스가 제거되면 [Connection Draining](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html)은 인스턴스와 로드 밸런서 간의 연결을 종료하기 전에 요청을 완료할 시간을 인스턴스에 부여합니다. 요청을 보내거나 Connection Draining을 완전히 비활성화하여 인스턴스에 부여한 시간을 변경할 수 있습니다.

**참고**  
Elastic Beanstalk 콘솔이나 EB CLI로 환경을 생성할 때 기본적으로 Connection Draining은 활성화됩니다. 다른 클라이언트는 [구성 옵션](#environments-cfg-clb-namespace)으로 활성화할 수 있습니다.

고급 로드 밸런서 설정을 사용하여 임의의 포트에 리스너를 구성하고, 추가 고정 세션 설정을 수정하고, EC2 인스턴스에 안전하게 연결하도록 로드 밸런서를 구성할 수 있습니다. 고급 로드 밸런서 설정은 Elastic Beanstalk API를 사용하여 환경에 바로 또는 소스 코드에 구성 파일로 설정할 수 있는 [구성 옵션](#environments-cfg-clb-namespace)을 통해 사용할 수 있습니다. 이러한 설정 중 대부분은 Elastic Beanstalk 콘솔에서도 제공됩니다. 또한 Amazon S3로 [액세스 로그를 업로드](environments-cfg-loadbalancer-accesslogs.md)하도록 로드 밸런서를 구성할 수도 있습니다.

## Elastic Beanstalk 콘솔을 사용하여 Classic Load Balancer 구성
<a name="environments-cfg-clb-console"></a>

환경 생성 중에 또는 나중에 환경을 실행 중일 때 Elastic Beanstalk 콘솔을 사용하여 Classic Load Balancer의 포트, HTTPS 인증서 및 기타 설정을 구성할 수 있습니다.

**참고**  
**환경 만들기** 콘솔 마법사에서 Classic Load Balancer(CLB) 옵션이 비활성화되었습니다. 기존 환경이 Classic Load Balancer로 구성된 경우 Elastic Beanstalk 콘솔 또는 [EB CLI](using-features.managing.clone.md#using-features.managing.clone.CLI)를 사용하여 [기존 환경을 복제](using-features.managing.clone.md)함으로써 새 환경을 만들 수 있습니다. 또한 EB CLI 또는 [AWS CLI](environments-create-awscli.md)를 사용하여 Classic Load Balancer로 구성된 새 환경을 만들 수도 있습니다. 이러한 명령줄 도구를 사용하면 계정에 이미 CLB가 없더라도 새 환경을 만들 수 있습니다.

**Elastic Beanstalk 콘솔에서 실행 중인 환경의 Classic Load Balancer를 구성하려면**

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

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

1. 탐색 창에서 **구성**을 선택합니다.

1. [**로드 밸런서**] 구성 범주에서 [**편집**]을 선택합니다.
**참고**  
[**로드 밸런서**] 구성 범주에 [**편집**] 버튼이 없으면 환경에 로드 밸런서가 없는 것입니다. 설정 방법을 알아보려면 [환경 유형 변경](using-features-managing-env-types.md#using-features.managing.changetype)을 참조하십시오.

1. 환경에 필요한 Classic Load Balancer 구성 부분을 변경합니다.

1. 변경 사항을 저장하려면 페이지 하단에서 **적용**을 선택합니다.

**Topics**
+ [리스너](#using-features.managing.elb.listeners)
+ [세션](#using-features.managing.elb.sessions)
+ [교차 영역 로드 밸런싱](#using-features.managing.elb.cross-zone)
+ [연결 드레이닝](#using-features.managing.elb.draining)
+ [상태 확인](#using-features.managing.elb.healthchecks)

### 리스너
<a name="using-features.managing.elb.listeners"></a>

이 목록을 사용하여 로드 밸런서에 대해 리스너를 지정합니다. 각 리스너는 지정된 프로토콜을 사용하여 지정된 포트에서 수신되는 클라이언트 트래픽을 인스턴스로 라우팅합니다. 처음에 이 목록에는 기본 리스너가 표시되는데, 기본 리스너는 포트 80의 수신 HTTP 트래픽을 포트 80에서 HTTP 트래픽을 수신 대기 중인 환경의 인스턴스 서버로 라우팅합니다.

**참고**  
포트 80 기본 리스너는 삭제할 수 없지만 비활성화하면 트래픽을 차단하여 동일한 기능을 수행할 수 있습니다.

![\[Classic Load Balancer 구성 - 리스너 편집\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-clb-listeners.png)


**기존 리스너를 구성하려면**

1. 테이블 항목 옆에 있는 확인란을 선택하고 **작업**을 선택한 다음, 원하는 작업을 선택합니다.

1. **편집**을 선택한 경우 **Classic Load Balancer 리스너** 대화 상자를 사용하여 설정을 편집하고 나서 **저장**을 선택합니다.

예를 들면 기본 리스너를 편집하고 로드 밸런서를 통해 요청을 원본 그대로 전달하도록 하려는 경우 **프로토콜**을 **HTTP**에서 **TCP**로 변경할 수 있습니다. 이렇게 하면 로드 밸런서는 헤더(`X-Forwarded-For` 포함)를 재작성하지 않아도 됩니다. 고정 세션에서는 이 기술을 사용할 수 없습니다.

![\[Classic Load Balancer 구성 - 기본 리스너의 프로토콜을 TCP로 변경\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-clb-listeners-tcp.png)


**리스너를 추가하려면**

1. **리스너 추가**를 선택합니다.

1. **Classic Load Balancer 리스너** 대화 상자에서 원하는 설정을 구성한 다음 **추가**를 선택합니다.

보안 리스너 추가는 일반 사용 사례입니다. 다음 이미지의 예제는 포트 443의 HTTPS 트래픽 리스너를 추가합니다. 이 리스너는 수신 트래픽을 포트 443에서 HTTPS 트래픽을 수신 대기 중인 환경 인스턴스 서버로 라우팅합니다.

HTTPS 리스너를 구성하기 전에 유효한 SSL 인증서가 있는지 확인해야 합니다. 다음 중 하나를 수행하세요.
+ 리전에서 AWS Certificate Manager (ACM)을 사용할 수 있는 경우 ACM을 사용하여 인증서를 생성하거나 가져옵니다. [AWS](https://docs.aws.amazon.com/general/latest/gr/acm.html) ACM 인증서 요청에 대한 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [인증서 요청](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html)을 참조하세요. 서드 파티 인증서를 ACM으로 가져오는 방법에 대한 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [인증서 가져오기](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)를 참조하세요.
+ 해당 [AWS 리전에서 ACM을 사용할](https://docs.aws.amazon.com/general/latest/gr/acm.html) 수 없는 경우 기존 인증서와 키를 IAM에 업로드합니다. 인증서를 만들어서 IAM에 업로드하는 방법에 대한 자세한 내용은 *IAM 사용 설명서*의 [서버 인증서 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingServerCerts.html)을 참조하세요.

Elastic Beanstalk에서의 HTTPS 구성과 인증서 작업에 대한 자세한 내용은 [Elastic Beanstalk 환경에 사용할 HTTPS 구성](configuring-https.md) 단원을 참조하세요.

**SSL 인증서**에서 SSL 인증서의 ARN을 선택합니다. 예를 들어 `arn:aws:iam::123456789012:server-certificate/abc/certs/build` 또는 `arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678`입니다.

![\[Classic Load Balancer 구성 - 보안 리스너 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-clb-listeners-https.png)


Elastic Beanstalk에서의 HTTPS 구성과 인증서 작업에 대한 자세한 내용은 [Elastic Beanstalk 환경에 사용할 HTTPS 구성](configuring-https.md) 단원을 참조하세요.

### 세션
<a name="using-features.managing.elb.sessions"></a>

**세션 고정성 활성화됨** 상자를 선택하거나 지워서 고정 세션을 활성화 또는 비활성화합니다. **쿠키 지속 시간**을 사용하여 고정 세션의 지속 시간을 최대 **1000000**초까지로 구성합니다. [**로드 밸런서 포트**] 목록에서 기본 정책(`AWSEB-ELB-StickinessPolicy`)이 적용되는 리스너 포트를 선택합니다.

![\[세션 고정성 및 지속 시간 관련 Classic Load Balancer 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-elb-sessions.png)


### 교차 영역 로드 밸런싱
<a name="using-features.managing.elb.cross-zone"></a>

**여러 가용 영역 전반에서 로드 밸런싱 활성화됨** 상자를 선택하거나 선택 해제해 교차 영역 로드 밸런싱을 활성화 또는 비활성화합니다.

![\[교차 영역 로드 밸런싱 관련 Classic Load Balancer 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-elb-cross-zone.png)


### 연결 드레이닝
<a name="using-features.managing.elb.draining"></a>

**Connection Draining 활성화됨** 상자를 선택하거나 선택 해제해 Connection Draining을 활성화 또는 비활성화합니다. **드레이닝 제한 시간**을 최대 **3600**초까지로 설정합니다.

![\[Connection Draining 및 드레이닝 제한 시간 관련 Classic Load Balancer 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-elb-draining.png)


### 상태 확인
<a name="using-features.managing.elb.healthchecks"></a>

다음 설정을 사용하여 로드 밸런서 상태 확인을 구성합니다.
+ **상태 확인 경로(Health check path)** – 로드 밸런서에서 상태 확인 요청을 전송할 경로입니다. 이 경로를 설정하지 않으면 로드 밸런서는 상태를 확인하기 위해 포트 80에서 TCP 연결을 시도합니다.
+ **제한 시간(Timeout)** – 상태 확인 응답을 기다릴 시간(초)입니다.
+ **간격(Interval)** – 개별 인스턴스의 상태 확인 간 간격(초 단위)입니다. 이 간격은 제한 시간보다 커야 합니다.
+ **비정상 임계값(Unhealthy threshold)**, **정상 임계값(Healthy threshold)** – Elastic Load Balancing이 인스턴스의 상태 확인을 변경하기 전에 각각 실패하거나 성공해야 하는 상태 확인 횟수입니다.

![\[상태 확인을 위한 Classic Load Balancer 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-elb-healthcheck.png)


**참고**  
Elastic Load Balancing 상태 확인은 환경 Auto Scaling 그룹의 상태 확인 동작에는 영향을 주지 않습니다. Elastic Load Balancing 상태 확인에 실패한 인스턴스는 자동 대체하도록 Amazon EC2 Auto Scaling을 수동으로 구성하지 않는 한 Amazon EC2 Auto Scaling으로 자동 대체되지 않습니다. 세부 정보는 [Elastic Beanstalk 환경에 대한 Auto Scaling 상태 확인 설정](environmentconfig-autoscaling-healthchecktype.md) 섹션을 참조하세요.

전반적인 환경 상태에 영향을 미치는 정도와 상태 확인에 대한 자세한 내용은 [기본 상태 보고](using-features.healthstatus.md) 단원을 참조하세요.

## EB CLI를 사용하여 Classic Load Balancer 구성
<a name="environments-cfg-clb-ebcli"></a>

[**eb create**](eb3-create.md)를 실행하면 EB CLI는 로드 밸런서 유형을 선택하라는 메시지를 표시합니다.

```
$ eb create
Enter Environment Name
(default is my-app): test-env
Enter DNS CNAME prefix
(default is my-app): test-env-DLW24ED23SF

Select a load balancer type
1) classic
2) application
3) network
(default is 1):
```

**Enter(입력)**를 눌러 `classic`을 선택합니다.

또한 `--elb-type` 옵션을 사용하여 로드 밸런서 유형을 지정할 수도 있습니다.

```
$ eb create test-env --elb-type classic
```

## Classic Load Balancer 구성 네임스페이스
<a name="environments-cfg-clb-namespace"></a>

다음 네임스페이스에서 Classic Load Balancer와 관련된 설정을 찾을 수 있습니다.
+ [`aws:elb:healthcheck`](command-options-general.md#command-options-general-elbhealthcheck) – 로드 밸런서 상태 확인의 임계값, 확인 간격 및 제한 시간을 구성합니다.
+ [`aws:elasticbeanstalk:application`](command-options-general.md#command-options-general-elasticbeanstalkapplication) – 상태 확인 URL을 구성합니다.
+ [`aws:elb:loadbalancer`](command-options-general.md#command-options-general-elbloadbalancer) – 교차 영역 로드 밸런싱을 활성화합니다. 로드 밸런서에 보안 그룹을 할당하고 Elastic Beanstalk가 생성하는 기본 보안 그룹을 재정의합니다. 이 네임스페이스에는 `aws:elb:listener` 네임스페이스의 옵션에서 바꾼 표준 및 보안 리스너를 구성하기 위한 지원되지 않는 옵션이 포함되어 있습니다.
+ [`aws:elb:listener`](command-options-general.md#command-options-general-elblistener) – 포트 80의 기본 리스너, 포트 443의 보안 리스너, 다른 모든 포트의 프로토콜에 대한 추가 리스너를 구성합니다. 네임스페이스로 `aws:elb:listener`를 지정한 경우, 포트 80에서 기본 리스너에 설정이 적용됩니다. 포트를 지정한 경우(예: `aws:elb:listener:443`), 리스너가 해당 포트에 구성됩니다.
+ [`aws:elb:policies`](command-options-general.md#command-options-general-elbpolicies) – 로드 밸런서에 대한 추가 설정을 구성합니다. 이 네임스페이스의 옵션을 사용하여 임의의 포트에 리스너를 구성하고, 추가 고정 세션 설정을 수정하고, Amazon EC2 인스턴스에 안전하게 연결하도록 로드 밸런서를 구성합니다.

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

**Example .ebextensions/loadbalancer-terminatehttps.config**  
다음 예제 구성 파일은 포트 443에 HTTPS를 만들고, 로드 밸런서가 보안 연결을 종료할 때 사용하는 인증서를 할당하고, 포트 80에 기본 리스너를 비활성화합니다. 로드 밸런서는 HTTP:80에서 환경의 EC2 인스턴스로 암호화된 요청을 전달합니다.  

```
option_settings:
  aws:elb:listener:443:
    ListenerProtocol: HTTPS
    SSLCertificateId: arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678
    InstancePort: 80
    InstanceProtocol: HTTP
  aws:elb:listener:
    ListenerEnabled: false
```

# Application Load Balancer 구성
<a name="environments-cfg-alb"></a>

[로드 밸런싱을 활성화](using-features-managing-env-types.md#using-features.managing.changetype)하면 AWS Elastic Beanstalk 환경에 Elastic Load Balancing 로드 밸런서가 설치되어 환경의 인스턴스 간에 트래픽을 분산합니다. Elastic Load Balancing은 몇 가지 로드 밸런서 유형을 지원합니다. 자세한 내용은 [Elastic Load Balancing 사용 설명서](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/)를 참조하세요. Elastic Beanstalk에서는 자동으로 로드 밸런서를 생성하거나, 생성한 공유 로드 밸런서를 지정할 수 있습니다.

이 주제에서는 Elastic Beanstalk에서 생성하고 사용자 환경 전용으로 지정하는 [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/)의 구성에 대해 설명합니다. 또한 [공유 Application Load Balancer 구성](environments-cfg-alb-shared.md) 섹션도 참조하세요. Elastic Beanstalk에서 지원하는 모든 로드 밸런서 유형 구성에 대한 자세한 내용은 [Elastic Beanstalk 환경의 로드 밸런서](using-features.managing.elb.md) 단원을 참조하세요.

**참고**  
환경 생성 중에만 환경에서 사용하는 로드 밸런서 유형을 선택할 수 있습니다. 설정을 변경하여 실행 중인 환경의 로드 밸런서 작동을 관리할 수는 있지만 로드 밸런서 유형을 변경할 수는 없습니다. 전용 로드 밸런서에서 공유 로드 밸런서로 전환하거나 그 반대로 전환할 수 없습니다.

## 소개
<a name="environments-cfg-alb-intro"></a>

Application Load Balancer는 여러 경로에 대한 요청을 서로 다른 대상으로 보낼 수 있도록 애플리케이션 네트워크 프로토콜 계층에서 트래픽을 검사하여 요청 경로를 식별합니다.

환경에서 Application Load Balancer를 사용하는 경우 Elastic Beanstalk는 기본적으로 Classic Load Balancer와 동일한 기능을 수행하도록 구성합니다. 기본 리스너는 포트 80에서 HTTP 요청을 수락하고 이를 환경의 인스턴스로 분산합니다. 포트 443에서 HTTPS 트래픽을 해독하는 인증서가 있는 보안 리스너를 추가하고, 상태 확인 동작을 구성하고, 로드 밸런서에서 Amazon Simple Storage Service(Amazon S3) 버킷으로 액세스 로그를 푸시할 수 있습니다.

**참고**  
Classic Load Balancer 또는 Network Load Balancer와 달리 Application Load Balancer는 전송 계층(계층 4) TCP 또는 SSL/TLS 리스너를 가질 수 없습니다. 오직 HTTP 및 HTTPS 리스너만 지원합니다. 또한, 백엔드 인증을 사용하여 로드 밸런서와 백엔드 인스턴스 간에 HTTPS 연결을 인증할 수 없습니다.

Elastic Beanstalk 환경에서 Application Load Balancer를 사용하여 특정 경로의 트래픽을 웹 서버 인스턴스의 다른 포트로 보낼 수 있습니다. Classic Load Balancer를 통해 리스너가 수신하는 모든 트래픽이 백엔드 인스턴스의 단일 포트로 라우팅됩니다. Application Load Balancer를 통해 리스너에 대한 여러 *규칙*을 구성하여 특정 경로에 대한 요청을 여러 백엔드 프로세스로 라우팅할 수 있습니다. 프로세스가 수신 대기하는 포트로 각 프로세스를 구성합니다.

예를 들어, 기본 애플리케이션과 별도로 로그인 프로세스를 실행할 수 있습니다. 환경의 인스턴스에서 실행하는 기본 애플리케이션이 대부분의 요청을 수락하고 포트 80에서 수신 대기하지만, 로그인 프로세스는 포트 5000에서 수신 대기하고 `/login` 경로에 대한 요청을 수락합니다. 클라이언트에서 수신되는 모든 요청은 포트 80으로 들어옵니다. Application Load Balancer를 사용하는 경우 요청의 경로에 따라 개별 프로세스 두 개로 트래픽을 라우팅하는 두 규칙을 통해 포트 80으로 수신되는 트래픽에 대해 단일 리스너를 구성할 수 있습니다. 포트 5000에서 수신 대기 중인 로그인 프로세스에 `/login`에 대한 트래픽을 라우팅하는 사용자 지정 규칙을 추가합니다. 기본 규칙은 그 밖의 모든 트래픽을 포트 80에서 수신 대기하는 기본 애플리케이션 프로세스로 라우팅합니다.

Application Load Balancer 규칙은 요청을 *대상 그룹*에 매핑합니다. Elastic Beanstalk에서 대상 그룹은 *프로세스*로 표현됩니다. 프로토콜, 포트 및 상태 확인 설정을 사용하여 프로세스를 구성할 수 있습니다. 프로세스는 환경의 인스턴스에서 실행되는 프로세스를 나타냅니다. 기본 프로세스는 애플리케이션 앞에서 실행되는 역방향 프록시(nginx 또는 Apache)의 포트 80에 있는 리스너입니다.

**참고**  
Elastic Beanstalk 외부에서는 대상 그룹이 인스턴스 그룹으로 매핑됩니다. 리스너는 규칙과 대상 그룹을 사용하여 트래픽을 경로에 따라 다른 인스턴스에 라우팅할 수 있습니다. Elastic Beanstalk 내에서는 환경의 모든 인스턴스가 동일하므로 서로 다른 포트에서 수신 대기하는 프로세스 간에 구별됩니다.

Classic Load Balancer는 전체 환경에 대해 하나의 상태 확인 경로를 사용합니다. Application Load Balancer를 사용할 경우 로드 밸런서 및 Elastic Beanstalk 확장 상태 모니터링을 통해 모니터링되는 별도의 상태 확인 경로가 프로세스마다 있습니다.

Application Load Balancer를 사용하려면 환경이 기본 또는 사용자 지정 VPC에 있어야 하며, 표준 권한 세트를 보유한 서비스 역할이 있어야 합니다. 서비스 역할이 오래된 경우 `elasticloadbalancing:DescribeTargetHealth` 및 `elasticloadbalancing:DescribeLoadBalancers`를 포함하도록 해당 역할의 [권한을 업데이트](iam-instanceprofile.md#iam-instanceprofile-addperms)해야 할 수 있습니다. Application Load Balancer에 대한 자세한 내용은 [Application Load Balancer란 무엇인가요?](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/)를 참조하세요.

**참고**  
Application Load Balancer 상태 확인은 Elastic Beanstalk 상태 확인 경로를 사용하지 않습니다. 대신에 각 프로세스마다 개별적으로 구성된 특정 경로가 사용됩니다.

## Elastic Beanstalk 콘솔을 사용하여 Application Load Balancer 구성
<a name="environments-cfg-alb-console"></a>

환경 생성 중에 또는 나중에 환경을 실행 중일 때 Elastic Beanstalk 콘솔을 사용하여 Application Load Balancer의 리스너, 프로세스 및 규칙을 구성할 수 있습니다.

**환경 생성 중에 Elastic Beanstalk 콘솔에서 Application Load Balancer를 구성하려면**

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

1. 탐색 창에서 **환경**을 선택합니다.

1. [새 환경 생성](environments-create-wizard.md)을 선택하여 환경 생성을 시작합니다.

1. 마법사의 기본 페이지에서 **환경 생성**을 선택하기 전에 **추가 옵션 구성**을 선택합니다.

1. **고가용성** 구성 프리셋을 선택합니다.

   또는 **용량** 구성 범주에서 **로드 밸런싱 수행** 환경 유형을 구성합니다. 자세한 내용은 [Capacity](environments-create-wizard.md#environments-create-wizard-capacity)을 참조하세요.

1. [**로드 밸런서**] 구성 범주에서 [**편집**]을 선택합니다.

1. **Application Load Balancer** 및 **전용(Dedicated)** 옵션을 아직 선택하지 않은 경우 선택합니다.  
![\[Elastic Load Balancing 구성 페이지 - 로드 밸런서 유형 선택\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-type-chooser.png)

1. 환경에 필요한 Application Load Balancer 구성 부분을 모두 변경합니다.

1. **저장**을 선택하고 난 후 환경에 필요한 다른 구성 부분을 변경합니다.

1. **환경 생성**을 선택합니다.

**Elastic Beanstalk 콘솔에서 실행 중인 환경의 Application Load Balancer를 구성하려면**

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

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

1. 탐색 창에서 **구성**을 선택합니다.

1. [**로드 밸런서**] 구성 범주에서 [**편집**]을 선택합니다.
**참고**  
[**로드 밸런서**] 구성 범주에 [**편집**] 버튼이 없으면 환경에 로드 밸런서가 없는 것입니다. 설정 방법을 알아보려면 [환경 유형 변경](using-features-managing-env-types.md#using-features.managing.changetype)을 참조하십시오.

1. 환경에 필요한 Application Load Balancer 구성 부분을 변경합니다.

1. 변경 사항을 저장하려면 페이지 하단에서 **적용**을 선택합니다.

**Topics**
+ [리스너](#environments-cfg-alb-console-listeners)
+ [프로세스](#environments-cfg-alb-console-processes)
+ [규칙](#environments-cfg-alb-console-rules)
+ [액세스 로그 캡처](#environments-cfg-alb-console-logs)

### 리스너
<a name="environments-cfg-alb-console-listeners"></a>

이 목록을 사용하여 로드 밸런서에 대해 리스너를 지정합니다. 각 리스너는 지정된 프로토콜을 사용하여 지정된 포트에서 수신되는 클라이언트 트래픽을 인스턴스의 하나 이상의 프로세스로 라우팅합니다. 처음에 이 목록에는 기본 리스너가 표시되는데, 이 리스너는 포트 80을 통해 전송되는 수신 HTTP 트래픽을 **기본** 프로세스로 라우팅합니다.

![\[Application Load Balancer 구성 - 리스너 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-listeners.png)


**기존 리스너를 구성하려면**

1. 테이블 항목 옆에 있는 확인란을 선택한 다음 **작업**, **편집**을 선택합니다.

1. **Application Load Balancer 리스너** 대화 상자를 사용하여 설정을 편집하고 나서 **저장**을 선택합니다.

**리스너를 추가하려면**

1. **리스너 추가**를 선택합니다.

1. **Application Load Balancer 리스너(Application Load Balancer listener)** 대화 상자에서 원하는 설정을 구성한 다음 **추가(Add)**를 선택합니다.

**Application Load Balancer 리스너** 대화 상자 설정을 사용하여 리스너가 트래픽을 수신 대기하는 포트 및 프로토콜과 트래픽을 라우팅할 프로세스를 선택합니다. HTTPS 프로토콜을 선택하는 경우 SSL 설정을 구성합니다.

![\[Application Load Balancer 리스너 대화 상자\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-listener-dialog.png)


HTTPS 리스너를 구성하기 전에 유효한 SSL 인증서가 있는지 확인해야 합니다. 다음 중 하나를 수행하세요.
+ 리전에서 AWS Certificate Manager (ACM)을 사용할 수 있는 경우 ACM을 사용하여 인증서를 생성하거나 가져옵니다. [AWS](https://docs.aws.amazon.com/general/latest/gr/acm.html) ACM 인증서 요청에 대한 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [인증서 요청](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html)을 참조하세요. 서드 파티 인증서를 ACM으로 가져오는 방법에 대한 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [인증서 가져오기](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)를 참조하세요.
+ 해당 [AWS 리전에서 ACM을 사용할](https://docs.aws.amazon.com/general/latest/gr/acm.html) 수 없는 경우 기존 인증서와 키를 IAM에 업로드합니다. 인증서를 만들어서 IAM에 업로드하는 방법에 대한 자세한 내용은 *IAM 사용 설명서*의 [서버 인증서 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingServerCerts.html)을 참조하세요.

Elastic Beanstalk에서의 HTTPS 구성과 인증서 작업에 대한 자세한 내용은 [Elastic Beanstalk 환경에 사용할 HTTPS 구성](configuring-https.md) 단원을 참조하세요.

### 프로세스
<a name="environments-cfg-alb-console-processes"></a>

이 목록을 사용하여 로드 밸런서에 대해 프로세스를 지정합니다. 프로세스는 리스너가 트래픽을 라우팅하기 위한 대상입니다. 각 리스너는 지정된 프로토콜을 사용하여 지정된 포트에서 수신되는 클라이언트 트래픽을 인스턴스의 하나 이상의 프로세스로 라우팅합니다. 처음에 목록에는 기본 프로세스가 표시되는데, 이 프로세스는 포트 80을 통해 수신 HTTP 트래픽을 수신 대기합니다.

![\[Application Load Balancer 구성 - 프로세스 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-processes.png)


기존 프로세스 설정을 편집하거나 새 프로세스를 추가할 수 있습니다. 목록에 있는 프로세스 편집 또는 목록에 프로세스 추가를 시작하려면 [리스너 목록](#environments-cfg-alb-console-listeners)에 대해 나열된 동일한 단계를 사용합니다. **환경 프로세스** 대화 상자가 열립니다.

**Topics**
+ [정의](#environments-cfg-alb-console-process-definition)
+ [상태 확인](#environments-cfg-alb-console-process-healthchecks)
+ [세션](#environments-cfg-alb-console-process-sessions)

#### 정의
<a name="environments-cfg-alb-console-process-definition"></a>

**이름**과 요청을 수신 대기할 **포트** 및**프로토콜** 설정을 사용하여 프로세스를 정의합니다.

![\[이름, 포트 및 프로토콜에 대한 Application Load Balancer 프로세스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-definition.png)


#### 상태 확인
<a name="environments-cfg-alb-console-process-healthchecks"></a>

다음 설정을 사용하여 프로세스 상태 확인을 구성합니다.
+ **HTTP 코드(HTTP code)** – 정상 프로세스를 지정하는 HTTP 상태 코드입니다.
+ **경로(Path)** – 프로세스에 대한 상태 확인 요청 경로입니다.
+ **제한 시간(Timeout)** – 상태 확인 응답을 기다릴 시간(초)입니다.
+ **간격(Interval)** – 개별 인스턴스의 상태 확인 간 간격(초 단위)입니다. 이 간격은 제한 시간보다 커야 합니다.
+ **비정상 임계값(Unhealthy threshold)**, **정상 임계값(Healthy threshold)** – Elastic Load Balancing이 인스턴스의 상태 확인을 변경하기 전에 각각 실패하거나 성공해야 하는 상태 확인 횟수입니다.
+ **등록 취소 지연(Deregistration delay)** – 인스턴스 등록을 취소하기 전에 활성 요청이 완료될 때까지 기다려야 하는 시간(초)입니다.

![\[상태 확인에 대한 Application Load Balancer 프로세스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-healthcheck.png)


**참고**  
Elastic Load Balancing 상태 확인은 환경 Auto Scaling 그룹의 상태 확인 동작에는 영향을 주지 않습니다. Elastic Load Balancing 상태 확인에 실패한 인스턴스는 자동 대체하도록 Amazon EC2 Auto Scaling을 수동으로 구성하지 않는 한 Amazon EC2 Auto Scaling으로 자동 대체되지 않습니다. 세부 정보는 [Elastic Beanstalk 환경에 대한 Auto Scaling 상태 확인 설정](environmentconfig-autoscaling-healthchecktype.md) 섹션을 참조하세요.

전반적인 환경 상태에 영향을 미치는 정도와 상태 확인에 대한 자세한 내용은 [기본 상태 보고](using-features.healthstatus.md) 단원을 참조하세요.

#### 세션
<a name="environments-cfg-alb-console-process-sessions"></a>

**고정 정책 활성화됨** 상자를 선택하거나 지워서 고정 세션을 활성화 또는 비활성화합니다. **쿠키 지속 시간**을 사용하여 고정 세션의 지속 시간을 최대 **604800**초까지로 구성합니다.

![\[세션 고정성에 대한 Application Load Balancer 프로세스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-sessions.png)


### 규칙
<a name="environments-cfg-alb-console-rules"></a>

이 목록을 사용하여 로드 밸런서에 대한 사용자 지정 리스너 규칙을 지정합니다. 규칙은 리스너가 특정 경로 패턴에서 수신하는 요청을 대상 프로세스로 매핑합니다. 각 리스너에는 다양한 경로의 요청을 인스턴스의 서로 다른 프로세스로 라우팅하는 여러 규칙이 있을 수 있습니다.

규칙에는 수신 중인 요청에 적용되는 우선 순위를 결정하는 숫자 우선 순위가 지정되어 있습니다. 추가하는 각각의 새 리스너마다 Elastic Beanstalk는 모든 리스너의 트래픽을 기본 프로세스로 라우팅하는 기본 규칙을 추가합니다. 기본 규칙의 우선 순위는 최하위입니다. 이 순위는 동일 리스너에 대해 수신 요청과 일치하는 다른 규칙이 없는 경우에 적용됩니다. 먼저 사용자 지정 규칙을 추가하지 않은 경우 목록이 비어 있습니다. 모든 리스너의 기본 규칙은 표시되지 않습니다.

![\[Application Load Balancer 구성 - 규칙 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-rules.png)


기존 규칙의 설정을 편집하거나 새 규칙을 추가할 수 있습니다. 목록에 있는 규칙 편집 또는 목록에 프로세스 추가를 시작하려면 [리스너 목록](#environments-cfg-alb-console-listeners)에 대해 나열된 동일한 단계를 사용합니다. **리스너 규칙** 대화 상자가 열리고 다음 설정이 표시됩니다.
+ **이름(Name)** – 규칙의 이름입니다.
+ **리스너 포트(Listener port)** – 규칙이 적용되는 리스너의 포트입니다.
+ **우선 순위(Priority)** – 규칙의 우선 순위입니다. 우선 순위 숫자가 작을수록 우선 적용됩니다. 리스너 규칙의 우선 순위는 고유해야 합니다.
+ **일치 조건(Match conditions)** – 규칙이 적용되는 요청 URL 조건의 목록입니다. 조건에는 두 가지 유형, 즉 **HostHeader**(URL의 도메인 부분)와 **PathPattern**(URL의 경로 부분)이 있습니다. 최대 5개의 조건을 추가할 수 있습니다. 각 조건 값은 최대 128자이며 와일드카드 문자를 포함할 수 있습니다.
+ **프로세스(Process)** – 로드 밸런서가 규칙과 일치하는 요청을 라우팅할 프로세스입니다.

기존 규칙을 편집하는 경우 **이름** 및 **리스너 포트**는 변경할 수 없습니다.

![\[Application Load Balancer 구성 - 규칙 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-rule-dialog.png)


### 액세스 로그 캡처
<a name="environments-cfg-alb-console-logs"></a>

이 설정을 사용하여 Elastic Load Balancing을 구성하여 Application Load Balancer에 전송된 요청에 대한 상세 정보와 함께 로그를 캡처할 수 있습니다. 액세스 로그 캡처는 기본적으로 비활성화되어 있습니다. **로그 저장(Store logs)**이 활성화되면 Elastic Load Balancing은 사용자가 구성한 **S3 버킷**에 로그를 저장합니다. **접두사(Prefix)** 설정은 버킷에서 로그를 위한 최상위 폴더를 지정합니다. Elastic Load Balancing은 해당 접두사 아래의 `AWSLogs`라는 폴더에 로그를 저장합니다. 접두사를 지정하지 않으면 Elastic Load Balancing이 버킷의 루트 수준 폴더에 로그를 저장합니다.

**참고**  
액세스 로그 캡처를 위해 구성한 Amazon S3 버킷이 Elastic Beanstalk가 계정에 대해 생성한 버킷이 아닌 경우 AWS Identity and Access Management (IAM) 사용자에게 적절한 권한이 있는 사용자 정책을 추가해야 합니다. Elastic Beanstalk이 제공하는 [관리형 사용자 정책](AWSHowTo.iam.managed-policies.md)은 Elastic Beanstalk 관리 리소스에 대한 권한만 다룹니다.

권한 및 기타 요구 사항을 비롯한 액세스 로그에 대한 자세한 내용은 [Application Load Balancer를 위한 액세스 로그](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html)를 참조하세요.

![\[Application Load Balancer 구성 - 액세스 로그\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-logs.png)


## 예제: 보안 리스너 하나와 프로세스 2개를 사용하는 Application Load Balancer
<a name="environments-cfg-alb-console-example"></a>

이 예제에서는 애플리케이션에 관리 요청을 처리하기 위한 별도의 프로세스와 엔드 투 엔드 트래픽 암호가 필요합니다.

이러한 요구 사항을 충족하도록 환경의 Application Load Balancer를 구성하려는 경우 기본 리스너를 제거하고 HTTPS 리스너를 추가하며, 기본 프로세스가 HTTPS의 포트 443에서 수신 대기하도록 지정하고, 다른 경로에 관리 트래픽용 프로세스 및 리스너 규칙을 추가할 수 있습니다.

**이 예제용 로드 밸런서를 구성하려면**

1. *보안 리스너를 추가합니다.* **포트**에 **443**을 입력합니다. **프로토콜**에서 **HTTPS**를 선택합니다. **SSL 인증서**에서 SSL 인증서의 ARN을 선택합니다. 예를 들어 **arn:aws:iam::123456789012:server-certificate/abc/certs/build** 또는 **arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678**입니다.

   **기본 프로세스**의 경우 **default**를 선택한 상태로 유지합니다.  
![\[Application Load Balancer 구성 - 보안 리스너 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-listeners-https.png)

   이제 목록에서 추가 리스너를 볼 수 있습니다.  
![\[Application Load Balancer 구성 예제 - 2개의 리스너를 포함하는 리스너 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-listeners2.png)

1. *기본 포트 80 HTTP 리스너를 비활성화합니다.* 기본 리스너의 경우 **활성** 옵션을 끕니다.  
![\[Application Load Balancer 구성 예제 - 기본 리스너 비활성화\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-listeners-disabled.png)

1. *기본 프로세스를 HTTPS로 구성합니다.* 기본 프로세스를 선택한 다음 **작업**에서 **편집**을 선택합니다. **포트**에 **443**을 입력합니다. **프로토콜**에서 **HTTPS**를 선택합니다.  
![\[Application Load Balancer 구성 예제 - HTTPS로의 기본 프로세스 구성\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-definition-https.png)

1. *관리 프로세스를 추가합니다.* **Name**에 **admin**를 입력합니다. **포트**에 **443**을 입력합니다. **프로토콜**에서 **HTTPS**를 선택합니다. **상태 확인**에서 **경로**에 **/admin**을 입력합니다.  
![\[Application Load Balancer 구성 예제 - 관리 프로세스 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-definition-https-admin.png)

1. *관리 트래픽 규칙을 추가합니다.* **Name**에 **admin**를 입력합니다. **리스너 포트**에 **443**을 입력합니다. **일치 조건(Match conditions)**에서 **/admin/\$1** 값과 함께 **PathPattern**을 추가합니다. **프로세스**에 **admin**을 선택합니다.  
![\[Application Load Balancer 구성 예제 - 관리 규칙 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-rule-https-admin.png)

## EB CLI를 사용하여 Application Load Balancer 구성
<a name="environments-cfg-alb-ebcli"></a>

[**eb create**](eb3-create.md)를 실행하면 EB CLI는 로드 밸런서 유형을 선택하라는 메시지를 표시합니다.

```
$ eb create
Enter Environment Name
(default is my-app): test-env
Enter DNS CNAME prefix
(default is my-app): test-env-DLW24ED23SF

Select a load balancer type
1) classic
2) application
3) network
(default is 2):
```

또한 `--elb-type` 옵션으로 로드 밸런서 유형을 지정할 수 있습니다.

```
$ eb create test-env --elb-type application
```

## Application Load Balancer 네임스페이스
<a name="environments-cfg-alb-namespaces"></a>

다음 네임스페이스에서 Application Load Balancer와 관련된 설정을 찾을 수 있습니다.
+ `aws:elasticbeanstalk:environment` – 환경을 위한 로드 밸런서를 선택합니다. Application Load Balancer의 값은 `application`입니다.

  구성 파일([.Ebextensions](ebextensions.md))에서는 이 옵션을 설정할 수 없습니다.
+ `aws:elbv2:loadbalancer` – Application Load Balancer 전체에 적용되는 액세스 로그 및 기타 설정을 구성합니다.
+ `aws:elbv2:listener` – Application Load Balancer에서 리스너를 구성합니다. 이러한 설정은 Classic Load Balancer에 대한 `aws:elb:listener`의 설정에 매핑됩니다.
+ `aws:elbv2:listenerrule` – 요청 경로에 따라 트래픽을 서로 다른 프로세스로 라우팅하는 규칙을 구성합니다. 규칙은 Application Load Balancer에 고유합니다.
+ `aws:elasticbeanstalk:environment:process` – 상태 확인을 구성하고 환경의 인스턴스에서 실행되는 프로세스의 포트 및 프로토콜을 지정합니다. 이 포트 및 프로토콜 설정은 Classic Load Balancer의 리스너에 대한 `aws:elb:listener`의 인스턴스 포트 및 인스턴스 프로토콜 설정에 매핑됩니다. 상태 확인 설정은 `aws:elb:healthcheck` 및 `aws:elasticbeanstalk:application` 네임스페이스의 설정에 매핑됩니다.

**Example .ebextensions/alb-access-logs.config**  
다음 구성 파일을 사용하여 Application Load Balancer가 있는 환경에 대해 액세스 로그를 업로드하도록 할 수 있습니다.  

```
option_settings:
  aws:elbv2:loadbalancer:
    AccessLogsS3Bucket: amzn-s3-demo-bucket
    AccessLogsS3Enabled: 'true'
    AccessLogsS3Prefix: beanstalk-alb
```

**Example .ebextensions/alb-default-process.config**  
다음 구성 파일은 기본 프로세스의 상태 확인 및 고정성 설정을 수정합니다.  

```
option_settings:
  aws:elasticbeanstalk:environment:process:default:
    DeregistrationDelay: '20'
    HealthCheckInterval: '15'
    HealthCheckPath: /
    HealthCheckTimeout: '5'
    HealthyThresholdCount: '3'
    UnhealthyThresholdCount: '5'
    Port: '80'
    Protocol: HTTP
    StickinessEnabled: 'true'
    StickinessLBCookieDuration: '43200'
```

**Example .ebextensions/alb-secure-listener.config**  
다음 구성 파일은 포트 443에서 보안 리스너 및 일치하는 프로세스를 추가합니다.  

```
option_settings:
  aws:elbv2:listener:443:
    DefaultProcess: https
    ListenerEnabled: 'true'
    Protocol: HTTPS
    SSLCertificateArns: arn:aws:acm:us-east-2:123456789012:certificate/21324896-0fa4-412b-bf6f-f362d6eb6dd7
  aws:elasticbeanstalk:environment:process:https:
    Port: '443'
    Protocol: HTTPS
```

**Example .ebextensions/alb-admin-rule.config**  
다음 구성 파일은 요청 경로가 `/admin`인 트래픽을 포트 4443에서 수신 대기하는 `admin` 프로세스로 라우팅하는 규칙이 있는 보안 리스너를 추가합니다.  

```
option_settings:
  aws:elbv2:listener:443:
    DefaultProcess: https
    ListenerEnabled: 'true'
    Protocol: HTTPS
    Rules: admin
    SSLCertificateArns: arn:aws:acm:us-east-2:123456789012:certificate/21324896-0fa4-412b-bf6f-f362d6eb6dd7
  aws:elasticbeanstalk:environment:process:https:
    Port: '443'
    Protocol: HTTPS
  aws:elasticbeanstalk:environment:process:admin:
    HealthCheckPath: /admin
    Port: '4443'
    Protocol: HTTPS
  aws:elbv2:listenerrule:admin:
    PathPatterns: /admin/*
    Priority: 1
    Process: admin
```

# 공유 Application Load Balancer 구성
<a name="environments-cfg-alb-shared"></a>

[로드 밸런싱을 활성화](using-features-managing-env-types.md#using-features.managing.changetype)하면 AWS Elastic Beanstalk 환경에 Elastic Load Balancing 로드 밸런서가 설치되어 환경의 인스턴스 간에 트래픽을 분산합니다. Elastic Load Balancing은 몇 가지 로드 밸런서 유형을 지원합니다. 자세한 내용은 [Elastic Load Balancing 사용 설명서](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/)를 참조하세요. Elastic Beanstalk에서는 자동으로 로드 밸런서를 생성하거나, 생성한 공유 로드 밸런서를 지정할 수 있게 합니다.

이 주제에서는 사용자가 생성하여 환경에 연결한 공유 [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/)의 구성에 대해 설명합니다. 또한 [Application Load Balancer 구성](environments-cfg-alb.md) 섹션도 참조하세요. Elastic Beanstalk에서 지원하는 모든 로드 밸런서 유형 구성에 대한 자세한 내용은 [Elastic Beanstalk 환경의 로드 밸런서](using-features.managing.elb.md) 단원을 참조하세요.

**참고**  
환경 생성 중에만 환경에서 사용하는 로드 밸런서 유형을 선택할 수 있습니다. 설정을 변경하여 실행 중인 환경의 로드 밸런서 작동을 관리할 수는 있지만 로드 밸런서 유형을 변경할 수는 없습니다. 전용 로드 밸런서에서 공유 로드 밸런서로 전환하거나 그 반대로 전환할 수 없습니다.

## 소개
<a name="environments-cfg-alb-shared-intro"></a>

*공유 로드 밸런서*는 Amazon Elastic Compute Cloud(Amazon EC2) 서비스를 사용하여 직접 생성 및 관리한 다음 여러 Elastic Beanstalk 환경에서 사용하는 로드 밸런서입니다.

로드 밸런싱된 조정 환경을 생성하고 Application Load Balancer를 사용하도록 선택할 때마다 Elastic Beanstalk는 기본적으로 사용자 환경 전용 로드 밸런서를 만듭니다. Application Load Balancer가 무엇인지와 Elastic Beanstalk 환경에서 어떻게 작동하는지 알아보려면 Elastic Beanstalk에 대한 Application Load Balancer 구성 [소개](environments-cfg-alb.md#environments-cfg-alb-intro)를 참조하세요.

경우에 따라 여러 개의 전용 로드 밸런서를 사용하는 데 드는 비용을 절감할 수 있습니다. 이는 애플리케이션이 모놀리식 서비스 대신 마이크로서비스 제품군인 경우와 같이 여러 환경이 있을 때 유용할 수 있습니다. 이러한 경우 공유 로드 밸런서를 사용하도록 선택할 수 있습니다.

공유 로드 밸런서를 사용하려면 먼저 Amazon EC2에서 이를 생성하고 하나 이상의 리스너를 추가합니다. Elastic Beanstalk 환경을 만드는 동안 로드 밸런서를 제공하고 리스너 포트를 선택합니다. Elastic Beanstalk는 리스너를 환경의 기본 프로세스와 연결합니다. 사용자 지정 리스너 규칙을 추가하여 특정 호스트 헤더 및 경로에서 다른 환경 프로세스로 트래픽을 라우팅할 수 있습니다.

Elastic Beanstalk가 공유 로드 밸런서에 태그를 추가합니다. 태그 이름은 `elasticbeanstalk:shared-elb-environment-count`이고 값은 이 로드 밸런서를 공유하는 환경 수입니다.

공유 로드 밸런서를 사용하는 것은 전용 로드 밸런서를 사용하는 것과 여러 가지 면에서 차이가 있습니다.


| 관련 | 전용 Application Load Balancer | 공유 Application Load Balancer | 
| --- | --- | --- | 
|  관리  |  Elastic Beanstalk는 로드 밸런서, 리스너, 리스너 규칙 및 프로세스(대상 그룹)를 만들고 관리합니다. 환경을 종료하면 Elastic Beanstalk도 해당 환경을 제거합니다. 해당 옵션을 선택하는 경우 Elastic Beanstalk는 로드 밸런서 액세스 로그 캡처를 설정할 수 있습니다.  |  Elastic Beanstalk 외부에서 로드 밸런서와 리스너를 만들고 관리합니다. Elastic Beanstalk는 기본 규칙과 기본 프로세스를 만들고 관리하며, 사용자가 규칙 및 프로세스를 추가할 수 있습니다. Elastic Beanstalk는 환경 생성 중에 추가된 리스너 규칙 및 프로세스를 제거합니다.  | 
|  리스너 규칙  |  Elastic Beanstalk는 각 리스너에 대한 기본 규칙을 생성하여 모든 트래픽을 리스너의 기본 프로세스로 라우팅합니다.  |  Elastic Beanstalk는 기본 규칙을 포트 80 리스너(있는 경우)에만 연결합니다. 사용자가 다른 기본 리스너 포트를 선택하는 경우 기본 규칙을 해당 포트에 연결해야 합니다(Elastic Beanstalk 콘솔 및 EB CLI에서 자동으로 수행). 로드 밸런서를 공유하는 환경 간의 리스너 규칙 조건 충돌을 해결하기 위해 Elastic Beanstalk는 환경의 CNAME을 호스트 헤더 조건으로 리스너 규칙에 추가합니다. Elastic Beanstalk는 로드 밸런서를 공유하는 환경 전체에서 규칙 우선 순위 설정을 상대적으로 취급하고 생성 시 절대 우선 순위에 매핑합니다.  | 
|  보안 그룹  |  Elastic Beanstalk는 기본 보안 그룹을 생성하여 로드 밸런서에 연결합니다.  |  사용자는 로드 밸런서에 사용할 하나 이상의 보안 그룹을 구성할 수 있으며, 구성하지 않으면 Elastic Beanstalk가 Elastic Beanstalk에 의해 관리되는 기존 보안 그룹이 로드 밸런서에 이미 연결되어 있는지 확인합니다. 이미 연결되어 있지 않으면 Elastic Beanstalk는 보안 그룹을 생성하여 로드 밸런서에 연결합니다. Elastic Beanstalk는 로드 밸런서를 공유하는 마지막 환경이 종료되면 이 보안 그룹을 삭제합니다.  | 
|  업데이트  |  환경 생성 후 Application Load Balancer를 업데이트할 수 있습니다. 리스너, 리스너 규칙 및 프로세스를 편집할 수 있고, 로드 밸런서 액세스 로그 캡처를 구성할 수 있습니다.  |  Application Load Balancer에서 액세스 로그 캡처를 구성하는 데 Elastic Beanstalk를 사용할 수 없으며 환경 생성 후에는 리스너 및 리스너 규칙을 업데이트할 수 없습니다. 프로세스(대상 그룹)만 업데이트할 수 있습니다. 액세스 로그 캡처를 구성하고 리스너 및 리스너 규칙을 업데이트하려면 Amazon EC2를 사용합니다.  | 

## Elastic Beanstalk 콘솔을 사용하여 공유 Application Load Balancer 구성
<a name="environments-cfg-alb-shared-console"></a>

Elastic Beanstalk 콘솔을 사용하여, 환경 생성 중에 공유 Application Load Balancer를 구성할 수 있습니다. 환경에서 사용할 계정의 공유 가능 로드 밸런서 중 하나를 선택하고, 기본 리스너 포트를 선택하고, 추가 프로세스 및 리스너 규칙을 구성할 수 있습니다.

환경이 생성된 후에는 Application Load Balancer 콘솔에서 공유 Application Load Balancer 구성을 편집할 수 없습니다. 리스너, 리스너 규칙, 프로세스(대상 그룹) 및 액세스 로그 캡처를 구성하려면 Amazon EC2를 사용합니다.

**환경 생성 중에 Elastic Beanstalk 콘솔에서 Application Load Balancer를 구성하려면**

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

1. 탐색 창에서 **환경**을 선택합니다.

1. [새 환경 생성](environments-create-wizard.md)을 선택하여 환경 생성을 시작합니다.

1. 마법사의 기본 페이지에서 **환경 생성**을 선택하기 전에 **추가 옵션 구성**을 선택합니다.

1. **고가용성** 구성 프리셋을 선택합니다.

   또는 **용량** 구성 범주에서 **로드 밸런싱 수행** 환경 유형을 구성합니다. 자세한 내용은 [Capacity](environments-create-wizard.md#environments-create-wizard-capacity)을 참조하세요.

1. [**로드 밸런서**] 구성 범주에서 [**편집**]을 선택합니다.

1. **Application Load Balancer** 옵션을 선택하고 **공유(Shared)** 옵션을 선택합니다(이미 선택되어 있지 않은 경우).  
![\[Elastic Load Balancing 구성 페이지 - 로드 밸런서 유형 선택\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-shared-type-chooser.png)

1. 환경에 필요한 공유 Application Load Balancer 구성 부분을 모두 변경합니다.

1. **저장**을 선택하고 난 후 환경에 필요한 다른 구성 부분을 변경합니다.

1. **환경 생성**을 선택합니다.

**Topics**
+ [공유 Application Load Balancer](#environments-cfg-alb-shared-console-alb)
+ [프로세스](#environments-cfg-alb-shared-console-processes)
+ [규칙](#environments-cfg-alb-shared-console-rules)

### 공유 Application Load Balancer
<a name="environments-cfg-alb-shared-console-alb"></a>

이 단원에서는 환경에 사용할 공유 Application Load Balancer를 선택하고 기본 트래픽 라우팅을 구성합니다.

여기에서 공유 Application Load Balancer를 구성하기 전에 Amazon EC2를 사용하여 계정에 하나 이상의 리스너와 공유하기 위한 Application Load Balancer를 하나 이상 정의합니다. 아직 선택하지 않은 경우 **로드 밸런서 관리(Manage load balancers)**를 선택할 수 있습니다. Elastic Beanstalk는 새 브라우저 탭에서 Amazon EC2 콘솔을 엽니다.

Elastic Beanstalk 외부에서 공유 로드 밸런서를 구성했으면 이 콘솔 섹션에서 다음 설정을 구성합니다.
+ **로드 밸런서 ARN(Load balancer ARN)** – 이 환경에서 사용할 공유 로드 밸런서입니다. 로드 밸런서 목록에서 선택하거나 로드 밸런서 Amazon 리소스 이름(ARN)을 입력합니다.
+ **기본 리스너 포트(Default listener port)** – 공유 로드 밸런서가 수신 대기하는 리스너 포트입니다. 기존 리스너 포트 목록에서 선택합니다. 호스트 헤더에 환경의 CNAME이 있는 이 리스너의 트래픽은 이 환경의 기본 프로세스로 라우팅됩니다.

![\[Application Load Balancer 구성 - 공유 로드 밸런서 선택\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-shared-alb.png)


### 프로세스
<a name="environments-cfg-alb-shared-console-processes"></a>

이 목록을 사용하여 공유 로드 밸런서에 대해 프로세스를 지정합니다. 프로세스는 리스너가 트래픽을 라우팅하기 위한 대상입니다. 처음에 목록에는 기본 프로세스가 표시되는데, 이 프로세스는 기본 리스너에서 트래픽을 수신합니다.

![\[Application Load Balancer 구성 - 프로세스 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-shared-processes.png)


**기존 프로세스를 구성하려면**

1. 테이블 항목 옆에 있는 확인란을 선택한 다음 **작업**, **편집**을 선택합니다.

1. **환경 프로세스(Environment process)** 대화 상자를 사용하여 설정을 편집한 다음 **저장(Save)**을 선택합니다.

**프로세스를 추가하려면**

1. **프로세스 추가(Add process)**를 선택합니다.

1. **환경 프로세스(Environment process)** 대화 상자에서 원하는 설정을 구성한 다음 **추가(Add)**를 선택합니다.

**Topics**
+ [정의](#environments-cfg-alb-console-process-definition)
+ [상태 확인](#environments-cfg-alb-shared-console-process-healthchecks)
+ [세션](#environments-cfg-alb-shared-console-process-sessions)

#### 정의
<a name="environments-cfg-alb-console-process-definition"></a>

**이름**과 요청을 수신 대기할 **포트** 및**프로토콜** 설정을 사용하여 프로세스를 정의합니다.

![\[이름, 포트 및 프로토콜에 대한 Application Load Balancer 프로세스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-definition.png)


#### 상태 확인
<a name="environments-cfg-alb-shared-console-process-healthchecks"></a>

다음 설정을 사용하여 프로세스 상태 확인을 구성합니다.
+ **HTTP 코드(HTTP code)** – 정상 프로세스를 지정하는 HTTP 상태 코드입니다.
+ **경로(Path)** – 프로세스에 대한 상태 확인 요청 경로입니다.
+ **제한 시간(Timeout)** – 상태 확인 응답을 기다릴 시간(초)입니다.
+ **간격(Interval)** – 개별 인스턴스의 상태 확인 간 간격(초 단위)입니다. 이 간격은 제한 시간보다 커야 합니다.
+ **비정상 임계값(Unhealthy threshold)**, **정상 임계값(Healthy threshold)** – Elastic Load Balancing이 인스턴스의 상태 확인을 변경하기 전에 각각 실패하거나 성공해야 하는 상태 확인 횟수입니다.
+ **등록 취소 지연(Deregistration delay)** – 인스턴스 등록을 취소하기 전에 활성 요청이 완료될 때까지 기다려야 하는 시간(초)입니다.

![\[상태 확인에 대한 Application Load Balancer 프로세스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-healthcheck.png)


**참고**  
Elastic Load Balancing 상태 확인은 환경 Auto Scaling 그룹의 상태 확인 동작에는 영향을 주지 않습니다. Elastic Load Balancing 상태 확인에 실패한 인스턴스는 자동 대체하도록 Amazon EC2 Auto Scaling을 수동으로 구성하지 않는 한 Amazon EC2 Auto Scaling으로 자동 대체되지 않습니다. 세부 정보는 [Elastic Beanstalk 환경에 대한 Auto Scaling 상태 확인 설정](environmentconfig-autoscaling-healthchecktype.md) 섹션을 참조하세요.

전반적인 환경 상태에 영향을 미치는 정도와 상태 확인에 대한 자세한 내용은 [기본 상태 보고](using-features.healthstatus.md) 단원을 참조하세요.

#### 세션
<a name="environments-cfg-alb-shared-console-process-sessions"></a>

**고정 정책 활성화됨** 상자를 선택하거나 지워서 고정 세션을 활성화 또는 비활성화합니다. **쿠키 지속 시간**을 사용하여 고정 세션의 지속 시간을 최대 **604800**초까지로 구성합니다.

![\[세션 고정성에 대한 Application Load Balancer 프로세스 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-sessions.png)


### 규칙
<a name="environments-cfg-alb-shared-console-rules"></a>

이 목록을 사용하여 공유 로드 밸런서에 대한 사용자 지정 리스너 규칙을 지정합니다. 규칙은 리스너가 특정 경로 패턴에서 수신하는 요청을 대상 프로세스로 매핑합니다. 각 리스너에는 리스너를 공유하는 다양한 환경의 인스턴스에서 다양한 경로의 요청을 서로 다른 프로세스로 라우팅하는 여러 규칙이 있을 수 있습니다.

규칙에는 수신 중인 요청에 적용되는 우선 순위를 결정하는 숫자 우선 순위가 지정되어 있습니다. Elastic Beanstalk는 모든 기본 리스너의 트래픽을 새 환경의 기본 프로세스로 라우팅하는 기본 규칙을 추가합니다. 기본 규칙의 우선 순위는 최하위입니다. 이 순위는 동일 리스너에 대해 수신 요청과 일치하는 다른 규칙이 없는 경우에 적용됩니다. 먼저 사용자 지정 규칙을 추가하지 않은 경우 목록이 비어 있습니다. 기본 규칙은 표시되지 않습니다.

![\[Application Load Balancer 구성 - 규칙 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-shared-rules.png)


기존 규칙의 설정을 편집하거나 새 규칙을 추가할 수 있습니다. 목록에 있는 규칙 편집 또는 목록에 프로세스 추가를 시작하려면 [프로세스 목록](#environments-cfg-alb-shared-console-processes)에 대해 나열된 동일한 단계를 사용합니다. **리스너 규칙** 대화 상자가 열리고 다음 설정이 표시됩니다.
+ **이름(Name)** – 규칙의 이름입니다.
+ **리스너 포트(Listener port)** – 규칙이 적용되는 리스너의 포트입니다.
+ **우선 순위(Priority)** – 규칙의 우선 순위입니다. 우선 순위 숫자가 작을수록 우선 적용됩니다. 리스너 규칙의 우선 순위는 고유해야 합니다. Elastic Beanstalk는 공유 환경 전체에서 규칙 우선 순위를 상대적으로 취급하고 생성 시 절대 우선 순위에 매핑합니다.
+ **일치 조건(Match conditions)** – 규칙이 적용되는 요청 URL 조건의 목록입니다. 조건에는 두 가지 유형, 즉 **HostHeader**(URL의 도메인 부분)와 **PathPattern**(URL의 경로 부분)이 있습니다. 하나의 조건이 환경 하위 도메인에 예약되어 있으며 최대 4개의 조건을 추가할 수 있습니다. 각 조건 값은 최대 128자이며 와일드카드 문자를 포함할 수 있습니다.
+ **프로세스(Process)** – 로드 밸런서가 규칙과 일치하는 요청을 라우팅할 프로세스입니다.

![\[Application Load Balancer 구성 - 규칙 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-rule-dialog.png)


## 예제: 안전한 마이크로서비스 기반 애플리케이션에 공유 Application Load Balancer 사용
<a name="environments-cfg-alb-shared-console-example"></a>

이 예제에서 애플리케이션은 여러 마이크로 서비스로 구성되며 각 서비스는 하나의 Elastic Beanstalk 환경으로 구현됩니다. 또한 엔드 투 엔드 트래픽 암호화가 필요합니다. 이 예제에서는 사용자 요청을 처리하는 주 프로세스와 관리 요청을 처리하는 별도의 프로세스가 있는 마이크로서비스 환경 중 하나를 보여줍니다.

이러한 요구 사항을 충족하려면 Amazon EC2를 사용하여 마이크로서비스 간에 공유할 Application Load Balancer를 생성합니다. 포트 443과 HTTPS 프로토콜에 보안 리스너를 추가합니다. 그런 다음, 마이크로서비스 도메인당 하나씩, 여러 SSL 인증서를 리스너에 추가합니다. Application Load Balancer 및 보안 리스너 생성에 대한 자세한 내용은 *Application Load Balancers 사용 설명서*의 [Application Load Balancer 생성](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) 및 [Application Load Balancer용 HTTPS 리스너 생성](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html)을 참조하세요.

Elastic Beanstalk에서 공유 Application Load Balancer를 사용하도록 각 마이크로서비스 환경을 구성하고 기본 리스너 포트를 443으로 설정합니다. 여기서 설명하는 환경의 경우 기본 프로세스가 HTTPS를 사용하여 포트 443에서 수신함을 나타내고 다른 경로의 관리자 트래픽에 대한 프로세스 및 리스너 규칙을 추가합니다.

**이 예제용 공유 로드 밸런서를 구성하려면**

1. **공유 Application Load Balancer(Shared Application Load Balancer)** 섹션에서 로드 밸런서를 선택한 다음 **기본 리스너 포트(Default listener)**로 **443**을 선택합니다. 이 리스너 포트가 로드 밸런서에 있는 유일한 리스너인 경우 이미 선택되어 있습니다.  
![\[Application Load Balancer 구성 - 보안 리스너 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-shared-example-alb.png)

1. *기본 프로세스를 HTTPS로 구성합니다.* 기본 프로세스를 선택한 다음 **작업**에서 **편집**을 선택합니다. **포트**에서 **443**를 입력합니다. **프로토콜**에서 **HTTPS**를 선택합니다.  
![\[Application Load Balancer 구성 예제 - HTTPS로의 기본 프로세스 구성\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-definition-https.png)

1. *관리 프로세스를 추가합니다.* **이름**에 **admin**를 입력합니다. **포트**에서 **443**를 입력합니다. **프로토콜**에서 **HTTPS**를 선택합니다. **상태 확인(Health check)**에서 **경로(Path)**에 **/admin**을 입력합니다.  
![\[Application Load Balancer 구성 예제 - 관리 프로세스 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-process-definition-https-admin.png)

1. *관리 트래픽 규칙을 추가합니다.* **이름**에 **admin**를 입력합니다. **리스너 포트(Listener port)**에 **443**을 입력합니다. **일치 조건(Match conditions)**에서 **/admin/\$1** 값과 함께 **PathPattern**을 추가합니다. **프로세스**에 **admin**을 선택합니다.  
![\[Application Load Balancer 구성 예제 - 관리 규칙 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-alb-rule-https-admin.png)

## EB CLI를 사용하여 공유 Application Load Balancer 구성
<a name="environments-cfg-alb-shared-ebcli"></a>

[**eb create**](eb3-create.md)를 실행하면 EB CLI는 로드 밸런서 유형을 선택하라는 메시지를 표시합니다. `application`(기본값)을 선택하고 계정에 하나 이상의 공유 가능 Application Load Balancer가 있는 경우 EB CLI에서 공유 Application Load Balancer를 사용할지 여부도 묻습니다. **y**로 응답하면 로드 밸런서와 기본 포트를 선택하라는 메시지가 표시됩니다.

```
$ eb create
Enter Environment Name
(default is my-app): test-env
Enter DNS CNAME prefix
(default is my-app): test-env-DLW24ED23SF

Select a load balancer type
1) classic
2) application
3) network
(default is 2): 

Your account has one or more sharable load balancers. Would you like your new environment to use a shared load balancer?(y/N) y

Select a shared load balancer
1)MySharedALB1 - arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB1/6d69caa75b15d46e
2)MySharedALB2 - arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8
(default is 1): 2

Select a listener port for your shared load balancer
1) 80
2) 100
3) 443
(default is 1): 3
```

명령 옵션을 사용하여 공유 로드 밸런서를 지정할 수도 있습니다.

```
$ eb create test-env --elb-type application --shared-lb MySharedALB2 --shared-lb-port 443
```

## 공유 Application Load Balancer 네임스페이스
<a name="environments-cfg-alb-shared-namespaces"></a>

다음 네임스페이스에서 공유 Application Load Balancer와 관련된 설정을 찾을 수 있습니다.
+ `aws:elasticbeanstalk:environment` – 환경의 로드 밸런서 유형을 선택하고 공유 로드 밸런서를 사용하도록 Elastic Beanstalk에 지정합니다.

  구성 파일([.Ebextensions](ebextensions.md))에서는 이 두 옵션을 설정할 수 없습니다.
+ `aws:elbv2:loadbalancer` – 공유 Application Load Balancer ARN 및 보안 그룹을 구성합니다.
+ `aws:elbv2:listener` – 리스너 규칙을 나열하여 공유 Application Load Balancer의 리스너를 환경 프로세스와 연결합니다.
+ `aws:elbv2:listenerrule` – 요청 경로에 따라 트래픽을 서로 다른 프로세스로 라우팅하는 리스너 규칙을 구성합니다. 규칙은 전용 및 고유 Application Load Balancer에 고유합니다.
+ `aws:elasticbeanstalk:environment:process` – 상태 확인을 구성하고 환경의 인스턴스에서 실행되는 프로세스의 포트 및 프로토콜을 지정합니다.

**Example .ebextensions/application-load-balancer-shared.config**  
공유 Application Load Balancer를 시작하려면 Elastic Beanstalk 콘솔, EB CLI 또는 API를 사용하여 로드 밸런서 유형을 `application`으로 설정하고 공유 로드 밸런서를 사용하도록 선택합니다. [구성 파일](ebextensions.md)을 사용하여 공유 로드 밸런서를 구성합니다.  

```
option_settings:
  aws:elbv2:loadbalancer:
    SharedLoadBalancer: arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8
```

**참고**  
이 옵션은 환경을 만드는 동안에만 구성할 수 있습니다.

**Example .ebextensions/alb-shared-secure-listener.config**  
다음 구성 파일은 공유 로드 밸런서에 포트 443의 기본 보안 리스너를 선택하고 기본 프로세스가 포트 443에서 수신하도록 설정합니다.  

```
option_settings:
  aws:elbv2:loadbalancer:
    SharedLoadBalancer: arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8
  aws:elbv2:listener:443:
    rules: default
  aws:elasticbeanstalk:environment:process:default:
    Port: '443'
    Protocol: HTTPS
```

**Example .ebextensions/alb-shared-admin-rule.config**  
다음 구성 파일은 이전 예제를 기반으로 하여 요청 경로가 `/admin`인 트래픽을 포트 4443에서 수신 대기하는 `admin` 프로세스로 라우팅하는 규칙을 추가합니다.  

```
option_settings:
  aws:elbv2:loadbalancer:
    SharedLoadBalancer: arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/MySharedALB2/e574ea4c37ad2ec8
  aws:elbv2:listener:443:
    rules: default,admin
  aws:elasticbeanstalk:environment:process:default:
    Port: '443'
    Protocol: HTTPS
  aws:elasticbeanstalk:environment:process:admin:
    HealthCheckPath: /admin
    Port: '4443'
    Protocol: HTTPS
  aws:elbv2:listenerrule:admin:
    PathPatterns: /admin/*
    Priority: 1
    Process: admin
```

# Network Load Balancer 구성
<a name="environments-cfg-nlb"></a>

[로드 밸런싱을 활성화](using-features-managing-env-types.md#using-features.managing.changetype)하면 AWS Elastic Beanstalk 환경에 Elastic Load Balancing 로드 밸런서가 설치되어 환경의 인스턴스 간에 트래픽을 분산합니다. Elastic Load Balancing은 몇 가지 로드 밸런서 유형을 지원합니다. 자세한 내용은 [Elastic Load Balancing 사용 설명서](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/)를 참조하세요. Elastic Beanstalk에서는 자동으로 로드 밸런서를 생성하거나, 생성한 공유 로드 밸런서를 지정할 수 있습니다.

이 주제에서는 Elastic Beanstalk에서 생성하고 사용자 환경 전용으로 지정하는 [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/)의 구성에 대해 설명합니다. Elastic Beanstalk에서 지원하는 모든 로드 밸런서 유형 구성에 대한 자세한 내용은 [Elastic Beanstalk 환경의 로드 밸런서](using-features.managing.elb.md) 단원을 참조하세요.

**참고**  
환경 생성 중에만 환경에서 사용하는 로드 밸런서 유형을 선택할 수 있습니다. 설정을 변경하여 실행 중인 환경의 로드 밸런서 작동을 관리할 수는 있지만 로드 밸런서 유형을 변경할 수는 없습니다.

## 소개
<a name="environments-cfg-nlb-intro"></a>

Network Load Balancer를 통해 기본 리스너는 포트 80에서 TCP 요청을 수락하고 이러한 요청을 환경의 인스턴스로 분산합니다. 상태 확인 동작 구성, 리스너 포트 구성, 또는 다른 포트로의 리스너 추가가 가능합니다.

**참고**  
Classic Load Balancer 또는 Application Load Balancer와 달리 Network Load Balancer는 애플리케이션 계층(계층 7) HTTP 또는 HTTPS 리스너를 가질 수 없습니다. 이는 전송 계층 (계층 4) TCP 리스너만 지원합니다. HTTP 및 HTTPS 트래픽은 TCP를 통해 환경으로 라우팅될 수 있습니다. 웹 클라이언트와 환경 간의 보안 HTTPS 연결을 설정하려면 환경 인스턴스에 [자체 서명된 인증서](configuring-https-ssl.md)를 설치하고 인스턴스가 알맞은 포트(일반적으로 443)에 대해 수신 대기하고 HTTPS 연결을 종료하도록 구성합니다. 구성은 플랫폼에 따라 다릅니다. 자세한 내용은 [인스턴스에서 HTTPS 종료 구성](https-singleinstance.md) 섹션을 참조하세요. 그 후에는 Network Load Balancer를 구성하여 알맞은 포트에 대해 수신 대기하는 프로세스로 매핑하는 리스너를 추가합니다.

Network Load Balancer는 활성 상태 확인을 지원합니다. 이러한 확인 작업은 루트(`/`) 경로로의 메시지에 기반합니다. 또한 Network Load Balancer는 패시브 상태 확인을 지원합니다. 오류가 있는 백엔드 인스턴스를 자동으로 검출하여 상태에 이상이 없는 인스턴스로만 트래픽을 라우팅합니다.

## Elastic Beanstalk 콘솔을 사용하여 Network Load Balancer 구성
<a name="environments-cfg-nlb-console"></a>

Elastic Beanstalk 콘솔을 사용하여 환경을 생성하는 동안 또는 나중에 환경이 실행 중일 때 Network Load Balancer의 리스너와 프로세스를 구성할 수 있습니다.

**환경 생성 중에 Elastic Beanstalk 콘솔에서 Network Load Balancer를 구성하려면**

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

1. 탐색 창에서 **환경**을 선택합니다.

1. [새 환경 생성](environments-create-wizard.md)을 선택하여 환경 생성을 시작합니다.

1. 마법사의 기본 페이지에서 **환경 생성**을 선택하기 전에 **추가 옵션 구성**을 선택합니다.

1. **고가용성** 구성 프리셋을 선택합니다.

   또는 **용량** 구성 범주에서 **로드 밸런싱 수행** 환경 유형을 구성합니다. 자세한 내용은 [Capacity](environments-create-wizard.md#environments-create-wizard-capacity)을 참조하세요.

1. [**로드 밸런서**] 구성 범주에서 [**편집**]을 선택합니다.

1. 아직 선택하지 않은 경우 **Network Load Balancer** 옵션을 선택합니다.  
![\[Elastic Load Balancing 구성 페이지 - 로드 밸런서 유형 선택\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-type-chooser.png)

1. 환경에 필요한 Network Load Balancer 구성 부분을 모두 변경합니다.

1. **저장**을 선택하고 난 후 환경에 필요한 다른 구성 부분을 변경합니다.

1. **환경 생성**을 선택합니다.

**Elastic Beanstalk 콘솔에서 실행 중인 환경의 Network Load Balancer를 구성하려면**

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

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

1. 탐색 창에서 **구성**을 선택합니다.

1. [**로드 밸런서**] 구성 범주에서 [**편집**]을 선택합니다.
**참고**  
[**로드 밸런서**] 구성 범주에 [**편집**] 버튼이 없으면 환경에 로드 밸런서가 없는 것입니다. 설정 방법을 알아보려면 [환경 유형 변경](using-features-managing-env-types.md#using-features.managing.changetype)을 참조하십시오.

1. 환경에 필요한 Network Load Balancer 구성 부분을 변경합니다.

1. 변경 사항을 저장하려면 페이지 하단에서 **적용**을 선택합니다.

**Topics**
+ [리스너](#environments-cfg-nlb-console-listeners)
+ [프로세스](#environments-cfg-nlb-console-processes)

### 리스너
<a name="environments-cfg-nlb-console-listeners"></a>

이 목록을 사용하여 로드 밸런서에 대해 리스너를 지정합니다. 각 리스너는 지정된 포트에서 수신되는 클라이언트 트래픽을 인스턴스의 프로세스로 라우팅합니다. 처음에 이 목록에는 기본 리스너가 표시되는데, 이 리스너는 포트 80을 통해 전송되는 트래픽을 포트 80을 수신 대기하는 **기본** 프로세스로 라우팅합니다.

![\[Network Load Balancer 구성 - 리스너 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-listeners.png)


**기존 리스너를 구성하려면**

1. 테이블 항목 옆에 있는 확인란을 선택한 다음 **작업**, **편집**을 선택합니다.

1. 편집을 선택한 경우 **Network Load Balancer 리스너** 대화 상자를 사용하여 설정을 편집하고 나서 **저장**을 선택합니다.

**리스너를 추가하려면**

1. **리스너 추가**를 선택합니다.

1. **Network Load Balancer 리스너** 대화 상자에서 필요한 설정을 구성한 다음 **추가**를 선택합니다.

**Network Load Balancer 리스너** 대화 상자를 사용하여 리스너가 트래픽을 수신 대기하는 포트를 구성하고, 사용자가 트래픽을 라우팅하려는 프로세스를 선택합니다(프로세스가 수신 대기하는 포트에 의해 지정됨).

![\[Network Load Balancer 리스너 대화 상자\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-listener-dialog.png)


### 프로세스
<a name="environments-cfg-nlb-console-processes"></a>

이 목록을 사용하여 로드 밸런서에 대해 프로세스를 지정합니다. 프로세스는 리스너가 트래픽을 라우팅하기 위한 대상입니다. 각 리스너는 지정된 포트에서 수신되는 클라이언트 트래픽을 인스턴스의 프로세스로 라우팅합니다. 처음에 목록에는 기본 프로세스가 표시되는데, 이 프로세스는 포트 80을 통해 수신 트래픽을 수신 대기합니다.

![\[Network Load Balancer 구성 - 프로세스 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-processes.png)


기존 프로세스 설정을 편집하거나 새 프로세스를 추가할 수 있습니다. 목록에 있는 프로세스 편집 또는 목록에 프로세스 추가를 시작하려면 [리스너 목록](environments-cfg-alb.md#environments-cfg-alb-console-listeners)에 대해 나열된 동일한 단계를 사용합니다. **환경 프로세스** 대화 상자가 열립니다.

**Topics**
+ [정의](#environments-cfg-nlb-console-process-definition)
+ [상태 확인](#environments-cfg-nlb-console-process-healthchecks)

#### 정의
<a name="environments-cfg-nlb-console-process-definition"></a>

**이름**과 요청을 수신 대기할 **Process port(프로세스 포트)** 설정을 사용하여 프로세스를 정의합니다.

![\[이름, 리스너 포트, 프로세스 포트에 대한 Network Load Balancer 프로세스 대화 상자 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-process-definition.png)


#### 상태 확인
<a name="environments-cfg-nlb-console-process-healthchecks"></a>

다음 설정을 사용하여 프로세스 상태 확인을 구성합니다.
+ **간격(Interval)** – 개별 인스턴스의 상태 확인 간 간격(초 단위)입니다.
+ **정상 임계 값(Healthy threshold)** – Elastic Load Balancing이 인스턴스 상태를 바꾸기 전에 통과해야 하는 상태 확인 수입니다. (Network Load Balancer의 경우, **비정상 임계값**은 읽기 전용 설정으로서 정상 임계 값과 항상 동일합니다.)
+ **등록 취소 지연(Deregistration delay)** – 인스턴스 등록을 취소하기 전에 활성 요청이 완료될 때까지 기다려야 하는 시간(초)입니다.

![\[상태 확인에 대한 Network Load Balancer 프로세스 대화 상자 설정\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-process-healthcheck.png)


**참고**  
Elastic Load Balancing 상태 확인은 환경 Auto Scaling 그룹의 상태 확인 동작에는 영향을 주지 않습니다. Elastic Load Balancing 상태 확인에 실패한 인스턴스는 자동 대체하도록 Amazon EC2 Auto Scaling을 수동으로 구성하지 않는 한 Amazon EC2 Auto Scaling으로 자동 대체되지 않습니다. 세부 정보는 [Elastic Beanstalk 환경에 대한 Auto Scaling 상태 확인 설정](environmentconfig-autoscaling-healthchecktype.md) 섹션을 참조하세요.

전반적인 환경 상태에 영향을 미치는 정도와 상태 확인에 대한 자세한 내용은 [기본 상태 보고](using-features.healthstatus.md) 단원을 참조하세요.

## 예제: 엔드 투 엔드 암호화 환경에 대한 Network Load Balancer
<a name="environments-cfg-nlb-console-example"></a>

이 예제에서는 애플리케이션에 엔드 투 엔드 트래픽 암호화가 필요합니다. 이러한 요구 조건에 부합하도록 사용자 환경의 Network Load Balancer를 구성하려면 포트 443을 수신 대기하도록 기본 프로세스를 구성하고, 기본 프로세스에 트래픽을 라우팅하는 포트 443에 리스너를 추가하며, 기본 리스너를 비활성화합니다.

**이 예제용 로드 밸런서를 구성하려면**

1. *기본 프로세스를 구성합니다.* 기본 프로세스를 선택한 다음 **작업**에서 **편집**을 선택합니다. **Process port(프로세스 포트)**에서 `443`을 입력합니다.  
![\[Network Load Balancer 구성 예제 - 프로세스 포트 443 사용을 위한 기본 프로세스 구성\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-example-process-443.png)

1. *포트 443 리스너를 추가합니다.* 새로운 리스너를 추가합니다. **리스너 포트**에 `443`을 입력합니다. **Process port(프로세스 포트)**의 경우 `443`의 선택 여부를 확인합니다.  
![\[Network Load Balancer 구성 예제 - 포트 443 리스너 추가\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-example-listener-443.png)

   이제 목록에서 추가 리스너를 볼 수 있습니다.  
![\[Network Load Balancer 구성 예제 - 2개의 리스너를 포함하는 리스너 목록\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-example-listeners.png)

1. *기본 포트 80 리스너를 비활성화합니다.* 기본 리스너의 경우 **활성** 옵션을 끕니다.  
![\[Network Load Balancer 구성 예제 - 기본 리스너 비활성화\]](http://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/images/aeb-config-nlb-example-listeners-disabled.png)

## EB CLI를 사용하여 Network Load Balancer 구성
<a name="environments-cfg-nlb-ebcli"></a>

[**eb create**](eb3-create.md)를 실행하면 EB CLI는 로드 밸런서 유형을 선택하라는 메시지를 표시합니다.

```
$ eb create
Enter Environment Name
(default is my-app): test-env
Enter DNS CNAME prefix
(default is my-app): test-env-DLW24ED23SF

Select a load balancer type
1) classic
2) application
3) network
(default is 1): 3
```

또한 `--elb-type` 옵션으로 로드 밸런서 유형을 지정할 수 있습니다.

```
$ eb create test-env --elb-type network
```

## Network Load Balancer 네임스페이스
<a name="environments-cfg-nlb-namespaces"></a>

다음 네임스페이스에서 Network Load Balancer와 관련된 설정을 찾을 수 있습니다.
+ `aws:elasticbeanstalk:environment` – 환경을 위한 로드 밸런서를 선택합니다. Network Load Balancer의 값은 `network`입니다.
+ `aws:elbv2:listener` – Network Load Balancer에서 리스너를 구성합니다. 이러한 설정은 Classic Load Balancer에 대한 `aws:elb:listener`의 설정에 매핑됩니다.
+ `aws:elasticbeanstalk:environment:process` – 상태 확인을 구성하고 환경의 인스턴스에서 실행되는 프로세스의 포트 및 프로토콜을 지정합니다. 이 포트 및 프로토콜 설정은 Classic Load Balancer의 리스너에 대한 `aws:elb:listener`의 인스턴스 포트 및 인스턴스 프로토콜 설정에 매핑됩니다. 상태 확인 설정은 `aws:elb:healthcheck` 및 `aws:elasticbeanstalk:application` 네임스페이스의 설정에 매핑됩니다.

**Example .ebextensions/network-load-balancer.config**  
Network Load Balancer를 시작하려면 [구성 파일](ebextensions.md)을 사용하여 로드 밸런서 유형을 `network`로 설정합니다.  

```
option_settings:
  aws:elasticbeanstalk:environment:
    LoadBalancerType: network
```

**참고**  
환경을 생성하는 동안에만 로드 밸런서 유형을 설정할 수 있습니다.

**Example .ebextensions/nlb-default-process.config**  
다음 구성 파일은 기본 프로세스의 상태 확인 설정을 수정합니다.  

```
option_settings:
  aws:elasticbeanstalk:environment:process:default:
    DeregistrationDelay: '20'
    HealthCheckInterval: '10'
    HealthyThresholdCount: '5'
    UnhealthyThresholdCount: '5'
    Port: '80'
    Protocol: TCP
```

**Example .ebextensions/nlb-secure-listener.config**  
다음 구성 파일은 포트 443에서의 보안 트래픽을 위한 리스너와 포트 443에서 수신하는 대상 프로세스를 추가합니다.  

```
option_settings:
  aws:elbv2:listener:443:
    DefaultProcess: https
    ListenerEnabled: 'true'
  aws:elasticbeanstalk:environment:process:https:
    Port: '443'
```
Application Load Balancers에는 특정 경로로 전송되는 트래픽을 위한 동일한 포트에 기본이 아닌 리스너가 있을 수 있기 때문에 `DefaultProcess` 옵션이라는 이름이 지정되었습니다. 자세한 내용은 [Application Load Balancer](environments-cfg-alb.md) 단원을 참조하세요. Network Load Balancer의 경우 이 옵션은 이 리스너의 대상 프로세스만 지원합니다.  
이 예제에서는 프로세스가 보안(HTTPS) 트래픽을 수신하기 때문에 프로세스 이름을 `https`로 지정했습니다. Network Load Balancer는 TCP로만 작동하기 때문에 이 리스너는 TCP 프로토콜을 사용하여 트래픽을 대상 포트의 프로세스로 전송합니다. HTTP와 HTTPS 네트워크 트래픽은 TCP 최상위에서 구현되기 때문에 이렇게 해도 됩니다.

# 듀얼 스택 Elastic Beanstalk 로드 밸런서 구성
<a name="environments-cfg-elbv2-ipv6-dualstack"></a>

듀얼 스택으로 구성된 로드 밸런서를 사용하여 IPv4 및 IPv6 프로토콜을 모두 제공하도록 Elastic Beanstalk 환경을 활성화할 수 있습니다. 로드 밸런싱된 환경을 생성할 때 인프라는 기본적으로 IPv4로 설정됩니다. 듀얼 스택 구성을 사용하여 새 환경을 생성하거나 기존의 IPv4 전용 환경을 듀얼 스택으로 업데이트할 수 있습니다.

환경의 로드 밸런서가 IPv6 및 IPv4 네트워크 트래픽을 모두 처리하도록 하려면 [aws:elbv2:loadbalancer](command-options-general.md#command-options-general-elbv2) 네임스페이스에서 `IpAddressType` 옵션을 *듀얼 스택*으로 설정하세요.

**참고**  
Elastic Beanstalk은 Application Load Balancer와 네트워크 로드 밸런서에 대해서만 듀얼 스택 프로토콜을 지원합니다. Classic Load Balancer를 사용하거나 단일 인스턴스 환경인 경우, 듀얼 스택은 지원되지 않습니다.

## Amazon VPC 사전 조건
<a name="environments-cfg-elbv2-ipv6-dualstack.prereqs"></a>

Elastic Beanstalk 환경에서 로드 밸런서를 구성하기 전에, 먼저 다음과 같이 Amazon VPC에서 일부 구성을 완료해야 합니다.

1. IPv6 CIDR 블록을 사용자 환경의 VPC와 연결

1. VPC의 모든 서브넷에 IPv6 CIDR 블록을 연결하세요.

1. (선택 사항) 환경이 VPC 외부의 구성 요소와 네트워크 트래픽을 주고받는 경우, VPC가 통신할 수 있는 네트워크를 지정하는 라우팅 테이블이 필요합니다. 이 경우, IPv6 트래픽을 활성화하려면 VPC 라우팅 테이블을 업데이트해야 합니다.

이러한 사전 조건은 Amazon VPC 콘솔 또는 AWS CLI 명령어를 사용하여 완료할 수 있습니다. 다음 주제에서는 자세한 내용을 안내하고 *Amazon VPC 사용 설명서* 및 *AWS CLI 명령 참조*로 안내합니다.

**참고**  
VPC 구성을 완료한 후 로드 밸런서에 듀얼 스택을 구성하기 전에 변경 사항이 전파될 때까지 몇 분 정도 기다려 주세요. 듀얼 스택 설정 중에 VPC 또는 서브넷 구성 오류가 발생하면 VPC 구성이 전파될 때까지 몇 분 정도 기다렸다가 듀얼 스택 구성을 다시 시도하세요.

### 콘솔을 사용하여 VPC 사전 구성 완료
<a name="environments-cfg-elbv2-ipv6-dualstack.prereqs.console"></a>

*Amazon VPC 사용 설명서*에서는 이러한 사전 필수 작업을 완료하기 위한 자세한 단계를 제공합니다.

1. *Amazon VPC 사용 설명서*의 [1단계: VPC 및 서브넷에 IPv6 CIDR 블록 연결](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html#vpc-migrate-ipv6-cidr)을 참조하세요.

   이 단계에서는 완료해야 하는 두 가지 절차를 제공합니다.
   + IPv6 CIDR 블록을 VPC와 연결
   + IPv6 CIDR 블록을 VPC 서브넷과 연결

1. (선택 사항) 환경이 VPC 외부의 구성 요소와 네트워크 트래픽을 주고받는 경우, VPC가 통신할 수 있는 네트워크를 지정하는 라우팅 테이블이 필요합니다. 이 경우, IPv6 트래픽을 활성화하려면 VPC 라우팅 테이블을 업데이트해야 합니다. 이 구성을 완료하려면 *Amazon VPC 사용 설명서*의 [2단계: 라우팅 테이블 업데이트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html#vpc-migrate-ipv6-routes)를 참조하세요.

### 를 사용하여 VPC 사전 조건 완료 AWS CLI
<a name="environments-cfg-elbv2-ipv6-dualstack.prereqs.cli"></a>

 AWS CLI 를 사용하여 사전 조건 구성을 완료하고 확인할 수 있습니다.

1. IPv6 CIDR 블록을 사용자 환경의 VPC와 연결

   1. [associate-vpc-cidr-block](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-vpc-cidr-block.html) 명령을 사용하여 CIDR 블록을 VPC에 연결합니다.

   1. [describe-vpcs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpcs.html) 명령을 사용하여 VPC 구성을 확인하세요.

   

     
**Example   명령**  

   ```
   # Associate an Amazon-provided IPv6 CIDR block with your VPC
   aws ec2 associate-vpc-cidr-block \
       --vpc-id vpc-12345678 \
       --region us-east-1  \
       --amazon-provided-ipv6-cidr-block
   
   # Verify the IPv6 CIDR block association
   aws ec2 describe-vpcs \
       --vpc-ids vpc-12345678 \
       --region us-east-1  \
       --query 'Vpcs[0].Ipv6CidrBlockAssociationSet'
   ```

1. VPC의 모든 서브넷에 IPv6 CIDR 블록을 연결하세요.

   1. [associate-subnet-cidr-block](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-subnet-cidr-block.html) 명령을 사용하여 CIDR 블록을 VPC에 연결합니다.

   1. [describe-subnets](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-subnets.html) 명령을 사용하여 서브넷 구성을 확인합니다.

   

     
**Example   명령**  

   ```
   # List all subnets in your VPC
   aws ec2 describe-subnets \
       --region us-east-1  \
       --filters "Name=vpc-id,Values=vpc-12345678" \
       --query 'Subnets[].{SubnetId:SubnetId,AvailabilityZone:AvailabilityZone}'
   
   # Associate IPv6 CIDR block with each subnet
   aws ec2 associate-subnet-cidr-block \
       --subnet-id subnet-12345678 \
       --region us-east-1  \
       --ipv6-cidr-block 2001:db8::/64
   
   # Verify IPv6 CIDR block association for all subnets
   aws ec2 describe-subnets \
       --region us-east-1  \
       --filters "Name=vpc-id,Values=vpc-12345678" \
       --query 'Subnets[].{SubnetId:SubnetId,Ipv6CidrBlock:Ipv6CidrBlockAssociationSet[0].Ipv6CidrBlock}'
   ```

1.  (선택 사항) 환경이 VPC 외부의 구성 요소와 네트워크 트래픽을 주고받는 경우, VPC가 통신할 수 있는 네트워크를 지정하는 라우팅 테이블이 필요합니다. 이 경우, IPv6 트래픽을 활성화하려면 VPC 라우팅 테이블을 업데이트해야 합니다.

   1. [create-route](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-route.html) 명령을 사용하여 VPC 내 라우팅 테이블에 경로를 추가합니다.

   1. [describe-route-tables](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-route-tables.html) 명령을 사용하여 라우팅 테이블을 확인합니다.

   

     
**Example   명령**  

   ```
   # Add IPv6 route to Internet Gateway for public subnets
   aws ec2 create-route \
       --route-table-id rtb-12345678 \
       --destination-ipv6-cidr-block ::/0 \
       --gateway-id igw-12345678  \
       --region us-east-1
   
   # Add IPv6 route to NAT Gateway for private subnets (if applicable)
   aws ec2 create-route \
       --route-table-id rtb-87654321 \
       --destination-ipv6-cidr-block ::/0 \
       --nat-gateway-id nat-12345678 \
       --region us-east-1
   
   # Verify routes
   aws ec2 describe-route-tables \
       --route-table-ids rtb-12345678 \
       --region us-east-1 \
       --query 'RouteTables[0].Routes'
   ```

## 듀얼 스택 Elastic Beanstalk 로드 밸런서 구성
<a name="environments-cfg-elbv2-ipv6-dualstack.enable"></a>

환경에 VPC 사전 조건 구성을 설정한 후 IPv4 및 IPv6 프로토콜을 모두 제공할 수 있도록 듀얼 스택 옵션으로 로드 밸런서를 구성할 수 있습니다. Elastic Beanstalk 콘솔, AWS CLI,의 구성 파일 `.ebextensions`및 AWS SDK를 사용하여 듀얼 스택 트래픽을 제공하도록 로드 밸런서를 구성할 수 있습니다.

### 콘솔 사용
<a name="environments-cfg-elbv2-ipv6-dualstack.enable.console"></a>

Elastic Beanstalk 콘솔을 사용하여 환경의 로드 밸런서에 대해 듀얼 스택 구성을 설정할 수 있습니다.

**참고**  
이 구성은 여러 시점의 데이터 전파 시기에 따라 달라집니다. 로드 밸런서를 구성하고 변경 사항을 테스트할 때 다음 타이밍 요구 사항을 고려하세요.  
*VPC 구성 시간.* [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs)에 설명된 VPC 구성을 완료한 후 변경 사항이 전파될 때까지 몇 분 기다린 후 다음 절차를 따릅니다. 듀얼 스택 설정 중에 VPC 또는 서브넷 구성 오류가 발생하면 몇 분 정도 기다렸다가 구성 단계를 다시 시도하세요.  
*DNS 전파 시간입니다.* `IpAddressType` 옵션을 *듀얼 스택*으로 설정한 후 변경 사항이 전파될 때까지 몇 분 기다렸다가 테스트합니다. Route 53 DNS 전파는 1\$12분 정도 소요될 수 있습니다. 이 과정 중 IPv6 프로토콜을 사용해 클라이언트에서 애플리케이션으로의 통신을 테스트하면 일시적인 문제가 발생할 수 있습니다.

**신규 환경 생성: 듀얼 스택 지원에 로드 밸런서를 구성하는 방법**

1. Elastic Beanstalk 콘솔을 실행하고 새 환경 생성을 위한 단계를 시작하세요. **서비스 액세스 구성** 페이지에서 **서비스 역할** 및 **EC2 인스턴스 프로파일** 필수 항목을 설정한 후, 이 절차의 다음 단계로 진행하여 로드 밸런서를 듀얼 스택 구성으로 설정하세요. 시작하는 데 필요한 자세한 내용은 [Elastic Beanstalk 환경 생성](using-features.environments.md) 섹션을 참조하세요.

1. **서비스 액세스 구성** 단계에서 **다음**을 선택하세요.

1. **네트워킹, 데이터베이스 및 태그 설정** 페이지가 표시됩니다.

   이전 섹션에서 설명한 [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs) 항목을 완료한 경우, 필요한 VPC와 서브넷을 이미 설정한 것입니다. 이 경우 이 단계를 하위 단계와 함께 건너뛰고 계속 진행하여 VPC를 선택합니다.

   1. VPC 및 서브넷을 구성하려면 **VPC 생성** 선택하여 VPC 콘솔로 이동할 수 있습니다. [콘솔을 사용하여 VPC 사전 구성 완료](#environments-cfg-elbv2-ipv6-dualstack.prereqs.console) 섹션의 단계를 따르세요.

   1.  VPC 업데이트가 전파되기까지 몇 분 정도 소요될 수 있으니 기다린 후, Elastic Beanstalk 콘솔로 돌아가 새로 고침을 선택하고 다음 단계로 계속 진행하세요.

       나머지 단계에서 VPC 또는 서브넷 구성 오류가 발생하면 VPC 구성이 전파될 때까지 몇 분 정도 기다렸다가 단계를 다시 시도하세요.

1. **네트워킹, 데이터베이스 및 태그 설정** 페이지에서 IPv6 CIDR 블록이 연결된 **VPC**를 VPC 드롭다운에서 선택하세요.

   VPC를 선택하면 **인스턴스 서브넷**이 VPC 서브넷으로 채워집니다.

1. **인스턴스 서브넷**을 하나 이상 선택한 후 **다음**을 선택합니다.

1. **인스턴스 트래픽 및 규모 조정 구성** 페이지가 표시됩니다.

   **로드 밸런서 네트워크 설정**에서 **Dualstack (IPv4 & IPv6)** 항목을 **활성화**로 선택하세요.

1. **로드 밸런서 유형**을 선택합니다. **Application Load Balancer**와 **Network Load Balancer** 모두 *dualstack*을 지원합니다.

1. 현재 콘솔 페이지에서 로드 밸런서의 다른 옵션도 계속 구성할 수 있습니다. 로드 밸런서 옵션 및 구성에 대한 자세한 내용은 이 장의 다른 주제를 참조하세요.

1. 단계를 계속 진행하여 환경의 구성 및 생성을 완료합니다. 자세한 내용은 [Elastic Beanstalk 환경 생성](using-features.environments.md) 단원을 참조하십시오.



**기존 환경: 듀얼 스택 지원에 로드 밸런서를 구성하는 방법**

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

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

1. 탐색 창에서 **구성**을 선택합니다.

1. **네트워크 및 데이터베이스** 구성 범주에서 **편집**을 선택합니다.

1. 이전 섹션에서 설명한 [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs) 항목을 완료한 경우, 필요한 VPC와 서브넷을 이미 설정한 것입니다. 이 경우 이 단계를 하위 단계와 함께 건너뛰고 계속 진행하여 VPC를 선택합니다.

   1. VPC 및 서브넷을 구성하려면 **VPC 생성** 선택하여 VPC 콘솔로 이동할 수 있습니다. [콘솔을 사용하여 VPC 사전 구성 완료](#environments-cfg-elbv2-ipv6-dualstack.prereqs.console) 섹션의 단계를 따르세요.

   1.  VPC 업데이트가 전파되기까지 몇 분 정도 소요될 수 있으니 기다린 후, Elastic Beanstalk 콘솔로 돌아가 새로 고침을 선택하고 다음 단계로 계속 진행하세요.

       나머지 단계에서 VPC 또는 서브넷 구성 오류가 발생하면 VPC 구성이 전파될 때까지 몇 분 정도 기다렸다가 단계를 다시 시도하세요.

1. **네트워크 및 데이터베이스** 페이지에서 IPv6 CIDR 블록이 연결된 값을 **VPC** 드롭다운에서 선택하세요.

   VPC를 선택하면 **인스턴스 서브넷**이 VPC 서브넷으로 채워집니다.

1. 하나 이상의 **인스턴스 서브넷**을 선택하세요.

1. 변경 사항을 저장하려면 페이지 하단에서 **적용**을 선택합니다.

1. **인스턴스 트래픽 및 스케일링(Instance traffic and scaling)** 구성 범주에서 **편집(Edit)**을 선택합니다.

1. **로드 밸런서 네트워크 설정**에서 **Dualstack (IPv4 & IPv6)** 항목을 **활성화**하도록 선택하세요.

1. 변경 사항을 저장하려면 페이지 하단에서 **적용**을 선택합니다.

### 사용 AWS CLI
<a name="environments-cfg-elbv2-ipv6-dualstack.enable.cli"></a>

 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 IPv6 및 IPv4 네트워크 트래픽을 모두 처리하도록 환경의 로드 밸런서를 구성할 수 있습니다. 이 섹션에서는 [aws:elbv2:loadbalancer](command-options-general.md#command-options-general-elbv2) 네임스페이스를 사용한 [create-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) 및 [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) 명령의 예제를 제공합니다.

**참고**  
이 구성은 여러 시점의 데이터 전파 시기에 따라 달라집니다. 로드 밸런서를 구성하고 변경 사항을 테스트할 때 다음 타이밍 요구 사항을 고려하세요.  
*VPC 구성 시간.* [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs)에 설명된 VPC 구성을 완료한 후 로드 밸런서에 듀얼 스택을 구성하기 위하여 이러한 명령을 실행하기 전에 변경 사항이 전파될 때까지 몇 분 정도 기다려 주세요. 듀얼 스택 설정 중에 VPC 또는 서브넷 구성 오류가 발생하면 몇 분 정도 기다렸다가 명령을 다시 시도하세요.  
*DNS 전파 시간입니다.* `IpAddressType` 옵션을 *듀얼 스택*으로 설정한 후 변경 사항이 전파될 때까지 몇 분 기다렸다가 테스트합니다. Route 53 DNS 전파는 1\$12분 정도 소요될 수 있습니다. 이 과정 중 IPv6 프로토콜을 사용해 클라이언트에서 애플리케이션으로의 통신을 테스트하면 일시적인 문제가 발생할 수 있습니다.

 

**Example 듀얼 스택 구성을 사용한 생성 환경(네임스페이스 옵션 인라인)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.0 running Python 3.8" \
--option-settings \
Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \
Namespace=aws:elbv2:loadbalancer,OptionName=IpAddressType,Value=dualstack
```



대안으로, 네임스페이스 옵션을 인라인으로 포함하는 대신 `options.json` 파일을 사용하여 해당 옵션을 지정하십시오. 다음 예제 명령은 [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) 명령을 설명합니다.

**Example 듀얼 스택 구성을 사용한 업데이트 환경(`options.json` 파일의 네임스페이스 옵션)**  

```
aws elasticbeanstalk update-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.0 running Python 3.8" \
--option-settings \ file://options.json
```

**Example**  

```
### example options.json ###
[
  {
    "Namespace": "aws:elbv2:loadbalancer",
    "OptionName": "IpAddressType",
    "Value": "dualstack"
  }
]
```



다음 예제는 기존 환경을 업데이트하여 `IpAddressType` 옵션을 *IPv4*로 설정합니다.

**참고**  
이 예제 `update-environment` 명령은 환경 구성을 듀얼 스택에서 IPv4로 롤백해야 할 경우 유용합니다.

**Example IpAddressType을 IPv4로 설정하기 위한 update-environment**  

```
aws elasticbeanstalk update-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2 v3.4.0 running Python 3.8" \
--option-settings \
Namespace=aws:elbv2:loadbalancer,OptionName=IpAddressType,Value=ipv4
```

### .ebextensions 구성 파일 사용
<a name="environments-cfg-elbv2-ipv6-dualstack.enable.ebx"></a>

환경의 로드 밸런서가 IPv6 및 IPv4 네트워크 트래픽을 모두 처리할 수 있도록 하려면 Elastic Beanstalk [구성 파일](ebextensions.md)을 사용할 수 있습니다. [aws:elbv2:loadbalancer](command-options-general.md#command-options-general-elbv2) 네임스페이스의 `IpAddressType` 옵션을 *dualstack*으로 설정하세요.

**참고**  
이 구성은 여러 시점의 데이터 전파 시기에 따라 달라집니다. 로드 밸런서를 구성하고 변경 사항을 테스트할 때 다음 타이밍 요구 사항을 고려하세요.  
*VPC 구성 시간.* [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs)에 설명된 VPC 구성을 완료한 후, `.ebextensions`구성을 적용하기 전에 몇 분간 VPC 변경 사항이 전파되도록 기다리세요. 이 구성 설정 중에 VPC 또는 서브넷 구성 오류가 발생하면 몇 분 정도 기다렸다가 다시 시도하세요.  
*DNS 전파 시간입니다.* `IpAddressType` 옵션을 *듀얼 스택*으로 설정한 후 변경 사항이 전파될 때까지 몇 분 기다렸다가 테스트합니다. Route 53 DNS 전파는 1\$12분 정도 소요될 수 있습니다. 이 과정 중 IPv6 프로토콜을 사용해 클라이언트에서 애플리케이션으로의 통신을 테스트하면 일시적인 문제가 발생할 수 있습니다.

**Example 로드 밸런서 듀얼 스택 구성을 위한 .ebextensions/options.config([간접 구문](ebextensions-optionsettings.md#ebextensions-optionsettings.title))**  

```
option_settings:
  aws:elbv2:loadbalancer:
    IpAddressType: dualstack
```

**Example 로드 밸런서 듀얼 스택 구성을 위한 .ebextensions/options.config([표준 구문](ebextensions-optionsettings.md#ebextensions-optionsettings.title))**  

```
option_settings:
  - namespace: aws:elbv2:loadbalancer
    option_name: IpAddressType
    value: dualstack
```

### AWS SDK 사용
<a name="environments-cfg-elbv2-ipv6-dualstack.enable.sdk"></a>

[AWS SDK](https://docs.aws.amazon.com//code-library/)를 사용하여 듀얼 스택을 구성할 수 있습니다. 이전 섹션에서 언급한 `update-environment` 및 `create-environment` AWS CLI 명령과 마찬가지로 [CreateEnvironment](https://docs.aws.amazon.com//elasticbeanstalk/latest/api/API_CreateEnvironment.html) 및 [UpdateEnvironment](https://docs.aws.amazon.com//elasticbeanstalk/latest/api/API_UpdateEnvironment.html) API 작업을 사용할 수 있습니다. `OptionSettings` 요청 파라미터를 사용하여 [aws:elbv2:loadbalancer](command-options-general.md#command-options-general-elbv2) 네임스페이스의 옵션을 지정합니다.

**참고**  
이 구성은 여러 시점의 데이터 전파 시기에 따라 달라집니다. 로드 밸런서를 구성하고 변경 사항을 테스트할 때 다음 타이밍 요구 사항을 고려하세요.  
*VPC 구성 시간.* [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs)에 설명된 VPC 구성을 완료한 후 변경 사항이 전파될 때까지 몇 분 정도 기다린 후 프로그램을 실행하여 듀얼 스택용 로드 밸런서를 구성합니다. 듀얼 스택 설정 중에 VPC 또는 서브넷 구성 오류가 발생하면 몇 분 정도 기다렸다가 듀얼 스택 구성을 위한 프로그램을 다시 실행해 보십시오.  
*DNS 전파 시간입니다.* `IpAddressType` 옵션을 *듀얼 스택*으로 설정한 후 변경 사항이 전파될 때까지 몇 분 기다렸다가 테스트합니다. Route 53 DNS 전파는 1\$12분 정도 소요될 수 있습니다. 이 과정 중 IPv6 프로토콜을 사용해 클라이언트에서 애플리케이션으로의 통신을 테스트하면 일시적인 문제가 발생할 수 있습니다.

## 문제 해결
<a name="environments-cfg-elbv2-ipv6-dualstack.troubleshooting"></a>

**AI 지원 문제 해결을 위해 Amazon Q Developer CLI 사용**  
 Amazon Q Developer CLI를 사용하면 환경 문제를 신속하게 해결할 수 있습니다. Q CLI는 환경 상태를 확인하고, 이벤트를 검토하고, 로그를 분석하고, 명확한 질문을 하여 솔루션을 제공합니다. 자세한 내용과 자세한 안내는 AWS 블로그의 [Amazon Q Developer CLI를 사용한 Elastic Beanstalk 환경 문제 해결을 ](https://aws.amazon.com/blogs/devops/troubleshooting-elastic-beanstalk-environments-with-amazon-q-developer-cli/) 참조하세요.

이 섹션에서는 로드 밸런서 듀얼 스택 구성 관련 문제를 해결하기 위한 지침을 제공합니다.

**이벤트:** *VPC *vpc\$1id*에 IPv6 CIDR 블록이 구성되어 있지 않습니다. 듀얼 스택 로드 밸런서를 사용하려면 IPv6 CIDR 블록이 필요합니다. 듀얼 스택 모드를 사용하기 전에 VPC에 IPv6 CIDR 블록을 연결하세요.*

VPC와 모든 서브넷에는 IPv6 CIDR 블록이 연결되어 있어야 합니다. 이는 듀얼 스택 지원을 위해 로드 밸런서를 구성하기 전에 완료해야 하는 VPC 사전 조건 중 하나입니다. 이 작업을 완료하는 데 필요한 자세한 내용은 이 주제 전반부의 [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs) 섹션을 참조하세요.

 **이벤트:** *VPC *vpc\$1id*의 하나 이상의 서브넷에 IPv6 CIDR 블록이 구성되어 있지 않습니다. 듀얼 스택 로드 밸런서와 함께 사용할 서브넷에는 반드시 IPv6 CIDR 블록이 연결되어 있어야 합니다. 듀얼 스택 모드를 사용하기 전에 IPv6 CIDR 블록을 모든 필수 서브넷과 연결하세요.*

VPC의 모든 서브넷에는 IPv6 CIDR 블록이 연결되어 있어야 합니다. 이는 듀얼 스택 지원을 위해 로드 밸런서를 구성하기 전에 완료해야 하는 VPC 사전 조건 중 하나입니다. 이 작업을 완료하는 데 필요한 자세한 내용은 이 주제 전반부의 [Amazon VPC 사전 조건](#environments-cfg-elbv2-ipv6-dualstack.prereqs) 섹션을 참조하세요.

 **오류:** *이 `IpAddressType` 옵션은 Application Load Balancer 또는 Network Load Balancer로 구성된 Elastic Beanstalk 환경에서만 적용할 수 있습니다.*

이 메시지는 사용자의 Elastic Beanstalk 환경이 단일 인스턴스 환경이거나 Classic Load Balancer를 사용하고 있을 수 있음을 나타냅니다. Application Load Balancer 또는 Network Load Balancer로 구성된 환경에서만 `IpAddressType`를 구성할 수 있습니다.

# 액세스 로그 구성
<a name="environments-cfg-loadbalancer-accesslogs"></a>

[구성 파일](ebextensions.md)을 사용하여 액세스 로그를 Amazon S3 버킷에 업로드하도록 환경 로드 밸런서를 구성할 수 있습니다. 자세한 내용은 GitHub의 다음 예제 구성 파일을 참조하십시오.
+ `[loadbalancer-accesslogs-existingbucket.config](https://github.com/awslabs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-existingbucket.config)` – 액세스 로그를 기존의 Amazon S3 버킷에 업로드하도록 로드 밸런서를 구성합니다.
+ `[loadbalancer-accesslogs-newbucket.config](https://github.com/awslabs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/resource-configuration/loadbalancer-accesslogs-newbucket.config)` – 액세스 로그를 새 버킷에 업로드하도록 로드 밸런서를 구성합니다.