SSL 프록시 부하 분산 개념

Google Cloud SSL 프록시 부하 분산은 부하 분산 레이어에서 사용자 SSL(TLS) 연결을 종료한 다음 SSL 또는 TCP 프로토콜을 통해 인스턴스 간에 연결을 조정합니다. Cloud SSL 프록시는 HTTP(S) 이외의 트래픽용입니다. HTTP(S) 트래픽의 경우 대신 HTTP(S) 부하 분산을 사용하는 것이 좋습니다.

SSL 프록시 부하 분산은 클라이언트 트래픽에 IPv4 및 IPv6 주소를 모두 지원합니다. 클라이언트 IPv6 요청은 부하 분산 레이어에서 종료된 후 IPv4를 통해 백엔드로 프록시 처리됩니다.

개요

SSL 트래픽용 SSL(TLS) 프록시를 통해 부하 분산 레이어에서 SSL 세션을 종료한 다음 SSL(권장) 또는 TCP를 사용하여 트래픽을 가상 머신 인스턴스로 전달할 수 있습니다.

SSL 프록시는 전역으로 배포할 수 있는 부하 분산 서비스입니다. 인스턴스를 여러 리전에 배포하면 부하 분산기에서 자동으로 트래픽을 여유 용량이 있는 가장 가까운 리전으로 전달합니다. 가장 가까운 리전에 용량의 여유가 없으면 부하 분산기가 자동으로 새로운 연결을 이용 가능한 용량이 있는 다른 리전으로 전달합니다. 기존 사용자 연결은 현재 리전에 그대로 유지됩니다.

전역 부하 분산을 사용하려면 기본 등급인 프리미엄 등급의 네트워크 서비스 등급을 사용해야 합니다. 그렇지 않으면 부하 분산이 리전 단위로 처리됩니다.

최고 수준의 보안을 위해 SSL 프록시 배포에 엔드 투 엔드 암호화를 사용하세요. 이렇게 하려면 SSL을 통한 트래픽을 허용하도록 백엔드 서비스를 구성해야 합니다. 그러면 SSL 프록시 레이어에서 복호화된 클라이언트 트래픽이 백엔드 인스턴스로 전송되기 전에 다시 암호화됩니다. 이러한 엔드 투 엔드 암호화를 사용하려면 SSL 처리를 수행할 수 있도록 인스턴스에 인증서와 키를 제공해야 합니다.

SSL 프록시의 이점:

  • 지능형 라우팅 - 부하 분산기는 용량이 있는 백엔드 위치로 요청을 라우팅할 수 있습니다. 반대로 L3/L4 부하 분산기는 용량에 관계없이 리전 백엔드로 라우팅해야 합니다. 더 스마트한 라우팅을 사용하면 x*N이 아니라 N+1 또는 N+2에서 프로비저닝할 수 있습니다.
  • 가상 머신 인스턴스의 사용률 향상 - 사용되는 암호의 CPU 효율성이 낮다면 SSL 처리 시 CPU가 집중적으로 소비될 수 있습니다. CPU 성능을 최대화하려면 ECDSA SSL 인증서, TLS 1.2를 사용하고 부하 분산기와 인스턴스 간에 SSL용 ECDHE-ECDSA-AES128-GCM-SHA256 암호화 기술을 우선적으로 사용하세요.
  • 인증서 관리 - 고객용 SSL 인증서는 직접 발급받아서 관리하는 인증서(자체 관리 인증서)이거나 Google이 대신 발급받아서 관리하는 인증서(Google에서 관리하는 인증서)일 수 있습니다. 부하 분산기 자체에만 인증서를 프로비저닝하기만 하면 됩니다. 가상 머신 인스턴스에서 자체 서명된 인증서를 사용하여 관리를 간소화할 수 있습니다.
  • 보안 패치 - SSL 또는 TCP 스택에서 취약점이 발생하면 인스턴스를 안전하게 유지하기 위해 부하 분산기에 자동으로 패치가 적용됩니다.
  • SSL 프록시 부하 분산은 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 포트를 지원합니다. Google 관리 SSL 인증서를 SSL 프록시 부하 분산과 함께 사용하는 경우 트래픽의 프런트엔드 포트가 443이어야 Google 관리 SSL 인증서를 프로비저닝하고 갱신할 수 있습니다.
  • SSL 정책을 SSL 프록시 부하 분산과 함께 사용할 수 있습니다.

