멀티 리전 기본 애플리케이션 부하 분산기로 라우팅 요청

이 가이드에서는 다음을 수행하는 Google Cloud HTTPS 부하 분산기를 만드는 방법을 보여줍니다.

  • 요청 URL 경로를 기반으로 백엔드 서비스를 선택합니다.
  • 요청을 클라이언트에 가까운 백엔드로 라우팅합니다(멀티 리전 부하 분산).

시작하기 전에 외부 애플리케이션 부하 분산기 개념을 잘 알고 있는지 확인합니다.

간단한 예시는 Compute Engine 백엔드로 외부 애플리케이션 부하 분산기 설정을 참조하세요. HTTP 재작성 및 리디렉션과 같은 고급 라우팅은 외부 애플리케이션 부하 분산기의 트래픽 관리를 참조하세요.

개요

이 가이드에서는 요청 URL의 경로를 기반으로 트래픽을 전달하고 여러 리전에 트래픽을 분산하는 부하 분산기를 만드는 방법을 설명합니다. 미국 리전(us-central1-b 영역)과 EU 리전(eu-west1-b 영역)에 총 8개의 Compute Engine 인스턴스를 만듭니다. 그런 다음 이러한 인스턴스로 트래픽을 라우팅하는 부하 분산기를 만듭니다.

안내에 따라 작업을 마치면 부하 분산기는 다음과 같이 구성됩니다.

  • /video로 시작하는 URL 경로를 포함하는 트래픽은 하나의 백엔드 서비스로 라우팅됩니다.
  • URL 경로가 이 패턴과 일치하지 않는 트래픽은 다른 백엔드 서비스로 라우팅됩니다.

이 방법 문서에서는 다음 다이어그램에 나와 있는 구성을 만듭니다.

멀티 리전 HTTPS 부하 분산(확대하려면 클릭)
멀티 리전 HTTPS 부하 분산(확대하려면 클릭)

다이어그램의 이벤트 순서는 다음과 같습니다.

  1. 클라이언트가 https://www.example.com/video/concert URL에 액세스하여 전달 규칙에서 정의된 외부 IP 주소로 콘텐츠 요청을 보냅니다. 이 요청은 IPv4 또는 IPv6를 사용할 수 있습니다. 두 프로토콜 모두 전달 규칙이 있습니다.
  2. 전달 규칙은 요청을 대상 HTTPS 프록시로 전달합니다.
  3. 대상 프록시는 URL 맵에 설정된 규칙을 사용하여 요청을 수신하는 백엔드 서비스를 결정합니다. https://www.example.com/video/concert와 같이 /video를 포함하는 요청은 video-backend-service로 전송됩니다. 다른 URL 경로는 기본 서비스인 web-backend-service로 전송됩니다.
  4. 부하 분산기는 요청을 처리할 백엔드 서비스의 인스턴스 그룹을 해당 그룹의 로딩 및 클라이언트에 대한 근접성에 따라 결정하고 이 그룹의 인스턴스에 요청을 전달합니다.
  5. 인스턴스는 각 사용자가 요청한 콘텐츠를 제공합니다. video 인스턴스는 동영상 콘텐츠를 제공하고 www 인스턴스는 다른 모든 콘텐츠를 제공합니다.

이 예시에서 부하 분산기는 클라이언트의 HTTPS 요청을 수락하고 요청을 HTTP로 백엔드에 프록시합니다. HTTP 요청을 수락하고 백엔드로 요청을 프록시할 때 HTTPS를 사용하도록 부하 분산기를 구성할 수도 있습니다.

시작하기 전에

이 안내에 따라 작업을 수행하려면 프로젝트가 필요합니다. 아직 프로젝트가 없다면 지금 설정하세요. 이 안내에서는 커스텀 모드 Virtual Private Cloud(VPC) 네트워크를 만드는 과정을 설명합니다. 또한 트래픽이 인스턴스에 도달하도록 허용하는 커스텀 방화벽 규칙을 설정해야 합니다.

명령줄에서의 작업을 더 선호하는 경우 gcloud 명령줄 도구를 설치합니다. 도구에 대한 개념 및 설치 정보는 gcloud 개요를 참조하세요.

권한

이 가이드의 단계를 완료하려면 프로젝트에서 Compute Engine 인스턴스를 만들 권한이 있어야 합니다. 프로젝트 소유자 또는 편집자 역할이 있거나 다음과 같은 Compute Engine IAM 역할이 있어야 합니다.

태스크 필요한 역할
인스턴스 만들기 Compute 인스턴스 관리자
방화벽 규칙 추가 및 삭제 보안 관리자
부하 분산기 구성요소 만들기 네트워크 관리자
프로젝트 만들기(선택사항) 프로젝트 생성자

자세한 내용은 다음 가이드를 참조하세요.

설정

선택사항: 새 프로젝트 만들기

이 가이드의 나머지 방법을 수행하기 전에 resourcemanager.projects.create 권한을 가진 사용자가 새 프로젝트를 만드는 것이 좋습니다. 그러면 이 가이드의 끝부분에서 수행하는 삭제 작업이 간소화됩니다.

네트워크 및 서브넷 구성

이 예시에서는 다음 VPC 네트워크, 리전, 서브넷을 사용합니다.

  • 네트워크: 네트워크는 커스텀 모드 VPC 네트워크이며 이름은 lb-network입니다.

  • 서로 다른 두 리전에 있는 서브넷:

    • us-subnet은 기본 IP 범위로 10.1.10.0/24를 사용하며 us-central1 리전에 있습니다.
    • eu-subnet은 기본 IP 범위로 10.1.11.0/24를 사용하며 europe-west1 리전에 있습니다.

네트워크 및 서브넷 예시를 만들려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크 만들기를 클릭합니다.

  3. lb-network이름을 입력합니다.

  4. 서브넷 섹션에서 첫 번째 서브넷을 만듭니다.

    • 서브넷 생성 모드커스텀으로 설정합니다.
    • 새 서브넷 섹션에 다음 정보를 입력합니다.
      • 이름: us-subnet
      • 리전: us-central1
      • IP 주소 범위: 10.1.10.0/24
      • 완료를 클릭합니다.
  5. 서브넷 섹션에서 서브넷 추가를 클릭하고 두 번째 서브넷을 만듭니다.

    • 새 서브넷 섹션에 다음 정보를 입력합니다.
      • 이름: eu-subnet
      • 리전: europe-west1
      • IP 주소 범위: 10.1.11.0/24
      • 완료를 클릭합니다.
  6. 만들기를 클릭합니다.

