Skip to Content

MySQL 고가용성이란?

MySQL 고가용성은 장애 또는 중단 시 MySQL 데이터베이스를 계속 사용할 수 있도록 선택할 수 있는 옵션입니다. 이 기능을 사용하면 더 높은 가동시간 요구 사항과 데이터 손실 허용 오차를 설정할 수 있습니다. 이 문서에서는 고가용성의 일반적인 개념이 무엇을 의미하는지, 그리고 MySQL의 고가용성 옵션이 어떻게 작동하는지 살펴보겠습니다. 

고가용성이란?

고가용성은 시스템 또는 서비스가 지속적으로 작동하며 장애나 정전이 발생할 때 가용성을 유지하는 기능입니다. 고가용성 시스템은 조직의 미션 크리티컬 시스템과 애플리케이션이 항상 가동되도록 보장합니다. 이는 미션 크리티컬 시스템의 고장이 심각한 결과를 초래할 수 있는 헬스케어, 금융 및 항공과 같은 분야의 기업에게 특히 중요합니다.

고가용성은 일반적으로 서비스 수준 계약(SLA)에 의해 정의된 가동시간의 백분율로 표시되며, 100점은 절대 실패하지 않는 시스템을 나타냅니다. 이는 사실상 달성할 수 없기 때문에, 대부분의 조직은 “99%” 또는 99.999% 가용성을 목표로 합니다.

MySQL이 고가용성을 달성하는 방법

고가용성 시스템은 폴트가 발생하면 즉시 복구할 수 있어야 합니다. 고가용성 아키텍처에는 복구 가능성과 고가용성을 보장하기 위해 함께 작동하는 최소 세 가지 기본 요소가 필요합니다.

장애 감지

MySQL은 애플리케이션이 더 높은 가동시간(및 데이터 손실 허용 오차 없음)에 대한 요구 사항을 충족할 수 있도록 지원하는 고가용성 옵션을 제공합니다. 고가용성 옵션이 켜져 있는 경우 MySQL 시스템은 서로 다른 장애 도메인 또는 가용성 영역에 걸쳐 3개의 인스턴스를 생성합니다.

데이터는 MySQL 그룹 복제를 사용하여 세 인스턴스 간에 복제되며, 애플리케이션은 데이터베이스에서 데이터를 읽고 쓰기 위한 기본 인스턴스에 연결됩니다. 장애가 발생하면 시스템이 몇 분 내에 보조 인스턴스에 대한 자동 페일오버를 트리거합니다.

장애 조치

페일오버 메커니즘은 서비스를 복제된 인스턴스로 전송합니다. 둘 이상의 백업 인스턴스를 사용할 수 있는 경우, 장애 조치 메커니즘은 기본 노드로 승격할 최상의 인스턴스를 선택합니다. 

리디렉션 메커니즘

2차 인스턴스로의 페일오버가 발생하면 고가용성 기능은 모든 애플리케이션 및 사용자 연결을 새로운 1차 노드로 리디렉션합니다. 또한 기존 기본 노드의 모든 쿼리를 새 기본 데이터베이스로 리디렉션합니다. 

MySQL 고가용성: 가동시간

가동 시간은 시스템을 사용할 수 있고 올바르게 작동하는 시간이며, 시스템이 작동될 것으로 예상되는 총 시간의 백분율로 표시됩니다. 가동시간이 높다는 것은 시스템이 대부분 예상대로 작동하고 있음을 의미합니다. 

다양한 수준의 MySQL 고가용성으로 예상할 수 있는 가동 시간은 구현하는 특정 고가용성(HA) 솔루션에 따라 달라집니다.

MySQL 복제

MySQL Replication을 사용하면 HA 기능이 없는 MySQL 서버보다 높은 가동시간을 지원하기 위해 이중화 및 페일오버를 제공할 수 있도록 여러 서버를 설정할 수 있습니다. 마스터-슬레이브 구성은 읽기 및 쓰기를 허용하는 단일 마스터 서버와 하나 이상의 읽기 전용 슬레이브 서버를 사용합니다. 마스터 서버의 데이터는 슬레이브 서버에 비동기적으로 복제됩니다.

페일오버를 구현하려면, 장애 발생 시 마스터로 승격될 수 있는 대기 서버로 하나 이상의 슬레이브 서버를 설정해야 합니다. 페일오버는 일반적으로 쿼리를 수락할 수 있도록 승격된 슬레이브의 상태를 읽기-쓰기 모드로 변경하여 슬레이브 노드를 마스터 노드로 승격해야 하는 수동 프로세스입니다.

