• hukwon

MySQL, 마리아DB 클러스터 환경의 고가용성 보장의 주역 L4/L7 스위치

데이터베이스 고가용성 보장을 위해 로드밸런싱 기술을 쓰는 것 ~ 요즘 그 중요성이 매우 커지고 있습니다. 기업에서 데이터베이스를 쓰는 방식이 예전처럼 사일로 방식이 아니라 클러스터를 구성하는 쪽으로 바뀌고 있기 때문입니다. 물론 중요 업무는 고성능 대형 시스템으로 데이터베이스 서버를 따로 꾸러 운영하죠. 기타 업무나 서비스를 위한 용도로 데이터베이스 클러스터를 쓰는 곳이 늘고 있습니다. 


데이터베이스 클러스터 환경을 보면 대부분 MySQL, 마리아DB 등 오픈 소스 계열이 많죠. 이들 데이터베이스에 대한 고가용성 확보 방안 중 하나가 바로 L4/L7 스위치를 이용한 고가용성 구성입니다. 오라클RAC(Real Application Cluster) 구성 못지않은 안정성을 보여 줍니다. 물론 이는 L4/L7 스위치만 가지고 되는 것은 아닙니다. 


데이터베이스 클러스터 환경을 구축하려면 할 일이 많을 것입니다. 오픈 소스 진영의 장점은 뭔가 복잡하고, 어렵고, 아쉽다 싶으면 누군가 패키지를 만든다는 것이죠. MySQL, 마리아DB 관련해 클러스터 환경에 최적화된 패키지가 있습니다. Galera Cluster가 떠오른다면, 이미 많이 알아보신 분입니다. 


Galera Cluster는 단일 시스템이 아니라 클러스터 환경에서 여러 개의 마스터를 분산해 운영할 수 있도록 각종 구현에 필요한 요소들을 사전에 패키징한 것입니다. 마리아DB의 경우 10.1 버전부터 Galera Cluster가 지원되었습니다. MySQL도 당연히 패키지가 있습니다. 


데이터베이스 클러스터는 노드 간에 동기화를 통한 복제가 이루어집니다. 데이터베이스 테이블은 여러 노드에 존재하게 되죠. L4/L7 스위치는 여러 마스터 노드의 상태, 즉 노드의 온라인과 오프라인 여부를 파악합니다. 쿼리 요청이 왔을 때 장애로 오프라인 상태에 있는 마스터 노드로 트래픽을 보내지 않죠.



고가용성 보장은 기본이죠. 어느 정도까지 되냐 하면? 클러스터 내의 고가용성 구성은 기본이고요, 재해복구 수준까지 구현할 수 있습니다. L4/L7 스위치의 GSLB 구성을 떠올리면 무슨 이야기인지 감이 올 것입니다. 사내에 프로덕션용 데이터베이스 클러스터를 운영한다고 가정해 보죠. 재해복구를 위해 공용 클라우드나 지리적으로 떨어진 위치에 클러스터를 구축해 놓았다고 하겠습니다. L4/L7 스위치를 활용하면사내 클러스터에 장애가 발생했을 때 쿼리 요청을 외부에 있는 클러스터로 보낼 수 있습니다. 애플리케이션이나 사용자 측면에서 보면 데이터베이스 접근을 24X7X365일 보장하는 것과 같습니다. 업데이트 등 유지보수를 위해 데이터베이스 다운타임을 따로 잡을 필요도 없겠죠. 


한 가지 더 응용해볼까요? 데이터베이스 클러스터의 네트워크를 서브넷으로 구성해 각 노드에 사설 IP를부여했다고 해보죠. 외부 서비스에서 API를 통해 데이터 접근 요청을 하는 경우 L4/L7 스위치의 NAT 설정을 활용해 라우팅하는 것도 생각해 볼 수 있습니다. 


그렇다면 L4/L7 스위치를 통해 어떻게 MySQL이나 마리아DB 서버의 헬스체크를 할까요? L4/L7 스위치의 설정을 통해 통신 측면에서 체크를 할 수도 있고, 스크립트를 이용해 데이터베이스 측면에서 확인할 수도 있습니다. 


정리하는 차원에서 Galera Cluster의 소개 영상을 보시죠. 이 패키지와 ADC(L4/L7 스위치)를 이용하면 상용 데이터베이스 부럽지 않은 고가용성, 안정성, 성능을 확보할 수 있습니다. 

#MySQL #L4/L7 스위치 #마리아DB #데이터베이스

조회수 388회댓글 0개

최근 게시물

전체 보기

여러 위치에 배포되는 네트워크 장비 도입을 검토할 때 어떤 장비는 CC 인증을 받았는지 봐야 하고, 어떤 장비는 보안적합성 검증 여부를 따져 봐야 합니다. 그렇다면 어떤 기준에 따라 CC 인증과 보안적합성 검증이 나누어질까요? 이 질문은 실제로 IT 프로젝트를 추진할 때 담당자들이 벤더에 자주 묻는 질문 중 하나인데요, 쉽게 풀어 봤습니다. 글. 펌킨네트웍