고가용성 및 재해 복구

모든 클라우드 컴퓨터와 마찬가지로 계획되지 않은 중단이 발생하여 VM(가상 머신) 인스턴스, 가용성 영역 또는 전체 Azure 지역이 중단될 수 있습니다. 고객이 영역 또는 지역 중단을 처리할 계획을 세우는 것이 좋습니다.

이 문서에서는 Azure Cache for Redis 또는 Azure Cache for Redis 엔터프라이즈 구현을 위한 비즈니스 연속성 및 재해 복구 계획을 만드는 데 필요한 정보를 제공합니다.

표준, 프리미엄 및 엔터프라이즈 계층에서는 다양한 고가용성 옵션을 사용할 수 있습니다.

옵션 설명 가용성 Standard Premium Enterprise
표준 복제 자동 장애 조치(failover)를 사용하는 단일 데이터 센터의 이중 노드 복제 구성 99.9%(세부 정보 참조)
영역 중복 자동 장애 조치(failover)를 통해 가용성 영역 전체에 다중 노드 복제 구성 프리미엄 99.9%, 엔터프라이즈 99.99%(세부 정보 참조) -
지역에서 복제 두 지역에 연결된 캐시 인스턴스(사용자 제어 장애 조치(failover) 포함) 프리미엄; 엔터프라이즈(세부 정보 참조) - 수동 진행 중
Import/Export 캐시에 있는 데이터의 특정 시점 스냅샷입니다. 99.9%(세부 정보 참조) -
지속성 스토리지 계정에 주기적으로 데이터를 저장합니다. 99.9%(세부 정보 참조) - 미리 보기를

고가용성을 위한 표준 복제

적용 가능한 계층: 표준, 프리미엄, 엔터프라이즈, 엔터프라이즈 플래시

권장 대상: 고가용성

Azure Cache for Redis에는 운영 중단이 기본 VM(가상 머신)에 영향을 미치는 경우에도 관리되는 인스턴스가 작동하도록 보장하는 고가용성 아키텍처가 있습니다. 계획된 중단이든 계획되지 않은 중단이든 관계없이 Azure Cache for Redis는 단일 VM에서 Redis를 호스팅하여 얻을 수 있는 것보다 더 높은 비율의 가용성을 제공합니다.

해당 계층의 Azure Cache for Redis는 기본적으로 한 쌍의 Redis 서버에서 실행됩니다. 두 서버는 전용 VM에서 호스트됩니다. 오픈 소스 Redis를 사용하면 하나의 서버에서만 데이터 쓰기 요청을 처리할 수 있습니다.

Azure Cache for Redis에서 한 서버는 기본 노드이고 다른 서버는 복제본입니다. 서버 노드를 프로비저닝한 후 Azure Cache for Redis는 주 역할과 복제본 역할을 할당합니다. 기본 노드는 일반적으로 클라이언트의 쓰기 및 읽기 요청 서비스를 담당합니다. 쓰기 작업의 경우 새 키와 키 업데이트가 내부 메모리에 커밋되고 즉시 클라이언트에 응답합니다. 작업을 복제본에 비동기적으로 전달합니다.

Data replication setup

참고 항목

일반적으로 Azure Cache for Redis 클라이언트 애플리케이션은 모든 읽기 및 쓰기 요청에 대해 캐시의 기본 노드와 통신합니다. 특정 클라이언트는 복제본 노드에서 읽도록 구성할 수 있습니다.

Redis 캐시의 노드를 사용할 수 없는 경우 복제본이 자동으로 새로운 주 노드가 되도록 스스로 수준을 올립니다. 이 프로세스를 장애 조치(failover)라고 합니다. 장애 조치(failover)는 기본/복제, 거래 역할, 복제/기본의 두 노드에 불과하며 노드 중 하나는 몇 분 동안 오프라인 상태가 될 수 있습니다. 대부분의 장애 조치(failover)에서 기본 노드와 복제본 노드는 핸드오버를 조정하므로 기본 노드 없이는 시간이 거의 없습니다.

이전 기본은 새 기본에서 업데이트를 받기 위해 잠시 오프라인 상태가 됩니다. 그런 다음 이제 복제본이 다시 온라인 상태가 되고 완전히 동기화된 캐시에 다시 합류합니다. 핵심은 노드를 사용할 수 없을 때 일시적인 상태이며 다시 온라인 상태가 된다는 것입니다.

유지 관리를 위해 기본 서버를 중단해야 하는 일반적인 장애 조치(failover) 시퀀스는 다음과 같습니다.

  1. 기본 및 복제본 노드는 조정된 장애 조치(failover) 및 거래 역할을 협상합니다.
  2. 복제본(이전의 기본)은 다시 부팅을 위해 오프라인 상태가 됩니다.
  3. 몇 초 또는 몇 분 후에 복제본이 다시 온라인 상태가 됩니다.
  4. 복제본은 기본에서 데이터를 동기화합니다.

