바로 이동

MySQL 생태계

DB-Engines에 따르면 MySQL은 전 세계에서 가장 인기 있는 오픈소스 데이터베이스 중 하나입니다. 첫 번째 버전은 1995년에 출시되었으며 그 이후로도 지속적으로 개발되어 오늘날에도 매우 인기 있는 관계형 데이터베이스가 되었습니다. MySQL은 다양한 오픈소스 및 상용 버전으로 구성된 생태계에서 성공을 거두었습니다. MySQL은 온프레미스와 클라우드 모두에서 널리 사용됩니다. MySQL의 주요 클라우드 서비스 제공업체는 Google Cloud, Oracle ,Amazon Web Services(AWS), Microsoft Azure입니다.

MySQL 버전

현재 시중에는 최적화, 확장성, 클러스터링, 재해 복구 등을 위한 기능을 추가하여 MySQL을 확장하는 다양한 MySQL 버전이 있습니다. MySQL을 포크하여 빌드한 현재 활성화된 두 가지 주요 데이터베이스는 MariaDBMySQL용 Percona Server입니다.

MySQL Community Edition 및 Enterprise Edition

Oracle은 MySQL Community Edition과 Enterprise Edition을 모두 개발하고 유지관리합니다. Enterprise Edition에는 Oracle에서 제공하는 기술 지원이 포함되며 MySQL 엔터프라이즈 모니터링, PAM 인증, 향상된 보안, 향상된 성능 및 확장성, 엔터프라이즈 백업, 엔터프라이즈 감사, 엔터프라이즈 클러스터 관리, 스레드 풀링 등 다양한 기능을 제공합니다.

MariaDB

MySQL의 창립자는 오픈소스로 유지되도록 보장한 MariaDB를 만들었습니다. JSON 지원, 멀티 소스 복제, 병렬 스레드 복제 등 MySQL의 일부 기능은 실제로 MySQL 보다 MariaDB에서 더 일찍 출시되었습니다. MySQL 대비 MariaDB의 주요 이점은 다음과 같습니다.

  • 분석용 ColumnStore, AWS S3의 테이블을 보관처리하는 S3 엔진, MyISAM의 최적화된 버전인 Aria Engine, 높은 압축률 및 트래픽이 많은 애플리케이션을 위한 MyRocks, Cassandra, SphinxSE 등과 같은 새로운 스토리지 엔진 도입
  • 쿼리 병렬 실행 기능
  • 스레드 풀링(MySQL Enterprise Edition에서는 사용할 수 있지만 Community Edition에서는 사용할 수 없음)
  • MaxScale이라는 라우터 무료 사용
  • 다중 상위 솔루션: Galera Cluster

Percona

Percona라는 회사가 MySQL용 Percona Server를 개발하고 유지관리합니다. Percona는 MySQL을 비롯해 수년간 많은 작업을 수행하여 이를 최적화하고 새로운 기능도 도입했습니다. MySQL 대비 Percona 사용의 주요 이점은 다음과 같습니다.

  • 향상된 InnoDB 전체 텍스트 검색, 향상된 메모리 스토리지 엔진 및 플러시 메커니즘, 더 많은 해시/다이제스트 함수, InnoDB 테이블스페이스에 내장된 암호화 지원, 바이너리 로그 및 임시 파일
  • 최적화를 위한 병렬 이중 쓰기 버퍼 도입
  • 전체 및 증분 백업 옵션이 있는 핫 백업을 위한 XtraBackup 도구
  • MyRocks 및 Toku 스토리지 엔진 지원
  • 테이블별, 색인별, 클라이언트당, 사용자당, 스레드당 성능 카운터와 같은 고급 문제 해결 도구
  • PAM 인증 및 감사 로깅(MySQL의 Enterprise Edition에서는 제공되지만 Community Edition에는 제공되지 않음)
  • MySQL 관리 옵션이 많은 유틸리티 서비스인 Percona에서 개발한 Pt-toolkit

어떤 버전을 선택해야 할까요?

데이터베이스마다 특정 사용 사례를 타겟팅하는 고유 기능이 있으므로 애플리케이션의 요구 사항에 따라 선택할 데이터베이스가 결정됩니다. 예를 들어 애플리케이션에 분석이 필요한 경우 Percona의 ClickHouse나 MariaDB의 ColumnStore를 사용할 수 있지만 MySQL에서는 이러한 옵션이 제공되지 않습니다. 마찬가지로, MySQL의 Community 버전에서 사용할 수 없는 스레드 풀 기능을 사용하려면 Enterprise MySQL 또는 오픈소스 스레드 풀 기능을 Percona와 MariaDB 중에서 선택해야 합니다.

