HTTPS 리스너를 통해 Classic Load Balancer를 생성 - ELB

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

HTTPS 리스너를 통해 Classic Load Balancer를 생성

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

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

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

기존 로드 밸런서에 HTTPS 리스너를 추가하는 방법에 대한 자세한 내용은 Classic Load Balancer를 위한 HTTPS 리스너 구성를 참조하십시오.

사전 조건

시작하기 전에 다음 사전 조건을 충족해야 합니다.

  • VPC 관련 권장 사항의 단계를 수행합니다.

  • 로드 밸런서에 등록할 계획인 EC2 인스턴스를 시작합니다. 이들 인스턴스를 위한 보안 그룹은 로드 밸런서에서 나오는 트래픽을 허용해야 합니다.

  • EC2 인스턴스는 HTTP 상태 코드 200을 통해 상태 확인 대상에 응답해야 합니다. 자세한 내용은 Classic Load Balancer의 인스턴스 상태 확인 단원을 참조하십시오.

  • EC2 인스턴스에서 연결 유지 옵션을 활성화할 계획이라면 연결 유지 설정을 최소한 로드 밸런서의 유휴 제한 시간 설정으로 설정하는 것이 좋습니다. 로드 밸런서가 인스턴스에 대한 연결을 종료할 책임이 있는지 확인하고 싶다면 연결 유지 시간 동안 인스턴스에 설정된 값이 로드 밸런서의 유휴 제한 시간 설정보다 큰지 확인합니다. 자세한 내용은 Classic Load Balancer에 대한 유휴 연결 제한 시간 구성 단원을 참조하십시오.

  • 보안 리스너를 생성하는 경우에는 로드 밸런서에 SSL 서버 인증서를 반드시 배포해야 합니다. 로드 밸런서는 이 인증서를 사용해 연결을 종료하고 인스턴스로 전송하기 전에 요청을 해독합니다. SSL 인증서가 없는 경우에는 하나를 생성할 수 있습니다. 자세한 내용은 Classic Load Balancer를 위한 SSL/TLS 인증서 단원을 참조하십시오.

콘솔을 사용하여 HTTPS 로드 밸런서 생성

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

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

콘솔을 사용하여 보안 Classic Load Balancer를 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

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

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

  6. 기본 구성

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

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

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

  7. 네트워크 매핑

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

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

  8. 보안 그룹

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

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

  9. 리스너 및 라우팅

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

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

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

  10. 보안 리스너 설정

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

    1. 보안 정책의 경우 항상 최신 사전 정의 보안 정책을 사용하거나 사용자 지정 정책을 생성하는 것이 좋습니다. Update the SSL Negotiation Configuration을 참조하세요.

    2. 기본 SSL/TLS 인증서에서 다음 옵션을 사용할 수 있습니다.

      • 를 사용하여 인증서를 생성하거나 가져온 경우 ACM에서를 AWS Certificate Manager선택한 다음 인증서 선택에서 인증서를 선택합니다.

      • IAM을 사용하여 인증서를 가져온 경우 IAM에서를 선택하고 인증서 선택에서 인증서를 선택합니다.

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

    3. 암호화된 연결을 사용해 인스턴스와 통신을 하도록 HTTPS 리스너를 구성한 경우에는 백엔드 인증 인증서에서 인스턴스 인증을 설정할 수 있습니다.

      참고

      백엔드 인증 인증서 섹션이 보이지 않는 경우 리스너 및 라우팅으로 돌아가 HTTPS인스턴스의 프로토콜로 선택합니다.

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

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

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

  11. 상태 확인

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

    2. ping 포트에서 포트가 80인지 확인합니다.

    3. ping 경로에서 기본값을 슬래시 하나(/)로 대체합니다. 이는와 같은 웹 서버의 기본 홈 페이지로 상태 확인 요청을 보내도록 ELB에 지시합니다index.html.

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

  12. 인스턴스

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

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

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

  13. 속성

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

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

    1.  필드는 필수입니다.

    2. 필드는 선택 사항입니다.

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

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

  15. 요약 및 생성

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

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

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

  16. Verify

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

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

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

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

  17. 삭제(선택 사항)

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

    2. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

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

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

를 사용하여 HTTPS 로드 밸런서 생성 AWS CLI

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

1단계: 리스너 구성

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

이 예제에서는 프런트 엔드 및 백엔드 연결에 사용할 포트와 프로토콜을 지정하여 로드 밸런서용으로 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
  2. 두 개의 리스너를 가진 로드 밸런서를 구성하려면 아래 create-load-balancer 명령을 사용하세요.

    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" }
  3. (선택 사항) 로드 밸런서의 세부 정보를 확인하려면 아래 describe-load-balancers 명령을 사용하세요.

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

2단계: SSL 보안 정책 구성