기본 노드는 Redis 소프트웨어 또는 운영 체제 업데이트와 같은 계획된 유지 관리 작업의 일부로 서비스를 중단할 수 있습니다. 기본 하드웨어, 소프트웨어 또는 네트워크의 오류와 같은 계획되지 않은 이벤트로 인해 작동이 중지될 수도 있습니다. Azure Cache for Redis의 장애 조치(failover) 및 패치는 Redis 장애 조치(failover) 유형에 대한 자세한 설명을 제공합니다. Azure Cache for Redis는 해당 수명 동안 많은 장애 조치(failover)를 수행합니다. 고가용성 아키텍처의 디자인은 캐시 내의 이러한 변경 사항이 해당 클라이언트에게 최대한 투명하게 적용됩니다.

또한 Azure Cache for Redis는 프리미엄 계층에서 추가 복제본 노드를 제공합니다. 다중 복제본 캐시는 최대 3개의 복제본 노드를 사용하여 구성할 수 있습니다. 복제본이 많을수록 주 노드를 백업하는 노드가 있으므로 일반적으로 복원력이 향상됩니다. 복제본이 더 많더라도 Azure Cache for Redis 인스턴스는 여전히 데이터 센터 또는 가용성 영역 중단으로 인해 심각한 영향을 받을 수 있습니다. 영역 중복성이 있는 여러 복제본을 사용하여 캐시 가용성을 높일 수 있습니다.

영역 중복

적용 가능한 계층: 프리미엄, 엔터프라이즈, 엔터프라이즈 플래시

권장 대상: 고가용성, 재해 복구 - 지역 내

Azure Cache for Redis는 프리미엄 및 엔터프라이즈 계층에서 영역 중복 구성을 지원합니다. 영역 중복 캐시는 동일한 지역에 있는 다양한 Azure 가용성 영역에 노드를 둘 수 있습니다. 데이터 센터 또는 AZ 중단을 단일 실패 지점으로서 제거하고 캐시의 전체 가용성을 높입니다. 설정 방법에 대한 정보는 이 문서를 참조하세요.

문서 앞부분에 설명한 것처럼 두 개 이상의 영역을 사용하도록 캐시를 구성하면 다른 영역에 캐시 노드가 만들어집니다. 영역이 다운되면 다른 영역의 캐시 노드를 사용하여 캐시 함수를 평소와 같이 유지할 수 있습니다.

Azure Cache for Redis는 프리미엄 및 엔터프라이즈 계층에서 영역 중복 구성을 지원합니다. 영역 중복 캐시는 동일한 지역에 있는 다양한 Azure 가용성 영역에 노드를 둘 수 있습니다. 단일 실패 지점으로 데이터 센터 또는 가용성 영역 중단을 제거하고 캐시의 전체 가용성을 높입니다.

프리미엄 계층

다음 다이어그램은 프리미엄 계층에 대한 영역 중복 구성을 보여 줍니다.

Zone redundancy setup

Azure Cache for Redis는 선택한 가용성 영역에 대해 라운드 로빈 방식으로 영역 중복 캐시의 노드를 배포합니다. 또한 초기에 주로 사용할 노드를 결정합니다.

프리미엄 계층에 대한 영역 다운 환경

영역 중복 캐시는 자동 장애 조치(failover)를 제공합니다. 현재 기본 노드를 사용할 수 없는 경우 복제본 중 하나가 사용됩니다. 새로운 주 노드가 다른 AZ에 있는 경우 애플리케이션의 캐시 응답 시간이 더 길어질 수 있습니다. 가용성 영역은 지리적으로 분리되어 있습니다. 한 AZ에서 다른 AZ로 전환하면 애플리케이션과 캐시가 호스트되는 위치 간의 물리적인 거리가 변경됩니다. 이 변경은 애플리케이션에서 캐시로의 왕복 네트워크 대기 시간에 영향을 줍니다. 추가 대기 시간은 대부분의 애플리케이션에 허용되는 범위에 포함될 것으로 예상됩니다. 애플리케이션을 테스트하여 영역 중복 캐시에서 제대로 작동하는지 확인하는 것이 좋습니다.

엔터프라이즈 및 엔터프라이즈 플래시 계층

두 엔터프라이즈 계층의 캐시는 Redis 엔터프라이즈 클러스터에서 실행됩니다. 쿼럼을 구성하려면 항상 홀수 개의 서버 노드가 필요합니다. 기본적으로 각각 전용 VM에서 호스트되는 세 개의 노드가 있습니다.

  • 엔터프라이즈 캐시에는 크기가 같은 데이터 노드 두 개와 그보다 작은 쿼럼 노드 하나가 있습니다.
  • Enterprise Flash 캐시에는 크기가 같은 세 개의 데이터 노드가 있습니다.