gcloud

  1. 커스텀 VPC 네트워크를 만듭니다.

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. us-subnet을 만듭니다.

    gcloud compute networks subnets create us-subnet \
      --network=lb-network \
      --range=10.1.10.0/24 \
      --region=us-central1
    
  3. eu-subnet을 만듭니다.

    gcloud compute networks subnets create eu-subnet \
      --network=lb-network \
      --range=10.1.11.0/24 \
      --region=europe-west1
    

방화벽 규칙 구성

기본 거부 인그레스 규칙은 부하 분산기 및 Google Cloud 상태 점검 시스템의 트래픽을 포함하여 백엔드 인스턴스로 들어오는 트래픽을 차단합니다. 새 방화벽 규칙을 만들어 기본 규칙을 재정의하고 트래픽이 인스턴스에 도달하도록 허용해야 합니다.

이 예시에서는 다음과 같은 방화벽 규칙을 만듭니다.

  • fw-allow-ssh: 부하 분산되는 인스턴스에 적용되는 인그레스 규칙으로, TCP 포트 22에서 임의의 주소로부터 수신되는 SSH 연결을 허용합니다. 이 규칙에 더 제한적인 소스 IP 범위를 선택할 수 있습니다. 예를 들어 SSH 세션을 시작할 시스템의 IP 범위만 지정할 수도 있습니다. 이 예시에서는 대상 태그 allow-ssh를 사용하여 적용할 백엔드 VM을 식별합니다.

  • fw-allow-health-check-and-proxy: 부하 분산되는 인스턴스에 적용되는 인그레스 규칙으로, 부하 분산기 및 Google Cloud 상태 점검 시스템(130.211.0.0/2235.191.0.0/16)의 트래픽을 허용합니다. 이 예시에서는 대상 태그 allow-health-check를 사용하여 적용할 백엔드 VM을 식별합니다.

콘솔

  1. Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.

    방화벽 정책으로 이동

  2. 방화벽 규칙 만들기를 클릭하여 첫 번째 방화벽 규칙을 만듭니다.

    1. fw-allow-ssh이름을 입력합니다.
    2. 네트워크에서 lb-network를 선택합니다.
    3. 대상에서 지정된 대상 태그를 선택합니다.
    4. allow-ssh대상 태그 필드를 채웁니다.
    5. 소스 필터IPv4 범위로 설정합니다.
    6. 소스 IPv4 범위0.0.0.0/0으로 설정합니다.
    7. 프로토콜 및 포트에서 지정된 프로토콜 및 포트를 선택합니다.
    8. TCP 체크박스를 선택하고 포트 번호로 22을 입력합니다.
    9. 만들기를 클릭합니다.
  3. 방화벽 규칙 만들기를 클릭하여 두 번째 방화벽 규칙을 만듭니다.

    1. fw-allow-health-check-and-proxy이름을 입력합니다.
    2. 네트워크에서 lb-network를 선택합니다.
    3. 대상에서 지정된 대상 태그를 선택합니다.
    4. allow-health-check대상 태그 필드를 채웁니다.
    5. 소스 필터IPv4 범위로 설정합니다.
    6. 소스 IPv4 범위130.211.0.0/2235.191.0.0/16으로 설정합니다.
    7. 프로토콜 및 포트에서 지정된 프로토콜 및 포트를 선택합니다.
    8. TCP 체크박스를 선택하고 포트 번호로 80,443을 입력합니다.
    9. 만들기를 클릭합니다.

gcloud

  1. allow-ssh 네트워크 태그를 사용해 VM으로 가는 SSH 연결을 허용하는 fw-allow-ssh 방화벽 규칙을 만듭니다. source-ranges를 생략하면 Google Cloud는 모든 소스를 의미하는 것으로 규칙을 해석합니다.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  2. fw-allow-health-check-and-proxy 규칙을 만들어 부하 분산기 및 Google Cloud 상태 점검이 TCP 포트 80443에서 백엔드 인스턴스와 통신하도록 허용합니다.

    gcloud compute firewall-rules create fw-allow-health-check-and-proxy \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80,tcp:443
    

인스턴스 만들기

Compute Engine 백엔드로 부하 분산기를 설정하려면 VM이 인스턴스 그룹에 있어야 합니다. 이 가이드에서는 Apache가 실행 중인 Linux VM으로 관리형 인스턴스 그룹을 만드는 방법을 설명합니다.

관리형 인스턴스 그룹은 외부 HTTPS 부하 분산기의 백엔드 서버를 실행하는 VM을 제공합니다. 여기에서는 백엔드에서 데모용으로 자체 호스트 이름을 제공합니다.

이 예시에서는 총 8개의 가상 머신 인스턴스를 만듭니다. 4개는 동영상 콘텐츠를 제공하고 4개는 다른 모든 콘텐츠를 제공합니다. 시작 스크립트를 사용하여 인스턴스마다 고유한 홈페이지가 있는 Apache 웹 서버 소프트웨어를 설치합니다. VM에서 모든 웹 서버를 사용할 수 있습니다. 이 예시에서는 편의상 Apache를 설치합니다.

콘솔

인스턴스 템플릿을 만듭니다.

  1. Google Cloud 콘솔에서 인스턴스 템플릿 페이지로 이동합니다.

    인스턴스 템플릿으로 이동

    1. 인스턴스 템플릿 만들기를 클릭합니다.
    2. 이름video-us-template를 입력합니다.
    3. 부팅 디스크Debian GNU/Linux 10(buster)과 같은 Debian 이미지로 설정되었는지 확인합니다. 이 안내에서는 apt-get처럼 Debian에서만 사용할 수 있는 명령어를 사용합니다.
    4. 고급 옵션을 클릭합니다.
    5. 네트워킹을 클릭하고 다음 필드를 구성합니다.
      1. 네트워크 태그allow-health-checkallow-ssh를 입력합니다.
      2. 네트워크 인터페이스에 다음을 선택합니다.
        • 네트워크: lb-network
        • 서브넷: us-subnet
    6. 관리를 클릭합니다. 시작 스크립트 필드에 다음 스크립트를 입력합니다.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      mkdir -p /var/www/html/video
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html /var/www/html/video/index.html
      systemctl restart apache2
      
    7. 만들기를 클릭합니다.

  2. 관리형 인스턴스 그룹을 만듭니다. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

    1. 인스턴스 그룹 만들기를 클릭합니다.
    2. 새 관리형 인스턴스 그룹(스테이트리스(Stateless))을 선택합니다. 자세한 내용은 스테이트리스(Stateless) 또는 스테이트풀(Stateful) MIG를 참조하세요.
    3. 이름ig-video-us를 입력합니다.
    4. 위치에서 단일 영역을 선택합니다.
    5. 리전에서 원하는 리전을 선택합니다. 이 예시에서는 us-central1을 사용합니다.
    6. 영역에서 us-central1-b를 선택합니다.
    7. 인스턴스 템플릿에서 video-us-template을 선택합니다.
    8. 자동 확장 모드에서 Off:do not autoscale을 선택합니다.
    9. 최대 인스턴스 수2를 입력합니다.
    10. 만들기를 클릭합니다.

