수동 장애 조치

이 페이지에서는 Memorystore for Redis의 수동 장애 조치 개요를 제공합니다. 장애 조치를 수행하는 방법을 알아보려면 수동 장애 조치 시작을 참조하세요.

수동 장애 조치란?

표준 등급의 Memorystore for Redis 인스턴스는 복제본 노드를 사용하여 기본 노드를 백업합니다. 기본 노드가 비정상 상태가 되면 일반적인 장애 조치가 실행되고 복제본이 새 기본 노드로 지정됩니다. 수동 장애 조치는 사용자가 직접 시작하기 때문에 일반적인 장애 조치와 다릅니다. Memorystore for Redis 복제본의 작동 방식에 대한 자세한 내용은 고가용성을 참조하세요.

수동 장애 조치를 시작하는 이유

수동 장애 조치를 시작하면 애플리케이션이 장애 조치에 응답하는 방식을 테스트할 수 있습니다. 이러한 지식이 있으면 나중에 예기치 않은 장애 조치가 발생할 경우 더 원활하게 장애 조치 프로세스를 수행할 수 있습니다.

선택적 데이터 보호 모드

사용 가능한 두 가지 데이터 보호 모드는 다음과 같습니다.

  • limited-data-loss 모드 (기본값)
    • 수동 장애 조치는 사용자가 모드를 변경하지 않는 한 항상 제한된 데이터 손실 모드에서 실행됩니다.
  • force-data-loss 모드

데이터 보호 모드를 변경하려면 다음 명령어 중 하나를 사용하세요.

gcloud redis instances failover INSTANCE_NAME --data-protection-mode=force-data-loss

또는

gcloud redis instances failover INSTANCE_NAME --data-protection-mode=limited-data-loss

데이터 보호 모드 작동 방식

실제 장애 조치 시나리오에서 애플리케이션의 동작을 테스트하려면 재해 복구의 장애 조치 조건을 가장 정확하게 나타내는 force-data-loss 모드를 사용할 수 있습니다.

기본에서 복제본으로 장애 조치할 경우 데이터 손실 위험이 있습니다. limited-data-loss 모드는 장애 조치를 시작하기 전에 기본 과 복제본 간의 동기화 차이가 30MB 미만인지 확인하여 데이터 손실을 최소화합니다.

force-data-loss 모드는 기본 복제본 동기화에 대한 이 검사를 재정의합니다. 복제본 동기화가 기본보다 30MB를 초과할 때 force-data-loss 모드를 사용하면 30MB 이상의 데이터가 손실될 수 있습니다.

복제 대기중인 바이트 측정항목

복제 대기중인 바이트 측정항목은 기본이 완전히 백업되기 전에 복제본이 복사해야 할 나머지 바이트 수를 알려줍니다. 기본 인스턴스가 장애 조치 중에 복제본으로 복제되므로 대기 중인 바이트가 증가합니다.

인스턴스 세부정보 페이지의 Google Cloud 콘솔에서 이 측정항목에 액세스 할 수 있습니다. 인스턴스 세부정보 페이지를 보려면 프로젝트의 인스턴스 목록 페이지에서 인스턴스 ID를 클릭하세요.

또는 프로젝트의 Google Cloud 운영 제품군 측정항목 탐색기에 액세스하여 redis.googlapis.com/replication/offset_diff 측정항목을 검색합니다.

수동 장애 조치를 실행하는 경우

기본 limited-data-loss 보호 모드를 사용하는 수동 장애 조치는 복제 대기중인 바이트 측정항목이 30MB 미만인 경우에만 성공합니다. 복제 대기중인 바이트가 30MB보다 큰 경우 수동 장애 조치를 실행하려면 force-data-loss 보호 모드를 사용하세요.

가능한 한 많은 데이터를 보존하려면 애플리케이션이 Redis 인스턴스에 쓰는 것을 일시적으로 중지하고 복제 대기중인 바이트 측정항목이 허용되는 수준까지 낮아질 때까지 기다렸다가 수동 장애 조치를 실행합니다.

수동 장애 조치를 차단하는 잠재적 문제

  • 기본 등급 인스턴스에는 복제본이 없기 때문에 기본 등급 인스턴스에서 수동 장애 조치를 실행하면 작동하지 않습니다.

  • Redis 인스턴스가 비정상적인 경우 수동 장애 조치 작업이 차단됩니다.

  • 인스턴스에 대기중인 불완전한 작업(예: 확장 또는 업데이트)이 있는 경우 수동 장애 조치 작업이 차단됩니다. 수동 장애 조치를 실행하려면 인스턴스가 READY 상태가 될 때까지 기다려야 합니다.

