가용성이 높은 애플리케이션을 위한 부하 분산 사용


이 튜토리얼에서는 리전 관리형 인스턴스 그룹에서 부하 분산을 사용해 사용량이 많거나 사용할 수 없는 VM 인스턴스에서 다른 곳으로 트래픽을 리디렉션하여 영역에 장애가 발생한 상황에서도 고가용성을 제공하는 방법을 설명합니다.

리전 관리형 인스턴스 그룹은 여러 영역에 다양한 인스턴스의 애플리케이션을 분산합니다. 전역 부하 분산기는 단일 IP 주소를 통해 여러 리전 간에 트래픽을 전달합니다. 이러한 두 서비스를 사용하여 여러 영역 간에 애플리케이션을 분산함으로써 영역의 가동 중단과 같은 심각한 상황에서도 애플리케이션의 가용성을 보장할 수 있습니다.

부하 분산기를 사용하면 다양한 트래픽 유형을 전달할 수 있습니다. 이 튜토리얼에서는 외부 HTTP 트래픽을 전달하는 전역 부하 분산기를 만드는 방법을 안내하지만 튜토리얼의 내용 대부분은 다른 유형의 부하 분산기에도 적용됩니다. 부하 분산기로 전달할 수 있는 다른 트래픽 유형에 대해 알아보려면 Cloud Load Balancing의 유형을 참조하세요.

이 튜토리얼에는 리전 관리형 인스턴스 그룹에서 웹 애플리케이션을 실행하고, 네트워크 액세스를 구성하고, 웹 애플리케이션으로 트래픽을 전달하기 위한 부하 분산기를 만들며, 영역 장애를 시뮬레이션해 부하 분산기를 관찰하는 세부적인 단계가 포함되어 있습니다. 이러한 기능을 사용해 본 경험의 유무에 따라 다르겠지만 이 튜토리얼을 완료하는 데 약 45분이 소요됩니다.

목표

  • 리전 관리형 인스턴스 그룹에서 데모 웹 애플리케이션을 실행합니다.
  • 여러 영역 간에 HTTP 트래픽을 전달하는 전역 부하 분산기를 구성합니다.
  • 영역 장애를 시뮬레이션하여 부하 분산기의 효과를 관찰합니다.

비용

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

  • Compute Engine

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요. Google Cloud를 처음 사용하는 사용자는 무료 체험판을 사용할 수 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

애플리케이션 아키텍처

애플리케이션에는 다음과 같은 Compute Engine 구성요소가 포함됩니다.

  • VPC 네트워크: 자체 경로 및 방화벽 규칙을 통해 전역 연결을 제공할 수 있는 Google Cloud 내의 가상 네트워크
  • 방화벽 규칙: Google Cloud 방화벽을 사용하면 인스턴스의 트래픽을 허용 또는 거부할 수 있습니다.
  • 인스턴스 템플릿: 관리형 인스턴스 그룹에 각 VM 인스턴스를 만들 때 사용하는 템플릿
  • 리전 관리형 인스턴스 그룹: 여러 영역에 걸쳐 동일한 애플리케이션을 실행하는 VM 인스턴스 그룹
  • 전역 고정 외부 IP 주소: 외부 네트워크에서 액세스할 수 있으며 전역 리소스에 연결할 수 있는 고정 IP 주소
  • 전역 부하 분산기: 백엔드 인스턴스를 여러 리전에 분산할 수 있는 부하 분산기입니다. 사용자가 동일한 애플리케이션 및 콘텐츠에 액세스해야 하고 단일 애니캐스트 IP 주소를 사용하여 액세스를 제공하려는 경우 전역 부하 분산기를 사용합니다.
  • 상태 확인: 각 VM 인스턴스에서 애플리케이션의 응답성을 평가하기 위해 부하 분산기에서 사용되는 정책

웹 애플리케이션 실행

