수동 장애 조치

이 페이지에서는 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 Console에서 이 측정항목에 액세스 할 수 있습니다. 인스턴스 세부정보 페이지를 보려면 프로젝트의 인스턴스 목록 페이지에서 인스턴스 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 Console, Google Cloud의 작업 제품군 또는 gcloud를 사용하여 수동 장애 조치 작업의 성공 여부를 확인할 수 있습니다.

Cloud Console 확인

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

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

Cloud Monitoring 확인

측정항목 탐색기를 사용하여 모니터링 리소스의 측정항목을 보려면 다음을 수행합니다.

  1. Google Cloud Console에서 Monitoring으로 이동하거나 다음 버튼을 사용합니다.
    Monitoring으로 이동
  2. Monitoring 탐색창에서 측정항목 탐색기를 클릭합니다.
  3. 측정항목 탭을 선택했는지 확인합니다.
  4. 리소스 유형 및 측정항목 찾기 라벨이 지정된 상자에서 클릭하고 메뉴에서 선택하거나 리소스 및 측정항목의 이름을 입력합니다. 다음 정보를 사용하여 이 텍스트 상자의 필드를 입력합니다.
    1. 리소스에서 Cloud Memorystore Redis를 선택하거나 입력합니다.
    2. 측정항목에서 노드 역할을 선택하거나 입력합니다.
  5. 필터, 그룹화 기준, 애그리게이터 메뉴를 사용하여 데이터 표시 방법을 수정합니다. 예를 들어 리소스 또는 측정항목 라벨별로 그룹화할 수 있습니다. 자세한 내용은 측정항목 선택을 참조하세요.

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와 연결된 영역은 변경되지 않습니다.