Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

고가용성 아키텍처 이해하기

고가용성 아키텍처란 무엇입니까?

고가용성 아키텍처는 피크 타임 로드에 관계없이 최적의 성능을 유지하기 위해 함께 작동하는 다양한 구성 요소, 모듈 또는 서비스가 있는 경우입니다.

고가용성 아키텍처 이해하기

가장 순수한 의미에서 이 시스템은 기업이 주어진 기간 동안 실패 없이 지속적으로 일할 수 있도록 합니다. 많은 기업은 단 1분의 다운타임도 감당할 수 없습니다. 데이터가 많은 비즈니스의 생명선이라는 점을 고려할 때, 짧은 다운타임만으로도 엄청난 비용이 발생할 수 있습니다.

특정 실제 시나리오에서 수명은 고가용성을 위해 구축된 데이터베이스에 따라 달라질 수 있습니다. 환자가 응급실에 도착하면 의료 전문가는 가장 좋은 치료 결정을 이해하기 위해 의료 건강 기록에 즉시 액세스할 수 있어야 합니다. 이 정보에 대한 액세스가 지연되면 치명적인 영향을 미칠 수 있습니다.

참고:고가용성은 종종 사용자가 서비스를 사용할 수 있는 시간의 백분율로 측정됩니다. Microsoft 네트워크 개발자 용어집에 따르면 서버가 "고가용성"으로 간주되려면 99.999% 네트워크 가동 시간을 달성해야 합니다.

고가용성 클러스터란 무엇입니까?

고가용성 클러스터는 다운타임을 방지하기 위해 단일 시스템으로 병합되는 호스트 그룹입니다. 고가용성 클러스터의 한 서버가 다운되면 오류가 감지되는 즉시 미션 크리티컬 앱이 다른 서버로 전송됩니다.

어떤 시스템도 장애에 영향을 받지 않으며 고가용성 클러스터는 불가피한 장애에 관계없이 최적의 성능 수준을 유지하도록 합니다. 결과적으로 이들은 가장 미션 크리티컬한 애플리케이션, 웹사이트 및 트랜잭션 처리 시스템에 사용되는 경향이 있습니다.

고가용성 클러스터링은 어떻게 작동합니까?

고가용성 클러스터는 이미 통합된 여러 시스템을 활용하므로 한 시스템에 장애가 발생하면 다른 시스템을 효율적으로 활용하여 사용 중인 서비스 또는 애플리케이션의 연속성을 유지할 수 있습니다.

고가용성 로드 밸런싱 클러스터는 시스템 장애를 방지하는 데 중요한 역할을 합니다. 로드 밸런서가 있으면 기본적으로 동일한 웹 사이트 또는 애플리케이션 사용자에게 서비스를 제공하는 여러 웹 노드에 트래픽을 분산합니다. 이렇게 하면 하나의 서버에 대한 부담이 줄어들어 각 클러스터가 보다 최적으로 작동하는 동시에 트래픽이 정상적인 서버에만 전송되도록 허용합니다.

고가용성 클러스터 개념

능동-수동 클러스터

능동/수동 클러스터는 두 개 이상의 노드로 구성됩니다. 이름에서 알 수 있듯이 모든 노드가 활성화되는 것은 아닙니다. 한 노드가 활성 상태이면 두 번째 노드는 대기 시 읽기 전용입니다. 수동 서버는 백업 역할을 하며 활성 서버가 작동하지 않을 경우 활용됩니다.

활성-활성 클러스터

이 유형의 클러스터는 일반적으로 동시에 동일한 서비스를 실행하는 두 개 이상의 노드를 사용합니다. 활성-활성 클러스터에서 두 노드는 모두 기본 노드 역할을 합니다. 즉, 읽기 또는 쓰기를 허용할 수 있습니다. 한 노드에 장애가 발생하면 사용자는 자동으로 다른 노드에 연결되어 서비스 연속성을 보장합니다. 첫 번째 노드가 교체되면 사용자는 두 개의 원래 노드로 분할됩니다.