이 튜토리얼에서는 GitHub에 저장된 웹 애플리케이션을 사용합니다. 애플리케이션이 구현된 방법에 대해 자세히 알아보려면 GitHub에서 GoogleCloudPlatform/python-docs-samples 저장소를 참조하세요.

인스턴스 템플릿에 시작 스크립트를 포함하여 인스턴스 그룹의 모든 VM에서 웹 애플리케이션을 실행합니다. 또한 전용 VPC 네트워크에서 인스턴스 그룹을 실행하여 이 튜토리얼의 방화벽 규칙이 프로젝트에서 실행 중인 기존 리소스에 방해가 되지 않도록 합니다.

VPC 네트워크 만들기

VPC 네트워크를 사용하면 이 튜토리얼용으로 만들 리소스에 의해 영향을 받지 않도록 프로젝트의 기존 리소스를 보호할 수 있습니다. VPC 네트워크는 부하 분산기를 반드시 거치도록 수신 트래픽을 제한하기 위해서도 필요합니다.

VPC 네트워크를 만들어 데모 웹 애플리케이션을 위한 방화벽 규칙을 캡슐화합니다.

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

    VPC 네트워크로 이동

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

  3. 이름web-app-vpc를 입력합니다.

  4. 서브넷 생성 모드자동으로 설정합니다.

  5. 페이지 하단에서 만들기를 클릭합니다.

계속 진행하기 전에 VPC 네트워크 생성이 완료될 때까지 기다리세요.

방화벽 규칙 만들기

VPC 네트워크가 생성된 후 방화벽 규칙을 설정하여 VPC 네트워크의 HTTP 트래픽을 허용합니다.

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

    방화벽으로 이동

  2. 방화벽 규칙 만들기를 클릭합니다.

  3. 이름allow-web-app-http를 입력합니다.

  4. 네트워크web-app-vpc로 설정합니다.

  5. 대상에서 네트워크의 모든 인스턴스를 선택합니다.

  6. 소스 필터IP ranges로 설정합니다.

  7. 소스 IP 범위0.0.0.0/0을 입력하여 모든 IP 주소에 대한 액세스를 허용합니다.

  8. 포트 및 프로토콜에서 지정된 프로토콜 및 포트를 선택합니다.
    tcp를 선택하고 80을 입력하여 HTTP 트래픽에 대한 액세스를 허용합니다.

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

인스턴스 템플릿 만들기

VM 인스턴스 그룹을 만드는 데 사용할 템플릿을 만듭니다. 템플릿에서 생성된 각 인스턴스는 시작 스크립트를 통해 데모 웹 애플리케이션을 실행합니다.

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

    인스턴스 템플릿으로 이동

  2. 인스턴스 템플릿 만들기를 클릭합니다.

  3. 이름load-balancing-web-app-template을 입력합니다.

  4. 머신 구성에서 머신 유형e2-micro로 설정합니다.

  5. 방화벽에서 HTTP 트래픽 허용을 선택합니다.

  6. 고급 설정을 보려면 네트워킹, 디스크, 보안, 관리, 단독 테넌시를 클릭합니다.

  7. 관리 탭을 클릭합니다. 자동화에서 다음 시작 스크립트를 입력합니다.

    sudo apt update && sudo apt -y install git gunicorn3 python3-pip
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    cd python-docs-samples/compute/managed-instances/demo
    sudo pip3 install -r requirements.txt
    sudo gunicorn3 --bind 0.0.0.0:80 app:app --daemon
    

    스크립트는 인스턴스 시작 시 웹 애플리케이션을 가져와 설치하고 실행합니다.

  8. 네트워킹 탭을 클릭합니다. 네트워크에서 web-app-vpc를 선택합니다. 이렇게 하면 이 템플릿으로 생성된 각 인스턴스가 이전에 생성된 네트워크에서 실행되도록 강제합니다.

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

계속 진행하기 전에 템플릿 생성이 완료될 때까지 기다리세요.

리전 관리형 인스턴스 그룹 만들기