참고:

  • 부하 분산 레이어와 인스턴스 간에 암호화되지 않은 TCP를 통해 트래픽을 전송하도록 선택하면 인스턴스에서 SSL 처리의 부하를 이전할 수 있지만 부하 분산 레이어와 인스턴스 간의 보안이 저하되므로 권장하지 않습니다.
  • SSL 프록시는 HTTPS를 처리할 수 있지만 권장하지 않습니다. 대신 HTTPS 트래픽에는 HTTPS 부하 분산을 사용하는 것이 좋습니다. 자세한 내용은 FAQ를 참조하세요.
  • gcloud 명령줄 도구를 사용하여 SSL 정책을 만들 수 있습니다.
  • SSL 프록시 부하 분산기는 클라이언트 인증서 기반 인증(상호 TLS 인증이라고도 함)을 지원하지 않습니다.

다음 섹션에서는 SSL 프록시 부하 분산의 작동 방식을 설명합니다.

SSL 프록시를 사용하는 Google Cloud Load Balancing

SSL 프록시 부하 분산을 사용하면 SSL 연결이 부하 분산 레이어에서 종료된 후 사용 가능한 가장 가까운 인스턴스 그룹으로 프록시 처리됩니다.

이 예시에서는 아이오와 및 보스턴의 사용자 트래픽이 부하 분산 레이어에서 종료되었고 선택된 백엔드 인스턴스에 대한 별도의 연결이 설정되었습니다.

SSL 종료를 사용하는 Google Cloud Load Balancing(확대하려면 클릭)
SSL 종료를 사용하는 Google Cloud Load Balancing(확대하려면 클릭)

반환 경로

GCP는 상태 확인을 위해 VPC 네트워크에 없는 특수 경로를 만듭니다. 자세한 내용은 부하 분산기 반환 경로를 참조하세요.

TLS가 종료되는 위치에 대한 지리적 제어

SSL 프록시 부하 분산기는 클라이언트와 부하 분산기 간의 지연을 최소화하기 위해 전역으로 분산된 위치에서 TLS를 종료합니다. TLS가 종료되는 위치를 지리적으로 제어해야 하는 경우 GCP 네트워크 부하 분산을 대신 사용하고, 요구사항에 적합한 리전에 있는 백엔드에서 TLS를 종료해야 합니다.

열린 포트

SSL 프록시 부하 분산기는 역방향 프록시 부하 분산기입니다. 부하 분산기는 수신 연결을 종료한 다음 부하 분산기에서 백엔드로 새 연결을 엽니다. 역방향 프록시 기능은 Google 프런트 엔드(GFE)에서 제공합니다.

설정한 방화벽 규칙은 GFE에서 백엔드로 들어오는 트래픽을 차단하지만 GFE로 들어오는 트래픽은 차단하지 않습니다.

SSL 프록시 부하 분산기에는 동일한 아키텍처에서 실행되는 다른 Google 서비스를 지원하는 열린 포트가 여러 개 있습니다. 부하 분산기의 외부 IP 주소에 대해 보안 또는 포트 검사를 실행하면 추가 포트가 열려있는 것처럼 보입니다.

SSL 프록시 부하 분산기에는 영향을 주지 않습니다. SSL 부하 분산기의 정의에 사용되는 외부 전달 규칙은 TCP 포트 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222만 참조할 수 있습니다. 다른 TCP 대상 포트를 사용하는 트래픽은 부하 분산기의 백엔드로 전달되지 않습니다.

FAQ

SSL 프록시 부하 분산 대신 HTTPS 부하 분산을 사용해야 하는 경우는 언제입니까?

SSL 프록시는 HTTPS 트래픽을 처리할 수 있지만 HTTPS 부하 분산은 대부분의 경우에 더 나은 선택이 될 수 있는 추가 기능을 제공합니다.

HTTPS 부하 분산에는 다음과 같은 추가 기능이 있습니다.

  • HTTP/2 및 SPDY/3.1을 협상합니다.
  • 잘못된 HTTP 요청 또는 응답을 거부합니다.
  • URL 호스트 및 경로를 기반으로 다른 인스턴스 그룹에 요청을 전달합니다.
  • Cloud CDN과 통합됩니다.
  • 요청 부하를 인스턴스 간에 균등하게 분산하여 인스턴스 사용률을 향상시킵니다. HTTPS는 각 요청의 부하를 개별적으로 분산하지만, SSL 프록시는 동일한 SSL 또는 TCP 연결의 모든 바이트를 동일한 인스턴스로 보냅니다.

Google Cloud의 SSL 프록시 부하 분산은 SSL을 사용하는 다른 프로토콜(예: 웹 소켓 및 IMAP over SSL)에 사용할 수 있습니다.

부하 분산 레이어에 대한 연결의 원래 IP 주소를 볼 수 있나요?

예. PROXY 프로토콜 버전 1 헤더를 앞에 추가하도록 부하 분산기를 구성하여 원래 연결 정보를 유지할 수 있습니다. 자세한 내용은 프록시의 프록시 프로토콜 헤더 업데이트를 참조하세요.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...