활성/활성 클러스터의 가장 중요한 이점은 노드-네트워크 균형을 달성할 수 있다는 것입니다. 서버 장애 인스턴스가 감지되면 로드 밸런서는 즉시 사용 가능한 서버에 사용자 요청을 전송한 다음 노드 네트워크 활동을 분석합니다. 그러면 로드 밸런서는 더 높은 수준의 내결함성을 허용하는 해당 트래픽을 처리할 수 있는 노드로 트래픽을 푸시합니다.

이 전략은 사용자가 사용 가능한 노드 전체에 무작위로 분산되는 라운드 로빈 모델과 유사한 순환 프로세스를 따르거나 반대로 백분율을 기반으로 한 노드가 다른 노드보다 우선 순위가 높은 가중치 체계를 따를 수 있습니다.

Shared-Nothing vs. Shared-Disk 클러스터

분산 컴퓨팅에서 따르는 일반적인 규칙은 어떤 경우에도 단일 실패 지점을 피하는 것입니다. 이를 위해서는 전체 서비스가 중단되더라도 단일 요소가 중단되지 않고 리소스를 능동적으로 복제하거나 교체할 수 있어야 합니다.

하나의 데이터베이스로 구동되는 50개의 실행 중인 노드가 있다고 상상해 보십시오. 한 노드에 장애가 발생하면 실행 중인 노드의 수에 관계없이 다른 노드의 영구 상태에 영향을 미치지 않습니다.

그러나 데이터베이스에 장애가 발생하면 전체 클러스터가 다운되어 데이터베이스가 단일 장애 지점이 됩니까? 이를 공유 디스크 클러스터라고 합니다.

반면에 각 노드가 데이터베이스를 유지 관리하는 경우 노드 오류가 전체 클러스터에 영향을 미치지 않습니다. 이것을 공유 없음 클러스터라고 합니다.

참고: 고가용성 클러스터링 기술에 대해 자세히 알아보려면 이 웨비나를 시청하십시오. 소프트웨어 업계에서 20년 이상의 경험을 가진 George Carbonnel이 Redis Enterprise의 클러스터링 기술이 고성능과 고가용성을 제공하는 방법에 대해 알아야 할 모든 것을 설명합니다.

고가용성 아키텍처의 요구 사항

내구성과 고가용성을 극대화하기 위해 필요한 다양한 요구 사항이 있습니다. 여기에는 다음이 포함됩니다.

부하 분산

로드 밸런싱은 고가용성 아키텍처에 매우 중요합니다. 주요 기능은 데이터를 보다 효율적으로 전송하고 서버 과부하를 방지하기 위해 백엔드 서버에 트래픽을 분산하는 것입니다. 모든 로드 밸런싱 시스템의 전제 조건은 노드 장애가 발생할 때 수행해야 하는 장애 조치 프로세스를 식별하는 것입니다.

데이터 확장성

모든 고가용성 아키텍처에서는 데이터베이스 또는 디스크 저장 장치를 확장하는 기능을 고려해야 합니다. 확장성을 달성하기 위해 선택할 수 있는 두 가지 솔루션이 있습니다. 

  • 아키텍처의 기본 데이터베이스를 활용하고 복제 또는 파티셔닝을 사용하여 가용성을 높입니다. 또는
  • 개별 애플리케이션 인스턴스가 자체 데이터 저장소를 유지할 수 있는지 확인

지리적 다양성

우리는 고가용성 클러스터를 전 세계에 배포할 수 있어야 하는 급변하는 디지털 세상에 살고 있습니다. 그렇게 하면 자연 재해가 한 위치에 발생하더라도 그 영향이 서비스 제공 능력에 지장을 주지 않도록 합니다.

백업 및 복구(재해 복구)

모든 일관성을 위해 고가용성 아키텍처는 항상 서비스를 방해할 수 있는 일종의 오작동에 취약합니다. 따라서 서비스가 중단되는 경우 기업은 전체 시스템을 가능한 한 빨리 다시 실행할 수 있는 복구 전략을 가지고 있어야 합니다.

