Network Load Balancer를 위한 리스너 - Elastic Load Balancing

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

Network Load Balancer를 위한 리스너

리스너는 구성한 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 프로세스입니다. Network Load Balancer를 사용하기 전에 리스너를 하나 이상 추가해야 합니다. 로드 밸런서에 리스너가 없는 경우 클라이언트로부터 트래픽을 수신할 수 없습니다. 리스너에 대해 정의하는 규칙에 따라 로드 밸런서가 EC2 인스턴스와 같이 등록한 대상으로 요청을 라우팅하는 방법이 결정됩니다.

리스너 구성

리스너는 다음과 같은 프로토콜 및 포트를 지원합니다.

  • 프로토콜: TCP, TLS, UDP, TCP_UDP

  • 포트: 1-65535

애플리케이션이 비즈니스 로직에 집중할 수 있도록 TLS 리스너를 사용하여 암호화 및 암호 해독 작업을 로드 밸런서로 오프로드할 수 있습니다. 리스너 프로토콜이 TLS인 경우 리스너에 SSL 서버 인증서를 하나 이상 배포해야 합니다. 자세한 내용은 서버 인증서 단원을 참조하십시오.

대상이 로드 밸런서 대신 TLS 트래픽을 해독하도록 하려면 TLS 리스너를 생성하는 대신 포트 443에서 수신하는 TCP 리스너를 생성합니다. TCP 리스너를 사용하여 로드 밸런서는 암호화된 트래픽을 해독하지 않고 대상으로 전달합니다.

동일한 포트에서 TCP와 UDP를 모두 지원하려면 TCP_UDP 리스너를 만드십시오. TCP_UDP 리스너의 대상 그룹은 TCP_UDP 프로토콜을 사용해야 합니다.

듀얼 스택 로드 밸런서의 UDP 리스너에는 IPv6 대상 그룹이 필요합니다.

리스너에 WebSockets를 사용할 수 있습니다.

구성된 리스너로 전송된 모든 네트워크 트래픽은 의도된 트래픽으로 분류됩니다. 구성된 리스너와 일치하지 않는 네트워크 트래픽은 의도하지 않은 트래픽으로 분류됩니다. 유형 3 이외의 ICMP 요청도 의도하지 않은 트래픽으로 간주됩니다. Network Load Balancer는 의도하지 않은 트래픽을 대상에 전달하지 않고 삭제합니다. 새 연결이 아니거나 활성 TCP 연결의 일부가 아닌 구성된 리스너에 대해 리스너 포트로 전송된 TCP 데이터 패킷은 RST(TCP 재설정)를 통해 거부됩니다.

자세한 내용은 Elastic Load Balancing 사용 설명서라우팅 요청을 참조하세요.

리스너 속성

다음은 Network Load Balancer의 리스너 속성입니다.

tcp.idle_timeout.seconds

TCP 유휴 제한 시간 값(초). 값의 범위는 60~6,000초입니다. 기본값은 350초입니다.

자세한 내용은 유휴 제한 시간 업데이트 단원을 참조하십시오.

리스너 규칙

리스너를 생성할 때 라우팅 요청의 규칙을 지정합니다. 이 규칙은 요청을 지정된 대상 그룹으로 전달합니다. 이 규칙을 업데이트하려면 Network Load Balancer를 위한 리스너 업데이트 단원을 참조하십시오.

보안 리스너

TLS 리스너를 사용하려면 로드 밸런서에 한 개 이상의 서버 인증서를 반드시 배포해야 합니다. 로드 밸런서는 서버 인증서를 사용해 프런트 엔드 연결을 종료한 다음, 대상으로 전송하기 전에 클라이언트의 요청을 해독합니다. 암호화된 트래픽을 로드 밸런서의 해독 없이 대상으로 전달해야 하는 경우, TLS 리스너를 생성하는 대신 포트 443에서 수신하는 TCP 리스너를 생성합니다. 로드 밸런서는 요청을 해독하지 않고 있는 그대로 대상으로 전달합니다.

Elastic Load Balancing은 보안 정책(security policy)이라고 하는 TLS 협상 구성을 사용해 클라이언트와 로드 밸런서 간에 TLS 연결을 협상합니다. 보안 정책은 프로토콜과 암호의 조합입니다. 프로토콜은 클라이언트와 서버 간에 보안 연결을 설정하여 클라이언트와 로드 밸런서 간에 전달되는 모든 데이터를 안전하게 보호합니다. 암호는 코딩된 메시지를 생성하기 위해 암호화 키를 사용하는 암호화 알고리즘입니다. 프로토콜은 여러 개의 암호를 사용해 인터넷 상의 데이터를 암호화합니다. 연결 협상이 이루어지는 동안 클라이언트와 로드 밸런서는 각각이 지원하는 암호 및 프로토콜 목록을 선호도 순으로 표시합니다. 서버의 목록에서 클라이언트의 암호 중 하나와 일치하는 첫 번째 암호가 보안 연결을 위해 선택됩니다.

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

Network Load Balancer는 TLS 1.3용 PSK 및 TLS 1.2 이상용 세션 티켓을 사용하여 TLS 재개를 지원합니다. 세션 ID를 사용하거나 SNI를 사용하여 리스너에 여러 인증서가 구성된 경우 재개는 지원되지 않습니다. 0-RTT 데이터 기능과 early_data 확장은 구현되지 않습니다.

관련 데모는 Network Load Balancer에 대한 TLS 지원Network Load Balancer에 대한 SNI 지원을 참조하세요.

ALPN 정책

ALPN(Application-Layer Protocol Negotiation)은 최초 TLS 핸드셰이크 hello 메시지를 통해 전송되는 TLS 확장입니다. ALPN을 사용하면 애플리케이션 계층이 HTTP/1 및 HTTP/2 같은 보안 연결을 통해 사용해야 하는 프로토콜을 협상할 수 있습니다.

클라이언트가 ALPN 연결을 시작하면 로드 밸런서는 클라이언트 ALPN 기본 설정 목록을 해당 ALPN 정책과 비교합니다. 클라이언트가 ALPN 정책의 프로토콜을 지원하는 경우 로드 밸런서는 ALPN 정책의 기본 설정 목록을 기반으로 연결을 설정합니다. 그렇지 않을 경우 로드 밸런서는 ALPN을 사용하지 않습니다.

지원되는 ALPN 정책

지원되는 ALPN 정책은 다음과 같습니다.

HTTP1Only

HTTP/1.*만 협상합니다. ALPN 기본 설정 목록은 http/1.1, http/1.0입니다.

HTTP2Only

HTTP/2만 협상합니다. ALPN 기본 설정 목록은 h2입니다.

HTTP2Optional

HTTP/2보다 HTTP/1.*를 선호합니다(HTTP/2 테스트에 유용할 수 있음). ALPN 기본 설정 목록은 http/1.1, http/1.0, h2입니다.

HTTP2Preferred

HTTP/1.*보다 HTTP/2를 선호합니다. ALPN 기본 설정 목록은 h2, http/1.1, http/1.0입니다.

None

ALPN을 협상하지 않습니다. 이 값이 기본값입니다.

ALPN 연결 활성화

TLS 리스너를 생성하거나 수정할 때 ALPN 연결을 활성화할 수 있습니다. 자세한 내용은 리스너 추가ALPN 정책 업데이트 단원을 참조하세요.