외부 백엔드로 리전 내부 애플리케이션 부하 분산기 설정

이 가이드에서는 요청을 외부 백엔드로 프록시하는 리전 내부 애플리케이션 부하 분산기를 구성하는 방법을 설명합니다. 외부 백엔드는 Google Cloud 외부에 있는 엔드포인트입니다.

이 가이드를 진행하기 전에 제한사항과 함께 인터넷 NEG 개요 문서를 확인하세요.

다음 아키텍처 다이어그램은 외부 백엔드가 있는 리전 내부 애플리케이션 부하 분산기 프런트엔드를 보여줍니다.

외부 백엔드가 있는 리전 내부 애플리케이션 부하 분산기
그림 1. 외부 백엔드가 있는 리전 내부 애플리케이션 부하 분산기(확대하려면 클릭)

권한

이 가이드를 따르려면 인터넷 NEG를 만들고 프로젝트에서 애플리케이션 부하 분산기를 만들거나 수정해야 합니다. 이렇게 하려면 프로젝트 소유자 또는 편집자(roles/owner 또는 roles/editor)이거나, 다음 Compute Engine IAM 역할을 모두 보유해야 합니다.

작업 필요한 역할
부하 분산기 구성요소 생성 및 수정 Compute 네트워크 관리자
(roles/compute.networkAdmin)
NEG 생성 및 수정 Compute 인스턴스 관리자
(roles/compute.instanceAdmin)

Google Cloud 외부에서 외부 백엔드 환경 설정

외부 백엔드 환경을 설정하려면 다음 섹션을 참조하세요.

네트워크 엔드포인트 구성

Google Cloud에서 외부 백엔드에 액세스할 수 있도록 네트워크 엔드포인트를 구성합니다. 인터넷을 통해 엔드포인트(IP:포트 조합 또는 정규화된 도메인 이름(FQDN) 및 포트)에 연결할 수 있는지 확인합니다. 이 엔드포인트는 나중에 인터넷 NEG에서 참조됩니다.

인터넷 NEG 엔드포인트에 대한 자세한 구성 요구사항은 인터넷 NEG 개요를 참조하세요.

외부 백엔드가 Google Cloud에서 트래픽을 수신하도록 허용

이 단계는 프록시 전용 서브넷을 만들고 Cloud NAT 게이트웨이를 설정한 후에 완료할 수 있습니다.

Google Cloud 요청이 외부 백엔드에 도달하도록 허용하려면 다음 단계를 수행해야 합니다.

  1. Google Cloud의 이그레스 트래픽에 사용되는 IP 주소를 사용해서 Cloud NAT 게이트웨이를 구성합니다. 게이트웨이가 프록시 전용 서브넷 범위를 외부 IP 주소에 매핑합니다. 자세한 단계는 Cloud NAT 게이트웨이 설정을 참조하세요.
  2. Google Cloud의 트래픽이 외부 백엔드에 도달하도록 외부 백엔드 환경이 구성되었는지 확인합니다. 예를 들어 NAT 게이트웨이에 사전 예약된 IP 주소를 사용한 경우 외부 환경에서 해당 IP 주소를 허용 목록에 추가합니다. 이를 설정하려면 외부 환경의 네트워크 또는 보안 관리자와 협력해야 할 수 있습니다.

Google Cloud 환경 설정

두 개의 서브넷이 있는 VPC 네트워크가 필요합니다. 한 개는 부하 분산기 구성요소용이고 다른 하나는 리전의 프록시 전용 서브넷용입니다. 그런 후 인터넷 NEG 백엔드를 사용하는 부하 분산기를 만듭니다.

VPC 네트워크 및 서브넷 만들기

이 서브넷은 부하 분산기의 구성요소를 만드는 데 사용됩니다.

Cloud 콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크로 이동
  2. VPC 네트워크 만들기를 클릭합니다.
  3. 이름LB_NETWORK을 입력합니다.
  4. 서브넷 섹션에서 다음을 수행합니다.
    • 서브넷 생성 모드커스텀으로 설정합니다.
    • 새 서브넷 섹션에 다음 정보를 입력합니다.
      • 이름: LB_SUBNET_NAME
      • 리전: REGION
      • IP 주소 범위: LB_SUBNET_RANGE
    • 완료를 클릭합니다.
  5. 만들기를 클릭합니다.