이를 재해 복구라고 하며, 중단 이벤트가 발생할 경우 서비스를 전체 기능으로 되돌리도록 설계된 일련의 정책 및 절차입니다.

고가용성을 측정하는 방법

고가용성은 종종 사용자가 서비스를 사용할 수 있는 시간의 백분율로 측정됩니다. 이것은 전체 가동 시간을 시스템 기간으로 나눈 다음 백분율을 얻기 위해 100을 곱하여 수행됩니다. Microsoft 네트워크 개발자 용어집에 따르면 서버가 "고가용성"으로 간주되려면 99.999% 네트워크 가동 시간을 달성해야 합니다.

종종 백분율 가용성은 숫자의 9 수로 참조됩니다. 따라서 99.99%는 99.99%입니다.

참고: 99.99% 가용성은 업계 표준으로 간주됩니다.

고가용성을 위한 모범 사례

확인해야 하는 구성 요소의 수에서 오류가 발생한 서버를 교체하는 것까지 고가용성을 최대화하기 위해 취할 수 있는 여러 단계가 있습니다. 다음은 고가용성을 달성하는 데 사용할 수 있는 몇 가지 방법입니다.

지리적 중복성 달성

지리적 중복성은 서비스 장애로 이어질 수 있는 자연 재해 발생에 대한 중요한 방어선입니다. 이 방법에는 여러 지리적 위치에 걸쳐 수많은 서버를 배포하여 위험을 분산시키고 자연 재해가 한 지역에 닥쳤을 때 아키텍처가 다른 서버에 폴백되도록 허용하는 것이 포함됩니다.

참고: Active-Active Geo-Distribution이 있는 데이터베이스를 사용하면 이를 쉽게 달성할 수 있습니다.

장애 조치 솔루션 사용

고가용성 아키텍처에는 일반적으로 장애 조치 기능을 제공하는 느슨하게 연결된 수많은 서버가 포함됩니다. 장애 조치는 기본 시스템의 기능이 다운될 때 자동으로 활용되는 백업 작동 모드로 간주됩니다.

부하 분산 장치 구현

앞서 언급했듯이 로드 밸런서는 다운타임의 위험을 완화하기 위해 들어오는 트래픽을 여러 서버에 분산시킵니다. 이 솔루션을 완전히 최적화하기 위해 필요에 맞게 조정된 알고리즘을 활용하도록 로드 밸런서를 구성해야 합니다.

데이터 동기화가 RPO(복구 시점 목표)를 충족하는지 확인

RPO는 조직에 피해를 주지 않고 손실할 수 있는 최대 데이터 양을 나타내는 지표입니다. 이는 전체 비즈니스의 데이터 손실 허용치를 강조하며 시간 단위로 측정되는 경향이 있습니다. 1분 또는 1일.

RPO를 60초 이하로 설정하면 최대 가용성을 유지하는 데 도움이 됩니다. 이렇게 하면 기본 소스 오류가 있는 경우 60초 이상의 데이터 손실을 방지할 수 있습니다.

고가용성 아키텍처에서 Redis의 역할

Redis Enterprise는 최대 가용성을 달성하고자 하는 대기업을 위한 강력한 솔루션입니다. 하드웨어 장애 및 클라우드 중단 위험을 완화하면서 우수한 자동화 데이터베이스 복원력을 제공하는 99.999999999999999999999999999999999999 비율의 가용성을 보장하는 실시간 데이터 플랫폼입니다.

Redis Enterprise는 가장 미션 크리티컬한 엔터프라이즈 애플리케이션의 고가용성 요구 사항을 충족합니다. Active-Active 지리적 배포, 자동 장애 조치, 지능형 클러스터링, 비공유 아키텍처 및 글로벌 배포를 사용하여 99.999% 가용성을 제공하는 업계 최고의 기능을 제공합니다.

고가용성을 달성하는 방법에 대해 자세히 알고 싶으십니까?