웹 애플리케이션을 실행하려면 인스턴스 템플릿을 사용하여 리전 관리형 인스턴스 그룹을 만듭니다.

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

    인스턴스 그룹으로 이동

  2. 인스턴스 그룹 만들기를 클릭합니다.

  3. 새 관리형 인스턴스 그룹(스테이트리스(Stateless))을 선택합니다.

  4. 이름load-balancing-web-app-group를 입력합니다.

  5. 인스턴스 템플릿에서 load-balancing-web-app-template을 선택합니다.

  6. 인스턴스 수6로 설정합니다. 이 필드가 중지되어 있으면 먼저 자동 확장을 사용 중지하세요.

  7. 위치에서 다중 영역을 선택합니다.

  8. 리전에서 us-central1을 선택합니다.

  9. 영역에 대해 드롭다운 목록에서 다음 영역을 선택합니다.

    • us-central1-b
    • us-central1-c
    • us-central1-f
  10. 인스턴스 재배포 허용을 선택합니다.

  11. 자동 확장 모드에서 사용 안함: 자동 확장 안함을 선택합니다.

  12. 만들기를 클릭합니다. 인스턴스 그룹 페이지로 리디렉션됩니다.

  13. 인스턴스가 데모 웹 애플리케이션을 올바르게 실행 중인지 확인하려면 다음 안내를 따르세요.

    1. 인스턴스 그룹 페이지에서 load-balancing-web-app-group을 클릭하여 해당 그룹의 인스턴스를 확인합니다.
    2. 외부 IP에서 해당 인스턴스를 연결할 IP 주소를 클릭합니다. 새 브라우저 탭이 열리고 데모 웹 애플리케이션이 표시됩니다.

      인스턴스에 대한 정보를 나열하고 작업 버튼이 있는 데모 웹 애플리케이션.

      작업을 마치면 데모 웹 애플리케이션의 브라우저 탭을 닫습니다.

부하 분산기 구성

부하 분산기를 사용하여 웹 애플리케이션으로 트래픽을 전달하려면 모든 수신 트래픽을 받을 외부 IP 주소를 예약해야 합니다. 그런 다음 이 IP 주소에서 트래픽을 받아 인스턴스 그룹으로 리디렉션하는 부하 분산기를 만듭니다.

고정 IP 주소 예약

전역 고정 외부 IP 주소를 사용하여 부하 분산기에 모든 사용자 트래픽을 수신하기 위한 단일 진입 지점을 제공합니다. 관련된 Google Cloud 리소스를 변경하거나 삭제하더라도 Compute Engine은 고정 IP 주소를 보존합니다. 이를 통해 웹 애플리케이션은 웹 애플리케이션의 다른 부분이 변경되더라도 항상 같은 진입 지점을 가질 수 있습니다.

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

    외부 IP 주소로 이동

  2. 고정 주소 예약을 클릭합니다.

  3. 이름web-app-ipv4를 입력합니다.

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

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

  6. 예약을 클릭합니다.

부하 분산기 만들기

이 섹션에서는 HTTP 트래픽을 전달하는 전역 부하 분산기를 만들기 위한 단계를 설명합니다.

이 부하 분산기는 프런트엔드를 사용하여 수신 트래픽을 받고 백엔드를 사용하여 이 트래픽을 정상 상태의 인스턴스로 분배합니다. 부하 분산기는 여러 구성요소로 이뤄지므로 이 작업 역시 여러 부분으로 나뉩니다.

  • 백엔드 구성
  • 프런트엔드 구성
  • 검토 및 완료

모든 단계를 완료하여 부하 분산기를 만듭니다.

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

    부하 분산기 만들기로 이동

  2. 애플리케이션 부하 분산기(HTTP/S) 섹션에서 구성 시작을 클릭합니다.

  3. 인터넷 연결 또는 내부 전용 아래에서 인터넷 트래픽을 VM으로 분산을 선택하고 계속을 클릭합니다.

  4. 부하 분산기 이름web-app-load-balancer를 입력합니다.