사전 정의 보안 정책 중 하나를 선택하거나 보안 정책을 자체적으로 지정할 수 있습니다. 그렇지 않으면 ELB는 기본 사전 정의된 보안 정책인 로 로드 밸런서를 구성합니다ELBSecurityPolicy-2016-08. 자세한 내용은 Classic Load Balancer를 위한 SSL 협상 구성 단원을 참조하십시오.

로드 밸런서가 기본 보안 정책에 연결되어 있는지 확인하려면

아래 describe-load-balancers 명령을 사용하세요.

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 명령을 사용하세요.

    aws elb describe-load-balancer-policies

    사전 정의 보안 정책을 위한 구성에 대한 자세한 내용은 Classic Load Balancer에 대해 미리 정의된 SSL 보안 정책를 참조하십시오.

  2. 이전 단계에서 설명한 사전 정의 보안 정책 중 하나를 사용하여 SSL 협상 정책을 생성하려면 아래 create-load-balancer-policy 명령을 사용하세요.

    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
  3. (선택 사항) 정책이 생성되었는지 확인하려면 아래 describe-load-balancer-policies 명령을 사용하세요.

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

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

  4. 로드 밸런서 포트 443에서 정책을 활성화하려면 아래 set-load-balancer-policies-of-listener 명령을 사용하세요.

    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 목록에는 활성화할 모든 정책이 반드시 포함되어 있어야 합니다. 현재 활성화된 정책을 누락하면 이 정책은 비활성화됩니다.

  5. (선택 사항) 정책이 활성화되었는지 확인하려면 아래 describe-load-balancers 명령을 사용하세요.

    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 명령을 사용하세요. 다음 예를 참조하십시오.

    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
  2. (선택 사항) 정책이 생성되었는지 확인하려면 아래 describe-load-balancer-policies 명령을 사용하세요.

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

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

  3. 로드 밸런서 포트 443에서 정책을 활성화하려면 아래 set-load-balancer-policies-of-listener 명령을 사용하세요.

    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 목록에는 활성화할 모든 정책이 반드시 포함되어 있어야 합니다. 현재 활성화된 정책을 누락하면 이 정책은 비활성화됩니다.

  4. (선택 사항) 정책이 활성화되었는지 확인하려면 아래 describe-load-balancers 명령을 사용하세요.

    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단계: 백엔드 인스턴스 인증 구성(선택 사항)

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

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

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

백엔드 인스턴스 인증을 구성하려면
  1. 다음 명령을 사용하여 퍼블릭 키를 검색합니다.

    openssl x509 -in your X509 certificate PublicKey -pubkey -noout
  2. 퍼블릭 키 정책을 생성하려면 아래 create-load-balancer-policy 명령을 사용하세요.

    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.

  3. my-PublicKey-policy을 사용해 백엔드 인스턴스 인증 정책을 생성하려면 아래 create-load-balancer-policy 명령을 사용하세요.

    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

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

  4. my-authentication-policy을 HTTPS를 위한 인스턴스 포트로 설정하려면 아래 set-load-balancer-policies-for-backend-server 명령을 사용하세요. 이 예제에서 인스턴스 포트는 포트 443입니다.

    aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 443 --policy-names my-authentication-policy
  5. (선택 사항) 로드 밸런서를 위한 모든 정책의 목록을 보려면 아래 describe-load-balancer-policies 명령을 사용하세요.

    aws elb describe-load-balancer-policies --load-balancer-name my-loadbalancer
  6. (선택 사항) 정책의 세부 정보를 확인하려면 아래 describe-load-balancer-policies 명령을 사용하세요.

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

4단계: 상태 확인 구성(선택 사항)

ELB는 구성한 상태 확인을 기반으로 등록된 각 EC2 인스턴스의 상태를 정기적으로 확인합니다. ELB가 비정상 인스턴스를 발견하면 인스턴스로 트래픽 전송을 중지하고 정상 인스턴스로 트래픽을 라우팅합니다. 자세한 내용은 Classic Load Balancer의 인스턴스 상태 확인 단원을 참조하십시오.

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

인스턴스에 대한 상태 확인을 구성하려면

아래 configure-health-check 명령을 사용하세요.

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 인스턴스 등록

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

아래와 같이 register-instances-with-load-balancer 명령을 사용하세요.

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단계: 인스턴스 확인

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

새로 등록된 EC2 인스턴스의 세부 정보를 확인하려면 아래 describe-instance-health 명령을 사용하세요.

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 문제 해결: 인스턴스 등록 단원을 참조하십시오.

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

7단계: 로드 밸런서 삭제(선택 사항)

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

로드 밸런서를 삭제하려면 아래 delete-load-balancer 명령을 사용하세요.

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

EC2 인스턴스를 중지하려면 stop-instances 명령을 사용하세요. EC2 인스턴스를 종료하려면 stop-instances 명령을 사용하세요.