클라이언트 애플리케이션 연결

기본 노드가 복제본으로 장애 조치하면 Memorystore for Redis에 대한 기존 연결이 끊깁니다. 그러나 다시 연결할 때 애플리케이션은 동일한 연결 문자열 또는 IP 주소를 사용하여 자동으로 새 기본 노드로 리디렉션됩니다.

수동 장애 조치 확인

Google Cloud 콘솔, Google Cloud 운영 제품군 또는 gcloud를 사용하여 수동 장애 조치 작업의 성공 여부를 확인할 수 있습니다.

Google Cloud 콘솔 확인

수동 장애 조치를 시작하기 전에 Redis용 Memorystore 인스턴스 목록 페이지로 이동하여 인스턴스 이름을 클릭합니다.

그런 다음 인스턴스 속성에서 기본 및 복제본이 있는 영역을 확인합니다. 영역(zone)을 기록해 둡니다. 수동 장애 조치가 완료되면 완료할 때 이 페이지를 다시 확인하여 기본 노드와 복제본 노드가 영역을 전환했는지 확인합니다.

Cloud Monitoring 확인

측정항목 탐색기를 사용하여 모니터링 리소스의 측정항목을 확인하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Monitoring의 측정항목 탐색기 페이지로 이동합니다.
  2. 측정항목 탐색기로 이동

  3. 툴바에서 탐색기 탭을 선택합니다.
  4. 구성 탭을 선택합니다.
  5. 측정항목 선택 메뉴를 확장하고 필터 표시줄에 Node role을 입력한 다음 하위 메뉴를 사용하여 특정 리소스 유형과 측정항목을 선택합니다.
    1. 활성 리소스 메뉴에서 Cloud Memorystore Redis를 선택합니다.
    2. 활성 측정항목 카테고리 메뉴에서 복제를 선택합니다.
    3. 활성 측정항목 메뉴에서 노드 역할을 선택합니다.
    4. 적용을 클릭합니다.
  6. 선택사항: 데이터를 보는 방법을 구성하려면 필터를 추가하고 그룹화 기준, 애그리게이터, 차트 유형 메뉴를 사용합니다. 예를 들어 리소스 또는 측정항목 라벨별로 그룹화할 수 있습니다. 자세한 내용은 측정항목 탐색기 사용 시 측정항목 선택을 참조하세요.
  7. 선택사항: 그래프 설정을 변경합니다.
    • 하루에 샘플 하나를 보고하는 할당량과 기타 측정항목의 경우 기간을 최소 1주일 이상으로 설정하고 플롯 유형을 누적 막대 그래프로 설정합니다.
    • 분포 값 측정항목의 경우 플롯 유형을 히트맵 차트로 설정합니다.

Cloud Monitoring 차트는 마스터 및 기본 노드를 두 줄로 나타냅니다. 차트에서 노드 줄의 값이 0이면 복제본 노드입니다. 차트에서 노드 줄의 값이 1이면 기본 노드입니다. 이 차트는 줄이 1에서 0으로, 0에서 1로 각각 전환되는 방법을 보여주는 방식으로 장애 조치를 나타냅니다.

gcloud 확인

수동 장애 조치를 시작하기 전에 다음 명령어를 사용하여 기본 노드가 있는 영역을 확인합니다.

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

기본 노드는 currentLocationId 라벨이 지정된 영역에 있습니다. 영역(zone)을 기록해 두세요.

수동 장애 조치를 완료한 후 gcloud redis instances describe 명령어를 다시 실행하고 currentLocationId가 영역을 변경했는지 확인하여 기본 노드가 새 영역으로 전환되었는지 확인할 수 있습니다.

또한 locationId 라벨은 기본 노드를 처음 프로비저닝한 영역을 알려줍니다. alternativeLocationId 라벨은 시스템이 복제본 노드를 처음 프로비저닝한 영역을 알려줍니다. 장애 조치가 발생할 때마다 이러한 두 영역 간에 기본 및 복제본과 복제본이 전환됩니다. 하지만 locationIdalternativeLocationId와 연결된 영역은 변경되지 않습니다.