엔터프라이즈 클러스터는 내부적으로 Azure Cache for Redis 데이터를 파티션으로 나눕니다. 각 파티션에는 노드와 하나 이상의 복제본이 있습니다. 각 데이터 노드는 하나 이상의 파티션을 보유합니다. 엔터프라이즈 클러스터는 모든 파티션에 대한 주 노드 및 복제본이 동일한 데이터 노드에서 공동 배치되지 않도록 합니다. 파티션은 주 노드에서 해당 복제본으로 데이터를 비동기적으로 복제합니다.

엔터프라이즈 계층에 대한 영역 다운 환경

데이터 노드를 사용할 수 없게 되거나 네트워크 분할이 발생하면 표준 복제에 설명된 것과 유사한 장애 조치(failover)가 발생합니다. 엔터프라이즈 클러스터는 쿼럼 기반 모델을 사용하여 새 쿼럼에 참여하게 될 남아 있는 노드를 결정합니다. 또한 필요에 따라 이러한 노드 내의 복제본 파티션을 주 노드로 승격합니다.

국가별 가용성

영역 중복 프리미엄 계층 캐시는 다음 지역에서 사용할 수 있습니다.

아메리카 유럽 중동 아프리카 아시아 태평양
브라질 남부 프랑스 중부 카타르 중부 남아프리카 공화국 북부 오스트레일리아 동부
캐나다 중부 독일 중서부 인도 중부
미국 중부 북유럽 일본 동부
미국 동부 노르웨이 동부 한국 중부
미국 동부 2 영국 남부 동남아시아
미국 중남부 서유럽 동아시아
US Gov 버지니아 스웨덴 중부 중국 북부 3
미국 서부 2 스위스 북부
미국 서부 3

영역 중복 Enterprise 및 Enterprise Flash 계층 캐시는 다음 지역에서 사용할 수 있습니다.

아메리카 유럽 중동 아프리카 아시아 태평양
캐나다(중부)* 북유럽 오스트레일리아 동부
미국 중부* 영국 남부 인도 중부
미국 동부 서유럽 동남 아시아
미국 동부 2 일본 동부*
미국 중남부 동아시아*
미국 서부 2
미국 서부 3
브라질 남부

* 이 지역에서는 Enterprise Flash 계층을 사용할 수 없습니다.

가용성 영역 재배포 및 마이그레이션

현재 캐시를 AZ가 아닌 구성에서 AZ 구성으로 변환하는 유일한 방법은 캐시를 다시 배포하는 것입니다. 현재 캐시를 다시 배포하는 방법을 알아보려면 가용성 영역 지원으로 Azure Cache for Redis 인스턴스 마이그레이션을 참조하세요.

지속성

적용 가능한 계층: Premium, Enterprise(미리 보기), Enterprise Flash(미리 보기)

권장 대상: 데이터 내구성

캐시 데이터는 메모리에 저장되기 때문에 여러 노드에서 드물게 계획되지 않은 오류가 발생하면 모든 데이터가 삭제될 수 있습니다. 데이터가 완전히 손실되는 것을 방지하기 위해 Redis 지속성을 사용하면 인메모리 데이터의 주기적 스냅샷을 만들어 스토리지 계정에 저장할 수 있습니다. 여러 노드에서 오류가 발생하여 데이터 손실이 발생하면 캐시가 스토리지 계정에서 스냅샷을 로드합니다. 자세한 내용은 프리미엄 Azure Cache for Redis 인스턴스에 대한 데이터 지속성 구성을 참조하세요.

지속성을 위한 스토리지 계정

지속되는 데이터의 고가용성을 보장하려면 지역 중복 스토리지 계정을 선택하는 것이 좋습니다. 자세한 내용은 Azure Storage 중복성을 참조하세요.

가져오기/내보내기

적용 가능한 계층: 프리미엄, 엔터프라이즈, 엔터프라이즈 플래시

권장 대상: 재해 복구

Redis용 Azure 캐시는 데이터 이식성을 제공하기 위해 RDB(Redis 데이터베이스) 파일을 가져오고 내보내는 옵션을 지원합니다. 이를 통해 Azure Cache for Redis로 데이터를 가져오거나 RDB 스냅샷을 사용하여 Azure Cache for Redis에서 데이터를 내보낼 수 있습니다. 프리미엄 캐시의 RDB 스냅샷은 Azure Storage 계정의 Blob으로 내보냅니다. 스크립트를 만들어 스토리지 계정으로 주기적으로 내보내기를 트리거할 수 있습니다. 자세한 내용은 Azure Cache for Redis에서 데이터 가져오기 및 내보내기를 참조하세요.