gcloud

  1. 인스턴스 템플릿을 만듭니다.

    gcloud compute instance-templates create video-us-template \
       --region=us-central1 \
       --network=lb-network \
       --subnet=us-subnet \
       --tags=allow-health-check,allow-ssh \
       --image-family=debian-10 \
       --image-project=debian-cloud \
       --metadata=startup-script='#! /bin/bash
         apt-get update
         apt-get install apache2 -y
         a2ensite default-ssl
         a2enmod ssl
         vm_hostname="$(curl -H "Metadata-Flavor:Google" \
         http://metadata.google.internal/computeMetadata/v1/instance/name)"
         mkdir -p /var/www/html/video
         echo "Page served from: $vm_hostname" | \
         tee /var/www/html/index.html /var/www/html/video/index.html
         systemctl restart apache2'
    
  2. 템플릿을 기반으로 관리형 인스턴스 그룹을 만듭니다.

    gcloud compute instance-groups managed create ig-video-us \
       --template=video-us-template --size=2 --zone=us-central1-b
    

4개의 인스턴스 그룹에 이 절차를 4번 반복합니다. 다음과 같이 각 인스턴스 그룹의 인스턴스 그룹 이름, 템플릿 이름, 리전, 영역을 변경해야 합니다.

  • ig-video-us, video-us-template, us-central1-b(예시 참조)
  • ig-video-eu, video-eu-template, europe-west1-b
  • ig-www-us, www-us-template, us-central1-b
  • ig-www-eu, www-europe-template, europe-west1-b

인스턴스 그룹에 이름이 지정된 포트 추가

인스턴스 그룹마다 HTTP 서비스를 정의하고 해당 포트에 포트 이름을 매핑합니다. 구성된 후에는 부하 분산 서비스가 이름이 지정된 포트로 트래픽을 전달합니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 인스턴스 그룹의 이름(예: ig-video-us)을 클릭하고 그룹 수정을 클릭합니다.

  3. 포트 이름 매핑 지정을 클릭합니다.

  4. 항목 추가를 클릭합니다.

  5. 포트 이름으로 http를 입력합니다. 포트 번호로 80을 입력합니다.

  6. 저장을 클릭합니다.

각 인스턴스 그룹에 이 단계를 반복합니다.

gcloud

gcloud compute instance-groups unmanaged set-named-ports ig-video-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-video-eu \
    --named-ports http:80 \
    --zone europe-west1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-eu \
    --named-ports http:80 \
    --zone europe-west1-b

외부 IP 주소 예약

인스턴스가 준비되어 실행 중이므로 이제 부하 분산에 필요한 서비스를 설정합니다. 이 섹션에서는 고객이 부하 분산기에 도달하기 위해 사용하는 두 개의 전역 고정 외부 IP 주소를 만듭니다.

콘솔

  1. Google Cloud 콘솔에서 외부 IP 주소 페이지로 이동합니다.

    외부 IP 주소로 이동

  2. 고정 주소 예약을 클릭하여 IPv4 주소를 예약합니다.

  3. lb-ipv4-1이름을 할당합니다.

  4. 네트워크 등급을 프리미엄으로 설정합니다.

  5. IP 버전IPv4로 설정합니다.

  6. 유형전역으로 설정합니다.

  7. 예약을 클릭합니다.

  8. 고정 주소 예약을 다시 클릭하여 IPv6 주소를 예약합니다.

  9. lb-ipv6-1이름을 할당합니다.

  10. 네트워크 등급을 프리미엄으로 설정합니다.

  11. IP 버전IPv6으로 설정합니다.

  12. 유형전역으로 설정되어 있는지 확인합니다.

    이 예시에서 부하 분산기는 프리미엄 등급 네트워킹을 사용합니다. 표준 등급 네트워킹을 사용하는 부하 분산기는 대신 리전 IP 주소를 사용합니다. 표준 등급에서는 IPv6 주소를 사용할 수 없습니다.

  13. 예약을 클릭합니다.

gcloud

  1. IPv4 주소 예약:

    gcloud compute addresses create lb-ipv4-1 \
      --ip-version=IPV4 \
      --network-tier=PREMIUM \
      --global
    
  2. IPv6 주소 예약:

    gcloud compute addresses create lb-ipv6-1 \
      --ip-version=IPV6 \
      --network-tier=PREMIUM \
      --global
    

부하 분산 리소스 구성

부하 분산기 기능에는 여러 연결된 리소스가 포함됩니다. 이 섹션에서는 이러한 리소스를 설정하고 연결합니다. 다음과 같습니다.

  • 이름이 지정된 포트. 부하 분산기에서 트래픽을 인스턴스 그룹으로 전달할 때 사용합니다.
  • 상태 확인. 인스턴스를 폴링하여 정상인지 확인합니다. 부하 분산기는 정상 인스턴스에만 트래픽을 보냅니다.
  • 백엔드 서비스. 용량, 세션 어피니티, 상태 확인 상태를 추적합니다. 백엔드 서비스는 용량 및 인스턴스 상태에 따라 요청을 백엔드 VM 또는 엔드포인트로 전달합니다.
  • URL 맵. 부하 분산기가 요청 URL의 호스트와 경로를 기반으로 특정 백엔드 서비스로 요청을 전달하는 데 사용합니다.
  • SSL 인증서 리소스. SSL 인증서 리소스에는 HTTPS 클라이언트가 연결될 때 부하 분산기가 TLS를 종료하는 데 사용하는 SSL 인증서 정보가 포함됩니다. 관리형 SSL 인증서 또는 자체 관리형 SSL 인증서를 원하는 대로 조합하여 여러 SSL 인증서를 사용할 수 있습니다. 사용하는 각 인증서에 대해 SSL 인증서 리소스를 만들어야 합니다.
  • 대상 HTTPS 프록시. 부하 분산기가 URL 맵 및 SSL 인증서를 전역 전달 규칙과 연결하는 데 사용합니다.
  • 전역 전달 규칙 2개(IPv4와 IPv6에 하나씩). 여기에는 전역 외부 IP 주소 리소스가 포함됩니다. 전역 전달 규칙은 수신되는 요청을 대상 프록시로 전달합니다.

콘솔

