Network Load Balancer 구성 - AWS Elastic Beanstalk

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

Network Load Balancer 구성

로드 밸런싱을 활성화한 경우, AWS Elastic Beanstalk 환경에는 환경에서 인스턴스 간의 트래픽을 분산하는 Elastic Load Balancing 로드 밸런서가 갖춰져 있습니다. Elastic Load Balancing은 몇 가지 로드 밸런서 유형을 지원합니다. 자세한 내용은 Elastic Load Balancing 사용 설명서를 참조하세요. Elastic Beanstalk에서는 자동으로 로드 밸런서를 생성하거나, 생성한 공유 로드 밸런서를 지정할 수 있습니다.

이 주제에서는 Elastic Beanstalk에서 생성하고 사용자 환경 전용으로 지정하는 Network Load Balancer의 구성에 대해 설명합니다. Elastic Beanstalk에서 지원하는 모든 로드 밸런서 유형 구성에 대한 자세한 내용은 Elastic Beanstalk 환경의 로드 밸런서 단원을 참조하세요.

참고

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

소개

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

참고

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

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

Elastic Beanstalk 콘솔을 사용하여 Network Load Balancer 구성

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

환경 생성 중에 Elastic Beanstalk 콘솔에서 Network Load Balancer를 구성하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

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

  3. 새 환경 생성을 선택하여 환경 생성을 시작합니다.

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

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

    또는 용량 구성 범주에서 로드 밸런싱 수행 환경 유형을 구성합니다. 자세한 내용은 용량 섹션을 참조하세요.

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

  7. 아직 선택하지 않은 경우 Network Load Balancer 옵션을 선택합니다.

    
            Elastic Load Balancing 구성 페이지 - 로드 밸런서 유형 선택
  8. 환경에 필요한 Network Load Balancer 구성 부분을 모두 변경합니다.

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

  10. 환경 생성을 선택합니다.

Elastic Beanstalk 콘솔에서 실행 중인 환경의 Network Load Balancer를 구성하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

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

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

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

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

    참고

    [로드 밸런서] 구성 범주에 [편집] 버튼이 없으면 환경에 로드 밸런서가 없는 것입니다. 설정 방법을 알아보려면 환경 유형 변경을 참조하십시오.

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

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

Network Load Balancer 설정

리스너

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


          Network Load Balancer 구성 - 리스너 목록
기존 리스너를 구성하려면
  1. 테이블 항목 옆에 있는 확인란을 선택한 다음 작업, 편집을 선택합니다.

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

리스너를 추가하려면
  1. 리스너 추가를 선택합니다.

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

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


          Network Load Balancer 리스너 대화 상자

프로세스

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


          Network Load Balancer 구성 - 프로세스 목록

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

Network Load Balancer의 환경 프로세스 대화 상자 설정

정의

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


            이름, 리스너 포트, 프로세스 포트에 대한 Network Load Balancer 프로세스 대화 상자 설정

상태 확인

다음 설정을 사용하여 프로세스 상태 확인을 구성합니다.

  • 간격(Interval) – 개별 인스턴스의 상태 확인 간 간격(초 단위)입니다.

  • 정상 임계 값(Healthy threshold) – Elastic Load Balancing이 인스턴스 상태를 바꾸기 전에 통과해야 하는 상태 확인 수입니다. (Network Load Balancer의 경우, 비정상 임계값은 읽기 전용 설정으로서 정상 임계 값과 항상 동일합니다.)

  • 등록 취소 지연(Deregistration delay) – 인스턴스 등록을 취소하기 전에 활성 요청이 완료될 때까지 기다려야 하는 시간(초)입니다.


            상태 확인에 대한 Network Load Balancer 프로세스 대화 상자 설정
참고

Elastic Load Balancing 상태 확인은 환경 Auto Scaling 그룹의 상태 확인 동작에는 영향을 주지 않습니다. Elastic Load Balancing 상태 확인에 실패한 인스턴스는 자동 대체하도록 Amazon EC2 Auto Scaling을 수동으로 구성하지 않는 한 Amazon EC2 Auto Scaling으로 자동 대체되지 않습니다. 세부 정보는 Auto Scaling 상태 확인 설정을 참조하십시오.

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

예제: 엔드 투 엔드 암호화 환경에 대한 Network Load Balancer

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

이 예제용 로드 밸런서를 구성하려면
  1. 기본 프로세스를 구성합니다. 기본 프로세스를 선택한 다음 작업에서 편집을 선택합니다. Process port(프로세스 포트)에서 443을 입력합니다.

    
            Network Load Balancer 구성 예제 - 프로세스 포트 443 사용을 위한 기본 프로세스 구성
  2. 포트 443 리스너를 추가합니다. 새로운 리스너를 추가합니다. 리스너 포트에는 443을 입력합니다. Process port(프로세스 포트)의 경우 443의 선택 여부를 확인합니다.

    
            Network Load Balancer 구성 예제 - 포트 443 리스너 추가

    이제 목록에서 추가 리스너를 볼 수 있습니다.

    
            Network Load Balancer 구성 예제 - 2개의 리스너를 포함하는 리스너 목록
  3. 기본 포트 80 리스너를 비활성화합니다. 기본 리스너의 경우 활성 옵션을 끕니다.

    
            Network Load Balancer 구성 예제 - 기본 리스너 비활성화

EB CLI를 사용하여 Network Load Balancer 구성

eb create를 실행하면 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 네임스페이스

다음 네임스페이스에서 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:healthcheckaws:elasticbeanstalk:application 네임스페이스의 설정에 매핑됩니다.

.ebextensions/network-load-balancer.config

Network Load Balancer를 시작하려면 구성 파일을 사용하여 로드 밸런서 유형을 network로 설정합니다.

option_settings: aws:elasticbeanstalk:environment: LoadBalancerType: network
참고

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

.ebextensions/nlb-default-process.config

다음 구성 파일은 기본 프로세스의 상태 확인 설정을 수정합니다.

option_settings: aws:elasticbeanstalk:environment:process:default: DeregistrationDelay: '20' HealthCheckInterval: '10' HealthyThresholdCount: '5' UnhealthyThresholdCount: '5' Port: '80' Protocol: TCP
예 .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 단원을 참조하세요. Network Load Balancer의 경우 이 옵션은 이 리스너의 대상 프로세스만 지원합니다.

이 예제에서는 프로세스가 보안(HTTPS) 트래픽을 수신하기 때문에 프로세스 이름을 https로 지정했습니다. Network Load Balancer는 TCP로만 작동하기 때문에 이 리스너는 TCP 프로토콜을 사용하여 트래픽을 대상 포트의 프로세스로 전송합니다. HTTP와 HTTPS 네트워크 트래픽은 TCP 최상위에서 구현되기 때문에 이렇게 해도 됩니다.