고가용성

이 페이지에서는 표준 등급의 Redis용 Memorystore 인스턴스에 대한 고가용성을 설명합니다. 표준 등급은 복제 및 자동 장애 조치 기능을 통해 고가용성을 제공합니다. Redis용 Memorystore는 고가용성을 위해 Redis Sentinel을 사용하지 않습니다.

고가용성이란 무엇인가

Redis용 Memorystore는 기본 Redis 노드를 복제본 노드로 복제하여 고가용성을 제공합니다. 복제본 노드는 기본 노드에 대한 변경사항을 복제하는 기본 노드의 사본입니다.

표준 등급의 각 Redis용 Memorystore 인스턴스는 기본 노드 및 복제본 노드로 프로비저닝됩니다. 애플리케이션 요청은 기본 노드로 전달됩니다. 기본 노드의 데이터에 대한 모든 변경사항은 Redis 비동기 복제 프로토콜을 사용하여 복제본에 복사됩니다.

고가용성의 기능

기본 노드에 오류가 발생하면 Redis용 Memorystore 서비스가 장애 조치를 트리거합니다. 이 서비스는 복제본을 새로운 기본 인스턴스로 승격하고, 복구 후에는 이전의 기본 인스턴스가 복제본이 됩니다. 본질적으로 노드 간의 역할 전환이 일어납니다.

영역 오류에 대비하기 위해 기본 노드와 복제본 노드는 동일한 리전 내의 다른 영역에 있습니다. 기본 노드와 복제본 노드의 영역을 지정하려면 gcloud 도구를 사용하여 Redis 인스턴스를 만들어야 합니다.

장애가 발생하지 않은 노드에 데이터가 백업되어 있으므로 표준 등급 인스턴스는 단일 노드 오류 발생 시 인스턴스 데이터를 보존합니다. 다중 영역 오류로 인해 기본 노드와 복제본 노드가 동시에 실패하는 경우 데이터를 복구할 수 없습니다.

장애 조치가 트리거되는 경우

기본 Redis 노드가 실패하면 장애 조치가 발생합니다. 장애 조치 중에 새 기본 인스턴스에 대한 모든 요청은 자동으로 복제본으로 리디렉션되고 Redis용 Memorystore 인스턴스는 애플리케이션에 계속 응답합니다.

장애 조치가 애플리케이션에 미치는 영향

기본 노드가 복제본으로 장애 조치하면 Redis용 Memorystore에 대한 기존 연결이 끊어집니다. 그리고 다시 연결할 때 애플리케이션은 동일한 연결 문자열이나 IP 주소를 사용하여 자동으로 새 기본 노드로 리디렉션됩니다. 장애 조치 후 애플리케이션을 업데이트할 필요가 없습니다.

Redis용 Memorystore 서비스가 복제본을 기본으로 승격하는 동안 Redis용 Memorystore 인스턴스를 일시적으로 사용할 수 없습니다. 각 노드는 단일 영역에 위치하므로 영역 오류로 인해 복구 시간이 길어질 수 있습니다. 이 시간 동안 데이터 복사본은 단 하나뿐입니다.

장애 조치 후 인스턴스 연결 재시도

장애 조치로 인해 항상 연결이 끊어집니다. 이는 내부적으로 기본 및 복제본의 역할과 IP 주소가 전환되므로 필요합니다. 그러나 인스턴스의 고정 IP 주소를 사용하여 Redis 인스턴스에 계속 액세스해야 합니다.

이렇게 연결이 끊겼으므로 애플리케이션은 연결을 재시도해야 합니다. 재시도 로직은 너무 많은 재시도 요청으로 인스턴스에 과부하가 발생하지 않도록 지수 백오프를 사용해야 합니다. 재시도 로직을 포함하는 것 외에도 수동 장애 조치로 테스트하여 장애 조치가 애플리케이션에 미치는 영향을 테스트해야 합니다.

대부분의 Redis 클라이언트에는 장애 조치로 인해 연결이 끊어진 경우에 사용해야 하는 재시도 기능이 내장되어 있습니다.

장애 조치는 다음과 같은 상황에서 발생합니다.

장애 조치로 인한 연결 중단을 처리하기 위해 애플리케이션에서 재시도 로직을 구현하는 경우 인스턴스의 성능에는 큰 영향이 없습니다. 일반적으로 문제는 재시도 로직이 없는 경우에만 발생합니다.

고가용성 상태를 확인하는 방법

Google Cloud의 작업 제품군을 사용하여 Redis 인스턴스의 고가용성 측정항목을 확인할 수 있습니다. Google Cloud의 작업 제품군이 Redis용 Memorystore에 제공하는 측정항목에 대한 자세한 내용은 Redis 인스턴스 모니터링을 참조하세요. Google Cloud와 Google Cloud의 작업 제품군을 함께 사용하는 방법에 대한 자세한 내용은 Stackdriver Monitoring 문서를 참조하세요.

Redis가 제공하는 기본 복제 상태를 보려면 Redis용 Memorystore 인스턴스에 Redis INFO 명령어를 실행하세요.

다음 단계