

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

# Classic Load Balancer를 위한 HTTPS 리스너
<a name="elb-https-load-balancers"></a>

암호화된 연결(*SSL 오프로드*라고도 함)을 위해 SSL/TLS 프로토콜을 사용하는 로드 밸런서를 생성할 수 있습니다. 이 기능을 사용하면 로드 밸런서와 HTTPS 세션을 시작하는 클라이언트 간에, 그리고 로드 밸런서와 EC2 인스턴스 간 연결에 대해 트래픽 암호화가 가능합니다.

Elastic Load Balancing은 *보안 정책*이라고 하는 SSL(보안소켓 계층) 협상 구성을 사용하여 클라이언트와 로드 밸런서 간의 연결을 협상합니다. 프런트 엔드 연결에서 HTTPS/SSL을 사용하면 사전 정의 보안 정책이나 사용자 지정 보안 정책을 사용할 수 있습니다. 로드 밸런서에 SSL 인증서를 반드시 배포해야 합니다. 로드 밸런서는 이 인증서를 사용해 연결을 종료하고 인스턴스로 전송하기 전에 클라이언트의 요청을 해독합니다. 로드 밸런서는 백엔드 연결에서 정적 암호 그룹을 사용합니다. 인스턴스에서 인증을 활성화하는 옵션을 선택할 수 있습니다.

Classic Load Balancer는 Server Name Indication(SNI)를 지원하지 않습니다. 대신에 다음 대안 중 하나를 사용할 수 있습니다.
+ 로드 밸런서에 한 개의 인증서를 배포하고 각 추가 웹사이트에 주체 대체 이름(SAN)을 추가합니다. SAN을 사용하면 하나의 인증서를 사용하여 여러 호스트 이름을 보호할 수 있습니다. 인증서별로 지원되는 SAN의 수와 SAN을 추가 및 삭제하는 방법에 대한 자세한 내용은 인증서 공급자에게 문의하십시오.
+ 프런트 엔드 및 백엔드 연결을 위한 포트 443에서 TCP 리스너를 사용하십시오. 로드 밸런서는 요청을 그대로 전달하므로 EC2 인스턴스에서 HTTPS 종료를 처리할 수 있습니다.

Classic Load Balancer는 상호 TLS 인증(mTLS)을 지원하지 않습니다. mTLS 지원을 위해 TCP 수신기를 생성합니다. 로드 밸런서는 요청을 그대로 전달하므로 EC2 인스턴스에서 mTLS를 구현할 수 있습니다.

**Topics**
+ [SSL/TLS 인증서](ssl-server-cert.md)
+ [SSL 협상 구성](elb-ssl-security-policy.md)
+ [사전 정의 SSL 보안 정책](elb-security-policy-table.md)
+ [HTTPS 로드 밸런서 생성](elb-create-https-ssl-load-balancer.md)
+ [HTTPS 리스너 구성](elb-add-or-delete-listeners.md)
+ [SSL 인증서 교체](elb-update-ssl-cert.md)
+ [SSL 협상 구성 업데이트](ssl-config-update.md)

# Classic Load Balancer를 위한 SSL/TLS 인증서
<a name="ssl-server-cert"></a>

프런트 엔드 리스너에서 HTTPS(SSL 또는 TLS)를 사용하는 경우에는 로드 밸런서에 SSL/TLS 인증서를 반드시 배포해야 합니다. 로드 밸런서는 이 인증서를 사용해 연결을 종료하고 인스턴스로 전송하기 전에 클라이언트의 요청을 해독합니다.

SSL 및 TLS 프로토콜은 X.509 인증서(SSL/TLS 서버 인증서)를 사용해 클라이언트와 백엔드 애플리케이션 모두를 인증합니다. X.509 인증서는 인증 기관(CA)에서 발급한 디지털 형태의 신분증으로, ID 정보, 유효 기간, 퍼블릭 키, 일련 번호, 발급자의 디지털 서명이 포함되어 있습니다.

 AWS Certificate Manager 또는 OpenSSL과 같은 SSL 및 TLS 프로토콜을 지원하는 도구를 사용하여 인증서를 생성할 수 있습니다. 로드 밸런서를 위한 HTTPS 리스너를 생성 또는 업데이트할 때 이 인증서를 지정합니다. 로드 밸런서와 함께 사용할 인증서를 생성할 때 도메인 이름을 지정해야 합니다.

로드 밸런서와 함께 사용할 인증서를 생성할 때 도메인 이름을 지정해야 합니다. 인증서의 도메인 이름은 사용자 지정 도메인 이름 레코드와 일치해야 합니다. 일치하지 않는 경우 TLS 연결을 확인할 수 없으므로 트래픽이 암호화되지 않습니다.