백엔드 구성

  1. 전역 외부 애플리케이션 부하 분산기 만들기 페이지의 왼쪽 패널에서 백엔드 구성을 클릭합니다.
  2. 백엔드 서비스 및 백엔드 버킷 만들기 또는 선택을 클릭하여 드롭다운 메뉴를 엽니다. 백엔드 서비스를 클릭한 다음 백엔드 서비스 만들기를 클릭합니다.
  3. 새 창에서 백엔드 애플리케이션의 이름web-app-backend를 입력합니다.
  4. 인스턴스 그룹load-balancing-web-app-group으로 설정합니다.
  5. 포트 번호80으로 설정합니다. 이렇게 하면 부하 분산기와 인스턴스 그룹 간의 HTTP 트래픽이 허용됩니다.
  6. 분산 모드에서 사용률을 선택합니다.
  7. 완료를 클릭하여 백엔드를 만듭니다.
  8. 부하 분산기의 백엔드에 대한 상태 확인을 생성합니다.

    1. 상태 확인의 드롭다운 메뉴에서 상태 확인 만들기(또는 다른 상태 확인 만들기)를 선택합니다. 새 창이 열립니다.
    2. 새 창의 이름web-app-load-balancer-check를 입력합니다.
    3. 프로토콜HTTP로 설정합니다.
    4. 포트80을 입력합니다.
    5. 이 튜토리얼에서는 요청 경로를 데모 웹 애플리케이션이 응답하도록 설정된 경로인 /health로 설정합니다.
    6. 다음 상태 기준을 설정합니다.

      1. 확인 간격3초로 설정합니다. 이는 한 프로브의 시작부터 다른 프로브의 시작까지의 시간을 정의합니다.
      2. 시간 제한3초로 설정합니다. 이는 Google Cloud가 프로브에 대한 응답을 대기하는 시간을 정의합니다. 해당 값은 확인 간격보다 작거나 같아야 합니다.
      3. 정상 기준2회 연속 성공으로 설정합니다. 이는 인스턴스가 정상으로 간주되도록 하기 위해 성공해야 하는 순차적 프로브의 수를 정의합니다.
      4. 비정상 기준2회 연속 실패로 설정합니다. 이는 인스턴스가 비정상으로 간주되도록 하기 위해 실패해야 하는 순차적 프로브의 수를 정의합니다.
    7. 저장 후 계속을 클릭하여 상태 확인을 만듭니다.

  9. 만들기를 클릭하여 백엔드 서비스를 만듭니다.

프런트엔드 구성

  1. 전역 외부 애플리케이션 부하 분산기 만들기 페이지의 왼쪽 패널에서 프런트엔드 구성을 클릭합니다.
  2. 프런트엔드 구성 페이지의 이름web-app-ipv4-frontend를 입력합니다.
  3. 프로토콜HTTP로 설정합니다.
  4. IP 버전IPv4로 설정합니다.
  5. IP 주소web-app-ipv4로 설정합니다.
  6. 포트80으로 설정합니다.
  7. 완료를 클릭하여 프런트엔드를 만듭니다.

검토 및 완료

  1. 부하 분산기를 만들기 전에 부하 분산 설정을 확인합니다.

    1. 전역 외부 애플리케이션 부하 분산기 만들기 페이지의 왼쪽 패널에서 검토 및 완료를 클릭합니다.
    2. 검토 및 완료 페이지에서 다음 백엔드 설정을 확인합니다.

      • 백엔드 서비스web-app-backend입니다.
      • 엔드포인트 프로토콜HTTP입니다.
      • 상태 확인web-app-load-balancer-check입니다.
      • 인스턴스 그룹load-balancing-web-app-group입니다.
    3. 같은 페이지에서 프런트엔드HTTP 프로토콜의 IP 주소를 사용하는지 확인합니다.

  2. 전역 외부 애플리케이션 부하 분산기 만들기 페이지의 왼쪽 패널에서 만들기를 클릭하여 부하 분산기 만들기를 마칩니다.