페일오버는 수동으로 수행되기 때문에 시간이 오래 걸리고 인적 오류가 발생하기 쉬우며, 이로 인해 정전이 더 길어질 수 있습니다. 또한 MySQL Replication은 비동기식 복제를 사용합니다. 즉, 마스터가 실패하면 마스터에서 커밋된 트랜잭션이 아직 슬레이브 서버에 복제되지 않았을 수 있습니다. 심각한 데이터 손실이 발생하는 경우, 데이터를 복구해야 하므로 시스템 다운 시간이 늘어납니다.

MySQL 그룹 복제

MySQL 그룹 복제를 사용하면 MySQL 복제보다 더 높은 가동시간을 달성할 수 있습니다. MySQL 그룹 복제를 사용하면 하나의 서버가 기본 서버로 지정되고 다른 서버가 보조 서버로 지정된 그룹에 여러 MySQL 서버를 설정할 수 있습니다. 그룹의 각 서버는 데이터 복사본을 유지하고 복제를 사용하여 복사본이 동기화된 상태로 유지되도록 합니다. 

기본 서버가 다운되면 그룹의 보조 서버가 자동으로 장애를 감지하고 장애 조치 프로세스를 시작합니다. 보조 서버 중 하나가 자동으로 새 기본 서버로 승격되어 클라이언트의 요청을 제공하기 시작합니다. 그룹의 다른 보조 멤버는 이제 새 기본 서버로부터 업데이트를 받고 클라이언트 읽기 요청을 계속 처리합니다.

오류가 발생한 서버가 다시 온라인 상태로 돌아오면 자동으로 그룹에 보조 서버로 다시 가입됩니다.

MySQL 그룹 복제를 통해 장애 감지 및 페일오버가 자동으로 발생하기 때문에 다운타임은 최소화되며 사용자와 애플리케이션은 일반적으로 정전이 발생했음을 알지 못합니다. 

MySQL 클러스터

MySQL Cluster HA 솔루션은 최고 수준의 가동시간을 제공합니다. 자동 페일오버 및 로드 밸런싱과 함께 고가용성 분산 데이터베이스 시스템은 높은 수준의 가용성, 성능 및 확장성을 제공하며 거의 제로에 가까운 다운타임을 제공하도록 설계되었습니다. 

MySQL 클러스터는 데이터를 저장하고 관리하기 위해 함께 작동하는 세 가지 유형의 노드를 사용합니다.

  • 데이터 노드: 데이터를 저장하고 읽기 및 쓰기 쿼리를 처리합니다.
  • MySQL 서버 노드: 클라이언트 애플리케이션으로부터 쿼리를 수신하고, 데이터 노드에서 처리한 다음, 결과를 클라이언트에 반환합니다.
  • 관리 노드: 클러스터의 운영을 관리하고, 장애 발생 시 장애 조치 및 복구를 처리합니다.

클러스터에 있는 하나 이상의 노드가 실패하면 클러스터는 자동으로 문제를 감지하고 장애 조치 프로세스를 트리거합니다. 전체 프로세스는 일반적으로 장애 발생 후 1초 이내에 발생하며, 클라이언트 애플리케이션에 대한 서비스를 중단하지 않습니다. 클러스터는 다운타임 없이 정상적으로 계속 작동합니다.

플래시어레이(FlashArray) 체험하기

퓨어스토리지가 셀프 서비스 환경에서 블록 및 파일을 획기적으로 간소화하는 방법을 경험해 보세요.

지금 체험하기

MySQL 고가용성: 복구 시간 

복구 시간은 MySQL 시스템이 정전에서 복구하는 데 걸리는 시간을 측정한 것입니다. 복구 시간이 길어지면 가용성이 저하되고 수익, 직원 생산성 및 고객 만족도를 창출하는 비즈니스 능력에 직접적인 영향을 미칠 수 있습니다.

MySQL 에서 복구 시간은 사용하는 복제 유형에 따라 달라집니다.

  • 마스터-슬레이브 복제를 위한 MySQL 복제 복구 시간은 수동 페일오버 프로세스의 영향을 받습니다. 슬레이브 서버를 새 기본 노드로 승격한 후, 나머지 슬레이브 서버로 데이터 복제를 시작할 수 있도록 다시 시작해야 합니다. 그런 다음 누락된 트랜잭션을 처리하고 발생할 수 있는 충돌을 해결해야 합니다.
  • 그룹 복제는 자동 장애 감지 및 장애 조치 프로세스를 사용하여 마스터-슬레이브 복제보다 복구 시간이 더 짧습니다. 충돌 감지 및 해결 메커니즘을 통해 각 서버의 데이터가 그룹의 모든 서버에서 항상 동기화됩니다. 또한 그룹 복제는 충돌이 발생할 때 충돌 없는 복제 데이터 유형(CRDT)을 사용하여 데이터를 자동으로 조정합니다. Group Replication을 사용하면 다운타임이 거의 없이 장애로부터 복구할 수 있습니다.
  • MySQL Cluster는 클러스터의 각 노드에 자체 메모리 및 디스크 스토리지가 할당되고 고속 연결을 통해 다른 노드와 통신하는 “공유된 내용 없음” 방식을 사용합니다. MySQL 클러스터는 하나 이상의 노드에 장애가 발생하더라도 계속 작동합니다. 클러스터는 문제를 자동으로 감지하고 페일오버 프로세스를 트리거하여 다운타임 없이 복구합니다.