gcloud

  1. gcloud compute networks create 명령어를 사용해서 커스텀 VPC 네트워크를 만듭니다.

    gcloud compute networks create LB_NETWORK \
      --subnet-mode=custom
    
  2. LB_NETWORK 네트워크에 서브넷을 만듭니다.

    gcloud compute networks subnets create LB_SUBNET_NAME \
      --network=LB_NETWORK \
      --range=LB_SUBNET_RANGE \
      --region=REGION
    

프록시 전용 서브넷 구성

이 프록시 전용 서브넷은 REGION 리전의 모든 리전 Envoy 기반 부하 분산기에 사용됩니다.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크로 이동
  2. 목록에서 네트워크를 선택합니다.
  3. 서브넷 추가를 클릭합니다.
  4. 이름PROXY_ONLY_SUBNET_NAME을 입력합니다.
  5. 리전으로 REGION을 선택합니다.
  6. 용도리전별 관리형 프록시로 설정합니다.
  7. IP 주소 범위PROXY_ONLY_SUBNET_RANGE를 입력합니다.
  8. 추가를 클릭합니다.

gcloud

gcloud compute networks subnets create 명령어로 프록시 전용 서브넷을 만듭니다.

gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=LB_NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

Cloud NAT 게이트웨이 설정

Cloud NAT 게이트웨이를 구성하기 전에 관련 제한사항 및 가격 책정 고려사항을 검토해야 합니다. 자세한 내용은 리전 NEG: Cloud NAT 게이트웨이 사용을 참조하세요.

다음 명령어는 Cloud NAT 게이트웨이 설정 방법을 설명합니다. Cloud NAT 게이트웨이는 할당이 수요를 기반으로 하는 자동 NAT 외부 IP 주소 또는 수동으로 미리 예약된 외부 IP 주소 집합을 사용하도록 구성될 수 있습니다. 게이트웨이가 프록시 전용 서브넷 범위를 외부 IP 주소에 매핑합니다.

자동 NAT 할당 IP 주소 설정

자동 NAT IP 주소 할당을 사용하여 Cloud NAT 게이트웨이를 만들 때는 Cloud NAT 게이트웨이가 IP 주소를 할당하는 네트워크 서비스 등급(프리미엄 등급 또는 표준 등급)을 지정할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT로 이동

  2. 시작하기 또는 Cloud NAT 게이트웨이 만들기를 클릭합니다.

  3. 게이트웨이 이름 LB_NAT_CONFIG를 입력합니다.

  4. NAT 유형에서 Public을 선택합니다.

  5. 네트워크 목록에서 LB_NETWORK를 선택합니다.

  6. 리전 목록에서 REGION을 선택합니다.

  7. 리전에 Cloud Router를 만듭니다.

  8. 소스 엔드포인트 유형에서 관리형 프록시 부하 분산기를 선택합니다.

  9. 소스 목록에서 커스텀을 선택합니다.

    • 서브넷에서 PROXY_ONLY_SUBNET_NAME을 선택합니다.
  10. Cloud NAT IP 주소 목록에서 자동(권장)을 선택합니다.

  11. 네트워크 서비스 등급에서 프리미엄 또는 표준을 선택합니다.

  12. 만들기를 클릭합니다.

gcloud

외부 백엔드 환경에서 트래픽을 외부 백엔드로 전송할 수 있는 특정 Google Cloud IP 주소를 허용 목록에 추가할 필요가 없는 경우 동적으로 할당된 IP 주소를 사용합니다.

  1. Cloud Router를 만듭니다.

    gcloud beta compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  2. Cloud NAT 게이트웨이를 설정합니다.

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --auto-allocate-nat-external-ips \
      --region=REGION
    

