자료실

99.999%의 고가용성 아키텍처를 확보하기 위한 고려 사항

고가용성을 확보한 기업은 최소한의 중단으로 안정적인 서비스를 제공합니다. 불안정한 시스템은 비즈니스에 금전적 피해와 데이터 손실을 야기할 수 있습니다. 1부에서는 고가용성이 중요한 이유와 이를 측정하는 방법을 알아보았습니다. 2부에서는 99.999%의 고가용성 아키텍처를 달성할 수 있는 방법을 자세하게 살펴봅니다. 

 

 

데이터베이스 고가용성을 달성하기 위한 기술 

9×5 고가용성을 달성하기 위해서는 다양한 기술과 솔루션에 의존해야 하는 경우가 많습니다. 대표적인 기술은 다음과 같습니다.  



페일오버 

페일오버(Failover)는 대기 시스템으로 자동 전환되는 기술로, 주 시스템에 장애 또는 고장이 발생하는 경우 단절 없이 백업 시스템이 가동돼 사용자 불편을 최소화합니다. 페일오버는 고가용성 아키텍처를 개발할 때 전체 인프라에서 필수적인 요소입니다. 그러나 페일오버에 앞서 핵심은 이중화를 구축하는 것입니다. 이중화가 되지 않으면 페일오버를 할 곳이 없기 때문입니다. 


데이터 이중화 및 분산 

데이터 이중화는 모든 데이터가 영구적으로 저장 및 백업된다는 의미입니다. 데이터 이중화의 목적은 데이터를 대체 시스템으로 복제함으로써 백업에 대한 부가적인 보호 및 강화 수단을 제공하는 것입니다.  

 

서로 거리가 먼 두 곳에 데이터를 저장해 이중화하면 지리적 이중화를 달성할 수 있습니다. 예를 들어, 두 국가의 데이터센터에 데이터를 저장하면 지리적 이중화를 통해 한 곳에서 부정적 이벤트가 발생하는 경우에 대비해 데이터 보호를 강화할 수 있습니다. 

 

지리적 이중화는 좋은 생각이지만, 고려해야 할 문제가 있습니다. 예를 들어, 두 국가의 데이터센터에 데이터가 복제되면 먼 거리로 인해 데이터를 저장하거나 불러오는 데 오랜 시간이 소요되는 지연 문제가 발생할 수 있습니다. 또한 데이터가 상주하는 국가에서는 데이터 보호법이 엄격하지만, 데이터가 복제되는 국가의 데이터 보호법은 그보다 느슨하다면 데이터 상주 및 데이터 주권에 대한 문제가 불거질 수 있습니다. 

 

데이터 이중화는 인스턴스 이중화와는 근본적으로 다릅니다. 인스턴스 이중화는 데이터베이스의 복제본이 동시에 실행되고 있음을 의미합니다. 복제본이 최신 상태로 실행 중이므로 데이터베이스에 장애가 발생하면 즉시 작업을 이어받을 수 있습니다. 데이터 이중화 없는 인스턴스 이중화의 경우 데이터베이스가 다운되면 중복 데이터베이스 인스턴스는 최신 상태가 아니고 작업을 이어받을 수도 없으므로 쓸모가 없습니다. 따라서 데이터와 인스턴스를 모두 이중화해야 합니다. 


이런 문제는 모든 기업이 해결해야 할 중요한 문제지만, 데이터 이중화 및 분산이 주는 혜택이 워낙 커서 대부분 상쇄됩니다. 데이터 이중화의 핵심적인 이점은 다음과 같습니다. 


  • 지리적 이중화 

  • 수평 확장 

  • 신뢰성 

  • 성능 

  • 이종성 

  • 복제 

 

내결함성을 더 강화하고자 한다면 무공유(Shared-Nothing) 아키텍처를 고려할 수 있습니다. 무공유 데이터베이스는 독립적인 서버를 가지며, 메모리와 컴퓨팅 성능 또는 스토리지를 공유하지 않습니다. 노드 간 경합을 제거하기 위해 데이터가 독립적인 노드로 격리되어 네트워크로 상호 연결되므로 가용성을 높일 수 있습니다. 


이 같은 유형의 인프라를 통틀어 ‘분산 시스템’이라고 합니다. 분산 시스템은 데이터 가용성을 위한 핵심 요구사항을 충족합니다. 시스템과 데이터가 분산되므로 최종 사용자의 데이터 접근성을 높이고 지연을 줄이고 내결함성을 개선하고 그 결과 고객 경험을 강화할 수 있습니다. 

 

클러스터링 