부하 분산기 만들기가 완료될 때까지 몇 분 정도 기다려야 할 수 있습니다.

영역 장애 시뮬레이션

영역 장애로 인한 광범위한 사용 불능 상황을 시뮬레이션하여 부하 분산기의 기능을 관찰할 수 있습니다. 이 시뮬레이션은 지정된 영역에 위치한 모든 인스턴스를 대상으로 /health 요청 경로에 비정상 상태를 보고하도록 강제하는 방법으로 실행됩니다. 이러한 인스턴스는 비정상 상태를 보고할 때 부하 분산 상태 확인을 실패 처리하고 부하 분산기에 해당 인스턴스로의 트래픽 전달을 중지하도록 합니다.

  1. 부하 분산기가 트래픽을 전달하는 영역을 모니터링합니다.

    1. Google Cloud 콘솔에서 Cloud Shell로 이동합니다.

      Cloud Shell 열기

      Cloud Shell이 Google Cloud 콘솔 창에서 열립니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

    2. 부하 분산기의 고정 외부 IP 주소를 저장합니다.

      1. 터미널에 다음 명령어를 입력하여 부하 분산기의 프런트엔드 전달 규칙에서 외부 IP 주소를 가져옵니다.

        gcloud compute forwarding-rules describe web-app-ipv4-frontend --global
        

        출력에서 EXTERNAl_IP_ADDRESS를 복사합니다.

        IPAddress: EXTERNAl_IP_ADDRESS
        ...
        
      2. 로컬 bash 변수를 만듭니다.

        export LOAD_BALANCER_IP=EXTERNAl_IP_ADDRESS
        

        여기서 EXTERNAl_IP_ADDRESS는 복사한 외부 IP 주소입니다.

    3. 부하 분산기가 트래픽을 전달하는 영역을 모니터링하려면 다음 bash 스크립트를 실행합니다.

      while true
      do
              BODY=$(curl -s "$LOAD_BALANCER_IP")
              NAME=$(echo -n "$BODY" | grep "load-balancing-web-app-group" | perl -pe 's/.+?load-balancing-web-app-group-(.+?)<.+/\1/')
              ZONE=$(echo -n "$BODY" | grep "us-" | perl -pe 's/.+?(us-.+?)<.+/\1/')
      
              echo $ZONE
      done
      

      이 스크립트는 부하 분산기의 프런트엔드 IP 주소를 통해 웹 애플리케이션에 지속적으로 연결을 시도하고 각 연결에 대해 웹 애플리케이션이 실행되는 영역을 출력합니다.

      출력 결과에는 영역 us-central1-b, us-central1-c, us-central1-f가 포함되어야 합니다.

      us-central1-f
      us-central1-b
      us-central1-c
      us-central1-f
      us-central1-f
      us-central1-c
      us-central1-f
      us-central1-c
      us-central1-c
      

      이 터미널을 열어 두세요.

  2. 모니터링이 실행되는 동안 영역 장애 시뮬레이션을 시작합니다.

    1. Cloud Shell에서 추가 버튼을 클릭하여 두 번째 터미널 세션을 엽니다.
    2. 프로젝트 ID의 로컬 bash 변수를 만듭니다.

      export PROJECT_ID=PROJECT_ID
      

      여기서 PROJECT_ID는 Cloud Shell의 각 새 줄에 표시되는 현재 프로젝트의 프로젝트 ID입니다.

      user@cloudshell:~ (PROJECT_ID)$
      
    3. 사용 중지하려는 영역에 대해 로컬 bash 변수를 만듭니다. us-central1-f 영역의 장애를 시뮬레이션하려면 다음 명령어를 사용합니다.

      export DISABLE_ZONE=us-central1-f
      

      이후 다음 bash 스크립트를 실행합니다. 이 스크립트는 사용 중지된 영역의 데모 웹 애플리케이션 인스턴스가 부하 분산기 상태 확인에 비정상 응답을 출력하도록 합니다. 비정상 응답은 부하 분산기에서 해당 인스턴스로 트래픽을 전달하지 않도록 합니다.

      export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --filter="zone:($DISABLE_ZONE)" --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "load-balancing-web-app-group")
      for i in $MACHINES;
      do
        NAME=$(echo "$i" | cut -f1 -d,)
        IP=$(echo "$i" | cut -f2 -d,)
        echo "Simulating zonal failure for zone $DISABLE_ZONE, instance $NAME"
        curl -q -s "http://$IP/makeUnhealthy" >/dev/null --retry 2
      done
      

      짧은 지연 후 부하 분산기는 비정상 영역으로의 트래픽 전달을 중지하므로 첫 번째 터미널 창의 출력에서 us-central1-f 영역의 나열이 중지됩니다.

      us-central1-c
      us-central1-c
      us-central1-c
      us-central1-b
      us-central1-b
      us-central1-c
      us-central1-b
      us-central1-c
      us-central1-c
      

      이는 부하 분산기가 정상적이고 응답하는 인스턴스로만 트래픽을 전달하고 있음을 나타냅니다.

      두 터미널 모두 열어 둡니다.

    4. 두 번째 터미널에서 복원할 영역에 대한 로컬 bash 변수를 만듭니다. us-central1-f 영역으로 트래픽을 복원하려면 다음 명령어를 사용합니다.

      export ENABLE_ZONE=us-central1-f
      

      이후 다음 bash 스크립트를 실행합니다. 이 스크립트는 사용 설정된 영역의 데모 웹 애플리케이션 인스턴스가 부하 분산기 상태 확인에 정상 응답을 출력하도록 합니다. 정상 응답은 부하 분산기에서 이러한 인스턴스로 트래픽 분배를 다시 시작하도록 합니다.

      export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --filter="zone:($ENABLE_ZONE)" --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "load-balancing-web-app-group")
      for i in $MACHINES;
      do
        NAME=$(echo "$i" | cut -f1 -d,)
        IP=$(echo "$i" | cut -f2 -d,)
        echo "Simulating zonal restoration for zone $ENABLE_ZONE, instance $NAME"
        curl -q -s "http://$IP/makeHealthy" >/dev/null --retry 2
      done
      

      몇 분 후 첫 번째 터미널 창의 출력에 us-central1-f 영역이 서서히 다시 나열됩니다.

      us-central1-b
      us-central1-b
      us-central1-c
      us-central1-f
      us-central1-c
      us-central1-c
      us-central1-b
      us-central1-c
      us-central1-f
      

      이는 부하 분산기가 수신 트래픽을 다시 모든 영역으로 전달하고 있음을 나타냅니다.

      마치면 두 터미널을 모두 닫습니다.