다음을 바꿉니다.

  • LB_NAT_CONFIG: NAT 구성 이름

  • ROUTER_NAME: Cloud Router의 이름

  • REGION: 만들려는 NAT의 리전. 지정하지 않으면 리전을 선택하라는 메시지가 표시될 수 있습니다(대화형 모드만 해당).

  • PROXY_ONLY_SUBNET_NAME: 프록시 전용 서브넷의 이름

수동 할당 IP 주소 설정

외부 백엔드 환경에서 사용자가 특정 Google Cloud IP 주소에 대한 허용 목록을 사용해야 하는 경우에만 수동으로 할당된 IP 주소를 사용합니다. 외부 백엔드 환경에 허용 목록이 필요하지 않은 경우 이전에 표시된 대로 동적 할당을 대신 사용합니다.

Cloud NAT 게이트웨이를 만들 때 특정 조건에 따라 프리미엄 등급이나 표준 등급 또는둘 다의 NAT IP 주소를 수동으로 할당하도록 선택할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT로 이동

  2. 시작하기 또는 Cloud NAT 게이트웨이 만들기를 클릭합니다.

  3. 게이트웨이 이름 LB_NAT_CONFIG를 입력합니다.

  4. 네트워크 목록에서 LB_NETWORK를 선택합니다.

  5. 리전 목록에서 REGION을 선택합니다.

  6. 리전에서 Cloud Router를 선택하거나 만듭니다.

  7. 소스 엔드포인트 유형에서 관리형 프록시 부하 분산기를 선택합니다.

  8. 소스 목록에서 커스텀을 선택합니다.

    • 서브넷에서 PROXY_ONLY_SUBNET_NAME을 선택합니다.
  9. Cloud NAT IP 주소 목록에서 수동을 선택합니다.

  10. 네트워크 서비스 등급에서 프리미엄 또는 표준을 선택합니다.

  11. NAT에 사용할 고정 예약 외부 IP 주소를 선택하거나 만듭니다.

  12. 추가 IP 주소를 지정하려면 IP 주소 추가를 클릭한 후 추가 고정 예약 외부 IP 주소를 선택하거나 만듭니다.

  13. 만들기를 클릭합니다.

