자동 리전 간 장애 조치를 위한 복합 상태 구성

이 페이지에서는 서비스 프로듀서가 게시된 서비스의 자동 리전 간 장애 조치를 지원하도록 복합 상태를 구성하는 방법을 설명합니다.

시작하기 전에

필요한 역할

복합 상태를 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 네트워크 관리자 (roles/compute.networkAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 복합 상태를 구성하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

복합 상태를 구성하려면 다음 권한이 필요합니다.

  • compute.regionHealthAggregationPolicies.list
  • compute.regionHealthAggregationPolicies.get
  • compute.regionHealthAggregationPolicies.create
  • compute.regionHealthAggregationPolicies.update
  • compute.regionHealthAggregationPolicies.delete
  • compute.regionHealthSources.list
  • compute.regionHealthSources.get
  • compute.regionHealthSources.create
  • compute.regionHealthSources.update
  • compute.regionHealthSources.delete
  • compute.regionCompositeHealthChecks.list
  • compute.regionCompositeHealthChecks.get
  • compute.regionCompositeHealthChecks.create
  • compute.regionCompositeHealthChecks.update
  • compute.regionCompositeHealthChecks.delete

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

자동 리전 간 장애 조치를 지원하도록 복합 상태 구성

다음 섹션에서는 자동 리전 간 장애 조치를 위해 복합 상태를 구성하는 방법을 설명합니다.

복합 상태는 서비스 소비자의 구성을 요구하지 않지만 소비자가 멀티 리전 배포에서 지원되는 Private Service Connect 백엔드를 구성하는 경우에만 작동합니다. 서비스 소비자가 복합 상태를 사용하도록 VPC 네트워크를 구성하는 방법에 대한 자세한 내용은 자동 리전 간 장애 조치를 참조하세요.

상태 집계 정책 만들기

리전 간 장애 조치를 지원하려는 모든 리전에서 상태 집계 정책을 하나 이상 만듭니다.

상태 집계 정책은 백엔드 서비스가 정상으로 간주되기 위한 기준을 정의하는 재사용 가능한 리소스입니다. 여러 백엔드 서비스에 동일한 정책을 적용하거나 상태 요구사항이 다른 서비스에 대해 서로 다른 정책을 만들 수 있습니다.

콘솔

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

    복합 상태로 이동

  2. 상태 집계 정책 을 클릭합니다.

  3. 상태 집계 정책 만들기 를 클릭합니다.

  4. 상태 집계 정책의 이름을 입력합니다.

  5. 원하는 경우 정책 설명을 입력합니다.

  6. 리전을 클릭한 다음 상태 집계 정책의 리전을 선택합니다.

  7. 다음 을 클릭합니다.

  8. 정상 비율 기준점 상자에 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 비율(예: 75)을 입력합니다.

  9. 최소 정상 기준점 상자에 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 수를 입력합니다.

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

gcloud

gcloud compute health-aggregation-policies create 명령어를 사용합니다.

gcloud compute health-aggregation-policies create POLICY \
    --region=REGION \
    --healthy-percent-threshold=PERCENT_HEALTHY \
    --min-healthy-threshold=MINIMUM_HEALTHY

다음을 바꿉니다.

  • POLICY: 상태 집계 정책 이름
  • REGION: 상태 집계 정책 리전
  • PERCENT_HEALTHY: 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 비율(예: 75)

    기본값은 60입니다. 엔드포인트는 인스턴스 그룹의 VM이거나 네트워크 엔드포인트 그룹 (NEG)의 네트워크 엔드포인트일 수 있습니다.

  • MINIMUM_HEALTHY: 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 수

    기본값은 1입니다.

API

regionHealthAggregationPolicies.insert 메서드에 요청을 전송합니다.

HTTP 메서드 및 URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/healthAggregationPolicies

JSON 요청 본문:

{
  "name": "POLICY",
  "policyType": "BACKEND_SERVICE_POLICY",
  "healthyPercentThreshold": PERCENT_HEALTHY,
  "minHealthyThreshold": MINIMUM_HEALTHY
}

다음을 바꿉니다.

  • PROJECT_ID: 상태 집계 정책의 프로젝트 ID
  • REGION: 상태 집계 정책 리전
  • POLICY: 상태 집계 정책 이름
  • PERCENT_HEALTHY: 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 비율(예: 75)

    기본값은 60입니다. 엔드포인트는 인스턴스 그룹의 VM이거나 네트워크 엔드포인트 그룹 (NEG)의 네트워크 엔드포인트일 수 있습니다.

  • MINIMUM_HEALTHY: 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 수

    기본값은 1입니다.

상태 소스 만들기

게시된 서비스의 각 리전 인스턴스에 대해 상태 소스를 만듭니다. 게시된 서비스의 인스턴스가 여러 백엔드 서비스의 상태에 따라 달라지는 경우 각 백엔드 서비스에 대해 별도의 상태 소스를 만듭니다.

상태 소스는 상태 집계 정책을 특정 백엔드 서비스에 연결하는 리소스입니다. 복합 상태 점검은 하나 이상의 상태 소스의 상태를 집계하여 서비스의 최종 복합 상태를 생성합니다.

콘솔

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

    복합 상태로 이동

  2. 상태 소스 를 클릭합니다.

  3. 상태 소스 만들기 를 클릭합니다.

  4. 상태 소스의 이름을 입력합니다.

  5. 원하는 경우 상태 소스에 대한 설명을 입력합니다.

  6. 리전을 클릭한 다음 상태 소스의 리전을 선택합니다.

  7. 다음 을 클릭합니다.

  8. 소스를 클릭한 다음 상태 소스와 연결할 백엔드 서비스를 선택합니다.

  9. 다음 을 클릭합니다.

  10. 상태 집계 정책을 클릭한 다음 이 상태 소스에 적용할 상태 집계 정책을 선택합니다.

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

gcloud

gcloud compute health-sources create 명령어를 사용합니다.

gcloud compute health-sources create HEALTH_SOURCE \
    --region=REGION \
    --source-type=BACKEND_SERVICE \
    --sources=BACKEND_SERVICE \
    --health-aggregation-policy=POLICY

다음을 바꿉니다.

  • HEALTH_SOURCE: 상태 소스 이름
  • REGION: 상태 소스 리전

    상태 집계 정책은 상태 소스와 동일한 리전에 있어야 합니다.

  • BACKEND_SERVICE: 상태 소스와 연결할 단일 백엔드 서비스의 이름

    백엔드 서비스는 다음 요구사항을 충족해야 합니다.

    • 부하 분산 스킴이 INTERNAL 또는 INTERNAL_MANAGED여야 합니다.
    • 생성하는 상태 소스와 동일한 리전에 있어야 합니다.
    • 백엔드는 인스턴스 그룹이거나 GCE_VM_IP 또는 GCE_VM_IP_PORT 유형의 네트워크 엔드포인트 그룹이어야 합니다.
  • POLICY: 이 상태 소스에 적용할 상태 집계 정책의 이름

API

regionHealthSources.insert 메서드에 요청을 전송합니다.

HTTP 메서드 및 URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/healthSources

JSON 요청 본문:

{
  "name": "HEALTH_SOURCE",
  "sourceType": "BACKEND_SERVICE",
  "sources": [
    "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE"
  ],
  "healthAggregationPolicy": "projects/PROJECT_ID/regions/REGION/healthAggregationPolicies/POLICY"
}

다음을 바꿉니다.

  • PROJECT_ID: 상태 소스의 프로젝트 ID
  • REGION: 상태 소스 리전

    상태 집계 정책은 상태 소스와 동일한 리전에 있어야 합니다.

  • HEALTH_SOURCE: 상태 소스 이름.

  • BACKEND_SERVICE: 상태 소스와 연결할 단일 백엔드 서비스의 이름.

    백엔드 서비스는 다음 요구사항을 충족해야 합니다.

    • 부하 분산 스킴이 INTERNAL 또는 INTERNAL_MANAGED여야 합니다.
    • 생성하는 상태 소스와 동일한 리전에 있어야 합니다.
    • 백엔드는 인스턴스 그룹이거나 GCE_VM_IP 또는 GCE_VM_IP_PORT 유형의 네트워크 엔드포인트 그룹이어야 합니다.
  • POLICY: 이 상태 소스에 적용할 상태 집계 정책의 이름.

복합 상태 점검 만들기

게시된 서비스의 각 리전 인스턴스에 대해 복합 상태 점검을 만듭니다.

복합 상태 점검은 연결된 상태 소스의 상태를 집계하여 최종 복합 상태를 만듭니다. 최종 상태는 상태 대상으로 지정한 전달 규칙과 연결된 리전에 게시된 서비스에 적용됩니다.

콘솔

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

    복합 상태로 이동

  2. 복합 상태 점검 을 클릭합니다.

  3. 복합 상태 점검 만들기 를 클릭합니다.

  4. 복합 상태 점검의 이름을 입력합니다.

  5. 원하는 경우 복합 상태 점검에 대한 설명을 입력합니다.

  6. **리전** 을 클릭한 다음 복합 상태 점검의 리전을 선택합니다.

  7. 다음 을 클릭합니다.

  8. 상태 소스를 클릭한 다음 복합 상태 점검과 연결할 상태 소스를 선택합니다. 상태 소스 추가 를 클릭한 다음 다른 상태 소스를 선택하여 상태 소스를 더 추가할 수 있습니다.

  9. 다음 을 클릭합니다.

  10. 부하 분산기 유형을 클릭한 다음 상태 대상으로 사용할 부하 분산기 유형을 선택합니다.

  11. **부하 분산기** 를 클릭한 다음 상태 대상으로 사용할 부하 분산기를 선택합니다.

  12. 부하 분산기가 여러 전달 규칙과 연결되어 있는 경우 전달 규칙을 클릭한 다음 상태 대상으로 사용할 전달 규칙 을 선택합니다.

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

gcloud

gcloud compute composite-health-checks create 명령어를 사용합니다.

gcloud compute composite-health-checks create COMPOSITE_HEALTH_CHECK \
    --region=REGION \
    --health-sources=HEALTH_SOURCES \
    --health-destination=HEALTH_DESTINATION

다음을 바꿉니다.

  • COMPOSITE_HEALTH_CHECK: 복합 상태 점검 이름
  • REGION: 복합 상태 점검 리전
  • HEALTH_SOURCES: 복합 상태 점검과 연결할 상태 소스 하나 이상의 이름

    쉼표로 구분된 목록으로 건강 소스 여러 개를 포함할 수 있습니다.

  • HEALTH_DESTINATION: 이 복합 상태 점검에서 복합 상태를 수신하는 전달 규칙의 URI(예: projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE)

    전달 규칙은 복합 상태를 지원하고 다음 요구사항을 충족하는 프로듀서 부하 분산기 와 연결되어야 합니다.

    • 부하 분산 스킴이 INTERNAL 또는 INTERNAL_MANAGED여야 합니다.
    • 복합 상태 점검과 동일한 리전에 있어야 합니다.

API

regionCompositeHealthChecks.insert 메서드에 요청을 전송합니다.

HTTP 메서드 및 URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/compositeHealthChecks

JSON 요청 본문:

{
  "name": "COMPOSITE_HEALTH_CHECK",
  "healthSources": [
    "projects/PROJECT_ID/regions/REGION/healthSources/HEALTH_SOURCE"
  ],
  "healthDestination": "HEALTH_DESTINATION"
}

다음을 바꿉니다.

  • PROJECT_ID: 복합 상태 점검의 프로젝트 ID
  • REGION: 복합 상태 점검 리전
  • COMPOSITE_HEALTH_CHECK: 복합 상태 점검의 이름.
  • HEALTH_SOURCE: 복합 상태 점검과 연결할 상태 소스의 이름. healthSources 배열에 여러 상태 소스를 포함할 수 있습니다.

  • HEALTH_DESTINATION: 이 복합 상태 점검에서 복합 상태를 수신하는 전달 규칙의 URI(예: projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE)

    전달 규칙은 복합 상태를 지원하고 다음 요구사항을 충족하는 프로듀서 부하 분산기 와 연결되어야 합니다.

    • 부하 분산 스킴이 INTERNAL 또는 INTERNAL_MANAGED여야 합니다.
    • 복합 상태 점검과 동일한 리전에 있어야 합니다.

다음 단계