부하 분산기 이름 지정

  1. Google Cloud 콘솔의 부하 분산 페이지로 이동합니다.
    부하 분산기 만들기
  2. 애플리케이션 부하 분산기(HTTP/S) 카드에서 구성 시작을 클릭합니다.
  3. 인터넷 연결 또는 내부 전용에서 인터넷 트래픽을 VM으로 분산을 선택합니다.
  4. 전역 또는 리전에서 다음 중 하나를 선택합니다.
    • 기본 애플리케이션 부하 분산기의 경우 기본 애플리케이션 부하 분산기를 선택합니다.
    • 전역 외부 애플리케이션 부하 분산기의 경우 전역 외부 애플리케이션 부하 분산기를 선택합니다.
  5. 계속을 클릭합니다.
  6. 부하 분산기 이름web-map을 입력합니다.
  7. 계속하려면 창을 열어둡니다.

www 인스턴스의 백엔드 서비스 및 상태 점검 구성

부하 분산기에는 두 개의 백엔드 서비스와 두 서비스 모두에 대한 상태 점검이 필요합니다. 이 예시에서 부하 분산기는 클라이언트의 HTTPS 요청을 종료하고 HTTP를 사용하여 백엔드와 통신합니다. 이를 위해 백엔드 프로토콜 및 상태 점검에 HTTP를 지정해야 합니다.

www 인스턴스의 백엔드 서비스 구성

  1. 백엔드 구성을 클릭합니다.
  2. 백엔드 서비스 만들기 또는 선택 드롭다운 메뉴에서 백엔드 서비스 위로 마우스 포인터를 가져간 후 백엔드 서비스 만들기를 선택합니다.
  3. 백엔드 서비스의 이름web-backend-service로 설정합니다.
  4. 백엔드 유형인스턴스 그룹으로 설정되어 있는지 확인합니다.
  5. 프로토콜 드롭다운 메뉴에서 HTTP를 선택합니다.
  6. 이름이 지정된 포트 필드에 http를 입력합니다.
  7. 백엔드에서 인스턴스 그룹ig-www-us로 설정합니다.
  8. 부하 분산기와 인스턴스 간 트래픽의 경우 포트 번호80으로 설정합니다.
  9. 나머지 필드는 기본값을 그대로 둡니다.
  10. 새 백엔드 창 하단에 있는 완료를 클릭합니다.
  11. 백엔드 추가를 클릭하고 단계를 반복하되 이번에는 인스턴스 그룹 ig-www-eu를 선택합니다.
  12. 계속하려면 창을 열어둡니다.

www 인스턴스의 상태 점검 구성

  1. 상태 점검백엔드 구성 창에서 상태 점검 만들기 또는 다른 상태 점검 만들기를 선택합니다.
  2. HTTP 상태 점검을 만들려면 상태 점검 매개변수를 다음과 같이 설정합니다.
    • 이름http-basic-check-www로 설정합니다.
    • 프로토콜HTTP로 설정합니다.
    • 포트80으로 설정합니다.
  3. 저장 후 계속을 클릭합니다.
  4. 만들기를 클릭합니다.

video 인스턴스의 백엔드 및 상태 점검 구성

  1. 위 단계를 반복하되 두 번째 백엔드 서비스 video-backend-service를 지정하고 ig-video-usig-video-eu 인스턴스 그룹을 할당합니다.
  2. 상태 점검을 만들려면 동일한 단계를 따르되 상태 점검의 이름을 http-basic-check-video로 지정합니다. 상태 점검 이름은 고유해야 합니다.

호스트 및 경로 규칙 구성

