MySQL Compatible

mysql replacement

Clustrix를 MySQL의 대안으로 선택하여 원활한 마이그레이션 보장

MySQL로는 애플리케이션 확장을 감당할 수 없을 때 드롭인(drop-in) 방식으로 MySQL을 간편하게 대체

ClustrixDB는 MySQL을 대체할 수 있도록 설계되었습니다. 즉, 비관계 분산형 데이터 저장소로 전환하거나 MySQL을 복제/샤딩하는 것보다 나은 대안을 제시합니다. 이 프로세스가 일단 데이터 자체의 측면에서 더 간단할 뿐 아니라 ClustrixDB가 MySQL과 호환되므로 변경해야 하는 코드가 최소화됩니다. 또한 데이터가 항상 투명하게 관리되므로 데이터가 증가하더라도 변경이 필요하지 않습니다. 물론 ClustrixDB는 자동 내결함성로드 밸런싱을 지원하도록 구축된 만큼, 계속 확대되는 데이터베이스를 오버헤드 없이 관리할 수 있어 DevOps 환경에 최적화되어 있습니다.

 

원래부터 ClustrixDB는 분산형 컴퓨팅 아키텍처에서 MySQL과 비슷한 사용자 경험을 제공하도록 구축되었습니다. MySQL은 클라우드 확장을 지원하는 기술이 아니기 때문에, ClustrixDB에는 어떤 MySQL 코드도 포함되어 있지 않습니다. 그러나 ClustrixDB에는 퍼스낼리티 모듈이 있어 MySQL 프로토콜을 사용할 수 있습니다. 하지만 몇 가지 차이점이 있는데, 이는 대개 분산형이라는 특성에 기인합니다. 이 차이점은 잘 문서화되어 있으며, 대부분의 고객은 코드를 거의 또는 전혀 변경하지 않고 마이그레이션할 수 있습니다. 그뿐만 아니라 용이한 전환을 위해 데이터베이스 및 애플리케이션이 실행 중일 때 Clustrix를 MySQL의 슬레이브로 설정한 이후 마스터로 전환되도록 설정할 수 있습니다.

ClustrixDB가 MySQL의 대안인 이유

MySQL은 좋은 솔루션이지만, 용량 제한이 아쉬웠기에 Clustrix가 탄생했습니다. Clustrix만 그런 건 아닙니다. 업계 전체가 MySQL의 팬입니다. 스타트업과 대기업 가릴 것 없이 인터넷 애플리케이션에 가장 많이 사용하는 RDBMS이니까요. MySQL은 기본 ‘LAMP 스택’의 일부로 자리 잡았습니다. ANSI SQL 규격, 참조 무결성, ACID 보장 트랜잭션, 전반적인 사용 편의성이라는 이점을 제공하는 훌륭한 툴이지만, 근본적으로 단일 데이터베이스를 사용하는 모놀리식 아키텍처를 위한 기술입니다. 그 한계를 넘어서까지 확장하는 것은 무모한 시도일 수 있습니다. 특히 샤딩은 매우 힘든 작업입니다.

Clustrix는 ClustrixDB를 개발할 때, MySQL의 장점을 물려받되 인터넷의 요구 사항에 부합하는 더 지능적이고 확장 가능한 새로운 아키텍처를 만들기로 했습니다. 그래서 클라우드 네이티브 사용자들이 좋아할 MySQL 대안으로 개발했습니다.

MySQL을 몇 시간 만에 ClustrixDB로 마이그레이션

고객은 일반적으로 몇 시간이면 MySQL 데이터베이스를 ClustrixDB로 마이그레이션할 수 있습니다. 마이그레이션이 완료되는 즉시 쓰기 및 읽기 쿼리 모두에서 몇 배로 향상된 성능을 경험할 수 있습니다.

게다가 하드웨어를 이중화하거나 읽기 슬레이브에 의존하지 않고도 클러스터 전반에서 고가용성이 기본적으로 실현됩니다. 이처럼 ClustrixDB는 복원력이 한층 더 우수하며, 내결함성이 상시 보장되는 노드 수 한도를 구성하는 것 외에는 별도의 설정이 필요하지 않습니다. 이 특허받은 기술은 관리가 훨씬 간편하며, 재해 복구(DR) 인스턴스를 승격할 때 또는 MySQL 마스터가 사라져 슬레이브 또는 ‘읽기 복제본’(RDS MySQL 또는 Amazon Aurora)을 승격해야 할 때 지연 시간이 발생하지 않습니다.

Ruby on Rails 또는 Hibernate처럼 MySQL 클라이언트 또는 JDBC/ODBC 드라이버를 사용하는 애플리케이션은 일반적으로 거의 즉시 ClustrixDB로 마이그레이션됩니다. 단, ClustrixDB를 프로덕션 환경에 배포하기 전에 항상 모든 쿼리를 테스트하는 것이 바람직합니다. ClustrixDB는 MySQL 구문을 구사하므로 표준 MySQL 생성자를 ClustrixDB에서 사용할 수 있습니다. 하지만 ClustrixDB는 근본적으로 분산형 무공유 데이터베이스이므로, 경우에 따라서는 기존 쿼리 및 (때로는) 기존 제약에 더 적합한 대안이 있을 수도 있습니다. 전체 목록은 MySQL 호환성 문서에서 확인하세요.

ClustrixDB로 얼마나 쉽게 마이그레이션할 수 있을까?

ClustrixDB는 드롭인 방식으로 MySQL을 대체합니다. MySQL 프로토콜과 호환되므로 대개는 애플리케이션을 거의 변경하지 않고 ClustrixDB로 마이그레이션할 수 있습니다. ClustrixDB 마이그레이션하는 것은 다음과 같이 정말 쉽습니다.

  1. mysqldump를 사용해 MySQL 데이터베이스를 덤프한 후 clustrix_import를 사용해 ClustrixDB로 가져옵니다.
  2. MySQL 복제를 사용하여 ClustrixDB를 프로덕션 MySQL 데이터베이스와 동기화합니다.
  3. 로드 밸런서를 통해 애플리케이션 서버를 ClustrixDB로 전환합니다.
  4. 완료되었습니다!

이제 단일 MySQL 서버 대신 복수의 ClustrixDB 서버에서 요청을 처리한다는 사실을 기본 애플리케이션에서 알 필요가 없습니다. ClustrixDB는 애플리케이션에서 ‘MySQL’로, 즉 하나의 논리적 RDBMS로 인식되며 다음 사항을 자동으로 처리합니다.

  • 클러스터의 모든 노드에 데이터 분배
  • 클러스터 전반에 기본 및 보조 인덱스 배포
  • 모든 노드의 전 범위에서 쿼리를 팬아웃하여 병렬화를 극대화
  • 데이터를 지속적으로 리밸런싱하여 워크로드 증가를 수용하고 스토리지 핫스팟을 방지
  • 데이터베이스 서버 노드를 클릭 몇 번으로 추가 또는 제거
  • 데이터 복제본을 생성 및 유지 관리하여 하나 이상의 인스턴스가 중단되더라도 고가용성을 제공

Clustrix를 사용해 보시겠어요?