(선택사항) 수신 트래픽 제한

리전 관리형 인스턴스 그룹을 만들 때 외부 임시 IP 주소를 통해 직접 각 인스턴스에 액세스할 수 있습니다. 그러나 이제 부하 분산기와 고정 외부 IP 주소를 준비했으므로 네트워크 방화벽을 수정하여 수신 트래픽이 부하 분산기를 반드시 거치도록 하는 것이 좋습니다.

수신 트래픽을 부하 분산기로 제한하려면 네트워크 방화벽을 수정하여 각 인스턴스의 임시 외부 IP 주소를 사용 중지합니다.

  1. 부하 분산기만 사용하여 웹 애플리케이션에 액세스할 수 있도록 방화벽 규칙을 수정하여 HTTP 트래픽을 제한합니다.

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

      방화벽으로 이동

    2. 이름에서 allow-web-app-http를 클릭합니다.

    3. 수정을 클릭합니다.

    4. 소스 IP 범위를 수정하여 상태 확인 프로브만 허용합니다.

      1. 0.0.0.0/0을 삭제합니다.
      2. 같은 행에서 130.211.0.0/22를 입력하고 Tab을 누릅니다.
      3. 같은 행에서 35.191.0.0/16을 입력하고 Tab을 누릅니다.
    5. 저장을 클릭합니다.

  2. 특정 인스턴스에 대해 임시 외부 IP 주소를 사용하여 웹 애플리케이션에 연결할 수 없는지 확인합니다.

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

      인스턴스 그룹으로 이동

    2. load-balancing-web-app-group을 클릭하여 해당 그룹의 인스턴스를 확인합니다.

    3. 외부 IP에서 해당 인스턴스를 연결할 IP 주소를 클릭합니다. 새 브라우저 탭이 열리지만 웹 애플리케이션은 열리지 않습니다. (최종적으로 이 페이지에는 시간 제한 오류가 표시됩니다.)

      작업을 마치면 인스턴스의 브라우저 탭을 닫습니다.

  3. 부하 분산기를 사용하여 웹 애플리케이션에 연결할 수 있는지 확인합니다.

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

      부하 분산으로 이동

    2. 이름에서 web-app-load-balancer를 클릭하여 방금 만든 부하 분산기를 확장합니다.

    3. 외부 고정 IP 주소를 통해 웹 앱에 연결하려면 프런트엔드IP:포트 아래에서 IP 주소를 복사합니다. 그런 다음 새 브라우저 탭을 열고 주소 표시줄에 IP 주소를 붙여넣습니다. 이렇게 하면 데모 웹 애플리케이션이 표시될 것입니다.

      데모 웹 애플리케이션

      페이지를 새로고칠 때마다 부하 분산기가 다른 영역의 다른 인스턴스에 연결되는 것을 볼 수 있습니다. 이렇게 되는 이유는 인스턴스에 직접 연결하는 것이 아니라 부하 분산기에 연결하고, 리디렉션되는 인스턴스를 부하 분산기가 선택하기 때문입니다.

      작업을 마치면 데모 웹 애플리케이션의 브라우저 탭을 닫습니다.