클라우드의 MySQL

클라우드 데이터베이스는 공용 또는 하이브리드 클라우드 환경에서 실행되도록 구축된 데이터베이스로 조직 내의 데이터를 구성, 저장, 관리하는 데 도움이 됩니다. 클라우드 데이터베이스는 관리형 서비스로서의 데이터베이스(DBaaS)로 제공되거나 클라우드 기반 가상 머신(VM)에 배포하며 사내 IT팀에서 자체 관리할 수 있습니다. 관리형 MySQL의 주요 클라우드 제공업체는 다음과 같습니다.

Google Cloud

Google Cloud는 사용자가 직접 관리해야 하는 가상 머신 호스팅 버전의 MySQL과 완전 관리형 서비스인 Cloud SQL을 모두 제공합니다.

Amazon Web Services(AWS)

Amazon Web Services(AWS)는 MySQL용 VM 호스팅 옵션과 RDS 형식의 완전 관리형 솔루션을 제공합니다. AWS는 Aurora 서비스도 제공합니다. Aurora는 MySQL과 호환되는 MySQL 기능으로 추가 기능이 포함되어 있습니다.

Azure SQL Database

Azure는 다른 클라우드 공급업체의 모델과 유사한 MySQL용 배포 모델, 즉 Azure VM의 MySQL 형식인 가상 머신 옵션과 Azure Database for MySQL 형식의 완전 관리형 버전을 제공합니다.

Oracle Cloud

Oracle은 가상 머신에서 MySQL을 호스팅할 수 있는 기능을 제공합니다. 또한 MySQL HeatWave Database Service라는 새로운 완전 관리형 서비스가 도입되었습니다.

Digital Ocean

Digital Ocean에서는 가상 머신에서 MySQL을 호스팅할 수도 있습니다. MySQL용 완전 관리형 호스팅 옵션도 제공합니다.

고가용성(HA) 또는 클러스터 솔루션

많은 기업이 MySQL을 확장하고 MySQL 데이터베이스에 장애 조치와 고가용성을 제공하는 제품을 만들었습니다. 일부는 MySQL과 함께 사용되는 직접적인 도구이고, 다른 일부는 MySQL 소스 코드를 수정하여 고가용성 또는 다중 상위 클러스터를 제공하는 별도의 제품을 만든 것입니다. 널리 사용되는 MySQL HA 및 확장성 솔루션은 다음과 같습니다.

  • MySQL의 그룹 복제 및 InnoDB 클러스터

InnoDB 클러스터는 3개 이상의 MySQL 서버 인스턴스로 구성되어 있으며 고가용성과 확장 기능을 제공합니다. InnoDB 클러스터는 그룹 복제가 포함된 MySQL 셸, MySQL 라우터, MySQL 서버로 구성됩니다. 자세한 내용은 여기에서 확인하실 수 있습니다.

Percona XtraDB Cluster는 고가용성, 병렬 복제, 확장성 기능을 제공하는 동기식 클러스터링 솔루션입니다. Percona XtraDB Cluster에는 ProxySQL을 사용하여 Percona XtraDB Cluster 노드를 자동으로 구성하는 ProxySQL 관리자 도구가 포함되어 있습니다. 자세한 내용은 여기에서 확인하실 수 있습니다.

  • MariaDB Galera Cluster

MariaDB Galera Cluster는 고가용성과 확장성 기능을 제공하는 MariaDB용 가상 동기식 다중 기본 클러스터입니다. MariaDB 서버와 Galera wsrep 제공업체 라이브러리를 기반으로 합니다. 자동 노드 조인, true 병렬 복제, 다중 기본 토폴로지 등의 기능을 제공합니다. 자세한 내용은 여기에서 확인하실 수 있습니다.

  • Continuent Tungsten 클러스터

Tungsten 클러스터는 MySQL 데이터베이스를 클러스터로 배포하고 관리하는 데 필요한 모든 핵심 구성요소를 포함하는 간편한 단일 패키지를 제공합니다. 지리적 클러스터링 솔루션을 제공하며 Tungsten Manager, Replicator, Connector, 데이터 노드, 대시보드로 구성됩니다. 자세한 내용은 여기에서 확인하실 수 있습니다.

  • MariaDB Xpand(이전 명칭: ClustrixDB) 