MySQL HA 요구 사항을 결정하는 방법

MySQL 고가용성 요구 사항을 확인하려면 다음과 같은 몇 가지 요소를 고려해야 합니다.

  • 현재 시스템 아키텍처: 현재 시스템에 포함된 구성 요소는 무엇이며, 어떻게 구성됩니까? MySQL 고가용성을 지원할 수 있나요?
  • 예산: 하드웨어, 소프트웨어 및 인력과 같은 리소스에 얼마나 투자해야 할까요? 또한, 교육 및 지속적인 유지보수와 관련된 비용도 고려하십시오.
  • 비즈니스 요구 사항: 복구 시간 목표(RTO)와 복구 시점 목표(RPO)를 고려하십시오. 이상적인 복구 시간은 언제입니까? 장애로부터 얼마나 빨리 복구해야 합니까? 조직이 고가용성을 요구하는 특정 규제 또는 규정 준수 요구 사항의 적용을 받는지 여부를 고려하십시오.
  • 데이터 중요성: 비즈니스 데이터는 얼마나 중요할까요? 최신 상태를 유지하는 것이 얼마나 중요합니까? 얼마나 많은 데이터 손실을 감당할 수 있을까요?

MySQL 고가용성 사용 시기

MySQL 고가용성 솔루션이 필요한 몇 가지 사용 사례를 살펴보겠습니다.

트래픽이 많은 웹사이트

트래픽이 많은 웹사이트는 수천 명의 동시 사용자뿐만 아니라 초당 수천 개의 쿼리와 트랜잭션을 처리합니다. 서버 이중화 및 로드 밸런싱과 같은 고가용성 측정은 데이터베이스가 사용 가능한 상태로 유지되고 로드를 처리할 수 있도록 합니다. 

이중화 서버는 서버가 고장나더라도 웹 사이트를 계속 사용할 수 있도록 보장하며, 여러 서버에 걸쳐 들어오는 요청의 로드 밸런싱은 단일 서버가 과부하를 일으키고 오프라인으로 전환되는 것을 방지합니다.

미션 크리티컬 애플리케이션 및 워크로드

미션 크리티컬 시스템 및 애플리케이션을 사용하는 기업은 높은 수준의 가용성과 가동시간이 필요합니다. 대부분의 경우, 이러한 시스템은 다운타임을 감당할 수 없으며 데이터베이스는 항상 사용 가능해야 합니다. 

그룹 복제 또는 클러스터와 같은 MySQL HA 솔루션은 다운타임을 거의 또는 전혀 초래하지 않는 자동 페일오버 메커니즘을 채택하기 때문에 이 사용 사례에 이상적입니다.

퓨어스토리지가 MySQL 고가용성을 지원하는 방법

퓨어스토리지 ® 에Evergreen ™는 다운타임 없는 구축을 제공하는 구독 포트폴리오입니다. Evergreen은 퓨어스토리지 고유한 스토리지 어레이 아키텍처와 결합하여 서비스 워크로드를 중단하지 않고 스토리지 인프라를 업그레이드할 수 있도록 지원합니다. 

퓨어스토리지는 또한 멀티사이트 active-active 스트레치 클러스터인 Purity ActiveCluster ™를 통해 액티브-액티브 클러스터링 과 자동, 투명 페일오버를 지원하여 RPO와 RTO를 제로화합니다. 퓨리티 액티브클러스터 active-active

또한 미션 크리티컬 애플리케이션에 엔터프라이즈급 클라우드 안정성을 제공하는 Pure Cloud Block Store 고려해 보세요. 무중단 업그레이드 및 가용성 영역 전반에서 고가용성은 멀티 클라우드 비즈니스 연속성 및 재해 복구를 위한 고가용성을 제공합니다.

연락처
질문하기

퓨어스토리지 제품이나 인증 관련 질문이나 코멘트가 있으신가요?   저희가 도와드립니다.

데모 예약

라이브 데모를 예약하고 퓨어스토리지가 데이터를 어떻게 강력한 결과로 전환해주는지 직접 확인해 보세요. 

연락하기: +82 2 6001-3330

언론홍보팀:  pr@purestorage.com

 

퓨어스토리지코리아 주소

30F 아셈타워,

517 영동대로,

강남구, 서울

대한민국

korea@purestorage.com

닫기
지원하지 않는 브라우저입니다.

오래된 브라우저는 보안상 위험을 초래할 수 있습니다. 최상의 경험을 위해서는 다음과 같은 최신 브라우저로 업데이트하세요.