Azure Managed Redis를 사용한 고가용성 및 재해 복구(미리 보기)
모든 클라우드 컴퓨터와 마찬가지로 계획되지 않은 중단이 발생하여 VM(가상 머신) 인스턴스, 가용성 영역 또는 전체 Azure 지역이 중단될 수 있습니다. 고객이 영역 또는 지역 중단을 처리할 계획을 세우는 것이 좋습니다.
이 문서에서는 고객이 Azure Managed Redis(미리 보기) 구현에 대한 비즈니스 연속성 및 재해 복구 계획을 만들기 위한 정보를 제공합니다.
고가용성 옵션:
옵션 | 설명 | 가용성 |
---|---|---|
표준 복제 | 자동 장애 조치(failover)를 사용하는 단일 데이터 센터의 이중 노드 복제 구성 | 99.9%(세부 정보 참조) |
영역 중복 | 자동 장애 조치(failover)를 통해 가용성 영역 전체에 다중 노드 복제 구성 | 99.99%(세부 정보 참조) |
지역에서 복제 | 두 지역에 연결된 캐시 인스턴스(사용자 제어 장애 조치(failover) 포함) | 활성(세부 정보 참조) |
Import/Export | 캐시에 있는 데이터의 특정 시점 스냅샷입니다. | 99.9%(세부 정보 참조) |
지속성 | 스토리지 계정에 주기적으로 데이터를 저장합니다. | 99.9%(세부 정보 참조) |
고가용성을 위한 표준 복제
권장 대상: 고가용성
Azure Managed Redis에는 중단이 기본 VM(가상 머신)에 영향을 주는 경우에도 관리되는 인스턴스가 작동하도록 하는 고가용성 아키텍처가 있습니다. 중단이 계획되었든 계획되지 않은 중단이든 관계없이 Azure Managed Redis는 단일 VM에서 Redis를 호스팅하여 달성 가능한 것보다 더 많은 가용성 속도를 제공합니다. Azure Managed Redis 설정은 기본적으로 한 쌍의 Redis 서버에서 실행됩니다. 두 서버는 전용 VM에서 호스트됩니다.
Azure Managed Redis를 사용하면 한 서버가 주 노드이고 다른 서버는 복제본입니다. 서버 노드를 프로비전한 후 Azure Managed Redis는 주 및 복제본 역할을 할당합니다. 기본 노드는 일반적으로 클라이언트의 쓰기 및 읽기 요청 서비스를 담당합니다. 쓰기 작업의 경우 새 키와 키 업데이트가 내부 메모리에 커밋되고 즉시 클라이언트에 응답합니다. 작업을 복제본에 비동기적으로 전달합니다.
Redis 캐시의 주 노드를 사용할 수 없는 경우 복제본이 자동으로 새로운 주 노드가 되도록 스스로 수준을 올립니다. 이 프로세스를 장애 조치(failover)라고 합니다. 장애 조치(failover)는 기본/복제, 거래 역할, 복제/기본의 두 노드에 불과하며 노드 중 하나는 몇 분 동안 오프라인 상태가 될 수 있습니다. 대부분의 장애 조치(failover)에서 기본 노드와 복제본 노드는 핸드오버를 조정하므로 기본 노드 없이는 시간이 거의 없습니다.
이전 기본은 새 기본에서 업데이트를 받기 위해 잠시 오프라인 상태가 됩니다. 그런 다음 이제 복제본이 다시 온라인 상태가 되고 완전히 동기화된 캐시에 다시 합류합니다. 핵심은 노드를 사용할 수 없을 때 일시적인 상태이며 다시 온라인 상태가 된다는 것입니다.
유지 관리를 위해 기본 서버를 중단해야 하는 일반적인 장애 조치(failover) 시퀀스는 다음과 같습니다.
- 기본 및 복제본 노드는 조정된 장애 조치(failover) 및 거래 역할을 협상합니다.
- 복제본(이전의 기본)은 다시 부팅을 위해 오프라인 상태가 됩니다.
- 몇 초 또는 몇 분 후에 복제본이 다시 온라인 상태가 됩니다.
- 복제본은 기본에서 데이터를 동기화합니다.
기본 노드는 Redis 소프트웨어 또는 운영 체제 업데이트와 같은 계획된 유지 관리 작업의 일부로 서비스를 중단할 수 있습니다. 기본 하드웨어, 소프트웨어 또는 네트워크의 오류와 같은 계획되지 않은 이벤트로 인해 작동이 중지될 수도 있습니다. Azure Managed Redis 에 대한 장애 조치(failover) 및 패치는 장애 조치(failover) 유형에 대한 자세한 설명을 제공합니다. Azure Managed Redis는 수명 동안 많은 장애 조치(failover)를 수행합니다. 고가용성 아키텍처의 디자인은 캐시 내의 이러한 변경 사항이 해당 클라이언트에게 최대한 투명하게 적용됩니다.
영역 중복
권장 대상: 고가용성, 재해 복구 - 지역 내
Azure Managed Redis는 기본적으로 영역 중복 구성을 지원합니다. 영역 중복 캐시는 동일한 지역에 있는 여러 Azure 가용성 영역 노드를 자동으로 배치합니다. 영역이 다운되면 다른 영역의 캐시 노드를 사용하여 캐시 함수를 평소와 같이 유지할 수 있습니다. 단일 실패 지점으로 데이터 센터 또는 가용성 영역 중단을 제거하고 캐시의 전체 가용성을 높입니다.
영역 아래쪽 환경
데이터 노드를 사용할 수 없게 되거나 네트워크 분할이 발생하면 표준 복제에 설명된 것과 유사한 장애 조치(failover)가 발생합니다. 클러스터는 쿼럼 기반 모델을 사용하여 새 쿼럼에 참여하는 생존 노드를 결정합니다. 또한 필요에 따라 이러한 노드 내의 복제본 파티션을 주 노드로 승격합니다.
국가별 가용성
영역 중복 캐시는 다음 지역에서 사용할 수 있습니다.
아메리카 | 유럽 | 중동 | 아프리카 | 아시아 태평양 |
---|---|---|---|---|
캐나다(중부)* | 북유럽 | 오스트레일리아 동부 | ||
미국 중부* | 영국 남부 | 인도 중부 | ||
미국 동부 | 서유럽 | 동남 아시아 | ||
미국 동부 2 | 일본 동부* | |||
미국 중남부 | 동아시아* | |||
미국 서부 2 | ||||
미국 서부 3 | ||||
브라질 남부 |
지속성
권장 대상: 데이터 내구성
캐시 데이터는 메모리에 저장되기 때문에 여러 노드에서 드물게 계획되지 않은 오류가 발생하면 모든 데이터가 삭제될 수 있습니다. 데이터가 완전히 손실되지 않도록 Redis 지속성을 사용하면 메모리 내 데이터의 정기적인 스냅샷을 만들고 캐시 인스턴스에 직접 연결된 관리 디스크에 저장할 수 있습니다. 데이터 손실의 경우 캐시 데이터는 관리 디스크의 스냅샷을 사용하여 자동으로 복원됩니다. 자세한 내용은 Azure Managed Redis 인스턴스에 대한 데이터 지속성 구성을 참조 하세요.
Import/Export
권장 대상: 재해 복구
Azure Managed Redis는 데이터 이식성을 제공하기 위해 RDB(Redis Database) 파일을 가져오고 내보내는 옵션을 지원합니다. 이를 통해 데이터를 Azure Managed Redis로 가져오거나 RDB 스냅샷을 사용하여 Azure Managed Redis에서 데이터를 내보낼 수 있습니다. 캐시의 RDB 스냅샷은 Azure Storage 계정의 Blob으로 내보내집니다. 스크립트를 만들어 스토리지 계정으로 주기적으로 내보내기를 트리거할 수 있습니다. 자세한 내용은 Azure Managed Redis에서 데이터 가져오기 및 내보내기를 참조 하세요.
내보내기용 스토리지 계정
내보낸 데이터의 고가용성을 보장하려면 지역 중복 스토리지 계정을 선택하는 것이 좋습니다. 자세한 내용은 Azure Storage 중복성을 참조하세요.
활성 지리적 복제
권장 대상: 고가용성, 재해 복구 - 다중 지역
지역 복제는 여러 Azure 지역에서 Azure Managed Redis 인스턴스를 연결하는 메커니즘입니다. Azure Managed Redis는 여러 지역에서 고가용성 및 지역 간 재해 복구를 모두 제공하는 활성 지역 복제라는 고급 형태의 지역 복제를 지원합니다. Azure Managed Redis 소프트웨어는 충돌 없는 복제된 데이터 형식을 사용하여 여러 캐시 인스턴스에 대한 쓰기를 지원하고, 변경 내용을 병합하고, 충돌을 해결합니다. 서로 다른 Azure 지역에서 최대 5개의 캐시 인스턴스를 조인하여 지역 복제 그룹을 구성할 수 있습니다.
이러한 캐시를 사용하는 애플리케이션은 해당 엔드포인트를 통해 지리적으로 분산된 캐시 인스턴스를 읽고 쓸 수 있습니다. 애플리케이션은 각 애플리케이션 인스턴스에 가장 가까운 것을 사용하여 가장 짧은 대기 시간을 제공해야 합니다. 자세한 내용은 Azure Managed Redis 인스턴스에 대한 활성 지역 복제 구성을 참조 하세요.
복제 그룹에 있는 캐시 중 하나의 지역이 다운되면 애플리케이션은 사용 가능한 다른 지역으로 전환해야 합니다.
복제 그룹의 캐시를 사용할 수 없는 경우 동일한 복제 그룹의 다른 캐시에 대한 메모리 사용량을 모니터링하는 것이 좋습니다. 캐시 중 하나가 다운되는 동안 복제 그룹의 다른 모든 캐시는 다운된 캐시와 공유할 수 없는 메타데이터를 저장하기 시작합니다. 캐시 중 하나가 다운된 후 사용 가능한 캐시에 대한 메모리 사용량이 빠른 속도로 증가하기 시작하면 복제 그룹에서 사용할 수 없는 캐시의 연결을 해제하는 것이 좋습니다.
강제 연결 해제에 대한 자세한 내용은 지역 중단이 있는 경우 강제 연결 해제를 참조하세요.
캐시 삭제 및 다시 만들기
지역 중단이 발생하면 다른 지역에서 캐시를 다시 만들고 대신 새 캐시에 연결하도록 애플리케이션을 업데이트하는 것이 좋습니다. 활성 지역 복제를 사용하지 않는 한 지역 가동 중단 시 데이터가 손실된다는 점을 이해하는 것이 중요합니다. 애플리케이션 코드는 데이터 손실에 탄력적이어야 합니다.
영향을 받는 지역이 복원되면 사용할 수 없는 Azure Managed Redis가 자동으로 복원되고 다시 사용할 수 있습니다. 캐시를 다른 지역으로 이동하기 위한 더 많은 전략은 Azure Managed Redis 인스턴스를 다른 지역으로 이동을 참조 하세요.