서버 클러스터를 사용하면 서버 안정성을 개선할 수 있습니다. 서버 클러스터를 구현하는 기업은 스토리지를 공유하는 컴퓨터를 사용량 평가 및 워크로드 분산 소프트웨어가 있는 대규모 서버 그룹으로 확장할 수 있습니다. 사용량이 확장되는 경우 클러스터링의 이점은 서버를 추가해서 컴퓨팅 성능을 높일 수 있다는 것입니다(사실상 클라우드 회복탄력성 및 수평 확장의 간단한 형태). 장애가 발생할 때 사람의 개입 없이 자동으로 수행되는 복구 역시 클러스터링의 장점입니다. 


클러스터링 솔루션의 문제는 설정 및 유지가 매우 복잡하고 데이터베이스가 손상되는 경우 복구가 불가능해질 수 있다는 점입니다. 따라서 클라우드 서비스 제공업체는 고객의 고성능 서비스 요구사항을 충족하기 위해 자동화된 탄력적 서비스를 제공하고 있습니다. 

 

이런 문제에도 불구하고 많은 기업이 다음 2가지 유형의 클러스터링을 구현합니다.  


  1. 인스턴스 수준 클러스터링 

인스턴스 수준 클러스터링에서는 여러 인스턴스를 다른 호스트에 배포하는 방법으로 데이터베이스 인스턴스를 보호합니다. 데이터베이스 자체는 원격 스토리지에 호스팅되지만, 필요한 모든 호스트에서 볼 수 있습니다. 인스턴스 수준 클러스터링은 조직의 성향에 따라 일반적으로 다음의 2가지 유형으로 분류됩니다. 


  1. 액티브/패시브 클러스터링 

액티브/패시브 클러스터링에서는 하나의 인스턴스만 데이터베이스 클라이언트 요청을 처리할 수 있습니다. 현재의 액티브 인스턴스에 문제가 생기면 패시브 인스턴스가 온라인 상태가 되어 새로운 액티브 인스턴스가 됩니다. 그러나 액티브/패시브 클러스터링은 페일오버 방법으로 사용되는 경우가 많고, 고가용성 아키텍처에서 9×5를 달성하는 방법으로는 적합하지 않습니다. 

 

  1. 액티브/액티브 클러스터링 

액티브/액티브 클러스터링은 병렬로 클라이언트 요청을 처리합니다. 한 액티브 클러스터에서 문제가 발생하면 남은 다른 액티브 인스턴스로 자동으로 데이터베이스 클라이언트 요청이 라우팅됩니다. 

 

  1. 데이터베이스 수준 클러스터링 

데이터베이스 수준 클러스터링에서는 데이터베이스 수준 프로토콜이 부가적인 데이터베이스 전반으로 변경 사항을 푸시합니다. 이 작업은 보통 다음의 2가지 방법으로 수행됩니다. 

 

  1. 물리적 복제 

데이터는 물리적 수준, 데이터베이스 작업보다 낮은 수준에서 복사됩니다. 즉, 작업을 적용하는 것이 아니라 이 작업의 영향을 받은 바이트를 복사합니다. 두 데이터베이스는 바이트 단위로 동일하므로 상태도 정확히 동일하다는 것을 확신할 수 있습니다. 특히 클라우드에서는 거리가 먼 경우 몇 가지 제한과 부가적인 비용이 발생합니다. 이는 데이터베이스 구조에 대한 지식의 부족에서 비롯됩니다. 데이터베이스에서 일부 컬렉션 또는 객체의 스냅샷만 가져오고 나머지를 무시하는 것은 불가능합니다. 데이터베이스의 일부만 변경됐는데, 작은 그 하나의 변경을 가져오지 않고 전체 데이터베이스를 복사해야 하는 것은 비효율적입니다. 

 

  1.  논리적 복제 

논리적 복제는 이기종 하드웨어 및 소프트웨어를 지원합니다. 고객은 복제할 테이블을 선택할 수 있고 소수의 열 또는 소수의 행부터 전체 테이블 자체까지 복제할 수 있습니다. 대부분 상황에서 논리적 복제는 더 높은 유연성을 제공합니다. 

 

데이터 복제 

복제는 기본적으로 여러 사이트에 걸쳐 여러 데이터베이스 복사본을 유지함으로써 고가용성을 담보하는 데 도움이 될 수 있습니다. 한 사이트가 정상 가동되고 액세스 가능하다면 데이터 서비스는 가용성을 유지합니다. 한 사이트가 다운되는 경우 서비스는 다른 사이트에서 필요한 데이터에 액세스할 수 있습니다. 

 