gcloud

  1. IP 주소를 만듭니다. 게이트웨이가 일대일 NAT 변환을 수행하기 때문에 예약된 IP 주소 풀이 예상되는 트래픽 양을 처리하기에 충분히 큰지 확인해야 합니다. 할당된 NAT IP 주소가 충분하지 않으면 트래픽 손실이 발생할 수 있습니다.

    gcloud compute addresses create IP_ADDRESS_NAME_1 IP_ADDRESS_NAME_2 [IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    
  2. Cloud Router를 만듭니다.

    gcloud compute routers create ROUTER_NAME \
      --network=LB_NETWORK \
      --region=REGION
  3. Cloud NAT 게이트웨이를 설정합니다.

    gcloud beta compute routers nats create LB_NAT_CONFIG \
      --router=ROUTER_NAME \
      --endpoint-types=ENDPOINT_TYPE_MANAGED_PROXY_LB \
      --nat-custom-subnet-ip-ranges=PROXY_ONLY_SUBNET_NAME \
      --nat-external-ip-pool=IP_ADDRESS_NAME_1,IP_ADDRESS_NAME_2,[IP_ADDRESS_NAME_3 ...] \
      --region=REGION
    

    다음을 바꿉니다.

  • LB_NAT_CONFIG: NAT 구성 이름

  • ROUTER_NAME: Cloud Router 이름

  • PROXY_ONLY_SUBNET_NAME: 프록시 전용 서브넷의 이름

  • REGION: 만들려는 NAT의 리전. 지정하지 않으면 리전을 선택하라는 메시지가 표시될 수 있습니다(대화형 모드만 해당).

자세한 내용은 Cloud NAT 문서에서 NAT의 서브넷 범위 지정을 참조하세요.

외부 백엔드가 Google Cloud에서 트래픽을 수신할 수 있도록 외부 백엔드 환경에서 NAT IP 주소 범위에 대해 허용 목록을 사용해야 합니다.

부하 분산기의 IP 주소 예약

부하 분산기의 내부 IP 주소를 예약합니다.

콘솔

Google Cloud 콘솔을 사용하여 독립형 내부 IP 주소를 예약할 수 있습니다.

  1. VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. 환경 간 하이브리드 연결을 구성하는 데 사용된 네트워크를 클릭합니다.
  3. 고정 내부 IP 주소를 클릭한 후 고정 주소 예약을 클릭합니다.
  4. 이름LB_IP_ADDRESS를 입력합니다.
  5. 서브넷으로 LB_SUBNET_NAME을 선택합니다.
  6. 예약할 IP 주소를 지정하려면 고정 IP 주소 아래에서 직접 선택을 선택한 후 커스텀 IP 주소를 입력합니다. 그렇지 않으면 시스템이 서브넷에서 IP 주소를 자동으로 할당합니다.
  7. 이 IP 주소를 여러 전달 규칙과 함께 사용하려면 목적에서 공유를 선택합니다.
  8. 예약을 클릭하여 프로세스를 완료합니다.

gcloud

  1. gcloud CLI를 사용하여 compute addresses create 명령어를 실행합니다.

    gcloud compute addresses create LB_IP_ADDRESS \
      --region=REGION \
      --subnet=LB_SUBNET_NAME
    
  2. compute addresses describe 명령어를 사용하여 할당된 IP 주소를 봅니다.

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

인터넷 NEG 설정

INTERNET_FQDN_PORT 엔드포인트 또는 INTERNET_IP_PORT 엔드포인트로 인터넷 NEG를 만들 수 있습니다.

콘솔

INTERNET_FQDN_PORT 엔드포인트가 있는 NEG 만들기

  1. Google Cloud 콘솔에서 네트워크 엔드포인트 그룹 페이지로 이동합니다.

    네트워크 엔드포인트 그룹으로 이동

  2. 네트워크 엔드포인트 그룹 만들기를 클릭합니다.

  3. 인터넷 NEG에 INTERNET_NEG_NAME을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  4. 네트워크 엔드포인트 그룹 유형 목록에서 네트워크 엔드포인트 그룹(인터넷)을 선택한 후 다음을 수행합니다.

    • 범위 목록에서 리전을 선택합니다.
    • 선택사항: 리전 목록에서 이 NEG의 REGION을 변경합니다.
    • 네트워크 목록에서 LB_NETWORK를 선택합니다.
    • 기본 포트 상자에 DEFAULT_PORT_NUMBER를 입력합니다.
    • 엔드포인트 추가 수단 목록에서 정규화된 도메인 이름 및 포트를 선택합니다.
  5. 만들기를 선택합니다.

NEG에 INTERNET_FQDN_PORT 엔드포인트 추가

  1. Google Cloud 콘솔에서 네트워크 엔드포인트 그룹 페이지로 이동합니다.

    네트워크 엔드포인트 그룹으로 이동

  2. INTERNET_NEG_NAME를 클릭합니다.
  3. 정규화된 도메인 이름(예: myorg.example.com)을 입력합니다. 표준 FQDN 구문에서 FQDN 객체를 지정해야 합니다.

  4. 선택사항: 포트 유형커스텀을 선택합니다. 포트 유형Default면 NEG의 기본 포트가 사용됩니다.

  5. 포트 번호 상자에 PORT_NUMBER_1을 입력합니다.
  6. 만들기를 선택합니다.

INTERNET_IP_PORT 엔드포인트가 있는 NEG 만들기

  1. Google Cloud 콘솔에서 네트워크 엔드포인트 그룹 페이지로 이동합니다.

    네트워크 엔드포인트 그룹으로 이동

  2. 네트워크 엔드포인트 그룹 만들기를 클릭합니다.

  3. 인터넷 NEG에 INTERNET_NEG_NAME을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  4. 네트워크 엔드포인트 그룹 유형 목록에서 네트워크 엔드포인트 그룹(인터넷)을 선택한 후 다음을 수행합니다.

    • 범위 목록에서 리전을 선택합니다.
    • 선택사항: 리전 목록에서 이 NEG의 REGION을 변경합니다.
    • 네트워크 목록에서 LB_NETWORK를 선택합니다.
    • 기본 포트 상자에 DEFAULT_PORT_NUMBER를 입력합니다.
    • 엔드포인트 추가 수단 목록에서 IP 및 포트를 선택합니다.
  5. 만들기를 선택합니다.

NEG에 INTERNET_IP_PORT 엔드포인트 추가

  1. Google Cloud 콘솔에서 네트워크 엔드포인트 그룹 페이지로 이동합니다.

    네트워크 엔드포인트 그룹으로 이동

  2. INTERNET_NEG_NAME를 클릭합니다.
  3. IP 주소 필드에 IP_ADDRESS_1을 입력합니다.
  4. (선택사항) 포트 유형 목록에서 커스텀을 선택합니다. 포트 유형Default면 NEG의 기본 포트가 사용됩니다.

  5. 포트 번호 필드에 PORT_NUMBER_1을 입력합니다.
  6. 만들기를 선택합니다.

gcloud

INTERNET_FQDN_PORT 엔드포인트가 있는 NEG를 만들려면 다음을 실행합니다.

  1. NEG 리소스를 만듭니다.

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_FQDN_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. NEG에 엔드포인트를 추가합니다. 포트가 지정되지 않은 경우 NEG의 기본 포트가 사용됩니다.

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_1,port=PORT_NUMBER_1" \
        [--add-endpoint="fqdn=FULLY_QUALIFIED_DOMAIN_NAME_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

    다음을 바꿉니다.

    • FULLY_QUALIFIED_DOMAIN_NAME: 엔드포인트의 정규화된 도메인 이름
    • PORT_NUMBER: 엔드포인트의 포트 번호

    NEG당 최대 256개의 엔드포인트를 추가할 수 있습니다.

인터넷을 통해 도메인을 변환할 수 있는 경우 DNS를 설정하는 데 다른 구성이 필요하지 않습니다. 그러나 비공개 FQDN을 사용하는 경우 DNS 변환을 사용하도록 Cloud DNS를 구성해야 합니다. 이름은 Cloud DNS에 호스팅되거나 Cloud DNS에서 온프레미스 DNS로 DNS 전달을 통해 변환할 수 있어야 합니다.

먼저 프로젝트에서 DNS 레코드를 호스팅하기 위해 Cloud DNS 영역을 생성하여 시작합니다. 그런 다음 여기에 DNS 레코드를 추가합니다. 구체적인 구성 단계는 Cloud DNS 문서를 참조하세요.

INTERNET_IP_PORT 엔드포인트가 있는 NEG 만들기:

  1. NEG 리소스를 만듭니다.

    gcloud beta compute network-endpoint-groups create INTERNET_NEG_NAME \
        --network-endpoint-type=INTERNET_IP_PORT \
        --default-port=DEFAULT_PORT_NUMBER \
        --network=LB_NETWORK \
        --region=REGION
    
  2. NEG에 엔드포인트를 추가합니다. 포트가 지정되지 않은 경우 NEG의 기본 포트가 사용됩니다.

    gcloud beta compute network-endpoint-groups update INTERNET_NEG_NAME \
        --add-endpoint="ip=IP_ADDRESS_1,port=PORT_NUMBER_1" \
        [--add-endpoint="ip=IP_ADDRESS_2,port=PORT_NUMBER_2" \]
        --region=REGION
    

    다음을 바꿉니다.

    • IP_ADDRESS: 엔드포인트의 IP 주소
    • PORT_NUMBER: 엔드포인트의 포트 번호

    이 단계를 반복해서 NEG별로 최대 256개까지 엔드포인트를 추가할 수 있습니다.

부하 분산기 만들기

Console

구성 시작

  1. Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.

    부하 분산으로 이동

  2. 부하 분산기 만들기를 클릭합니다.
  3. 부하 분산기 유형에서 애플리케이션 부하 분산기(HTTP/HTTPS)를 선택하고 다음을 클릭합니다.
  4. 공개 또는 내부에서 내부를 선택하고 다음을 클릭합니다.
  5. 리전 간 또는 단일 리전 배포리전 워크로드에 적합을 선택하고 다음을 클릭합니다.
  6. 구성을 클릭합니다.

기본 구성

  1. 부하 분산기 이름을 입력합니다.
  2. 리전에서 REGION을 선택합니다.
  3. 네트워크에서 LB_NETWORK를 선택합니다.

프록시 전용 서브넷 예약

프록시 전용 서브넷을 예약하려면 다음 안내를 따르세요.

  1. 서브넷 예약을 클릭합니다.
  2. 이름PROXY_ONLY_SUBNET_NAME를 입력합니다.
  3. IP 주소 범위PROXY_ONLY_SUBNET_RANGE을 입력합니다.
  4. 추가를 클릭합니다.

프런트엔드 구성

  1. 프런트엔드 구성을 클릭합니다.
  2. 이름을 입력합니다.
  3. 서브네트워크LB_SUBNET_NAME을 선택합니다.
  4. HTTPS 부하 분산기를 만들려면 SSL 인증서가 있어야 합니다. Google 관리형 인증서를 사용하는 것이 좋습니다.

    속성 값(값 입력 또는 지정된 옵션 선택)
    프로토콜 HTTPS
    IP 버전 IPv4
    IP 주소 이전에 예약한 IP 주소(LB_IP_ADDRESS)를 선택합니다.
    포트 443
    인증서

    기존 SSL 인증서를 선택하거나 새 인증서를 만듭니다.

    HTTPS 부하 분산기를 만들려면 HTTPS 프록시에서 사용할 SSL 인증서 리소스가 있어야 합니다.

    SSL 인증서 리소스(또는 Google 관리형 인증서의 요구에 따라 도메인)을 설정하지 않고 이 프로세스를 테스트하려면 HTTP 부하 분산기를 설정하면 됩니다.

    HTTP 부하 분산기를 만들려면 다음 옵션이 해당 값으로 구성되었는지 확인합니다.

    속성 값(값 입력 또는 지정된 옵션 선택)
    프로토콜 HTTP
    IP 버전 IPv4
    IP 주소 이전에 예약한 IP 주소(LB_IP_ADDRESS)를 선택합니다.
    포트 80
  5. 완료를 클릭합니다.

백엔드 구성

  1. 백엔드 구성을 클릭합니다.
  2. 백엔드 서비스 및 백엔드 버킷을 클릭합니다.
  3. 백엔드 서비스 만들기를 클릭합니다.
  4. 이름을 입력합니다.
  5. 백엔드 유형인터넷 네트워크 엔드포인트 그룹을 선택합니다.
  6. 프로토콜에 부하 분산기에서 인터넷 NEG로에 사용할 프로토콜을 선택합니다.
  7. 백엔드의 경우 새 백엔드 창에서 이전 단계에서 만든 리전별 인터넷 네트워크 엔드포인트 그룹을 선택합니다.
  8. 완료를 클릭합니다.
  9. 상태 점검을 구성합니다.
    1. 상태 점검에서 상태 점검 만들기를 선택합니다.
    2. 상태 점검 이름을 HTTP_HEALTH_CHECK_NAME로 설정합니다.
    3. 프로토콜에서 HTTP를 선택합니다.
    4. 포트80으로 설정합니다.
  10. 만들기를 클릭합니다.

검토 및 완료

  1. 검토 및 완료를 클릭합니다.
  2. 모든 설정이 올바른 것으로 확인되면 만들기를 클릭합니다.

gcloud

  1. 선택사항: 상태 점검을 만듭니다. 외부 백엔드의 상태 점검 프로브는 분산 Envoy 상태 확인을 사용하며 나중에 NAT로 변환됩니다.
    gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
        --region=REGION \
        --use-serving-port
    
  2. 백엔드 서비스를 만듭니다.
    gcloud compute backend-services create BACKEND_SERVICE \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=HTTP \
        --health-checks=HTTP_HEALTH_CHECK_NAME \
        --health-checks-region=REGION \
        --region=REGION
    
  3. 백엔드 서비스에 인터넷 NEG를 추가합니다.
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --network-endpoint-group=INTERNET_NEG_NAME \
        --network-endpoint-group-region=REGION \
        --region=REGION
    
  4. 수신되는 요청을 백엔드 서비스로 라우팅하는 URL 맵을 만듭니다.
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service=BACKEND_SERVICE \
        --region=REGION
    
  5. 선택사항: 클라이언트와 부하 분산기 간에 HTTPS를 사용하는 경우 이 단계를 수행합니다. HTTP 부하 분산기에는 이 단계가 필요하지 않습니다.

    Compute Engine 또는 인증서 관리자 인증서를 만들 수 있습니다. 인증서 관리자를 사용하여 인증서를 만들려면 다음 방법 중 하나를 사용합니다.

    • 리전별 자체 관리형 인증서 리전별 자체 관리형 인증서 만들기 및 사용에 대한 자세한 내용은 리전별 자체 관리형 인증서 배포를 참조하세요. 인증서 맵은 지원되지 않습니다.

    • 리전별 Google 관리형 인증서. 인증서 맵은 지원되지 않습니다.

      인증서 관리자에서 지원되는 리전별 Google 관리형 인증서 유형은 다음과 같습니다.

    • 인증서를 만든 후 인증서를 대상 프록시에 직접 연결합니다.

      Compute Engine 자체 관리형 SSL 인증서 리소스를 만들려면 다음 안내를 따르세요.
      gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
          --certificate CRT_FILE_PATH \
          --private-key KEY_FILE_PATH
      
    • 대상 HTTP(S) 프록시를 만들어 요청을 URL 맵으로 라우팅합니다.

      HTTP 부하 분산기의 경우 HTTP 대상 프록시를 만듭니다.

      gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
          --url-map=URL_MAP_NAME \
          --region=REGION
      

      HTTPS 부하 분산기의 경우 HTTPS 대상 프록시를 만듭니다. 프록시는 HTTPS 부하 분산을 위해 SSL 인증서를 포함하는 부하 분산기의 일부분이므로 이 단계에서 인증서도 로드합니다.

      gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
          --ssl-certificates=SSL_CERTIFICATE_NAME \
          --url-map=URL_MAP_NAME \
          --region=REGION
      
    • 수신되는 요청을 프록시로 라우팅하는 전달 규칙을 만듭니다.

      HTTP 부하 분산기의 경우:

      gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network-tier=PREMIUM \
          --network=LB_NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --target-http-proxy=TARGET_HTTP_PROXY_NAME \
          --target-http-proxy-region=REGION \
          --region=REGION \
          --ports=80
      

      HTTPS 부하 분산기의 경우:

      gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network-tier=PREMIUM \
          --network=LB_NETWORK \
          --subnet=LB_SUBNET_NAME \
          --address=LB_IP_ADDRESS \
          --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
          --target-http-proxy-region=REGION \
          --region=REGION \
          --ports=443
      

부하 분산기에 도메인 연결

부하 분산기를 만든 후 부하 분산기와 연결된 IP 주소를 확인합니다(예: 30.90.80.100). 도메인이 부하 분산기를 가리키도록 하려면 도메인 등록 서비스를 사용하여 A 레코드를 만듭니다. SSL 인증서에 여러 도메인을 추가했다면 모두 부하 분산기의 IP 주소를 가리키는 A 레코드를 도메인마다 추가해야 합니다. 예를 들어 www.example.comexample.comA 레코드를 만들려면 다음을 사용합니다.

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Cloud DNS를 DNS 제공업체로 사용하는 경우 레코드 추가, 수정, 삭제를 참조하세요.

부하 분산기 테스트

부하 분산기를 구성했으므로 부하 분산기의 IP 주소로 트래픽을 전송할 수 있습니다.

클라이언트 VM 만들기

이 예시에서는 부하 분산기와 동일한 리전에서 클라이언트 VM(vm-client)을 만듭니다. 클라이언트는 부하 분산기 구성의 유효성을 검사하고 예상된 동작을 보여줍니다.

gcloud

클라이언트 VM은 부하 분산기와 동일한 REGION의 모든 영역에 있을 수 있으며 동일한 VPC 네트워크의 모든 서브넷을 사용할 수 있습니다.

gcloud compute instances create vm-client \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --network=LB_NETWORK \
    --subnet=LB_SUBNET_NAME \
    --zone=ZONE

부하 분산기로 트래픽 전송

첫 배포 이후 부하 분산기 구성을 배포하기까지 몇 분이 걸릴 수 있습니다.

  • SSH를 사용하여 클라이언트 인스턴스에 연결합니다.

    gcloud compute ssh vm-client \
      --zone=ZONE
    
  • 부하 분산기가 예상대로 외부 백엔드에서 실행 중인 애플리케이션에 연결되어 있는지 확인합니다.

    HTTP 테스트의 경우 다음을 실행합니다.

    curl IP_ADDRESS
    

    HTTPS 테스트의 경우 다음을 실행합니다.

    curl -k -s 'https://TEST_DOMAIN_URL:443' --connect-to TEST_DOMAIN_URL:443:IP_ADDRESS:443
    

    TEST_DOMAIN_URL을 애플리케이션과 연결된 도메인으로 바꿉니다. 예를 들면 test.example.com입니다.

    -k 플래그로 인해 curl이 인증서 유효성 검사를 건너뜁니다.

추가 구성

이 섹션에서는 대체 및 추가 구성 옵션을 제공하는 구성 예시를 살펴봅니다. 모든 태스크는 선택사항입니다. 원하는 순서대로 수행할 수 있습니다.

전역 액세스(클라이언트가 다른 리전에 있는 경우)와 같은 리전 내부 애플리케이션 부하 분산기에 더 많은 기능을 사용 설정하려면 VM 인스턴스 그룹 백엔드로 내부 애플리케이션 부하 분산기 설정: 추가 구성을 참조하세요.

커스텀 헤더를 사용하여 요청 인증

외부 백엔드로 전송된 요청을 인증하려면 요청이 Google Cloud 부하 분산기에서 온 것임을 나타내도록 커스텀 헤더를 설정할 수 있습니다. 또한 Google Cloud에서 수신되는 트래픽에 이 커스텀 헤더가 예상되도록 외부 백엔드를 구성해야 합니다.

커스텀 헤더를 설정하는 방법을 알아보려면 고급 트래픽 관리 설정을 참조하세요.

다른 인증 방법은 외부 백엔드에 대한 요청 인증을 참조하세요.

클라이언트 HTTP 연결 유지 제한 시간 업데이트

이전 단계에서 만든 부하 분산기는 클라이언트 HTTP 연결 유지 제한 시간의 기본값으로 구성되었습니다.

클라이언트 HTTP 연결 유지 제한 시간을 업데이트하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.

    부하 분산으로 이동

  2. 수정할 부하 분산기의 이름을 클릭합니다.
  3. 수정을 클릭합니다.
  4. 프런트엔드 구성을 클릭합니다.
  5. 고급 기능을 펼칩니다. HTTP 연결 유지 제한 시간에 제한 시간 값을 입력합니다.
  6. 업데이트를 클릭합니다.
  7. 변경사항을 검토하려면 검토 및 완료를 클릭한 다음 업데이트를 클릭합니다.

gcloud

HTTP 부하 분산기의 경우 gcloud compute target-http-proxies update 명령어를 사용하여 대상 HTTP 프록시를 업데이트합니다.

      gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
         --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
         --region=REGION
      

HTTPS 부하 분산기의 경우 gcloud compute target-https-proxies update 명령어를 사용하여 대상 HTTPS 프록시를 업데이트합니다.

      gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
         --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
         --region REGION
      

다음을 바꿉니다.

  • TARGET_HTTP_PROXY_NAME: 대상 HTTP 프록시의 이름입니다.
  • TARGET_HTTPS_PROXY_NAME: 대상 HTTPS 프록시의 이름입니다.
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC: HTTP 연결 유지 제한 시간 값은 5~600초 사이입니다.

다음 단계