호스트 및 경로 규칙은 부하 분산기의 URL 맵 리소스를 구성합니다.

  1. 화면의 왼쪽 열에서 호스트 및 경로 규칙을 클릭합니다.
  2. 오른쪽 열의 첫 번째 행에 web-backend-service가 있고 호스트경로에 기본 규칙 Any unmatched (default)가 이미 채워져 있습니다.
  3. 오른쪽 열에 video-backend-service가 있는 두 번째 행이 있는지 확인합니다. 없다면 호스트 및 경로 규칙 추가를 클릭한 다음 오른쪽 열의 드롭다운 메뉴에서 video-backend-service를 선택합니다. 다른 열은 다음과 같이 채웁니다.
    1. 호스트*로 설정합니다.
    2. 경로 필드에서 다음을 수행합니다.
      1. /video를 입력한 다음 Tab 키를 누릅니다.
      2. /video/*를 입력한 다음 Tab 키를 누릅니다.

프런트엔드 구성

프런트엔드 구성 섹션은 전달 규칙 및 SSL 인증서를 비롯한 부하 분산기의 여러 리소스를 구성합니다. 또한 클라이언트와 부하 분산기 간에 사용되는 프로토콜을 선택할 수 있습니다.

이 예시에서는 클라이언트와 부하 분산기 사이에 HTTPS를 사용하므로 프록시를 구성하려면 하나 이상의 SSL 인증서 리소스가 필요합니다. SSL 인증서 리소스를 만드는 방법은 SSL 인증서를 참조하세요. Google 관리형 인증서를 사용하는 것이 좋습니다.

  1. 전역 외부 애플리케이션 부하 분산기 만들기 페이지의 왼쪽 패널에서 프런트엔드 구성을 클릭합니다.
  2. 이름 필드에 https-content-rule를 입력합니다.
  3. 프로토콜 필드에서 HTTPS를 선택합니다.
  4. 계속하려면 창을 열어둡니다.

IPv4 전달 규칙 구성

  1. IP 버전IPv4로 설정합니다.
  2. IP 주소에서 앞서 만든 lb-ipv4-1을 선택합니다.
  3. HTTPS 트래픽을 허용하도록 포트443으로 설정되어 있는지 확인합니다.
  4. 인증서 드롭다운 목록을 클릭합니다.
    1. 이미 자체 관리형 SSL 인증서 리소스가 있고 이를 기본 SSL 인증서로 사용하려면 드롭다운 메뉴에서 선택합니다.
    2. 그 이외의 경우 새 인증서 만들기를 선택합니다.
    3. www-ssl-cert이름을 입력합니다.
    4. 인증서 업로드 또는 Google 관리형 인증서 만들기를 선택합니다. Google 관리형 인증서를 만들려면 도메인이 있어야 합니다. 도메인이 없는 경우 테스트 목적으로 자체 인증서를 업로드할 수 있습니다.
    5. 인증서 업로드를 선택한 경우 다음 단계를 완료합니다.
      1. 공개키 인증서 필드에서 다음 중 하나를 수행하세요.
        • 업로드 버튼을 클릭하고 PEM 형식의 인증서 파일을 선택합니다.
        • PEM 형식 인증서의 내용을 복사하여 붙여넣습니다. 내용은 -----BEGIN CERTIFICATE-----로 시작하고 -----END CERTIFICATE-----로 끝나야 합니다.
      2. 인증서 체인 필드에서 다음 중 하나를 수행하세요.
        • 업로드 버튼을 클릭하고 CA의 인증서 파일을 선택합니다. 이 파일에는 중간 CA 인증서와 루트 CA 인증서가 포함되어야 합니다.
        • 인증서 체인의 내용을 복사하여 붙여넣습니다. 체인의 각 인증서는 -----BEGIN CERTIFICATE-----로 시작하고 -----END CERTIFICATE-----로 끝나는 PEM 형식이어야 합니다. Google Cloud에서는 인증서 체인의 유효성을 검사하지 않습니다. 유효성 검사는 사용자의 책임입니다.
        • 인증서 체인을 생략하면 클라이언트가 자동으로 신뢰하는 공개적으로 신뢰할 수 있는 CA가 인증서에 서명해야 합니다.
      3. 비공개 키 인증서 필드에서 다음 중 하나를 수행하세요.
        • 업로드 버튼을 클릭하고 비공개 키를 선택합니다. 비공개 키는 PEM 형식이어야 하며 암호로 보호되지 않습니다.
        • PEM 형식의 비공개 키 내용을 복사하여 붙여넣습니다. RSA 비공개 키는 -----BEGIN RSA PRIVATE KEY-----로 시작하고 -----END RSA PRIVATE KEY-----로 끝나야 합니다. ECDSA 비공개 키는 -----BEGIN EC PRIVATE KEY-----로 시작하고 -----END EC PRIVATE KEY-----로 끝나야 합니다.
      4. 만들기를 클릭합니다.
    6. Google 관리형 인증서 만들기를 선택한 경우 도메인을 입력합니다.
  5. 기본 SSL 인증서 리소스 외에 인증서 리소스를 추가하려면 다음 안내를 따르세요.
    1. 인증서 추가를 클릭합니다.
    2. 인증서 목록에서 인증서를 선택하거나 새 인증서 만들기를 클릭하고 위의 안내를 따릅니다.
  6. QUIC 협상에서 다음 옵션 중 하나를 선택합니다.
    • 자동(기본값): Google이 QUIC를 협상할 시기를 제어합니다. 현재는 자동을 선택하면 QUIC가 사용 중지됩니다. 이 옵션을 선택하면 나중에 Google에서 이 부하 분산기에 QUIC 협상 및 HTTP/3를 자동으로 사용 설정하는 것을 허용하게 됩니다. gcloud 및 API에서는 이 옵션을 NONE이라고 합니다.
    • 사용 설정 - 부하 분산기가 클라이언트와 QUIC를 협상할 수 있습니다.
    • 사용 중지 - 부하 분산기가 클라이언트와 QUIC를 협상하지 못합니다.
  7. 완료를 클릭합니다.
  8. 계속하려면 창을 열어둡니다.

IPv6 전달 규칙 구성

  1. 프런트엔드 IP 및 포트 추가를 클릭합니다.
  2. https-content-ipv6-rule이름을 입력합니다.
  3. 클라이언트와 부하 분산기 간에 HTTPS를 사용하려면 프로토콜 필드에서 HTTPS를 선택합니다. 클라이언트와 부하 분산기 간에 HTTP를 사용하려면 HTTP를 선택합니다.
  4. IP 버전IPv6로 설정합니다.
  5. IP에서 앞서 만든 lb-ipv6-1을 선택합니다.
  6. 포트를 기본값 443으로 설정합니다.
  7. 사용할 SSL 인증서 리소스가 이미 있다면 인증서 드롭다운 메뉴에서 선택합니다. 그렇지 않으면 새 인증서 만들기를 선택합니다.
    1. www-ssl-cert이름을 입력합니다.
    2. 해당 필드에 공개키 인증서(.crt 파일), 인증서 체인(.csr 파일), 비공개 키(.key 파일)를 업로드합니다.
    3. 만들기를 클릭합니다.
  8. 기본 SSL 인증서 리소스 외에 인증서 리소스를 추가하려면 다음 안내를 따르세요.
    1. 인증서 추가를 클릭합니다.
    2. 인증서 목록에서 인증서를 선택하거나 새 인증서 만들기를 클릭하고 위의 안내를 따릅니다.
  9. QUIC 협상에서 다음 옵션 중 하나를 선택합니다.
    • 자동(기본값): Google이 QUIC를 협상할 시기를 제어합니다. 현재는 자동을 선택하면 QUIC가 사용 중지됩니다. 이 옵션을 선택하면 나중에 Google에서 이 부하 분산기에 QUIC 협상 및 HTTP/3를 자동으로 사용 설정하는 것을 허용하게 됩니다. gcloud 및 API에서는 이 옵션을 NONE이라고 합니다.
    • 사용 설정 - 부하 분산기가 클라이언트와 QUIC를 협상할 수 있습니다.
    • 사용 중지 - 부하 분산기가 클라이언트와 QUIC를 협상하지 못합니다.
  10. 완료를 클릭합니다.

검토 및 완료

  1. 전역 외부 애플리케이션 부하 분산기 만들기 페이지의 왼쪽 패널에서 검토 및 완료를 클릭합니다.
  2. 만들려던 설정과 현재 설정을 비교합니다.
  3. 모든 설정이 올바른 것으로 확인되면 만들기를 클릭하여 외부 애플리케이션 부하 분산기를 만듭니다.

gcloud

  1. 상태 점검을 만듭니다. 부하 분산기와 백엔드 간에 HTTP를 사용하는 경우 gcloud 명령어를 사용합니다.

    gcloud compute health-checks create http http-basic-check \
        --port 80
    
  2. 콘텐츠 제공업체마다 백엔드 서비스를 만듭니다.

    HTTP를 사용하여 인스턴스로 이동하기 때문에 --protocol 필드를 HTTP로 설정합니다. 이전에 상태 점검으로 만든 http-basic-check 상태 점검을 사용합니다.

    • 전역 외부 애플리케이션 부하 분산기의 경우 gcloud CLI 명령어를 load-balancing-scheme=EXTERNAL_MANAGED와 함께 사용합니다. 이 설정은 고급 트래픽 관리 기능을 제공합니다.
    • 기본 애플리케이션 부하 분산기의 경우 load-balancing-scheme=EXTERNAL을 사용합니다.
    gcloud compute backend-services create video-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
    gcloud compute backend-services create web-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
  3. 인스턴스 그룹을 백엔드 서비스에 백엔드로 추가합니다. 백엔드는 포함된 인스턴스 그룹의 용량(최대 백엔드 사용률 또는 초당 최대 쿼리 수)을 정의합니다. 이 예시에서 balancing-modeUTILIZATION 값으로, max-utilization0.8로, capacity-scaler1로 설정합니다. 백엔드 서비스를 드레이닝하려면 capacity-scaler0으로 설정합니다.

    ig-video-us 인스턴스 그룹을 추가하려면 다음을 수행합니다.

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-us \
        --instance-group-zone=us-central1-b \
        --global
    

    ig-video-eu 인스턴스 그룹을 추가하려면 다음을 수행합니다.

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-eu \
        --instance-group-zone=europe-west1-b \
        --global
    

    ig-www-us 인스턴스 그룹을 추가하려면 다음을 수행합니다.

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-us \
        --instance-group-zone=us-central1-b \
        --global
    

    ig-www-eu 인스턴스 그룹을 추가하려면 다음을 수행합니다.

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-eu \
        --instance-group-zone=europe-west1-b \
        --global
    
  4. 수신되는 요청을 해당 백엔드 서비스로 라우팅하는 URL 맵을 만듭니다. 이 경우 --path-rules 플래그를 통해 정의된 요청 경로 매핑은 사이트에 대한 각 요청의 URL 경로에 따라 트래픽을 분할합니다. --path-rules의 항목과 일치하지 않는 트래픽은 --default-service flag의 항목으로 전송됩니다.

    1. URL 맵을 만듭니다.

      gcloud compute url-maps create web-map \
          --default-service web-backend-service
      
    2. URL 맵에 경로 일치자를 추가하고 요청 경로 매핑을 정의합니다.

      gcloud compute url-maps add-path-matcher web-map \
          --default-service web-backend-service \
          --path-matcher-name pathmap \
          --path-rules="/video=video-backend-service,/video/*=video-backend-service"
      
  5. HTTPS 프록시에 사용할 SSL 인증서 리소스를 만듭니다. Google 관리형 인증서를 만들려면 도메인이 있어야 합니다. 도메인이 없는 경우 자체 서명 SSL 인증서를 사용하여 테스트할 수 있습니다. 자세한 내용은 SSL 인증서 유형을 참조하세요.

    여러 SSL 인증서를 사용하는 경우 인증서마다 SSL 인증서 리소스를 만들어야 합니다.

    자체 관리형 SSL 인증서 리소스를 만들려면 다음을 사용하세요.

    gcloud compute ssl-certificates create www-ssl-cert \
        --certificate [CRT_FILE_PATH] \
        --private-key [KEY_FILE_PATH]
    

    Google 관리형 SSL 인증서 리소스를 만드는 방법은 다음과 같습니다.

    gcloud compute ssl-certificates create www-ssl-cert \
      --domains [DOMAIN]
    
  6. 대상 HTTPS 프록시를 만들어 요청을 URL 맵으로 라우팅합니다. 프록시는 HTTPS 부하 분산을 위해 SSL 인증서를 포함하는 부하 분산기의 일부분이므로 이 단계에서 인증서도 로드합니다.

    gcloud compute target-https-proxies create https-lb-proxy \
        --url-map web-map --ssl-certificates www-ssl-cert
    
  7. 생성한 IP 주소 각각에 대해 하나씩 두 개의 전역 전달 규칙을 만들어 수신되는 요청을 프록시로 라우팅합니다.

    • 전역 외부 애플리케이션 부하 분산기의 경우 gcloud CLI 명령어를 load-balancing-scheme=EXTERNAL_MANAGED와 함께 사용합니다. 이 설정은 고급 트래픽 관리 기능을 제공합니다.
    • 기본 애플리케이션 부하 분산기의 경우 load-balancing-scheme=EXTERNAL을 사용합니다.
    gcloud compute forwarding-rules create https-content-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv4-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --ports=443
    
    gcloud compute forwarding-rules create https-content-ipv6-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv6-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --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 제공업체로 사용하는 경우 레코드 추가, 수정, 삭제를 참조하세요.

인스턴스에 트래픽 보내기

부하 분산 서비스를 구성했으므로 이제 전달 규칙으로 트래픽을 전송하고 트래픽이 다른 인스턴스로 이동하는 것을 확인할 수 있습니다.

콘솔 및 웹브라우저

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

    부하 분산으로 이동

  2. web-map을 클릭하여 앞에서 만든 부하 분산기를 확장합니다.

  3. 백엔드 섹션에서 인스턴스가 정상인지 확인합니다. 정상 열에는 네 개의 인스턴스 그룹 각각에 있는 두 인스턴스가 모두 정상으로 표시되어야 합니다. 그렇지 않을 경우에는 우선 페이지를 새로고침해 보세요. Google Cloud 콘솔에서 인스턴스가 정상인지 확인하는 데 몇 분 정도 걸릴 수 있습니다. 몇 분 후에도 백엔드가 정상으로 표시되지 않으면 방화벽 구성과 백엔드 인스턴스에 할당된 네트워크 태그 집합을 검토합니다.

  4. 부하 분산기의 IPv4 및 IPv6 주소를 기록합니다.

    1. Google Cloud 콘솔에서 외부 IP 주소 페이지로 이동합니다.

      외부 IP 주소로 이동

    2. 이름에서 lb-ipv4-1lb-ipv6-1이라는 주소를 찾은 다음 외부 주소 열에서 연결된 값을 기록합니다.

  5. Google 관리형 인증서를 사용하는 경우

    1. 다음 DNS 레코드를 만듭니다.

    2. 인증서 리소스의 상태가 ACTIVE인지 확인합니다. 자세한 내용은 Google 관리형 SSL 인증서 리소스 상태를 참조하세요.

  6. 웹브라우저에서 다음 중 하나로 이동하여 부하 분산기를 테스트합니다.

    • https://IP_ADDRESS. 여기서 IP_ADDRESS는 부하 분산기의 IPv4 주소입니다. 브라우저에 인증서 경고가 표시되면 브라우저가 인증서를 신뢰하도록 명시적으로 지시해야 합니다. 인증서는 일반적으로 IP 주소가 아닌 도메인으로 구성되기 때문에 경고가 발생합니다.

    • https://FQDN. 여기서 FQDN은 부하 분산기의 IP 주소를 가리키도록 DNS를 구성한 정규화된 도메인 이름(FQDN)입니다. 자체 관리형 자체 서명 SSL 또는 커스텀 인증 기관(CA)에서 서명한 자체 관리형 SSL 인증서를 사용한 경우 인증서 또는 인증서의 CA를 신뢰하도록 명시적으로 구성하지 않는 한 브라우저에 인증서 경고가 표시됩니다. 자체 관리형 인증서에 대한 자세한 내용은 비공개 키 및 인증서 만들기를 참조하세요.

    브라우저는 페이지를 제공한 인스턴스의 이름과 영역을 표시하는 콘텐츠로 페이지를 렌더링해야 합니다(예: Page on ig-www-us-02 in us-central1-b).

  7. 브라우저에서 다음 중 하나로 이동합니다.

    • https://IP_ADDRESS/video. 여기서 IP_ADDRESS는 부하 분산기의 IPv4 주소입니다.

    • https://FQDN/video. 여기서 FQDN은 DNS가 부하 분산기의 IP 주소를 가리키도록 구성한 FQDN입니다.

    브라우저는 페이지를 제공한 동영상 인스턴스의 이름과 영역을 표시하는 콘텐츠로 페이지를 렌더링해야 합니다(예: Page on ig-video-us-02 in us-central1-b).

gcloud 및 curl 사용

  1. 부하 분산기의 IPv4 및 IPv6 주소를 기록합니다.

    gcloud compute addresses describe lb-ipv4-1 \
    --format="get(address)" \
    --global
    
    gcloud compute addresses describe lb-ipv6-1 \
    --format="get(address)" \
    --global
    
  2. Google 관리형 인증서를 사용하는 경우

    1. 다음 DNS 레코드를 만듭니다.

    2. 인증서 리소스의 상태가 ACTIVE인지 확인합니다. 자세한 내용은 Google 관리형 SSL 인증서 리소스 상태를 참조하세요.

      gcloud compute ssl-certificates list
      
  3. curl 명령어를 사용하여 이러한 URL의 응답을 테스트합니다. IP_ADDRESS를 부하 분산기의 IPv4 주소로 바꿉니다.

    curl -k https://IP_ADDRESS
    
    curl -k https://IP_ADDRESS/video/
    
  4. curl 명령어를 사용하여 이러한 URL의 응답을 테스트합니다. IP_ADDRESS를 부하 분산기의 IPv6 주소로 바꿉니다. IPv6의 경우 주소를 대괄호([])로 묶고 -g 플래그를 사용하여 와일드카드 사용을 비활성화해야 합니다(예: curl -g -6 "https://[2001:DB8::]/").

    curl -k -g -6 https://[IP_ADDRESS]
    
    curl -k -g -6 https://[IP_ADDRESS]/video/
    

멀티 리전 기능 테스트

다른 지역의 사용자를 시뮬레이션하려면 다른 리전의 가상 머신 인스턴스 중 하나에 연결한 다음 해당 인스턴스에서 curl 명령어를 실행하여 가장 가까운 리전의 인스턴스로 이동하는 요청을 확인합니다.

ig-www-us-01에 연결하는 경우 curl 명령어를 실행하면 요청이 us-central1의 인스턴스로 이동한다고 표시됩니다. Page on ig-www-us-02 in us-central1-b와 같은 출력이 표시됩니다.

ig-www-eu-01에 연결하는 경우 curl 명령어를 실행하면 요청이 europe-west1의 인스턴스로 이동한다고 표시됩니다. Page on ig-www-eu-02 in europe-west1-b와 같은 출력이 표시됩니다.

테스트는 전 세계의 클라이언트 시스템에서 수행할 수 있습니다. 한 리전의 백엔드가 비정상적이거나 용량에 도달하면 HTTPS 부하 분산기는 트래픽을 다음으로 가까운 리전으로 자동으로 보냅니다.

추가 구성 옵션

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

세션 어피니티 사용 설정

다음 절차는 각 백엔드 서비스에 다른 유형의 세션 어피니티를 구성하는 방법을 보여줍니다.

  • web-backend-service의 클라이언트 IP 주소 세션 어피니티
  • video-backend-service의 HTTP 쿠키 세션 어피니티

클라이언트 IP 어피니티가 사용 설정되면 부하 분산기는 클라이언트의 IP 주소에서 생성된 해시를 기반으로 특정 클라이언트의 요청을 동일한 백엔드 VM으로 전달합니다.

생성된 쿠키 어피니티가 사용 설정되면 부하 분산기는 첫 번째 요청에서 쿠키를 생성합니다. 동일한 쿠키를 사용하는 각 후속 요청의 경우 부하 분산기는 같은 백엔드 VM 또는 엔드포인트로 요청을 전달합니다. 외부 애플리케이션 부하 분산기의 경우 쿠키 이름은 GCLB입니다.

콘솔

web-backend-service에 클라이언트 IP 세션 어피니티를 사용 설정하려면 다음 안내를 따르세요.

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

    부하 분산으로 이동

  2. 백엔드를 클릭합니다.

  3. web-backend-service(이 예시에서 만든 백엔드 서비스 중 하나의 이름)를 클릭하고 수정을 클릭합니다.

  4. 백엔드 서비스 세부정보 페이지에서 고급 구성을 클릭합니다.

  5. 세션 어피니티의 메뉴에서 클라이언트 IP를 선택합니다.

  6. 저장을 클릭합니다.

생성된 쿠키 세션 어피니티를 video-backend-service에 사용 설정하려면 다음 안내를 따르세요.

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

    부하 분산으로 이동

  2. 백엔드를 클릭합니다.

  3. video-backend-service(이 예시에서 만든 백엔드 서비스 중 하나의 이름)를 클릭하고 수정을 클릭합니다.

  4. 백엔드 서비스 세부정보 페이지에서 고급 구성을 클릭합니다.

  5. 세션 어피니티 메뉴에서 생성된 쿠키를 선택합니다.

  6. 업데이트를 클릭합니다.

gcloud

다음 gcloud 명령어를 사용하여 클라이언트 IP 세션 어피니티를 지정하여 web-backend-service 백엔드 서비스를 업데이트합니다.

gcloud compute backend-services update web-backend-service \
    --session-affinity=CLIENT_IP \
    --global

다음 gcloud 명령어를 사용하여 생성된 쿠키 세션 어피니티를 지정하여 video-backend-service 백엔드 서비스를 업데이트합니다.

gcloud compute backend-services update video-backend-service \
    --session-affinity=GENERATED_COOKIE \
    --global

API

클라이언트 IP 세션 어피니티를 설정하려면 backendServices/patch 메서드에 PATCH 요청을 실행합니다.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/web-backend-service
{
  "sessionAffinity": "CLIENT_IP"
}

생성된 쿠키 세션 어피니티를 설정하려면 backendServices/patch 메서드에 PATCH 요청을 실행합니다.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/video-backend-service
{
  "sessionAffinity": "GENERATED_COOKIE"
}

백엔드 VM에서 외부 IP 주소 제거

외부 애플리케이션 부하 분산기는 내부 IP 주소 및 특수 부하 분산기 경로를 사용하여 백엔드와 통신합니다. 백엔드 인스턴스는 부하 분산기와 통신하기 위해 외부 IP 주소를 필요로 하지 않습니다. 백엔드 인스턴스에서 외부 IP 주소를 제거하여 보안을 강화할 수 있습니다.

백엔드 인스턴스에서 외부 IP 주소를 제거하려면 다음 지침을 따르세요.

SSH를 사용하여 외부 IP 주소가 없는 백엔드 인스턴스에 연결해야 하는 경우 외부 IP 주소가 없는 인스턴스에 연결하기를 참조하세요.

삭제

이 튜토리얼을 완료한 후에는 만든 리소스를 삭제하여 향후 요금이 청구되지 않도록 할 수 있습니다. 이러한 리소스를 자체 프로젝트 내에 만든 경우 전체 프로젝트를 삭제할 수 있습니다. 그렇지 않은 경우 리소스를 개별적으로 삭제할 수 있습니다.

프로젝트 삭제

콘솔

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

    프로젝트로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.

  3. 대화상자에서 PROJECT_ID를 입력한 다음 종료를 클릭하여 프로젝트를 삭제합니다.

gcloud

PROJECT_ID를 프로젝트 ID로 바꿔 다음 명령어를 실행합니다.

gcloud projects delete PROJECT_ID

개별 리소스 삭제

콘솔

부하 분산기 삭제

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

    부하 분산으로 이동

  2. web-map 옆의 체크박스를 선택합니다.

  3. 페이지 상단의 삭제 버튼을 클릭합니다.

  4. 백엔드 서비스, 상태 점검, SSL 인증서 등 모든 추가 리소스 옆의 체크박스를 선택합니다.

  5. 부하 분산기 및 선택한 리소스 삭제를 클릭합니다.

인스턴스 그룹 삭제

  1. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 모든 인스턴스 그룹을 선택하려면 이름 상단 옆의 체크박스를 선택합니다.

  3. 삭제를 클릭합니다.

  4. 확인 창에서 삭제를 클릭합니다.

외부 IP 주소 해제

  1. Google Cloud 콘솔에서 외부 IP 주소 페이지로 이동합니다.

    외부 IP 주소로 이동

  2. lb-ipv4-1lb-ipv6-1 옆의 체크박스를 선택합니다,

  3. 고정 주소 해제를 클릭합니다.

  4. 확인 창에서 삭제를 클릭합니다.

방화벽 규칙 삭제

  1. Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.

    방화벽 정책으로 이동

  2. fw-allow-health-check-and-proxyfw-allow-ssh 옆의 체크박스를 선택합니다,

  3. 삭제를 클릭합니다.

  4. 확인 창에서 삭제를 클릭합니다.

VM 인스턴스 삭제

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 모든 인스턴스를 선택하려면 이름 상단 옆의 체크박스를 선택합니다.

  3. 삭제를 클릭합니다.

  4. 확인 창에서 삭제를 클릭합니다.

VPC 네트워크 삭제

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. lb-network를 클릭합니다.

  3. 네트워크 세부정보 페이지에서 VPC 네트워크 삭제를 클릭합니다.

  4. 확인 창에서 삭제를 클릭합니다.

gcloud

부하 분산기 삭제

부하 분산기를 삭제하려면 해당 구성요소를 각각 삭제해야 합니다.

  1. 전달 규칙을 삭제합니다.

    gcloud compute forwarding-rules delete https-content-rule \
        --global
    
    gcloud compute forwarding-rules delete https-content-ipv6-rule \
        --global
    
  2. 전역 외부 IP 주소를 삭제합니다.

    gcloud compute addresses delete lb-ipv4-1 \
        --global
    
    gcloud compute addresses delete lb-ipv6-1 \
        --global
    
  3. 대상 프록시를 삭제합니다.

    gcloud compute target-https-proxies delete https-lb-proxy
    
  4. SSL 인증서를 삭제합니다.

    gcloud compute ssl-certificates delete www-ssl-cert
    
  5. URL 맵을 삭제합니다.

    gcloud compute url-maps delete web-map
    
  6. 백엔드 서비스를 삭제합니다.

    gcloud compute backend-services delete web-backend-service \
        --global
    
    gcloud compute backend-services delete video-backend-service \
        --global
    
  7. 상태 점검을 삭제합니다.

    gcloud compute health-checks delete http-basic-check
    

모든 부하 분산기 리소스를 삭제했습니다.

인스턴스 그룹 삭제

다음 이름 및 영역 조합을 사용해 다음 명령어를 반복하여 4개의 비관리형 인스턴스 그룹을 삭제합니다. INSTANCE_GROUP_NAMEZONE을 다음과 같이 바꿉니다.

  • 이름: ig-www-us, 영역: us-central1-b
  • 이름: ig-video-us, 영역: us-central1-b
  • 이름: ig-www-eu, 영역: europe-west1-b
  • 이름: ig-video-eu, 영역: europe-west1-b
gcloud compute instance-groups unmanaged delete INSTANCE_GROUP_NAME \
   --zone=ZONE

VM 인스턴스 삭제

다음 이름 및 영역 조합을 사용해 다음 명령어를 반복하여 8개의 VM을 삭제합니다. VM_NAMEZONE을 다음과 같이 바꿉니다.

  • 이름: ig-www-us-01, 영역: us-central1-b
  • 이름: ig-www-us-02, 영역: us-central1-b
  • 이름: ig-video-us-01, 영역: us-central1-b
  • 이름: ig-video-us-02, 영역: us-central1-b
  • 이름: ig-www-eu-01, 영역: europe-west1-b
  • 이름: ig-www-eu-02, 영역: europe-west1-b
  • 이름: ig-video-eu-01, 영역: europe-west1-b
  • 이름: ig-video-eu-02, 영역: europe-west1-b
gcloud compute instances delete VM_NAME \
   --zone=ZONE

방화벽 규칙 삭제

두 방화벽 규칙을 모두 삭제합니다.

gcloud compute firewall-rules delete fw-allow-health-check-and-proxy
gcloud compute firewall-rules delete fw-allow-ssh

VPC 네트워크 삭제

  1. us-subnet을 삭제합니다.

    gcloud compute networks subnets delete us-subnet \
    --region=us-central1
    
  2. eu-subnet을 삭제합니다.

    gcloud compute networks subnets delete eu-subnet \
    --region=europe-west1
    
  3. VPC 네트워크를 삭제합니다.

    gcloud compute networks delete lb-network
    

이 프로젝트에서 설정한 모든 리소스를 삭제했습니다.

다음 단계