이중화는 전체적인 고가용성 아키텍처에 포함되어야 하지만, 데이터 복제는 전적으로 이중화에 의존하는 것보다 훨씬 높은 유연성을 제공합니다. 다양한 소스에서 데이터 마트 또는 데이터 웨어하우스로 데이터를 통합하고 여러 지리적 위치 간에 동기화하며, 여러 데이터베이스에 걸쳐 데이터 무결성을 유지하고 데이터 충돌을 해결할 수 있습니다. 


클라우드 맥락에서의 고가용성 아키텍처 

오늘날 이중화와 내결함성을 위한 설계를 통해 고가용성 아키텍처를 개발하고 회복탄력성을 높이기 위한 논의에서 클라우드 네이티브 아키텍처를 빼놓을 수는 없습니다. 클라우드 네이티브 아키텍처는 일시적인 수요 급증에 따라 손쉽게 확장하고 적응할 수 있도록 구축되는 것이 일반적입니다. 많은 기업이 더욱 높은 유연성과 확장성을 얻기 위해 클라우드 네이티브 아키텍처 구축을 선호합니다. 

 

클라우드 네이티브 아키텍처는 여러 분산된 노드에 걸쳐 마이크로서비스와 애플리케이션을 사용하도록 설계됩니다. 그러나 하나의 노드에 영향을 미칠 수 있는 잠재적인 장애에 대비하는 것이 중요합니다. 잘 설계된 시스템이라면 마이크로서비스가 있는 노드에 장애가 발생해도 페일오버와 이중화, 복제를 통해 서비스를 복구할 수 있을 것입니다. 


고가용성 아키텍처를 위한 기타 고려 사항 

네이티브 기능 활용 

기업에서 사용하는 데이터베이스 관리 시스템이 무엇이든, 대개는 데이터베이스의 고가용성을 강화하기 위한 기술을 지원하는 기능과 릴리스가 추가됩니다. 이상적으로 사용되는 데이터베이스 기술은 처음부터 고가용성을 고려해 설계되며, 전체적인 업타임을 강화하는 데 도움이 되는 네이티브 기능을 갖추도록 설계됩니다. 

 

자동화 활용 

회복탄력성을 갖춘 고가용성 아키텍처 주변에는 자동화할 수 있는 작업과 이벤트가 많습니다. 일상적인 수작업은 수작업 오류를 일으키는 경우가 많은데, 자동화를 통해 인간의 실수로 인한 오류를 방지할 수 있습니다. 데이터 백업 및 복구, 데이터베이스에 새 데이터 추가, 데이터 품질 및 무결성 검사, 데이터베이스 사용량에 관한 통계 수집과 같은 복잡하지만 일상적인 작업을 잘못 수행하게 되면 심각한 가용성 문제가 발생할 수 있습니다. 자동화를 활용하면 엔지니어는 회복탄력성을 더 발전시키고 부정적 이벤트에 대비하는 데 집중할 수 있습니다. 

 

유지보수 일정 

고가용성 아키텍처를 유지하기 위해서는 정기적인 유지보수가 필수적입니다. 9×5를 달성하려면 백업 전략과 결합된 정기적인 정비 일정을 운영 계획에 포함해야 합니다. 유지보수 지연은 특히 위기 상황에서는 큰 피해를 유발할 수 있습니다. 정기적인 정비 일정 및 백업 전략 외에 정기적인 재해 복구 계획 테스트도 필수적입니다. 


맺음말 

고가용성 아키텍처를 추구하는 기업은 언젠가는 인프라에 장애가 발생할 것이라는 점을 전제하고 있습니다. 유지보수 및 계획이 제대로 진행되지 않으면 시간이 지나면서 IT 인프라는 불안정해질 수 있습니다. 고가용성을 추구하고 9×5를 목표로 하는 팀과 기업은 재해에 대비하고 운영 회복탄력성을 갖출 것입니다. 


고가용성 아키텍처 확보 혹은 데이터베이스 관리에 어려움을 겪고 계시거나 다른 궁금한 점이 있으시면 언제든 퀘스트소프트웨어 코리아로 문의 주시기 바랍니다. 




퀘스트소프트웨어코리아(주)

서울특별시 강남구 테헤란로 445 본솔빌딩10F
전화 번호 02-3420-9000 | 팩스 번호 02-569-3600

전자 메일 KoreaMarketing@quest.com 


Copyright © Quest. All Rights Reserved.

Hosting by I'MWEB


퀘스트소프트웨어코리아(주) 서울특별시 강남구 테헤란로 445 본솔빌딩10F
전화 번호 02-3420-9000 | 팩스 번호 02-569-3600 | 전자 메일 KoreaMarketing@quest.com


Copyright © Quest. All Rights Reserved.

Hosting by I'MWEB