자동 리전 간 장애 조치를 위한 복합 상태 구성
이 페이지에서는 서비스 프로듀서가 게시된 서비스의 자동 리전 간 장애 조치를 지원하도록 복합 상태를 구성하는 방법을 설명합니다.
시작하기 전에
복합 상태에 대해 알아봅니다.
지원하려는 각 리전에서 다음 요구사항을 충족하는 대상 서비스 를 식별하거나 만듭니다.
- 다음 내부 부하 분산기 중 하나를 사용해야 합니다.
- 다음 백엔드 유형 중 하나를 사용해야 합니다.
- 네트워크 엔드포인트 유형이
GCE_VM_IP또는GCE_VM_IP_PORT인 영역 네트워크 엔드포인트 그룹 (NEG) - 인스턴스 그룹
- 네트워크 엔드포인트 유형이
대상 서비스를 만드는 단계는 선택한 부하 분산기 및 백엔드 유형에 따라 다릅니다. 대상 서비스 만들기에 대한 자세한 내용은 부하 분산기 문서를 참조하세요.
서비스 연결을 만들어 각 대상 서비스를 게시합니다.
장애 조치를 위해 복합 상태를 사용하려면 소비자가 리전 간 장애 조치를 지원하는 부하 분산기로 서비스에 액세스해야 합니다.
프로젝트에서 Compute Engine API를 사용 설정합니다.
필요한 역할
복합 상태를 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 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 네트워크를 구성하는 방법에 대한 자세한 내용은 자동 리전 간 장애 조치를 참조하세요.
상태 집계 정책 만들기
리전 간 장애 조치를 지원하려는 모든 리전에서 상태 집계 정책을 하나 이상 만듭니다.
상태 집계 정책은 백엔드 서비스가 정상으로 간주되기 위한 기준을 정의하는 재사용 가능한 리소스입니다. 여러 백엔드 서비스에 동일한 정책을 적용하거나 상태 요구사항이 다른 서비스에 대해 서로 다른 정책을 만들 수 있습니다.
콘솔
콘솔에서 복합 상태 페이지로 이동합니다. Google Cloud
상태 집계 정책 을 클릭합니다.
상태 집계 정책 만들기 를 클릭합니다.
상태 집계 정책의 이름을 입력합니다.
원하는 경우 정책 설명을 입력합니다.
리전을 클릭한 다음 상태 집계 정책의 리전을 선택합니다.
다음 을 클릭합니다.
정상 비율 기준점 상자에 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 비율(예:
75)을 입력합니다.최소 정상 기준점 상자에 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 수를 입력합니다.
만들기 를 클릭합니다.
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: 상태 집계 정책의 프로젝트 IDREGION: 상태 집계 정책 리전POLICY: 상태 집계 정책 이름PERCENT_HEALTHY: 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 비율(예:75)기본값은
60입니다. 엔드포인트는 인스턴스 그룹의 VM이거나 네트워크 엔드포인트 그룹 (NEG)의 네트워크 엔드포인트일 수 있습니다.MINIMUM_HEALTHY: 상태 소스가 정상으로 간주되려면 정상이어야 하는 백엔드 서비스의 최소 엔드포인트 수기본값은
1입니다.
상태 소스 만들기
게시된 서비스의 각 리전 인스턴스에 대해 상태 소스를 만듭니다. 게시된 서비스의 인스턴스가 여러 백엔드 서비스의 상태에 따라 달라지는 경우 각 백엔드 서비스에 대해 별도의 상태 소스를 만듭니다.
상태 소스는 상태 집계 정책을 특정 백엔드 서비스에 연결하는 리소스입니다. 복합 상태 점검은 하나 이상의 상태 소스의 상태를 집계하여 서비스의 최종 복합 상태를 생성합니다.
콘솔
콘솔에서 복합 상태 페이지로 이동합니다. Google Cloud
상태 소스 를 클릭합니다.
상태 소스 만들기 를 클릭합니다.
상태 소스의 이름을 입력합니다.
원하는 경우 상태 소스에 대한 설명을 입력합니다.
리전을 클릭한 다음 상태 소스의 리전을 선택합니다.
다음 을 클릭합니다.
소스를 클릭한 다음 상태 소스와 연결할 백엔드 서비스를 선택합니다.
다음 을 클릭합니다.
상태 집계 정책을 클릭한 다음 이 상태 소스에 적용할 상태 집계 정책을 선택합니다.
만들기 를 클릭합니다.
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: 상태 소스의 프로젝트 IDREGION: 상태 소스 리전상태 집계 정책은 상태 소스와 동일한 리전에 있어야 합니다.
HEALTH_SOURCE: 상태 소스 이름.BACKEND_SERVICE: 상태 소스와 연결할 단일 백엔드 서비스의 이름.백엔드 서비스는 다음 요구사항을 충족해야 합니다.
- 부하 분산 스킴이
INTERNAL또는INTERNAL_MANAGED여야 합니다. - 생성하는 상태 소스와 동일한 리전에 있어야 합니다.
- 백엔드는 인스턴스 그룹이거나
GCE_VM_IP또는GCE_VM_IP_PORT유형의 네트워크 엔드포인트 그룹이어야 합니다.
- 부하 분산 스킴이
POLICY: 이 상태 소스에 적용할 상태 집계 정책의 이름.
복합 상태 점검 만들기
게시된 서비스의 각 리전 인스턴스에 대해 복합 상태 점검을 만듭니다.
복합 상태 점검은 연결된 상태 소스의 상태를 집계하여 최종 복합 상태를 만듭니다. 최종 상태는 상태 대상으로 지정한 전달 규칙과 연결된 리전에 게시된 서비스에 적용됩니다.
콘솔
콘솔에서 복합 상태 페이지로 이동합니다. Google Cloud
복합 상태 점검 을 클릭합니다.
복합 상태 점검 만들기 를 클릭합니다.
복합 상태 점검의 이름을 입력합니다.
원하는 경우 복합 상태 점검에 대한 설명을 입력합니다.
**리전** 을 클릭한 다음 복합 상태 점검의 리전을 선택합니다.
다음 을 클릭합니다.
상태 소스를 클릭한 다음 복합 상태 점검과 연결할 상태 소스를 선택합니다. 상태 소스 추가 를 클릭한 다음 다른 상태 소스를 선택하여 상태 소스를 더 추가할 수 있습니다.
다음 을 클릭합니다.
부하 분산기 유형을 클릭한 다음 상태 대상으로 사용할 부하 분산기 유형을 선택합니다.
**부하 분산기** 를 클릭한 다음 상태 대상으로 사용할 부하 분산기를 선택합니다.
부하 분산기가 여러 전달 규칙과 연결되어 있는 경우 전달 규칙을 클릭한 다음 상태 대상으로 사용할 전달 규칙 을 선택합니다.
만들기 를 클릭합니다.
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: 복합 상태 점검의 프로젝트 IDREGION: 복합 상태 점검 리전COMPOSITE_HEALTH_CHECK: 복합 상태 점검의 이름.HEALTH_SOURCE: 복합 상태 점검과 연결할 상태 소스의 이름.healthSources배열에 여러 상태 소스를 포함할 수 있습니다.HEALTH_DESTINATION: 이 복합 상태 점검에서 복합 상태를 수신하는 전달 규칙의 URI(예:projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE)전달 규칙은 복합 상태를 지원하고 다음 요구사항을 충족하는 프로듀서 부하 분산기 와 연결되어야 합니다.
- 부하 분산 스킴이
INTERNAL또는INTERNAL_MANAGED여야 합니다. - 복합 상태 점검과 동일한 리전에 있어야 합니다.
- 부하 분산 스킴이
다음 단계
- 복합 상태로 게시된 서비스를 모니터링하려면 복합 상태 모니터링을 참조하세요.
- 복합 상태 구성을 관리하려면 복합 상태 구성 보기, 업데이트, 삭제를 참조하세요.