MariaDB Xpand는 트랜잭션 워크로드를 위한 ACID 준수 분산 SQL, 고가용성, 내결함성, 쓰기 확장, 수평 확장을 제공합니다. MariaDB Xpand는 MariaDB Enterprise의 구성요소입니다. 하나 이상의 MaxScale 노드와 3개 이상의 Xpand 노드로 구성됩니다. 자세한 내용은 여기에서 확인하실 수 있습니다.

  • ScaleArc

ScaleArc는 고가용성을 제공하는 데이터베이스 부하 분산 소프트웨어입니다. 자세한 내용은 여기에서 확인하실 수 있습니다.

  • Vitess

Vitess에는 고가용성과 확장성을 제공하기 위해 애플리케이션에 샤딩 로직을 추가하지 않고도 데이터베이스를 확장할 수 있는 샤딩 기능이 내장되어 있습니다. 자세한 내용은 여기에서 확인하실 수 있습니다.

  • 장애 조치를 위한 표준 복제를 제공하는 도구: MHA, ProxySQL, MaxScale, Orchestrator
  • Google Cloud, Oracle, AWS, Azure와 같은 클라우드 기반 서비스가 MySQL용 사내 HA를 제공

MySQL 도구

MySQL 도구는 웹 기반, 명령줄 인터페이스(CLI), 그래픽 사용자 인터페이스(GUI) 등 모든 형식으로 존재합니다. MySQL에는 데이터베이스 설계, 개발, 관리, 백업, 성능 모니터링, 알림을 위한 다양한 오픈소스 및 상용 도구가 있습니다.

GUI와 함께 많이 사용되는 MySQL 모니터링 도구는 다음과 같습니다.

Percona Monitoring and Management, Prometheus, MySQL Enterprise Monitor, New Relic, SolarWinds, HeidiSQL, AppDynamics, Datadog, SQLyog

많이 사용되는 관리, 개발 또는 유틸리티 도구는 다음과 같습니다.

  • GUI 기반 - MySQL Workbench, HeidiSQL, DBeaver, dbForge Studio, Navicat, SQLyog
  • CLI 기반 - Percona Toolkit, ghOSt

많이 사용되는 도구는 다음과 같습니다.

  • MySQL Workbench - MySQL 소유, 고급 기능이 있는 Community Edition 및 Enterprise Edition에서 사용 가능
  • Percona Monitoring and Management(PMM) - Percona에서 개발하여 무료로 제공
  • HeidiSQL - Ansgar Becker에서 개발하여 무료로 제공
  • Percona Toolkit - Percona에서 개발하여 무료로 제공
  • Toad - Quest 소유, 유료 도구
  • phpMyAdmin - MySQL을 관리하는 무료 오픈소스 웹 기반 도구
  • DBeaver - 오픈소스 커뮤니티에서 개발했으며, DBeaver에서 유지관리하는 고급 기능이 포함된 Community Edition 및 Enterprise Edition에서 사용 가능
  • Navicat - CyberTech 소유, 유료 도구
  • SQLyog - Webyog 소유, 유료 도구

알림 메커니즘으로 오류율, 트래픽, 쿼리 패턴을 분석하는 그래프가 있는 기타 주요 모니터링 도구로는 New Relic, Zabbix, Cortex, Prometheus, Grafana가 있습니다.

컨테이너/Kubernetes로 MySQL 실행

요즘에는 Docker 컨테이너 이미지를 사용하여 Kubernetes 클러스터를 통해 데이터베이스를 실행하는 것이 인기를 얻고 있습니다. 이는 코드를 사용하여 데이터베이스 관리, 쉽고 빠른 배포, 데이터 보호, 애플리케이션과의 격리, 공유 리소스 사용성에 유용합니다. 기본적으로 Docker의 모든 장점을 데이터베이스 시스템에서 활용할 수 있습니다. MySQL에 이미 사용 가능한 Kubernetes 연산자도 몇 가지 있습니다. 하지만 이 부분에서는 개선할 여지가 많습니다.

MySQL을 사용할 준비가 되셨나요?

Google Cloud는 MySQL의 완전 관리형 서비스인 MySQL용 Cloud SQL을 제공합니다.
Cloud SQL 알아보기

MySQL용 Cloud SQL이 혁신에 어떤 도움이 되는지 알아보세요. 문서 보기