인증서에 `www.example.com`과 같은 정규화된 도메인 이름(FQDN) 또는 `example.com`과 같은 apex 도메인 이름을 지정해야 합니다. 별표(\$1)를 와일드카드로 사용하여 동일한 도메인 내에서 여러 사이트 이름을 보호할 수도 있습니다. 와일드카드 인증서를 요청할 때 별표(\$1)는 도메인 이름의 맨 왼쪽에 와야 하며 하나의 하위 도메인 수준만 보호할 수 있습니다. 예를 들어 `*.example.com`은 `corp.example.com` 및 `images.example.com`은 보호하지만 `test.login.example.com`을 보호할 수는 없습니다. 또한 `*.example.com`은 `example.com`의 하위 도메인만 보호하고 베어 또는 apex 도메인(`example.com`)은 보호하지 못합니다. 와일드카드 이름은 **주체** 필드와 인증서의 **주체 대체 이름** 확장에 표시됩니다. 퍼블릭 인증서 요청에 대한 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [퍼블릭 인증서 요청](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html#request-public-console)을 참조하세요.

## 를 사용하여 SSL/TLS 인증서 생성 또는 가져오기 AWS Certificate Manager
<a name="create-certificate-acm"></a>

 AWS Certificate Manager (ACM)을 사용하여 로드 밸런서에 대한 인증서를 생성하거나 가져오는 것이 좋습니다. ACM은 Elastic Load Balancing과 통합하여 로드 밸런서에 인증서를 배포합니다. 로드 밸런서에 인증서를 배포하려면 인증서가 로드 밸런서와 같은 리전에 있어야 합니다. 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [퍼블릭 인증서 요청](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) 또는 [인증서 가져오기](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)를 참조하세요.

사용자가 AWS Management Console을 사용하여 로드 밸런서에 인증서를 배포하려면 ACM `ListCertificates` API 작업에 대한 액세스를 허용해야 합니다. 자세한 내용은 *AWS Certificate Manager 사용 설명서*의 [인증서 목록 조회](https://docs.aws.amazon.com/acm/latest/userguide/security_iam_id-based-policy-examples.html#policy-list-certificates)를 참조하세요.

**중요**  
ACM과의 통합을 통해 로드 밸런서에 4096비트 RSA 키 또는 EC 키가 포함된 인증서를 설치할 수 없습니다. 로드 밸런서와 함께 사용하기 위해서는 4096비트 RSA 키 또는 EC 키가 포함된 인증서를 IAM에 업로드해야 합니다.

## IAM을 사용하여 SSL/TLS 인증서 확인
<a name="import-certificate-iam"></a>

ACM을 사용하지 않는 경우 OpenSSL과 같은 SSL/TLS 도구를 사용하여 인증서 서명 요청(CSR)을 생성하고 CA가 서명한 CSR을 가져와서 인증서를 만들고 IAM에 인증서를 업로드할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*에서 [서버 인증서 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)을 참조하세요.

# Classic Load Balancer를 위한 SSL 협상 구성
<a name="elb-ssl-security-policy"></a>

Elastic Load Balancing은 *보안 정책*이라고 하는 Secure Socket Layer(SSL) 협상 구성을 사용해 클라이언트와 로드 밸런서 간의 연결을 협상합니다. 보안 정책은 A security policy is a combination of SSL 프로토콜, SSL 암호 및 Server Order Preference 옵션의 조합입니다. 로드 밸런서를 위한 SSL 연결 구성에 대한 자세한 내용은 [Classic Load Balancer의 리스너](elb-listener-config.md)를 참조하십시오.

**Topics**
+ [보안 정책](#security-policy-types)
+ [SSL 프로토콜](#ssl-protocols)
+ [Server Order Preference](#server-order-preference)
+ [SSL 암호](#ssl-ciphers)
+ [백엔드 연결을 위한 암호 그룹](#elb-backend-cipher-suite)

## 보안 정책
<a name="security-policy-types"></a>

보안 정책은 클라이언트와 로드 밸런서 간의 SSL 협상 동안 어떤 암호와 프로토콜이 지원되는지 결정합니다. 사전 정의 또는 사용자 정의 보안 정책을 사용하도록 Classic Load Balancer를 구성할 수 있습니다.

 AWS Certificate Manager (ACM)에서 제공하는 인증서에는 RSA 퍼블릭 키가 포함되어 있습니다. 따라서 ACM가 제공하는 인증서를 사용할 경우 보안 정책에 RSA를 사용하는 암호 그룹을 반드시 포함하고 있어야 하며, 그렇지 않으면 TLS 연결에 실패합니다.

**사전 정의 보안 정책**  
가장 최근의 사전 정의 보안 정책의 이름에는 출시된 연과 월에 따른 버전 정보가 포함되어 있습니다. 예를 들어 기본 사전 정의 보안 정책은 `ELBSecurityPolicy-2016-08`입니다. 사전 정의 보안 정책이 새로 발표될 때마다 이를 사용하도록 구성을 업데이트할 수 있습니다.

사전 정의 보안 정책에서 지원되는 프로토콜 및 암호에 대한 자세한 내용은 [Classic Load Balancer에 대해 미리 정의된 SSL 보안 정책](elb-security-policy-table.md)를 참조하십시오.

**사용자 지정 보안 정책**  
필요한 암호와 프로토콜을 갖춘 사용자 지정 협상 구성을 생성할 수 있습니다. 예를 들어 일부 보안 규정 준수 표준(예: PCI 및 SOC)은 보안 표준 준수를 위해 특정한 프로토콜 및 암호 세트를 요구할 수 있습니다. 이러한 경우에는 이러한 표준을 충족하는 사용자 지정 보안 정책을 생성할 수 있습니다.

사용자 지정 보안 정책을 생성하는 방법에 대한 자세한 내용은 [Classic Load Balancer의 SSL 협상 구성 업데이트](ssl-config-update.md)를 참조하십시오.

## SSL 프로토콜
<a name="ssl-protocols"></a>

*SSL 프로토콜*은 클라이언트와 서버 간에 보안 연결을 설정하여 클라이언트와 로드 밸런서 간에 전달되는 모든 데이터를 안전하게 보호합니다.

Secure Sockets Layer(SSL)와 Transport Layer Security(TLS)는 인터넷 같이 보안성이 낮은 네트워크에서 기밀 데이터를 암호화하는 데 사용되는 암호화 프로토콜입니다. TLS 프로토콜은 SSL 프로토콜의 최신 버전입니다. Elastic Load Balancing 설명서에서는 SSL과 TLS 프로토콜 모두를 SSL 프로토콜이라고 지칭하고 있습니다.

**권장 프로토콜**  
미리 정의된 보안 정책인 ELBSecurityPolicy-TLS-1-2-2017-01에 사용되는 TLS 1.2를 사용하는 것이 좋습니다. 사용자 지정 보안 정책에 TLS 1.2를 사용할 수도 있습니다. 기본 보안 정책은 TLS 1.2와 이전 버전의 TLS를 모두 지원하므로 ELB SecurityPolicy-TLS-1-2-2017-01보다 보안 수준이 낮습니다.

**지원 중단된 프로토콜**  
이전에 사용자 지정 정책에서 SSL 2.0 프로토콜을 활성화한 경우에는 보안 정책을 미리 정의된 보안 정책 중 하나로 업데이트하는 것이 좋습니다.

## Server Order Preference
<a name="server-order-preference"></a>

Elastic Load Balancing은 클라이언트와 로드 밸런서 간의 연결 협상을 위해 *Server Order Preference* 옵션을 지원합니다. SSL 연결 협상이 이루어지는 동안 클라이언트와 로드 밸런서는 각각이 지원하는 암호 및 프로토콜 목록을 선호도 순으로 표시합니다. 기본적으로 클라이언트의 목록에서 로드 밸런서의 암호 중 하나와 일치하는 첫 번째 암호가 SSL 연결을 위해 선택됩니다. 로드 밸런서가 Server Order Preference를 지원하도록 구성이 되어 있으면 로드 밸런서가 클라이언트의 암호 목록에 있는 첫 번째 암호를 선택합니다. 따라서 로드 밸런서가 SSL 연결에 어떤 암호를 사용할 것인지 결정할 수 있습니다. Server Order Preference를 활성화하지 않은 경우에는 클라이언트가 표시한 암호의 순서가 클라이언트와 로드 밸런서 간의 연결 협상에 사용됩니다.

## SSL 암호
<a name="ssl-ciphers"></a>

*SSL 암호*는 코딩된 메시지를 생성하기 위해 암호화 키를 사용하는 암호화 알고리즘입니다. SSL 프로토콜은 여러 개의 SSL 암호를 사용해 인터넷 상의 데이터를 암호화합니다.

 AWS Certificate Manager (ACM)에서 제공하는 인증서에는 RSA 퍼블릭 키가 포함되어 있습니다. 따라서 ACM가 제공하는 인증서를 사용할 경우 보안 정책에 RSA를 사용하는 암호 그룹을 반드시 포함하고 있어야 하며, 그렇지 않으면 TLS 연결에 실패합니다.

Elastic Load Balancing은 클래식 로드 밸런서와 함께 사용할 수 있도록 다음 암호를 지원합니다. 사전 정의 SSL 정책에 따라 이 암호의 하위 집합을 평가합니다. 이들 암호는 모두 사용자 지정 정책에 사용할 수 있습니다. 기본 보안 정책에 포함된 암호들(별표(\$1)가 있는 암호들)만 사용하는 것이 좋습니다. 여타의 많은 암호들은 안전하지 않기 때문에 사용에 따른 위험은 사용자가 부담해야 합니다.

**암호(Ciphers)**
+ ECDHE-ECDSA-AES128-GCM-SHA256 \$1
+ ECDHE-RSA-AES128-GCM-SHA256 \$1
+ ECDHE-ECDSA-AES128-SHA256 \$1
+ ECDHE-RSA-AES128-SHA256 \$1
+ ECDHE-ECDSA-AES128-SHA \$1
+ ECDHE-RSA-AES128-SHA \$1
+ DHE-RSA-AES128-SHA
+ ECDHE-ECDSA-AES256-GCM-SHA384 \$1
+ ECDHE-RSA-AES256-GCM-SHA384 \$1
+ ECDHE-ECDSA-AES256-SHA384 \$1
+ ECDHE-RSA-AES256-SHA384 \$1
+ ECDHE-RSA-AES256-SHA \$1
+ ECDHE-ECDSA-AES256-SHA \$1
+ AES128-GCM-SHA256 \$1
+ AES128-SHA256 \$1
+ AES128-SHA \$1
+ AES256-GCM-SHA384 \$1
+ AES256-SHA256 \$1
+ AES256-SHA \$1
+ DHE-DSS-AES128-SHA
+ CAMELLIA128-SHA
+ EDH-RSA-DES-CBC3-SHA
+ DES-CBC3-SHA
+ ECDHE-RSA-RC4-SHA
+ RC4-SHA
+ ECDHE-ECDSA-RC4-SHA
+ DHE-DSS-AES256-GCM-SHA384
+ DHE-RSA-AES256-GCM-SHA384
+ DHE-RSA-AES256-SHA256
+ DHE-DSS-AES256-SHA256
+ DHE-RSA-AES256-SHA
+ DHE-DSS-AES256-SHA
+ DHE-RSA-CAMELLIA256-SHA
+ DHE-DSS-CAMELLIA256-SHA
+ CAMELLIA256-SHA
+ EDH-DSS-DES-CBC3-SHA
+ DHE-DSS-AES128-GCM-SHA256
+ DHE-RSA-AES128-GCM-SHA256
+ DHE-RSA-AES128-SHA256
+ DHE-DSS-AES128-SHA256
+ DHE-RSA-CAMELLIA128-SHA
+ DHE-DSS-CAMELLIA128-SHA
+ ADH-AES128-GCM-SHA256
+ ADH-AES128-SHA
+ ADH-AES128-SHA256
+ ADH-AES256-GCM-SHA384
+ ADH-AES256-SHA
+ ADH-AES256-SHA256
+ ADH-CAMELLIA128-SHA
+ ADH-CAMELLIA256-SHA
+ ADH-DES-CBC3-SHA
+ ADH-DES-CBC-SHA
+ ADH-RC4-MD5
+ ADH-SEED-SHA
+ DES-CBC-SHA
+ DHE-DSS-SEED-SHA
+ DHE-RSA-SEED-SHA
+ EDH-DSS-DES-CBC-SHA
+ EDH-RSA-DES-CBC-SHA
+ IDEA-CBC-SHA
+ RC4-MD5
+ SEED-SHA
+ DES-CBC3-MD5
+ DES-CBC-MD5
+ RC2-CBC-MD5
+ PSK-AES256-CBC-SHA
+ PSK-3DES-EDE-CBC-SHA
+ KRB5-DES-CBC3-SHA
+ KRB5-DES-CBC3-MD5
+ PSK-AES128-CBC-SHA
+ PSK-RC4-SHA
+ KRB5-RC4-SHA
+ KRB5-RC4-MD5
+ KRB5-DES-CBC-SHA
+ KRB5-DES-CBC-MD5
+ EXP-EDH-RSA-DES-CBC-SHA
+ EXP-EDH-DSS-DES-CBC-SHA
+ EXP-ADH-DES-CBC-SHA
+ EXP-DES-CBC-SHA
+ EXP-RC2-CBC-MD5
+ EXP-KRB5-RC2-CBC-SHA
+ EXP-KRB5-DES-CBC-SHA
+ EXP-KRB5-RC2-CBC-MD5
+ EXP-KRB5-DES-CBC-MD5
+ EXP-ADH-RC4-MD5
+ EXP-RC4-MD5
+ EXP-KRB5-RC4-SHA
+ EXP-KRB5-RC4-MD5

\$1 기본 보안 정책 ELBSecurityPolicy-2016-08에 포함된 암호들입니다.

## 백엔드 연결을 위한 암호 그룹
<a name="elb-backend-cipher-suite"></a>

Classic Load Balancer는 백엔드 연결에 정적 암호 그룹을 사용합니다. Classic Load Balancer와 등록된 인스턴스가 연결을 협상할 수 없는 경우 다음 암호 중 하나를 포함하세요.
+ AES256-GCM-SHA384
+ AES256-SHA256
+ AES256-SHA
+ CAMELLIA256-SHA
+ AES128-GCM-SHA256
+ AES128-SHA256
+ AES128-SHA
+ CAMELLIA128-SHA
+ RC4-SHA
+ DES-CBC3-SHA
+ DES-CBC-SHA
+ DHE-DSS-AES256-GCM-SHA384
+ DHE-RSA-AES256-GCM-SHA384
+ DHE-RSA-AES256-SHA256
+ DHE-DSS-AES256-SHA256
+ DHE-RSA-AES256-SHA
+ DHE-DSS-AES256-SHA
+ DHE-RSA-CAMELLIA256-SHA
+ DHE-DSS-CAMELLIA256-SHA
+ DHE-DSS-AES128-GCM-SHA256
+ DHE-RSA-AES128-GCM-SHA256
+ DHE-RSA-AES128-SHA256
+ DHE-DSS-AES128-SHA256
+ DHE-RSA-AES128-SHA
+ DHE-DSS-AES128-SHA
+ DHE-RSA-CAMELLIA128-SHA
+ DHE-DSS-CAMELLIA128-SHA
+ EDH-RSA-DES-CBC3-SHA
+ EDH-DSS-DES-CBC3-SHA
+ EDH-RSA-DES-CBC-SHA
+ EDH-DSS-DES-CBC-SHA

# Classic Load Balancer에 대해 미리 정의된 SSL 보안 정책
<a name="elb-security-policy-table"></a>

HTTPS/SSL 리스너에 대한 사전 정의 보안 정책 중 하나를 선택할 수 있습니다. `ELBSecurityPolicy-TLS` 정책 중 하나를 사용하여 특정한 TLS 프로토콜 버전을 비활성화해야 하는 규정 준수 및 보안 표준을 충족할 수 있습니다. 또는 사용자 지정 보안 정책을 생성할 수 있습니다. 자세한 내용은 [SSL 협상 구성 업데이트](ssl-config-update.md) 단원을 참조하십시오.

RSA 기반 및 DSA 기반 암호는 SSL 인증서를 생성하는 데 사용되는 서명 알고리즘마다 고유합니다. 보안 정책에서 지원되는 암호들을 기반으로 하는 서명 알고리즘을 사용해서 SSL 인증서를 생성하십시오.

Server Order Preference가 활성화된 정책을 선택한 경우에는 로드 밸런서가 여기에 지정된 순서대로 암호를 사용하여 클라이언트와 로드 밸런서 간에 연결 협상을 합니다. 그렇지 않으면 로드 밸런서가 클라이언트에 표시된 순서대로 암호를 사용합니다.



아래 섹션에서는 활성화된 SSL 프로토콜 및 SSL 암호를 포함하여 Classic Load Balancer에 대해 가장 최근에 사전 정의된 보안 정책을 설명합니다. [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하여 사전 정의된 정책을 설명할 수 있습니다.

**작은 정보**  
이 정보는 Classic Load Balancer에만 적용됩니다. 다른 로드 밸런서에 적용되는 자세한 내용은 [Application Load Balancer에 대한 보안 정책](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html) 및 [Network Load Balancer에 대한 보안 정책](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html)을 참조하세요.

**Topics**
+ [정책별 프로토콜](#tls-protocols)
+ [정책별 암호](#tls-policy-ciphers)
+ [암호별 정책](#tls-cipher-policies)

## 정책별 프로토콜
<a name="tls-protocols"></a>

다음 표에서는 각 보안 정책이 지원하는 TLS 프로토콜을 설명합니다.


| 보안 정책 | TLS 1.2 | TLS 1.1 | TLS 1.0 | 
| --- | --- | --- | --- | 
| ELBSecurityPolicy-TLS-1-2-2017-01 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/negative_icon.svg) 아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/negative_icon.svg) 아니요 | 
| ELBSecurityPolicy-TLS-1-1-2017-01 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/negative_icon.svg) 아니요 | 
| ELBSecurityPolicy-2016-08 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | 
| ELBSecurityPolicy-2015-05 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | 
| ELBSecurityPolicy-2015-03 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | 
| ELBSecurityPolicy-2015-02 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/images/success_icon.svg) 예 | 

## 정책별 암호
<a name="tls-policy-ciphers"></a>

다음 표에서는 각 보안 정책이 지원하는 암호를 설명합니다.


| 보안 정책 | 암호(Ciphers) | 
| --- | --- | 
| ELBSecurityPolicy-TLS-1-2-2017-01 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-TLS-1-1-2017-01 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2016-08 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2015-05 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2015-03 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 
| ELBSecurityPolicy-2015-02 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 

## 암호별 정책
<a name="tls-cipher-policies"></a>

다음 표에서는 각 암호를 지원하는 보안 정책을 설명합니다.


| 암호 이름 | 보안 정책 | 암호 그룹 | 
| --- | --- | --- | 
|  **OpenSSL** – ECDHE-ECDSA-AES128-GCM-SHA256 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c02b | 
|  **OpenSSL** – ECDHE-RSA-AES128-GCM-SHA256 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c02f | 
|  **OpenSSL** – ECDHE-ECDSA-AES128-SHA256 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c023 | 
|  **OpenSSL** – ECDHE-RSA-AES128-SHA256 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c027 | 
|  **OpenSSL** – ECDHE-ECDSA-AES128-SHA **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c009 | 
|  **OpenSSL** – ECDHE-RSA-AES128-SHA **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c013 | 
|  **OpenSSL** – ECDHE-ECDSA-AES256-GCM-SHA384 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c02c | 
|  **OpenSSL** – ECDHE-RSA-AES256-GCM-SHA384 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c030 | 
|  **OpenSSL** – ECDHE-ECDSA-AES256-SHA384 **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c024 | 
|  **OpenSSL** – ECDHE-RSA-AES256-SHA384 **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c028 | 
|  **OpenSSL** – ECDHE-ECDSA-AES256-SHA **IANA** – TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c014 | 
|  **OpenSSL** – ECDHE-RSA-AES256-SHA **IANA** – TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | c00a | 
|  **OpenSSL** – AES128-GCM-SHA256 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 9c | 
|  **OpenSSL** – AES128-SHA256 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 3c | 
|  **OpenSSL** – AES128-SHA **IANA** – TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 2f | 
|  **OpenSSL** – AES256-GCM-SHA384 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 9d | 
|  **OpenSSL** – AES256-SHA256 **IANA** – TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 3d | 
|  **OpenSSL** – AES256-SHA **IANA** – TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 35 | 
|  **OpenSSL** – DHE-RSA-AES128-SHA **IANA** – TLS\$1DHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 33 | 
|  **OpenSSL** – DHE-DSS-AES128-SHA **IANA** – TLS\$1DHE\$1DSS\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 32 | 
|  **OpenSSL** – DES-CBC3-SHA **IANA** – TLS\$1RSA\$1WITH\$13DES\$1EDE\$1CBC\$1SHA  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/elb-security-policy-table.html)  | 0a | 

# HTTPS 리스너를 통해 Classic Load Balancer를 생성
<a name="elb-create-https-ssl-load-balancer"></a>

로드 밸런서는 클라이언트로부터 요청을 가져와서 로드 밸런서에 등록된 EC2 인스턴스에 이들을 분배합니다.

HTTP (80) 및 HTTPS (443) 포트 모두에서 로드 밸런서 리스너를 생성할 수 있습니다. HTTPS 리스너가 포트 80의 인스턴스로 요청을 전송하도록 지정한 경우에는 로드 밸런서가 요청을 종료하고 로드 밸런서에서 인스턴스로의 통신이 암호화되지 않습니다. HTTPS 리스너가 포트 443의 인스턴스로 요청을 전송하는 경우에는 로드 밸런서에서 인스턴스로의 통신이 암호화됩니다.

로드 밸런서가 인스턴스와의 통신을 위해 암호화된 연결을 사용하는 경우에는 선택에 따라 인스턴스 인증을 활성화할 수 있습니다. 따라서 퍼블릭 키가 통신 용도로 로드 밸런서에 지정한 키와 일치하는 경우에만 로드 밸런서가 인스턴스와 통신을 하도록 할 수 있습니다.

기존 로드 밸런서에 HTTPS 리스너를 추가하는 방법에 대한 자세한 내용은 [Classic Load Balancer를 위한 HTTPS 리스너 구성](elb-add-or-delete-listeners.md)를 참조하십시오.

**Topics**
+ [사전 조건](#elb-https-ssl-prerequisites)
+ [콘솔을 사용하여 HTTPS 로드 밸런서 생성](#create-https-lb-console)
+ [를 사용하여 HTTPS 로드 밸런서 생성 AWS CLI](#create-https-lb-clt)

## 사전 조건
<a name="elb-https-ssl-prerequisites"></a>

시작하기 전에 다음 사전 조건을 충족해야 합니다.
+ [VPC 관련 권장 사항](elb-backend-instances.md#set-up-ec2)의 단계를 수행합니다.
+ 로드 밸런서에 등록할 계획인 EC2 인스턴스를 시작합니다. 이들 인스턴스를 위한 보안 그룹은 로드 밸런서에서 나오는 트래픽을 허용해야 합니다.
+ EC2 인스턴스는 HTTP 상태 코드 200을 통해 상태 확인 대상에 응답해야 합니다. 자세한 내용은 [Classic Load Balancer의 인스턴스 상태 확인](elb-healthchecks.md) 단원을 참조하십시오.
+ EC2 인스턴스에서 연결 유지 옵션을 활성화할 계획이라면 연결 유지 설정을 최소한 로드 밸런서의 유휴 제한 시간 설정으로 설정하는 것이 좋습니다. 로드 밸런서가 인스턴스에 대한 연결을 종료할 책임이 있는지 확인하고 싶다면 연결 유지 시간 동안 인스턴스에 설정된 값이 로드 밸런서의 유휴 제한 시간 설정보다 큰지 확인합니다. 자세한 내용은 [Classic Load Balancer에 대한 유휴 연결 제한 시간 구성](config-idle-timeout.md) 단원을 참조하십시오.
+ 보안 리스너를 생성하는 경우에는 로드 밸런서에 SSL 서버 인증서를 반드시 배포해야 합니다. 로드 밸런서는 이 인증서를 사용해 연결을 종료하고 인스턴스로 전송하기 전에 요청을 해독합니다. SSL 인증서가 없는 경우에는 하나를 생성할 수 있습니다. 자세한 내용은 [Classic Load Balancer를 위한 SSL/TLS 인증서](ssl-server-cert.md) 단원을 참조하십시오.

## 콘솔을 사용하여 HTTPS 로드 밸런서 생성
<a name="create-https-lb-console"></a>

이 예제에서는 로드 밸런서용으로 2개의 리스너를 구성합니다. 첫 번째 리스너는 포트 80에서 HTTP 요청을 수락하고 HTTP를 사용하여 포트 80의 인스턴스에 요청을 전송합니다. 두 번째 리스너는 포트 443에서 HTTPS 요청을 수락하고 포트 80에서 HTTP를 사용해 (또는 백엔드 인스턴스 인증을 구성하고 싶은 경우에는 포트 43에서 HTTPS를 사용해) 인스턴스에 이들을 전송합니다.

*리스너*는 연결 요청을 확인하는 프로세스입니다. 리스너는 프런트 엔드(클라이언트에서 로드 밸런서) 연결을 위한 프로토콜 및 포트와 백엔드(로드 밸런서에서 인스턴스) 연결을 위한 프로토콜 및 포트로 구성됩니다. Elastic Load Balancing에서 지원되는 포트, 프로토콜 및 리스너 구성에 대한 자세한 내용은 [Classic Load Balancer의 리스너](elb-listener-config.md) 섹션을 참조하세요.

**콘솔을 사용하여 보안 Classic Load Balancer를 생성하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 모음에서 로드 밸런서의 리전을 선택합니다. EC2 인스턴스를 위해 선택한 리전과 동일한 리전을 선택해야 합니다.

1. 탐색 창의 **Load Balancing** 아래에서 **로드 밸런서**를 선택합니다.

1. **로드 밸런서 생성**을 선택합니다.

1. **Classic Load Balancer** 섹션을 확장하고 **생성**을 선택합니다.

1. **기본 구성**

   1. **로드 밸런서 이름**에 로드 밸런서의 이름을 입력합니다.

      Classic Load Balancer의 이름은 해당 리전의 Classic Load Balancer 세트 내에서 고유한 이름이어야 하고, 최대 32자여야 하며, 알파벳 문자 및 하이픈만 포함해야 하고, 하이픈으로 시작하거나 끝나지 않아야 합니다.

   1. **스키마**에서 **인터넷 연결**을 선택합니다.

1. **네트워크 매핑**

   1. **VPC**에서는 인스턴스에 대해 선택한 것과 동일한 VPC를 선택합니다.

   1. **매핑**에서 먼저 가용 영역을 선택하고, 사용 가능한 서브넷 중에서 퍼블릭 서브넷을 선택합니다. 가용 영역당 서브넷 한 개만 선택할 수 있습니다. 로드 밸런서의 가용성을 높이려면 둘 이상의 가용 영역과 서브넷을 선택합니다.

1. **보안 그룹**

   1. **보안 그룹**에서 포트 80에서 필요한 HTTP 트래픽과 포트 443에서 필요한 HTTPS 트래픽을 허용하도록 구성된 기존 보안 그룹을 선택합니다.

     보안 그룹이 없는 경우 필요한 규칙을 사용하여 새 보안 그룹을 생성할 수 있습니다.

1. **리스너 및 라우팅**

   1. 기본 리스너를 기본 설정으로 두고 **리스너 추가**를 선택합니다.

   1. 새 리스너의 **리스너**에서 `HTTPS`를 프로토콜로 선택하면 포트가 `443`으로 업데이트됩니다. 기본적으로 **인스턴스**는 포트 `80`에서 `HTTP` 프로토콜을 사용합니다.

   1. 백엔드 인증이 필요한 경우 **인스턴스** 프로토콜을 `HTTPS`로 변경합니다. 이렇게 해도 **인스턴스** 포트가 `443`으로 업데이트됩니다.

1. **보안 리스너 설정**

   프런트 엔드 리스너에서 HTTPS 또는 SSL을 사용할 때는 로드 밸런서에 SSL 인증서를 반드시 배포해야 합니다. 로드 밸런서는 이 인증서를 사용해 연결을 종료하고 인스턴스로 전송하기 전에 클라이언트의 요청을 해독합니다. 또한 보안 그룹을 반드시 지정해야 합니다. Elastic Load Balancing이 SSL 협상 구성이 사전 정의되어 있는 보안 정책을 제공하거나 사용자가 보안 정책을 자체적으로 지정할 수 있습니다. 백엔드 연결에서 HTTPS/SSL을 설정한 경우에는 인스턴스 인증을 설정할 수 있습니다.

   1. **보안 정책**의 경우 항상 최신 사전 정의 보안 정책을 사용하거나 사용자 지정 정책을 생성하는 것이 좋습니다. [Update the SSL Negotiation Configuration](ssl-config-update.md#ssl-config-update-console)을 참조하세요.

   1. **기본 SSL/TLS 인증서**에서 다음 옵션을 사용할 수 있습니다.
      + 를 사용하여 인증서를 생성하거나 가져온 경우 **ACM에서**를 AWS Certificate Manager선택한 다음 인증서 **선택에서 인증서를** 선택합니다.
      + IAM을 사용하여 인증서를 가져온 경우 **IAM에서**를 선택하고 **인증서 선택**에서 인증서를 선택합니다.
      + 가져올 인증서가 있지만 리전에서 ACM을 이용할 수 없는 경우 **가져오기**를 선택하고 **IAM으로**를 선택합니다. **인증서 이름** 필드에 인증서의 이름을 입력합니다. **인증서 프라이빗 키**에서 프라이빗 키 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여넣습니다. **인증서 본문**에서 퍼블릭 키 인증서 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여 넣습니다. 자체 서명 인증서를 사용하고 있지 않고 브라우저가 인증서를 묵시적으로 수락하는 것이 중요하지 않다면 **인증서 체인(Certificate Chain)**에 인증서 체인 파일(PEM 인코딩)의 콘텐츠를 복사해 붙여 넣습니다.

   1. 암호화된 연결을 사용해 인스턴스와 통신을 하도록 HTTPS 리스너를 구성한 경우에는 **백엔드 인증 인증서**에서 인스턴스 인증을 설정할 수 있습니다.
**참고**  
**백엔드 인증 인증서** 섹션이 보이지 않는 경우 **리스너 및 라우팅**으로 돌아가 `HTTPS`를 **인스턴스**의 프로토콜로 선택합니다.

      1. **Certificate name**에 퍼블릭 키 인증서의 이름을 입력합니다.

      1. **인증서 본문(PEM 인코딩)**에서 인증서의 콘텐츠를 복사해 붙여넣습니다. 퍼블릭 키가 이 키와 일치하는 경우에만 로드 밸런서가 인스턴스와 통신을 합니다.

      1. 다른 인증서를 추가하려면 **새 백엔드 인증서 추가**를 선택합니다. 5개까지 가능합니다.

1. **상태 확인**

   1. **ping 대상** 섹션에서 **ping 프로토콜**과 **ping 포트**를 선택합니다. EC2 인스턴스는 지정된 ping 포트에서 트래픽을 수락해야 합니다.

   1. **ping 포트**에서 포트가 `80`인지 확인합니다.

   1. **ping 경로**에서 기본값을 슬래시 하나(`/`)로 대체합니다. 이렇게 하면 Elastic Load Balancing에 `index.html`와 같은 웹 서버의 기본 홈 페이지에 상태 확인 쿼리를 보내도록 지시합니다.

   1. **고급 상태 확인 설정**에서 기본값을 사용합니다.

1. **인스턴스**

   1. **인스턴스 추가**를 선택하면 인스턴스 선택 화면이 나타납니다.

   1. **사용 가능한 인스턴스**에서 앞서 선택한 네트워크 설정을 기반으로 로드 밸런서에 사용 가능한 현재 인스턴스 중 선택할 수 있습니다.

   1. 원하는 대로 선택했다면 **확인**을 선택하여 로드 밸런서에 등록할 인스턴스를 추가합니다.

1. **속성**

   1. **교차 영역 로드 밸런싱 활성화**, **Connection Draining 활성화**, **제한 시간(드레이닝 간격)**의 기본값은 유지합니다.

1. **로드 밸런서 태그(선택 사항)**

   1. **키** 필드는 필수입니다.

   1. **값** 필드는 선택 사항입니다.

   1. 다른 태그를 추가하려면 **새 태그 추가**를 선택하고 **키** 필드 및 **값** 필드(선택 사항)에 값을 입력합니다.

   1. 제거하려는 태그 옆에 있는 **제거**를 선택하여 기존 태그를 제거합니다.

1. **요약 및 생성**

   1. 설정을 변경해야 하는 경우 변경해야 하는 설정 옆에 있는 **편집**을 선택합니다.

   1. 요약에 표시된 모든 설정이 원하는 대로 되어 있다면 **로드 밸런서 생성**을 선택하여 로드 밸런서 생성을 시작합니다.

   1. 마지막 생성 페이지에서 **로드 밸런서 보기**를 선택하여 Amazon EC2 콘솔에서 로드 밸런서를 봅니다.

1. **Verify**

   1. 새로운 로드 밸런서를 선택합니다.

   1. **대상 인스턴스** 탭에서 **상태 확인** 열을 확인합니다. EC2 인스턴스 중 적어도 하나 이상이 **서비스** 상태가 되어야만 로드 밸런서를 테스트할 수 있습니다.

   1. **세부 정보** 섹션에서 로드 밸런서 **DNS 이름**을 복사합니다(`my-load-balancer-1234567890.us-east-1.elb.amazonaws.com`과 유사함).

   1. 로드 밸런서 **DNS 이름**을 퍼블릭 인터넷에 연결된 웹 브라우저의 주소 필드에 붙여넣습니다. 로드 밸런서가 올바르게 작동 중인 경우 서버의 기본 페이지가 표시됩니다.

1. **삭제(선택 사항)**

   1. 로드 밸런서를 가리키는 도메인을 위한 CNAME 레코드가 있는 경우에는 새로운 위치를 가리키도록 하고 로드 밸런서를 삭제하기 전에 DNS 변경이 적용될 때까지 기다립니다.

   1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

   1. 로드 밸런서를 선택합니다.

   1. **작업**, **로드 밸런서 삭제**를 선택합니다.

   1. 확인 메시지가 나타나면 `confirm`을 입력한 다음 **삭제**를 선택합니다.

   1. 로드 밸런서를 삭제한 후에도 로드 밸런서에 등록된 EC2 인스턴스는 계속 실행됩니다. 계속 실행되는 일부 또는 전체 시간별로 요금이 청구됩니다. EC2 인스턴스가 더 이상 필요하지 않은 경우 추가 요금이 발생하지 않도록 중지하거나 종료할 수 있습니다.

## 를 사용하여 HTTPS 로드 밸런서 생성 AWS CLI
<a name="create-https-lb-clt"></a>

다음 지침에 따라 AWS CLI를 사용하여 HTTPS/SSL 로드 밸런서를 만드십시오.

**Topics**
+ [1단계: 리스너 구성](#configuring_listener_clt)
+ [2단계: SSL 보안 정책 구성](#configure_ciphers_clt)
+ [3단계: 백엔드 인스턴스 인증 구성(선택 사항)](#configure_backendauth_clt)
+ [4단계: 상태 확인 구성(선택 사항)](#configure_healthcheck_clt)
+ [5단계: EC2 인스턴스 등록](#add_ec2instances_clt)
+ [6단계: 인스턴스 확인](#verify-ec2instances-clt)
+ [7단계: 로드 밸런서 삭제(선택 사항)](#us-tearing-lb-cli)

### 1단계: 리스너 구성
<a name="configuring_listener_clt"></a>

*리스너*는 연결 요청을 확인하는 프로세스입니다. 리스너는 프런트 엔드(클라이언트에서 로드 밸런서) 연결을 위한 프로토콜 및 포트와 백엔드(로드 밸런서에서 인스턴스) 연결을 위한 프로토콜 및 포트로 구성됩니다. Elastic Load Balancing에서 지원되는 포트, 프로토콜 및 리스너 구성에 대한 자세한 내용은 [Classic Load Balancer의 리스너](elb-listener-config.md) 섹션을 참조하세요.

이 예제에서는 프런트 엔드 및 백엔드 연결에 사용할 포트와 프로토콜을 지정하여 로드 밸런서용으로 2개의 리스너를 구성합니다. 첫 번째 리스너는 포트 80에서 HTTP 요청을 수락하고 HTTP를 사용하여 포트 80의 인스턴스에 요청을 전송합니다. 두 번째 리스너는 포트 443에서 HTTPS 요청을 수락하고 포트 80의 HTTP를 사용하여 인스턴스에 요청을 전송합니다.

두 번째 리스너가 프런트 엔드 연결을 위해 HTTPS를 사용하기 때문에 로드 밸런서에 SSL 서버 인증서를 반드시 배포해야 합니다. 로드 밸런서는 이 인증서를 사용해 연결을 종료하고 인스턴스로 전송하기 전에 요청을 해독합니다.

**로드 밸런서를 위한 리스너를 구성하려면**

1. SSL 인증서의 Amazon 리소스 이름(ARN)을 가져옵니다. 다음 예를 참조하십시오.

   **ACM**

   ```
   arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

   **IAM**

   ```
   arn:aws:iam::123456789012:server-certificate/my-server-certificate
   ```

1. 두 개의 리스너를 가진 로드 밸런서를 구성하려면 아래 [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer.html) 명령을 사용하세요.

   ```
   aws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=http,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=80" "Protocol=https,LoadBalancerPort=443,InstanceProtocol=http,InstancePort=80,SSLCertificateId="ARN" --availability-zones us-west-2a
   ```

   다음은 응답의 예입니다.

   ```
   {
     "DNSName": "my-loadbalancer-012345678.us-west-2.elb.amazonaws.com"
   }
   ```

1. (선택 사항) 로드 밸런서의 세부 정보를 확인하려면 아래 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancers --load-balancer-name my-load-balancer
   ```

### 2단계: SSL 보안 정책 구성
<a name="configure_ciphers_clt"></a>

사전 정의 보안 정책 중 하나를 선택하거나 보안 정책을 자체적으로 지정할 수 있습니다. 그렇지 않으면 Elastic Load Balancing이 기본적인 사전 정의 보안 정책, `ELBSecurityPolicy-2016-08`을 통해 로드 밸런서를 구성합니다. 자세한 내용은 [Classic Load Balancer를 위한 SSL 협상 구성](elb-ssl-security-policy.md) 단원을 참조하십시오.

**로드 밸런서가 기본 보안 정책에 연결되어 있는지 확인하려면**  
아래 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 명령을 사용하세요.

```
aws elb describe-load-balancers --load-balancer-name my-loadbalancer
```

다음은 응답의 예입니다. `ELBSecurityPolicy-2016-08`는 포트 443의 로드 밸런서와 연결되어 있습니다.

```
{
    "LoadBalancerDescriptions": [
        {
            ...
            "ListenerDescriptions": [
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "SSLCertificateId": "ARN", 
                        "LoadBalancerPort": 443, 
                        "Protocol": "HTTPS", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": [
                        "ELBSecurityPolicy-2016-08"
                    ]
                }, 
                {
                    "Listener": {
                        "InstancePort": 80, 
                        "LoadBalancerPort": 80, 
                        "Protocol": "HTTP", 
                        "InstanceProtocol": "HTTP"
                    }, 
                    "PolicyNames": []
                }
            ],
            ...
        }
    ]
}
```

원할 경우, 기본 보안 정책을 사용하는 대신 로드 밸런서에 대한 SSL 보안 정책을 구성할 수 있습니다.

**(선택 사항) 사전 정의 SSL 보안 정책을 사용하려면**

1. 사전 정의 보안 정책의 이름 목록을 보려면 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancer-policies
   ```

   사전 정의 보안 정책을 위한 구성에 대한 자세한 내용은 [Classic Load Balancer에 대해 미리 정의된 SSL 보안 정책](elb-security-policy-table.md)를 참조하십시오.

1. 이전 단계에서 설명한 사전 정의 보안 정책 중 하나를 사용하여 SSL 협상 정책을 생성하려면 아래 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 명령을 사용하세요.

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer
   --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
   --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=predefined-policy
   ```

1. (선택 사항) 정책이 생성되었는지 확인하려면 아래 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   이 요청에는 정책에 대한 설명이 포함되어 있습니다.

1. 로드 밸런서 포트 443에서 정책을 활성화하려면 아래 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 명령을 사용하세요.

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**참고**  
`set-load-balancer-policies-of-listener` 명령은 지정된 로드 밸런서 포트를 위한 현재 정책 세트를 지정된 정책 세트로 대체합니다. `--policy-names` 목록에는 활성화할 모든 정책이 반드시 포함되어 있어야 합니다. 현재 활성화된 정책을 누락하면 이 정책은 비활성화됩니다.

1. (선택 사항) 정책이 활성화되었는지 확인하려면 아래 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   다음은 포트 443에서 정책이 활성화되었음을 보여주는 응답의 예입니다.

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

사용자 지정 보안 정책을 생성할 때는 한 개 이상의 프로토콜과 한 개의 암호를 반드시 활성화해야 합니다. DSA 및 RSA 암호는 SSL 인증서를 생성하는 데 사용되는 서명 알고리즘마다 고유합니다. 이미 SSL 인증서를 가지고 있는 경우에는 인증서 생성에 사용된 암호를 반드시 활성화하십시오. 사용자 지정 정책의 이름은 `ELBSecurityPolicy-` 또는 `ELBSample-`로 시작할 수 없습니다. 이러한 접두사는 사전 정의 보안 정책의 이름으로 예약되어 있습니다.

**(선택 사항) 사용자 지정 SSL 보안 정책을 사용하려면**

1. 사용자 지정 보안 정책을 사용하여 SSL 협상 정책을 생성하려면 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 명령을 사용하세요. 다음 예를 참조하십시오.

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer 
    --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
    --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true 
    AttributeName=Protocol-TLSv1.1,AttributeValue=true 
    AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true 
    AttributeName=Server-Defined-Cipher-Order,AttributeValue=true
   ```

1. (선택 사항) 정책이 생성되었는지 확인하려면 아래 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   이 요청에는 정책에 대한 설명이 포함되어 있습니다.

1. 로드 밸런서 포트 443에서 정책을 활성화하려면 아래 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 명령을 사용하세요.

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**참고**  
`set-load-balancer-policies-of-listener` 명령은 지정된 로드 밸런서 포트를 위한 현재 정책 세트를 지정된 정책 세트로 대체합니다. `--policy-names` 목록에는 활성화할 모든 정책이 반드시 포함되어 있어야 합니다. 현재 활성화된 정책을 누락하면 이 정책은 비활성화됩니다.

1. (선택 사항) 정책이 활성화되었는지 확인하려면 아래 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   다음은 포트 443에서 정책이 활성화되었음을 보여주는 응답의 예입니다.

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ....
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "my-SSLNegotiation-policy"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ],
               ...
           }
       ]
   }
   ```

### 3단계: 백엔드 인스턴스 인증 구성(선택 사항)
<a name="configure_backendauth_clt"></a>

백엔드 연결에서 HTTPS/SSL을 설정한 경우에는 선택에 따라 인스턴스 인증을 설정할 수 있습니다.

백엔드 인스턴스 인증을 설정할 때 퍼블릭 키 정책을 생성합니다. 그런 다음, 이러한 퍼블릭 키 정책을 사용하여 백엔드 인스턴스 인증 정책을 생성합니다. 마지막으로 HTTPS 프로토콜을 위한 인스턴스 포트로 백엔드 인스턴스 인증 정책을 설정합니다.

인스턴스가 로드 밸런서에 제시한 퍼블릭 키가 로드 밸런서를 위한 인증 정책의 퍼블릭 키와 일치하는 경우에만 로드 밸런서가 인스턴스와 통신합니다.

**백엔드 인스턴스 인증을 구성하려면**

1. 다음 명령을 사용하여 퍼블릭 키를 검색합니다.

   ```
   openssl x509 -in your X509 certificate PublicKey -pubkey -noout
   ```

1. 퍼블릭 키 정책을 생성하려면 아래 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 명령을 사용하세요.

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-PublicKey-policy \
   --policy-type-name PublicKeyPolicyType --policy-attributes AttributeName=PublicKey,AttributeValue=MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   ```
**참고**  
`--policy-attributes`를 위한 퍼블릭 키 값을 지정하려면 퍼블릭 키의 첫 번째 줄과 마지막 줄("`-----BEGIN PUBLIC KEY-----`"를 포함하고 있는 줄과 "`-----END PUBLIC KEY-----`"를 포함하고 있는 줄)을 삭제하십시오. AWS CLI 는에서 공백 문자를 허용하지 않습니다`--policy-attributes`.

1. `my-PublicKey-policy`을 사용해 백엔드 인스턴스 인증 정책을 생성하려면 아래 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 명령을 사용하세요.

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-authentication-policy --policy-type-name BackendServerAuthenticationPolicyType --policy-attributes AttributeName=PublicKeyPolicyName,AttributeValue=my-PublicKey-policy
   ```

   선택에 따라 여러 개의 퍼블릭 키 정책을 사용할 수 있습니다. 로드 밸런서는 한 번에 하나씩 모든 키를 시도합니다. 인스턴스가 제시한 퍼블릭 키가 이러한 퍼블릭 키 중 하나와 일치하는 경우에 인스턴스가 인증이 됩니다.

1. `my-authentication-policy`을 HTTPS를 위한 인스턴스 포트로 설정하려면 아래 [set-load-balancer-policies-for-backend-server](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) 명령을 사용하세요. 이 예제에서 인스턴스 포트는 포트 443입니다.

   ```
   aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 443 --policy-names my-authentication-policy
   ```

1. (선택 사항) 로드 밸런서를 위한 모든 정책의 목록을 보려면 아래 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer
   ```

1. (선택 사항) 정책의 세부 정보를 확인하려면 아래 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-names my-authentication-policy
   ```

### 4단계: 상태 확인 구성(선택 사항)
<a name="configure_healthcheck_clt"></a>

Elastic Load Balancing은 구성한 상태 확인에 따라 등록된 EC2 인스턴스 각각의 상태를 정기적으로 확인합니다. Elastic Load Balancing은 비정상 상태인 인스턴스를 발견하면 해당 인스턴스로의 트래픽 전송을 중단하고 정상 상태인 인스턴스로 트래픽을 라우팅합니다. 자세한 내용은 [Classic Load Balancer의 인스턴스 상태 확인](elb-healthchecks.md) 단원을 참조하십시오.

로드 밸런서를 생성할 때 Elastic Load Balancing은 상태 확인을 위한 기본 설정을 사용합니다. 원할 경우, 기본 설정을 사용하는 대신 로드 밸런서에 대한 상태 확인 구성을 변경할 수 있습니다.

**인스턴스에 대한 상태 확인을 구성하려면**  
아래 [configure-health-check](https://docs.aws.amazon.com/cli/latest/reference/elb/configure-health-check.html) 명령을 사용하세요.

```
aws elb configure-health-check --load-balancer-name my-loadbalancer --health-check Target=HTTP:80/ping,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3
```

다음은 응답의 예입니다.

```
{
    "HealthCheck": {
        "HealthyThreshold": 2,
        "Interval": 30,
        "Target": "HTTP:80/ping",
        "Timeout": 3,
        "UnhealthyThreshold": 2
    }
}
```

### 5단계: EC2 인스턴스 등록
<a name="add_ec2instances_clt"></a>

로드 밸런서를 생성하고 난 후에는 반드시 로드 밸런서에 EC2 인스턴스를 등록해야 합니다. 단일 가용 영역 또는 같은 리전 내 여러 가용 영역의 EC2 인스턴스를 로드 밸런서로 선택할 수 있습니다. 자세한 내용은 [Classic Load Balancer를 위한 등록된 인스턴스](elb-backend-instances.md) 단원을 참조하십시오.

아래와 같이 [register-instances-with-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/register-instances-with-load-balancer.html) 명령을 사용하세요.

```
aws elb register-instances-with-load-balancer --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

다음은 응답의 예입니다.

```
{
    "Instances": [
        {
            "InstanceId": "i-4f8cf126"
        },
        {
            "InstanceId": "i-0bb7ca62"
        }
    ]
}
```

### 6단계: 인스턴스 확인
<a name="verify-ec2instances-clt"></a>

등록된 인스턴스 중 하나라도 `InService` 상태가 되면 그 즉시 로드 밸런서를 사용할 수 있습니다.

새로 등록된 EC2 인스턴스의 세부 정보를 확인하려면 아래 [describe-instance-health](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-instance-health.html) 명령을 사용하세요.

```
aws elb describe-instance-health  --load-balancer-name my-loadbalancer --instances i-4f8cf126 i-0bb7ca62
```

다음은 응답의 예입니다.

```
{
    "InstanceStates": [
        {
            "InstanceId": "i-4f8cf126", 
            "ReasonCode": "N/A", 
            "State": "InService", 
            "Description": "N/A"
        }, 
        {
            "InstanceId": "i-0bb7ca62", 
            "ReasonCode": "Instance", 
            "State": "OutOfService", 
            "Description": "Instance registration is still in progress"
        }
    ]
}
```

인스턴스에 대한 `State` 필드가 `OutOfService`인 경우에는 인스턴스가 여전히 등록 중이기 때문일 수 있습니다. 자세한 내용은 [Classic Load Balancer 문제 해결: 인스턴스 등록](ts-elb-register-instance.md) 단원을 참조하십시오.

하나 이상의 인스턴스 상태가 `InService`여야 로드 밸런서를 테스트할 수 있습니다. 로드 밸런서를 테스트하려면 로드 밸런서의 DNS 이름을 복사해서 인터넷에 연결된 웹 브라우저의 주소 필드에 붙여넣습니다. 로드 밸런서가 작동 중인 경우에는 HTTP 서버의 기본 페이지가 표시됩니다.

### 7단계: 로드 밸런서 삭제(선택 사항)
<a name="us-tearing-lb-cli"></a>

로드 밸런서를 삭제하면 연결된 EC2 인스턴스가 자동으로 등록 취소됩니다. 로드 밸런서가 삭제되면 그 즉시 로드 밸런서에 대한 요금 발생이 중지됩니다. 그러나 EC2 인스턴스가 계속 실행되면 요금이 계속 발생합니다.

로드 밸런서를 삭제하려면 아래 [delete-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer.html) 명령을 사용하세요.

```
aws elb delete-load-balancer --load-balancer-name my-loadbalancer
```

EC2 인스턴스를 중지하려면 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 명령을 사용하세요. EC2 인스턴스를 종료하려면 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 명령을 사용하세요.

# Classic Load Balancer를 위한 HTTPS 리스너 구성
<a name="elb-add-or-delete-listeners"></a>

*리스너*는 연결 요청을 확인하는 프로세스입니다. 리스너는 프런트 엔드(클라이언트에서 로드 밸런서) 연결을 위한 프로토콜 및 포트와 백엔드(로드 밸런서에서 인스턴스) 연결을 위한 프로토콜 및 포트로 구성됩니다. Elastic Load Balancing에서 지원되는 포트, 프로토콜 및 리스너 구성에 대한 자세한 내용은 [Classic Load Balancer의 리스너](elb-listener-config.md) 섹션을 참조하세요.

포트 80에서 HTTP 요청을 수락하는 리스너를 가진 로드 밸런서의 경우에는 포트 443에서 HTTPS 요청을 수락하는 리스너를 추가할 수 있습니다. HTTPS 리스너가 포트 80의 인스턴스로 요청을 전송하도록 지정한 경우에는 로드 밸런서가 SSL 요청을 종료하고 로드 밸런서에서 인스턴스로의 통신이 암호화되지 않습니다. HTTPS 리스너가 포트 443의 인스턴스로 요청을 전송하는 경우에는 로드 밸런서에서 인스턴스로의 통신이 암호화됩니다.

로드 밸런서가 인스턴스와의 통신을 위해 암호화된 연결을 사용하는 경우에는 선택에 따라 인스턴스 인증을 활성화할 수 있습니다. 따라서 퍼블릭 키가 통신 용도로 로드 밸런서에 지정한 키와 일치하는 경우에만 로드 밸런서가 인스턴스와 통신을 하도록 할 수 있습니다.

새로운 HTTPS 리스너 생성에 대한 자세한 내용은 [HTTPS 리스너를 통해 Classic Load Balancer를 생성](elb-create-https-ssl-load-balancer.md)를 참조하십시오.

**Topics**
+ [사전 조건](#add-listener-prerequisites)
+ [콘솔을 사용하여 HTTPS 리스너 추가](#add-listener-console)
+ [를 사용하여 HTTPS 리스너 추가 AWS CLI](#add-listener-cli)

## 사전 조건
<a name="add-listener-prerequisites"></a>

HTTPS 리스너를 위해 HTTPS 지원을 활성화하려면 로드 밸런서에 SSL 서버 인증서를 반드시 배포해야 합니다. 로드 밸런서는 이 인증서를 사용해 연결을 종료하고 인스턴스로 전송하기 전에 요청을 해독합니다. SSL 인증서가 없는 경우에는 하나를 생성할 수 있습니다. 자세한 내용은 [Classic Load Balancer를 위한 SSL/TLS 인증서](ssl-server-cert.md) 단원을 참조하십시오.

## 콘솔을 사용하여 HTTPS 리스너 추가
<a name="add-listener-console"></a>

기존 로드 밸런서에 HTTPS 리스너를 추가할 수 있습니다.

**콘솔을 사용하여 로드 밸런서에 HTTPS 리스너를 추가하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창의 **Load Balancing** 아래에서 **로드 밸런서**를 선택합니다.

1. 로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.

1. **리스너** 탭에서 **리스너 관리**를 선택합니다.

1. **리스너 관리** 페이지의 **리스너** 섹션에서 **리스너 추가**를 선택합니다.

1. **리스너 프로토콜**에서 **HTTPS**를 선택합니다.
**중요**  
**인스턴스 프로토콜**은 HTTP로 기본 설정되어 있습니다. 백엔드 인스턴스 인증을 설정하고 싶으면 **인스턴스 프로토콜**을 HTTPS로 변경합니다.

1. **보안 정책**의 경우 최신 사전 정의 보안 정책을 사용하는 것이 좋습니다. 다른 사전 정의 보안 정책을 사용하거나 사용자 지정 정책을 생성해야 하는 경우에는 [SSL 협상 구성 업데이트](ssl-config-update.md#ssl-config-update-console)를 참조하십시오.

1. **기본 SSL 인증서**에서 **편집**을 선택하고 다음 중 하나를 수행합니다.
   + 를 사용하여 인증서를 생성하거나 가져온 경우 **ACM에서** AWS Certificate Manager를 선택하고 목록에서 인증서를 선택한 다음 **변경 사항 저장**을 선택합니다.
**참고**  
이 옵션은 을 지원하는 리전에서만 사용할 수 있습니다 AWS Certificate Manager
   + IAM을 사용하여 인증서를 가져온 경우 **IAM에서**를 선택하고 목록에서 인증서를 선택한 다음 **변경 사항 저장**을 선택합니다.
   + ACM으로 가져올 SSL 인증서가 있는 경우 **가져오기**와 **ACM으로**를 선택합니다. **인증서 프라이빗 키**에서 PEM 인코딩 프라이빗 키 파일의 콘텐츠를 복사해 붙여넣습니다. **인증서 본문**에서 PEM 인코딩 퍼블릭 키 인증서 파일의 콘텐츠를 복사해 붙여넣습니다. 자체 서명 인증서를 사용하고 있지 않고 브라우저가 인증서를 묵시적으로 수락하는 것이 중요하지 않다면 **인증서 체인 - 선택 사항**에 PEM 인코딩 인증서 체인 파일의 콘텐츠를 복사해 붙여넣습니다.
   + 가져올 SSL 인증서가 있지만 이 리전에서 ACM이 지원되지 않는 경우 **가져오기**와 **IAM으로**를 선택합니다. **인증서 이름**에 인증서의 이름을 입력합니다. **인증서 프라이빗 키**에서 PEM 인코딩 프라이빗 키 파일의 콘텐츠를 복사해 붙여넣습니다. **인증서 본문**에서 PEM 인코딩 퍼블릭 키 인증서 파일의 콘텐츠를 복사해 붙여넣습니다. 자체 서명 인증서를 사용하고 있지 않고 브라우저가 인증서를 묵시적으로 수락하는 것이 중요하지 않다면 **인증서 체인 - 선택 사항**에 PEM 인코딩 인증서 체인 파일의 콘텐츠를 복사해 붙여넣습니다.
   + **변경 사항 저장**을 선택합니다.

1. **쿠키 고정**에서 기본값은 **비활성화됨**입니다. 이를 변경하려면 **편집**을 선택합니다. **로드 밸런서에서 생성**을 선택한 경우 **만료 기간**을 지정해야 합니다. **애플리케이션에서 생성**을 선택한 경우 **쿠키 이름**을 지정해야 합니다. 선택을 완료한 후 **변경 사항 저장**을 선택합니다.

1. (선택 사항) **리스너 추가**를 선택하여 리스너를 추가합니다.

1. **변경 사항 저장**을 선택하여 방금 구성한 리스너를 추가합니다.

1. (선택 사항) 기존 로드 밸런서에 대한 백엔드 인스턴스 인증을 설정하려면 AWS CLI 또는 API를 사용해야 합니다.이 작업은 콘솔을 사용하여 지원되지 않기 때문입니다. 자세한 내용은 [백엔드 인스턴스 인증 구성](elb-create-https-ssl-load-balancer.md#configure_backendauth_clt)을 참조하십시오.

## 를 사용하여 HTTPS 리스너 추가 AWS CLI
<a name="add-listener-cli"></a>

기존 로드 밸런서에 HTTPS 리스너를 추가할 수 있습니다.

**를 사용하여 로드 밸런서에 HTTPS 리스너를 추가하려면 AWS CLI**

1. SSL 인증서의 Amazon 리소스 이름(ARN)을 가져옵니다. 다음 예를 참조하십시오.

   **ACM**

   ```
   arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

   **IAM**

   ```
   arn:aws:iam::123456789012:server-certificate/my-server-certificate
   ```

1. 포트 443에서 HTTPS 요청을 수락하고 HTTP를 사용하여 포트 80의 인스턴스로 요청을 전송하는 로드 밸런서에 리스너를 추가하려면 아래 [create-load-balancer-listeners](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-listeners.html) 명령을 사용하세요.

   ```
   aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN
   ```

   백엔드 인스턴스 인증을 설정하고 싶으면 아래 명령을 사용해 포트 443에서 HTTPS 요청을 수락하고 HTTPS를 사용하여 포트 443의 인스턴스로 요청을 전송하십시오.

   ```
   aws elb create-load-balancer-listeners --load-balancer-name my-load-balancer --listeners Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTPS,InstancePort=443,SSLCertificateId=ARN
   ```

1. (선택 사항) 로드 밸런서의 업데이트된 세부 정보를 확인하려면 아래 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancers --load-balancer-name my-load-balancer
   ```

   다음은 응답의 예입니다.

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ...
               "ListenerDescriptions": [
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "SSLCertificateId": "ARN", 
                           "LoadBalancerPort": 443, 
                           "Protocol": "HTTPS", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": [
                           "ELBSecurityPolicy-2016-08"
                       ]
                   }, 
                   {
                       "Listener": {
                           "InstancePort": 80, 
                           "LoadBalancerPort": 80, 
                           "Protocol": "HTTP", 
                           "InstanceProtocol": "HTTP"
                       }, 
                       "PolicyNames": []
                   }
               ], 
               ...
           }
       ]
   }
   ```

1. (선택 사항) 기본 보안 정책을 사용해 HTTPS 리스너를 생성했습니다. 다른 사전 정의 보안 정책이나 사용자 정의 보안 정책을 지정하고 싶으면 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 및 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 명령을 사용하세요. 자세한 내용은 [를 사용하여 SSL 협상 구성 업데이트 AWS CLI](ssl-config-update.md#ssl-config-update-cli) 단원을 참조하십시오.

1. (선택 사항) 백 엔드 인스턴스 인증을 설정하려면 [set-load-balancer-policies-for-backend-server](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) 명령을 사용하세요. 자세한 내용은 [백엔드 인스턴스 인증 구성](elb-create-https-ssl-load-balancer.md#configure_backendauth_clt)을 참조하십시오.

# Classic Load Balancer를 위한 SSL 인증서 교체
<a name="elb-update-ssl-cert"></a>

HTTPS 리스너가 있다면 리스너를 생성할 때 로드 밸런서에 SSL 서버 인증서를 배포했을 것입니다. 각 인증서에는 유효 기간이 있습니다. 유효 기간이 끝나기 전에 인증서를 갱신 또는 교체해야 합니다.

에서 제공하고 로드 밸런서에 AWS Certificate Manager 배포된 인증서는 자동으로 갱신할 수 있습니다. ACM은 인증서가 만료되기 전에 갱신을 시도합니다. 자세한 내용은 *AWS Certificate Manager 사용 설명서*에서 [관리형 갱신](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)을 참조하세요. ACM에 인증서를 가져온 경우에는 인증서의 만료일을 반드시 모니터링해서 만료되기 전에 인증서를 갱신해야 합니다. 자세한 내용은 *AWS Certificate Manager 사용 설명서*에서 [인증서 가져오기](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)를 참조하세요. 로드 밸런서에 배포된 인증서가 갱신된 후에는 새로운 요청에서 갱신된 인증서가 사용됩니다.

인증서를 교체하려면 먼저 현재 인증서를 생성할 때 사용했던 것과 동일한 단계를 거쳐 새로운 인증서를 생성해야 합니다. 그래야만 인증서를 교체할 수 있습니다. 로드 밸런서에 배포된 인증서가 교체된 후에는 새로운 요청에서 새 인증서가 사용됩니다.

인증서를 갱신 또는 교체해도 로드 밸런서 노드에 이미 수신되어 정상 상태 대상으로 라우팅이 보류 중인 요청에는 영향을 미치지 않습니다.

**Topics**
+ [콘솔을 사용하여 SSL 인증서 교체](#us-update-lb-SSLcert-console)
+ [를 사용하여 SSL 인증서 교체 AWS CLI](#us-update-lb-SSLcert-cli)

## 콘솔을 사용하여 SSL 인증서 교체
<a name="us-update-lb-SSLcert-console"></a>

로드 밸런서에 배포된 인증서를 ACM이 제공한 인증서나 IAM에 업로드된 인증서로 교체할 수 있습니다.

**콘솔을 사용하여 HTTPS 로드 밸런서를 위한 SSL 인증서를 교체하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창의 **Load Balancing** 아래에서 **로드 밸런서**를 선택합니다.

1. 로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.

1. **리스너** 탭에서 **리스너 관리**를 선택합니다.

1. **리스너 관리** 페이지에서 업데이트할 리스너를 찾고, **기본 SSL 인증서**에서 **편집**을 선택하고 다음 중 하나를 수행합니다.
   + 를 사용하여 인증서를 생성하거나 가져온 경우 **ACM에서** AWS Certificate Manager를 선택하고 목록에서 인증서를 선택한 다음 **변경 사항 저장**을 선택합니다.
**참고**  
이 옵션은 을 지원하는 리전에서만 사용할 수 있습니다 AWS Certificate Manager
   + IAM을 사용하여 인증서를 가져온 경우 **IAM에서**를 선택하고 목록에서 인증서를 선택한 다음 **변경 사항 저장**을 선택합니다.
   + ACM으로 가져올 SSL 인증서가 있는 경우 **가져오기**와 **ACM으로**를 선택합니다. **인증서 프라이빗 키**에서 PEM 인코딩 프라이빗 키 파일의 콘텐츠를 복사해 붙여넣습니다. **인증서 본문**에서 PEM 인코딩 퍼블릭 키 인증서 파일의 콘텐츠를 복사해 붙여넣습니다. 자체 서명 인증서를 사용하고 있지 않고 브라우저가 인증서를 묵시적으로 수락하는 것이 중요하지 않다면 **인증서 체인 - 선택 사항**에 PEM 인코딩 인증서 체인 파일의 콘텐츠를 복사해 붙여넣습니다.
   + 가져올 SSL 인증서가 있지만 이 리전에서 ACM이 지원되지 않는 경우 **가져오기**와 **IAM으로**를 선택합니다. **인증서 이름**에 인증서의 이름을 입력합니다. **인증서 프라이빗 키**에서 PEM 인코딩 프라이빗 키 파일의 콘텐츠를 복사해 붙여넣습니다. **인증서 본문**에서 PEM 인코딩 퍼블릭 키 인증서 파일의 콘텐츠를 복사해 붙여넣습니다. 자체 서명 인증서를 사용하고 있지 않고 브라우저가 인증서를 묵시적으로 수락하는 것이 중요하지 않다면 **인증서 체인 - 선택 사항**에 PEM 인코딩 인증서 체인 파일의 콘텐츠를 복사해 붙여넣습니다.
   + **변경 사항 저장**을 선택합니다.

## 를 사용하여 SSL 인증서 교체 AWS CLI
<a name="us-update-lb-SSLcert-cli"></a>

로드 밸런서에 배포된 인증서를 ACM이 제공한 인증서나 IAM에 업로드된 인증서로 교체할 수 있습니다.

**ACM에서 제공한 인증서로 SSL 인증서를 교체하려면**

1. [request-certificate](https://docs.aws.amazon.com/cli/latest/reference/acm/request-certificate.html) 명령을 사용하여 새 인증서를 요청합니다.

   ```
   aws acm request-certificate --domain-name www.example.com
   ```

1. 인증서를 설정하려면 아래 [set-load-balancer-listener-ssl-certificate](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-listener-ssl-certificate.html) 명령을 사용하세요.

   ```
   aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-load-balancer --load-balancer-port 443 --ssl-certificate-id arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
   ```

**IAM으로 업로드한 인증서로 SSL 인증서를 교체하려면**

1. SSL 인증서가 있지만 업로드를 하지 않은 경우에는 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#upload-server-certificate)의 *서버 인증서 업로드*를 참조하세요.

1. 인증서의 ARN을 얻으려면 아래[get-server-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/get-server-certificate.html) 명령을 사용하세요.

   ```
   aws iam get-server-certificate --server-certificate-name my-new-certificate
   ```

1. 인증서를 설정하려면 아래 [set-load-balancer-listener-ssl-certificate](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-listener-ssl-certificate.html) 명령을 사용하세요.

   ```
   aws elb set-load-balancer-listener-ssl-certificate --load-balancer-name my-load-balancer --load-balancer-port 443 --ssl-certificate-id arn:aws:iam::123456789012:server-certificate/my-new-certificate
   ```

# Classic Load Balancer의 SSL 협상 구성 업데이트
<a name="ssl-config-update"></a>

Elastic Load Balancing은 클라이언트와 로드 밸런서 간의 연결을 협상하는 데 사용할 SSL 협상 구성이 사전 정의된 보안 정책을 제공합니다. 리스너용 HTTPS/SSL 프로토콜을 사용하고 있는 경우에는 사전 정의 보안 정책 중 하나를 사용하거나 자체적으로 보안 정책을 지정할 수 있습니다.

보안 정책에 대한 자세한 내용은 [Classic Load Balancer를 위한 SSL 협상 구성](elb-ssl-security-policy.md)를 참조하십시오. Elastic Load Balancing이 제공한 보안 정책의 구성에 대한 자세한 내용은 [Classic Load Balancer에 대해 미리 정의된 SSL 보안 정책](elb-security-policy-table.md) 섹션을 참조하세요.

보안 정책과 연계하지 않고 HTTPS/SSL 리스너를 생성하는 경우, Elastic Load Balancing은 로드 밸런서와 함께 기본 사전 정의인 `ELBSecurityPolicy-2016-08`를 연계합니다.

원할 경우, 사용자 지정 구성을 생성할 수 있습니다 로드 밸런서 구성을 업그레이드하기 전에 보안 정책을 테스트하는 것이 좋습니다.

다음 예제는 HTTPS/SSL 리스너를 위한 SSL 협상 구성을 업데이트하는 방법을 보여줍니다. 변경을 해도 로드 밸런서 노드에 이미 수신되어 정상 상태 대상으로 라우팅이 보류 중인 요청에는 영향을 미치지 않지만, 업데이트된 구성은 수신된 새 요청에서 사용됩니다.

**Topics**
+ [콘솔을 사용하여 SSL 협상 구성 업데이트](#ssl-config-update-console)
+ [를 사용하여 SSL 협상 구성 업데이트 AWS CLI](#ssl-config-update-cli)

## 콘솔을 사용하여 SSL 협상 구성 업데이트
<a name="ssl-config-update-console"></a>

기본적으로 Elastic Load Balancing은 로드 밸런서에 최신 사전 정의 정책을 연결합니다. 새로운 사전 정의 정책이 추가되면 새로운 사전 정의 정책을 사용하도록 로드 밸런서를 업데이트하는 것이 좋습니다. 아니면 다른 사전 정의 보안 정책을 선택하거나 사용자 지정 정책을 생성할 수 있습니다.

**콘솔을 사용하여 HTTPS/SSL 로드 밸런서의 SSL 협상 구성을 업데이트하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창의 **Load Balancing** 아래에서 **로드 밸런서**를 선택합니다.

1. 로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.

1. **리스너** 탭에서 **리스너 관리**를 선택합니다.

1. **리스너 관리** 페이지에서 업데이트할 리스너를 찾고, **보안 정책**의 **편집**에서 다음 옵션 중 하나를 사용하여 보안 정책을 선택합니다.
   + 기본 정책인 **ELBSecurityPolicy-2016-08**을 유지하고 **변경 사항 저장**을 선택합니다.
   + 기본값 이외의 사전 정의된 정책을 선택하고, **변경 사항 저장**을 선택합니다.
   + **사용자 지정**을 선택하고 아래와 같이 한 개 이상의 프로토콜과 한 개의 암호를 활성화합니다.

     1. [**SSL Protocols**]에서 활성화할 프로토콜을 한 개 이상 선택합니다.

     1. [**SSL 옵션(SSL Options)**]에서 [**서버 순서 기본 설정(Server Order Preference)**]을 선택하여 SSL 협상 시 [Classic Load Balancer에 대해 미리 정의된 SSL 보안 정책](elb-security-policy-table.md)에 나열된 순서를 사용합니다.

     1. [**SSL Ciphers**]에서 활성화할 암호를 한 개 이상 선택합니다. SSL 인증서가 이미 있는 경우에는 인증서를 생성하는 데 사용된 암호를 반드시 활성화해야 합니다. DSA 및 RSA 암호는 서명 알고리즘마다 고유하기 때문입니다.

     1. **변경 사항 저장**을 선택합니다.

## 를 사용하여 SSL 협상 구성 업데이트 AWS CLI
<a name="ssl-config-update-cli"></a>

기본적인 사전 정의 보안 정책인 `ELBSecurityPolicy-2016-08`, 다른 사전 정의 보안 정책 또는 사용자 지정 보안 정책을 사용할 수 있습니다.

**(선택 사항) 사전 정의된 SSL 보안 정책을 사용하려면**

1. Elastic Load Balancing이 제공하는 사전 정의 보안 정책의 목록을 보려면 아래 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요. 사용 중인 운영 체제와 셸에 따라 사용하는 구문도 달라집니다.

   **Linux**

   ```
   aws elb describe-load-balancer-policies --query 'PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName}' --output table
   ```

   **Windows**

   ```
   aws elb describe-load-balancer-policies --query "PolicyDescriptions[?PolicyTypeName==`SSLNegotiationPolicyType`].{PolicyName:PolicyName}" --output table
   ```

   다음은 예제 출력입니다.

   ```
   ------------------------------------------
   |      DescribeLoadBalancerPolicies      |
   +----------------------------------------+
   |               PolicyName               |
   +----------------------------------------+
   |  ELBSecurityPolicy-2016-08             |
   |  ELBSecurityPolicy-TLS-1-2-2017-01     |
   |  ELBSecurityPolicy-TLS-1-1-2017-01     |
   |  ELBSecurityPolicy-2015-05             |
   |  ELBSecurityPolicy-2015-03             |
   |  ELBSecurityPolicy-2015-02             |
   |  ELBSecurityPolicy-2014-10             |
   |  ELBSecurityPolicy-2014-01             |
   |  ELBSecurityPolicy-2011-08             |
   |  ELBSample-ELBDefaultCipherPolicy      |
   |  ELBSample-OpenSSLDefaultCipherPolicy  |
   +----------------------------------------+
   ```

   정책에 어떤 암호가 활성화되어 있는지 확인하려면 아래 명령을 사용하십시오.

   ```
   aws elb describe-load-balancer-policies --policy-names ELBSecurityPolicy-2016-08 --output table
   ```

   사전 정의 보안 정책을 위한 구성에 대한 자세한 내용은 [Classic Load Balancer에 대해 미리 정의된 SSL 보안 정책](elb-security-policy-table.md)를 참조하십시오.

1. 이전 단계에서 설명한 사전 정의 보안 정책 중 하나를 사용하여 SSL 협상 정책을 생성하려면 아래 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 명령을 사용하세요. 예를 들어 아래 명령은 기본적인 사전 정의 보안 정책을 사용합니다.

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer
   --policy-name my-SSLNegotiation-policy  --policy-type-name SSLNegotiationPolicyType
   --policy-attributes AttributeName=Reference-Security-Policy,AttributeValue=ELBSecurityPolicy-2016-08
   ```

   로드 밸런서에 대한 정책 수의 한도를 초과한 경우 [delete-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer-policy.html) 명령을 사용하여 사용하지 않는 정책을 삭제하세요.

1. (선택 사항) 정책이 생성되었는지 확인하려면 아래 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   이 요청에는 정책에 대한 설명이 포함되어 있습니다.

1. 로드 밸런서 포트 443에서 정책을 활성화하려면 아래 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 명령을 사용하세요.

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**참고**  
`set-load-balancer-policies-of-listener` 명령은 지정된 로드 밸런서 포트에 대한 현재 정책 세트를 지정된 정책 세트로 교체합니다. `--policy-names` 목록에는 활성화할 모든 정책이 반드시 포함되어 있어야 합니다. 현재 활성화된 정책을 누락하면 이 정책은 비활성화됩니다.

1. (선택 사항) 새로운 정책이 로드 밸런서 포트에서 활성화되었는지 확인하려면 아래 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   다음은 포트 443에서 정책이 활성화되었음을 보여주는 응답의 예입니다.

   ```
   ...
     {
         "Listener": {
             "InstancePort": 443,
             "SSLCertificateId": "ARN",
             "LoadBalancerPort": 443,
             "Protocol": "HTTPS",
             "InstanceProtocol": "HTTPS"
         },
         "PolicyNames": [
             "my-SSLNegotiation-policy"
         ]
     }
   ...
   ```

사용자 지정 보안 정책을 생성할 때는 한 개 이상의 프로토콜과 한 개의 암호를 반드시 활성화해야 합니다. DSA 및 RSA 암호는 SSL 인증서를 생성하는 데 사용되는 서명 알고리즘마다 고유합니다. 이미 SSL 인증서를 가지고 있는 경우에는 인증서 생성에 사용된 암호를 반드시 활성화하십시오. 사용자 지정 정책의 이름은 `ELBSecurityPolicy-` 또는 `ELBSample-`로 시작할 수 없습니다. 이러한 접두사는 사전 정의 보안 정책의 이름으로 예약되어 있습니다.

**사용자 지정 SSL 보안 정책을 사용하려면**

1. 사용자 지정 보안 정책을 사용하여 SSL 협상 정책을 생성하려면 [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html) 명령을 사용하세요. 다음 예를 참조하십시오.

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer 
    --policy-name my-SSLNegotiation-policy --policy-type-name SSLNegotiationPolicyType 
    --policy-attributes AttributeName=Protocol-TLSv1.2,AttributeValue=true 
    AttributeName=Protocol-TLSv1.1,AttributeValue=true 
    AttributeName=DHE-RSA-AES256-SHA256,AttributeValue=true 
    AttributeName=Server-Defined-Cipher-Order,AttributeValue=true
   ```

   로드 밸런서에 대한 정책 수의 한도를 초과한 경우 [delete-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/delete-load-balancer-policy.html) 명령을 사용하여 사용하지 않는 정책을 삭제하세요.

1. (선택 사항) 정책이 생성되었는지 확인하려면 아래 [describe-load-balancer-policies](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policies.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer --policy-name my-SSLNegotiation-policy
   ```

   이 요청에는 정책에 대한 설명이 포함되어 있습니다.

1. 로드 밸런서 포트 443에서 정책을 활성화하려면 아래 [set-load-balancer-policies-of-listener](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-of-listener.html) 명령을 사용하세요.

   ```
   aws elb set-load-balancer-policies-of-listener --load-balancer-name my-loadbalancer --load-balancer-port 443 --policy-names my-SSLNegotiation-policy
   ```
**참고**  
`set-load-balancer-policies-of-listener` 명령은 지정된 로드 밸런서 포트에 대한 현재 정책 세트를 지정된 정책 세트로 교체합니다. `--policy-names` 목록에는 활성화할 모든 정책이 반드시 포함되어 있어야 합니다. 현재 활성화된 정책을 누락하면 이 정책은 비활성화됩니다.

1. (선택 사항) 새로운 정책이 로드 밸런서 포트에서 활성화되었는지 확인하려면 아래 [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) 명령을 사용하세요.

   ```
   aws elb describe-load-balancers --load-balancer-name my-loadbalancer
   ```

   다음은 포트 443에서 정책이 활성화되었음을 보여주는 응답의 예입니다.

   ```
   ...
     {
         "Listener": {
             "InstancePort": 443,
             "SSLCertificateId": "ARN",
             "LoadBalancerPort": 443,
             "Protocol": "HTTPS",
             "InstanceProtocol": "HTTPS"
         },
         "PolicyNames": [
             "my-SSLNegotiation-policy"
         ]
     }
   ...
   ```