HTTP(S), SSL 프록시, TCP 프록시 부하 분산을 위한 IPv6 종료

Google Cloud는 HTTP(S) 부하 분산, SSL 프록시 부하 분산, TCP 프록시 부하 분산에 IPv6 클라이언트를 지원합니다. 부하 분산기는 사용자의 IPv6 연결을 수락한 다음 백엔드로 프록시합니다.

IPv4 및 IPv6 외부 주소를 모두 다음과 같이 구성할 수 있습니다.

  • 외부 HTTP(S) 부하 분산기
  • SSL 프록시 부하 분산기
  • TCP 프록시 부하 분산기
전역 IPv6 부하 분산(확대하려면 클릭)
전역 IPv6 부하 분산(확대하려면 클릭)

IPv6 종료를 사용하면 사용자의 IPv6 요청을 처리하고 IPv4를 통해 백엔드로 프록시할 수 있습니다. IPv6을 사용하면 다음을 수행할 수 있습니다.

  • 멀티 리전 배포에 하나의 Anycast IPv6 주소 사용. 여러 리전에서 실행되는 애플리케이션 인스턴스에 부하 분산기 IPv6 주소는 하나만 필요합니다. 즉, DNS 서버에 단일 AAAA 레코드가 존재하며 여러 IPv6 주소 간에 부하를 분산할 필요가 없습니다. 캐싱할 주소가 하나뿐이므로 클라이언트가 AAAA 레코드를 캐싱하는 것이 문제가 되지 않습니다. IPv6 주소에 대한 사용자 요청은 사용 가능한 용량이 있는 가장 가까운 정상 백엔드로 자동으로 부하가 분산됩니다.

  • HTTP, HTTPS, HTTP/2, TCP, SSL/TLS IPv6 클라이언트 트래픽의 부하를 분산하세요.

  • 단일 IPv6 부하 분산기 주소로 리전 간 오버플로. 한 리전의 백엔드가 사용할 리소스가 부족하거나 비정상이면 전역 부하 분산기에서 자동으로 사용자의 요청을 사용 가능한 리소스가 있는 가장 가까운 다음 리전으로 보냅니다. 가장 가까운 리전에 사용 가능한 리소스가 있으면 이 리전에 의해 전역 부하 분산이 서비스 제공 상태로 복귀합니다. 전역 부하 분산을 사용하려면 프리미엄 등급의 네트워크 서비스 등급을 사용해야 합니다.

  • 이중 스택 실행. IPv6 및 IPv4 클라이언트를 모두 지원하려면 IPv6용과 IPv4용으로 각각 하나씩 두 개의 부하 분산기 IP 리소스를 만들고 둘 다 동일한 IPv4 애플리케이션 인스턴스와 연결합니다. IPv4 클라이언트는 IPv4 주소에 연결하고 IPv6 클라이언트는 IPv6 주소에 연결합니다. 그런 다음 이러한 클라이언트는 사용 가능한 용량이 있는 가장 가까운 정상 백엔드에 자동으로 부하를 분산합니다. IPv6 전달 규칙은 무료로 제공되므로 IPv4에만 비용을 지불하시면 됩니다.

    IPv4 및 IPv6 트래픽을 동일한 백엔드로 전달(확대하려면 클릭)
    IPv4 및 IPv6 트래픽을 동일한 백엔드로 전달(확대하려면 클릭)

IPv6 종료 및 프록시

부하 분산기에 대해 IPv6 종료를 구성하면 백엔드를 IPv6 클라이언트에 대한 IPv6 애플리케이션으로 나타낼 수 있습니다.

부하 분산을 위한 IPv6 종료(확대하려면 클릭)
부하 분산을 위한 IPv6 종료(확대하려면 클릭)

사용자가 IPv6을 통해 부하 분산기에 연결하면 다음과 같은 결과가 발생합니다.

  1. IPv6 주소 및 전달 규칙을 사용하는 부하 분산기가 사용자 연결을 대기합니다.
  2. IPv6 클라이언트가 IPv6을 통해 부하 분산기에 연결합니다.
  3. 부하 분산기가 역방향 프록시로 작동하고 IPv6 클라이언트 연결을 종료합니다. 요청을 백엔드에 대한 IPv4 연결에 배치합니다.
  4. 역방향 경로에서 부하 분산기가 백엔드로부터 IPv4 응답을 수신한 다음 이를 다시 원래의 클라이언트에 대한 IPv6 연결에 배치합니다.