내보내기용 스토리지 계정

내보낸 데이터의 고가용성을 보장하려면 지역 중복 스토리지 계정을 선택하는 것이 좋습니다. 자세한 내용은 Azure Storage 중복성을 참조하세요.

수동 지역 복제

적용 가능한 계층: 프리미엄

권장 대상: 재해 복구 - 단일 지역

지역에서 복제는 일반적으로 두 개의 Azure 지역에 걸쳐 둘 이상의 Azure Cache for Redis 인스턴스를 연결하는 메커니즘입니다. 지역 복제는 주로 지역 간 재해 복구를 위해 설계되었습니다. 두 개의 프리미엄 계층 캐시 인스턴스는 기본 캐시에 대한 읽기 및 쓰기를 제공하는 지역 복제를 통해 연결되며 해당 데이터는 보조 캐시에 복제됩니다.

설정 방법에 대한 자세한 내용은 프리미엄 Azure Cache for Redis 인스턴스에 대한 지역 복제 구성을 참조하세요.

기본 캐시를 호스팅하는 지역이 다운되면 먼저 보조 캐시의 연결을 해제한 다음 읽기 및 쓰기를 위해 보조 캐시를 가리키도록 애플리케이션을 업데이트하여 장애 조치(failover)를 시작해야 합니다.

활성 지리적 복제

적용 가능한 계층: 엔터프라이즈, 엔터프라이즈 플래시

권장 대상: 고가용성, 재해 복구 - 다중 지역

엔터프라이즈 계층은 여러 지역에서 고가용성 및 지역 간 재해 복구를 모두 제공하는 활성 지역 복제라는 고급 형태의 지역 복제를 지원합니다. Azure Cache for Redis 엔터프라이즈 소프트웨어는 충돌 없는 복제 데이터 형식을 사용하여 여러 캐시 인스턴스에 대한 쓰기를 지원하고 변경 내용을 병합하고 충돌을 해결합니다. 서로 다른 Azure 지역에서 최대 5개의 엔터프라이즈 계층 캐시 인스턴스를 조인하여 지역 복제 그룹을 형성할 수 있습니다.

이러한 캐시를 사용하는 애플리케이션은 해당 엔드포인트를 통해 지리적으로 분산된 캐시 인스턴스를 읽고 쓸 수 있습니다. 애플리케이션은 각 애플리케이션 인스턴스에 가장 가까운 것을 사용하여 가장 짧은 대기 시간을 제공해야 합니다. 자세한 내용은 엔터프라이즈 Azure Cache for Redis 인스턴스에 대한 활성 지역 복제 구성을 참조하세요.

복제 그룹에 있는 캐시 중 하나의 지역이 다운되면 애플리케이션은 사용 가능한 다른 지역으로 전환해야 합니다.

복제 그룹의 캐시를 사용할 수 없는 경우 동일한 복제 그룹의 다른 캐시에 대한 메모리 사용량을 모니터링하는 것이 좋습니다. 캐시 중 하나가 다운되는 동안 복제 그룹의 다른 모든 캐시는 다운된 캐시와 공유할 수 없는 메타데이터를 저장하기 시작합니다. 캐시 중 하나가 다운된 후 사용 가능한 캐시에 대한 메모리 사용량이 빠른 속도로 증가하기 시작하면 복제 그룹에서 사용할 수 없는 캐시의 연결을 해제하는 것이 좋습니다.

강제 연결 해제에 대한 자세한 내용은 지역 중단이 있는 경우 강제 연결 해제를 참조하세요.

캐시 삭제 및 다시 만들기

적용 가능한 계층: 표준, 프리미엄, 엔터프라이즈, 엔터프라이즈 플래시

지역 중단이 발생하면 다른 지역에서 캐시를 다시 만들고 대신 새 캐시에 연결하도록 애플리케이션을 업데이트하는 것이 좋습니다. 지역 중단 중에는 데이터가 손실된다는 점을 이해하는 것이 중요합니다. 애플리케이션 코드는 데이터 손실에 탄력적이어야 합니다.

영향을 받는 지역이 복원되면 사용할 수 없는 Azure Cache for Redis가 자동으로 복원되어 다시 사용할 수 있습니다. 캐시를 다른 지역으로 이동하기 위한 추가 전략을 알아보려면 Azure Cache for Redis 인스턴스를 다른 지역으로 이동을 참조하세요.

다음 단계

고가용성 옵션을 위해 Azure Cache for Redis를 구성하는 방법에 대해 자세히 알아보세요.