삭제

튜토리얼을 완료한 후에는 만든 리소스를 삭제하여 할당량 사용을 중지하고 요금이 청구되지 않도록 할 수 있습니다. 다음 섹션은 이러한 리소스를 삭제하거나 사용 중지하는 방법을 설명합니다.

이 튜토리얼용으로 별도의 프로젝트를 만든 경우 전체 프로젝트를 삭제합니다. 그렇지 않고 프로젝트에 유지하려는 리소스가 있는 경우 이 튜토리얼에서 만든 리소스만 삭제합니다.

프로젝트 삭제

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

특정 리소스 삭제

부하 분산기 삭제

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

    부하 분산으로 이동

  2. web-app-load-balancer 옆의 체크박스를 클릭합니다.

  3. 페이지 상단에 있는 삭제를 클릭합니다.

  4. 새 창에서 모든 체크박스를 선택합니다. 그런 다음 부하 분산기 및 선택한 리소스 삭제를 클릭하여 삭제를 확인합니다.

고정 외부 IP 주소 삭제

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

    외부 IP 주소로 이동

  2. web-app-ipv4 옆의 체크박스를 클릭합니다.

  3. 페이지 상단의 고정 주소 해제를 클릭합니다. 새 창에서 삭제를 클릭하여 삭제를 확인합니다.

인스턴스 그룹 삭제

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

    인스턴스 그룹으로 이동

  2. load-balancing-web-app-group 인스턴스 그룹의 체크박스를 클릭합니다.
  3. 인스턴스 그룹을 삭제하려면 삭제를 클릭합니다.

인스턴스 템플릿 삭제

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

    인스턴스 템플릿으로 이동

  2. load-balancing-web-app-template 옆의 체크박스를 클릭합니다.

  3. 페이지 상단에 있는 삭제를 클릭합니다. 새 창에서 삭제를 클릭하여 삭제를 확인합니다.

VPC 네트워크 삭제

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

    VPC 네트워크로 이동

  2. web-app-vpc를 클릭합니다.

  3. 페이지 상단에 있는 삭제를 클릭합니다. 새 창에서 삭제를 클릭하여 삭제를 확인합니다.

다음 단계