부하 분산기 전달 규칙에 부합하는 IPv6 주소 할당

외부 부하 분산기를 구성할 때는 하나 이상의 전역 전달 규칙을 제공해야 하며, 이는 각각 외부의 공개적으로 라우팅된 IPv4 또는 IPv6 IP 주소(또는 모두)를 사용합니다. 이 IP 주소를 사이트의 DNS 레코드에 사용할 수 있습니다.

전달 규칙을 만들 때는 프로젝트에 예약된 고정 IP 주소를 사용하거나, 규칙을 만들 때 전달 규칙이 자동으로 임시 IP 주소를 가져오도록 설정할 수 있습니다. 고정 IP 주소가 프로젝트에 예약되어 있으므로 의도적으로 해제할 때까지 이를 유지할 수 있습니다. 임시 주소는 전달 규칙이 존재하는 한 전달 규칙에 속합니다. 전달 규칙을 삭제하면 임시 주소가 다시 Google Cloud 풀로 해제됩니다.

부하 분산기에 IPv4 및 IPv6 주소가 모두 필요한 경우, 두 개의 전달 규칙을 만들고 IPv4 주소를 하나의 전달 규칙과 연결하고 IPv6 주소를 다른 전달 규칙과 연결할 수 있습니다. 그런 다음 두 규칙을 동일한 부하 분산기와 연결할 수 있습니다.

IPv6 주소 형식

Google Cloud는 /64 IPv6 주소 범위를 IPv6 전달 규칙에 할당합니다. gcloud 명령줄 도구는 0으로 설정된 최하위 64비트로 IPv6 주소를 나열하지만 부하 분산기는 모든 범위의 트래픽을 허용합니다. 따라서 클라이언트가 어떤 IPv6 서버 IP 주소에 연결되어 있는지에 따라 X-Forwarded-For 헤더에 할당된 범위에 다른 부하 분산기 IPv6 주소가 존재할 수도 있습니다.

Google Cloud는 IPv6 주소를 형식화할 때 RFC 5952, 섹션 4의 권장사항을 따릅니다.

HTTP(S) 부하 분산을 위한 IPv6 종료가 포함된 클라이언트 IP 헤더

부하 분산기가 클라이언트로부터의 IPv6 연결을 백엔드로의 IPv4 연결로 프록시 처리하면 원래의 소스 IP 주소가 부하 분산기의 IP 주소로 대체됩니다. 하지만 백엔드에서 종종 로깅, 의사 결정, 또는 다른 목적을 위해 원래의 소스 IP 주소를 알아야 하는 경우가 있습니다. Google Cloud는 원래의 IPv6 클라이언트 IP 주소가 포함된 백엔드로 전파되는 HTTP 헤더를 제공합니다.

IPv6의 HTTP 헤더는 IPv4의 헤더와 비슷합니다. 요청의 형식은 다음과 같습니다.

  • X-Forwarded-For: client-ip-address, global-forwarding-rule-external-ip-addresses

마지막 요소는 부하 분산기 IP 주소를 표시합니다. 두 번째 요소부터 마지막 요소까지는 부하 분산기에 표시되는 클라이언트 IP 주소를 표시합니다. 클라이언트 또는 개입 프록시가 요청을 부하 분산기에 보내기 전에 다른 X-Forwarded-For 헤더를 추가하는 경우 X-Forwarded-For 헤더에 다른 요소가 있을 수도 있습니다.

예를 들어 X-Forwarded-For 헤더는 다음과 같이 표시됩니다.

X-Forwarded-For: 2001:db8:abcd:1::1234, 2607:f8b0:4005:801::200e

2001:db8:abcd:1::1234는 클라이언트의 IPv6 주소입니다. 2607:f8b0:4005:801::200e는 외부 HTTP(S) 부하 분산기의 IPv6 주소입니다.

가격 책정

IPv6 종료를 위한 전달 규칙은 추가 비용 없이 제공됩니다. 임시 IPv6 주소에는 비용이 청구되지 않습니다. 예약된 IPv6 주소는 사용 여부에 관계없이 기존 요금이 청구됩니다. 그렇지 않은 경우 IPv6 부하 분산의 가격은 IPv4 부하 분산의 가격과 동일합니다. 부하 분산 가격 세부정보는 네트워크 가격 책정을 참조하세요.

다음 단계