- 데이터베이스›
- Amazon RDS›
- Amazon RDS for MySQL
MySQL이란 무엇입니까?
MySQL이란 무엇입니까?
MySQL은 많은 유명 웹사이트, 애플리케이션 및 상용 제품을 위한 기본 관계형 데이터 저장소 역할을 합니다. 25년 이상의 커뮤니티 바탕의 개발 및 지원으로, MySQL은 신뢰할 수 있고 안정적이며 보안이 적용된 구조적 쿼리 언어(SQL) 기반의 데이터베이스 관리 시스템입니다.
MySQL 데이터베이스는 미션 크리티컬 앱, 동적 웹사이트 등 매우 다양한 사용 사례에 적합합니다. MySQL은 단순성과 신뢰성 덕분에 최신 애플리케이션에서 널리 사용되는 SQL 엔진이기도 합니다. 애플리케이션 개발자는 간단한 클라이언트-서버 인터페이스와 더 빠른 온보딩을 갖춘 엔진을 활용할 수 있으며, 조직은 교육 비용을 절감할 수 있습니다.
AWS는 완전관리형 데이터베이스 서비스인 Amazon Relational Database Service(RDS) for MySQL을 비롯하여 다양한 방식으로 MySQL을 지원합니다. Amazon Aurora MySQL 호환 버전은 MySQL을 사용하여 구축되었으며, Amazon RDS는 인기 있는 MySQL 포크 프로젝트인 MariaDB를 지원합니다.
또한 Amazon EC2에서 MySQL 소프트웨어 호스팅하고 데이터베이스를 자체 관리하거나 AWS Marketplace에서 타사 MySQL 제품을 찾아볼 수 있습니다.
MySQL의 역사
MySQL Server의 첫 번째 버전은 David Axmark, Allan Larsson, Michael Widenius가 설립한 스웨덴 회사인 MySQL AB에 의해 1995년에 출시되었습니다. MySQL은 Widenius의 딸인 My에서 이름을 따왔습니다. MySQL 프로젝트는 GNU General Public License(GPL)에 따라 2000년에 오픈 소스로 출시되었습니다.
2001년에 MySQL은 200만 건 이상의 설치 건수를 기록했고, 2004년에 이르러서는 하루에 3만 건 이상 다운로드되고 있었습니다. MySQL은 2008년에 Sun Microsystems에 인수되었고, Oracle이 2009년에 Sun을 인수하면서 MySQL의 소유권도 획득했습니다.
MySQL 데이터베이스 사용의 이점
사용 편의성
MySQL 데이터베이스는 트리거, 저장 프로시저, 업데이트 가능한 보기를 비롯한 사용 편의성과 생산성 기능 덕분에 웹 개발자들에게 많은 사랑을 받고 있습니다. MySQL에는 백업 프로그램인 mysqldump, 관리 클라이언트인 mysqladmin, 관리 및 마이그레이션 작업을 위한 GUI인 MySQL Workbench와 같은 유틸리티가 포함되어 있습니다.
성능
시간이 지나면서 MySQL은 인덱스 압축을 지원하는 B-트리 디스크 테이블, 스레드 기반 메모리 할당, 최적화된 중첩 루프 조인 등의 기능을 통해 성능을 향상시켰습니다. 행 수준 잠금과 스토리지 엔진의 일관된 읽기는 MySQL에 다중 사용자 동시성을 위한 추가적인 성능 이점을 제공합니다. MySQL은 최소한의 기능 세트로 핵심 기능을 제공하여 더 빠른 성능을 위한 설계 관행을 따르는 동시에 이를 장려합니다.
신뢰성 및 보안
MySQL의 InnoDB 트랜잭션 스토리지 엔진은 특정 시점 복구 및 자동 커밋을 포함하여 데이터 보호를 개선하는 추가 기능을 통해 ACID 모델을 준수합니다. 또한 InnoDB는 외래 키 제약 조건에 대한 지원을 통해 데이터 무결성을 제공하여 데이터 테이블 간의 데이터 불일치를 방지합니다.
MySQL에는 호스트 기반 확인과 암호 트래픽 암호화를 비롯한 강화되고 유연한 보안 기능이 포함되어 있습니다. InnoDB는 2계층 암호화 키 아키텍처를 사용한 저장 데이터 테이블스페이스 암호화를 통해 추가적인 보안 이점을 제공합니다.
오픈 소스 라이선스
MySQL은 오픈 소스 라이선스(GNU General Public License)로 제공되므로 MySQL을 설치할 때 소스 코드를 자유롭게 사용하고 수정할 수 있습니다. Amazon RDS for MySQL과 같은 관리형 버전의 MySQL은 전용 SQL 엔진과 달리 MySQL 엔진에 대한 추가 라이선스 비용이 없습니다.
MySQL의 대규모 글로벌 기여자 및 애호가 커뮤니티는 데이터베이스 시스템 사용에 많은 추가적이고 장기적인 이점을 제공합니다. 예를 들어 MySQL 커뮤니티는 보안 문제와 버그 수정을 지속적으로 파악하여 소프트웨어의 전반적인 복원력에 기여합니다. MySQL 사용자 그룹, 이벤트, 포럼 및 메일 발송 목록은 교육 및 지원을 위한 내장 네트워크를 제공합니다.
주요 MySQL 사용 사례
범용 OLTP 데이터베이스
MySQL은 미션 크리티컬 앱과 트래픽이 많은 웹사이트를 포함하여 트랜잭션 SQL 엔진이 필요한 모든 애플리케이션에 적합합니다. MySQL은 ACID 원칙을 준수하며 ANSI/ISO 표준 SQL에 대한 확장과 XML 및 JSON에 대한 지원을 포함합니다.
또한 MySQL은 고가용성 데이터베이스 클러스터링을 지원하며 페타바이트 규모의 데이터베이스를 처리할 수 있습니다. MySQL 데이터베이스를 사용하는 인기 애플리케이션으로는 TYPO3, MODx, Joomla, WordPress, phpBB, MyBB, Drupal 등이 있습니다.
전자 상거래 애플리케이션
MySQL은 전자 상거래 플랫폼에서 가장 널리 사용되는 트랜잭션 엔진 중 하나입니다. MySQL은 고객, 거래 및 제품 카탈로그에 대한 모든 데이터를 관리하는 데 특히 유용합니다.
전자 상거래 솔루션에서 MySQL은 주문 데이터를 동기화하고 제품 외 데이터를 저장하기 위한 문서 및 키-값 저장소를 비롯한 다른 비관계형 데이터베이스와 함께 사용되는 경우가 많습니다.
LAMP 오픈 소스 스택
MySQL은 LAMP 오픈 소스 소프트웨어 스택에서 실행되는 수많은 애플리케이션에 필수적입니다(LAMP는 Linux, Apache, MySQL, PHP/Python/Perl의 약자). LAMP은 유비쿼터스 웹 서비스 솔루션 스택이며 동적 웹사이트와 고성능 웹 애플리케이션에 가장 적합한 플랫폼으로 널리 알려져 있습니다.
MySQL 소프트웨어 포크 프로젝트
MariaDB
MariaDB는 MySQL의 원 개발자들이 GNU GPL에 따라 무료 오픈 소스로 유지하고자 설립한 MariaDB의 인기 MySQL 포크입니다. MariaDB는 MySQL과 별도로 관리되지만 라이브러리 바이너리 등가성, 애플리케이션 프로그래밍 인터페이스(API)와의 정확한 매칭, 다양한 관리 도구를 포함하여 높은 수준의 MySQL 호환성을 유지합니다. AWS는 완전관리형 데이터베이스 서비스인 Amazon RDS for MariaDB를 통해 MariaDB를 지원합니다.
Percona Server
Percona Server는 Percona에서 만든 또 다른 인기 MySQL 포크입니다. Percona Server에는 Percona의 InnoDB Storage Engine 포크인 XtraDB가 포함되어 있습니다.
애플리케이션 개발을 위한 언어 지원
MySQL은 SQL 언어 지원을 선도합니다. 또한 MySQL은 대부분의 주요 프로그래밍 언어 및 프로토콜을 지원하므로 사용자는 Python, Java, Perl, Node.js, .NET, PHP, Ruby, Erlang, C/C++, Tcl, ODBC, Objective-C를 사용할 수 있습니다.
MySQL vs. PostgreSQL
MySQL과 PostgreSQL 모두 인기 있는 오픈 소스 관계형 데이터베이스입니다. MySQL의 명성은 사용하기 쉽고 빠른 것으로 인식된 덕분이었습니다. 반면 PostgreSQL은 기능이 풍부하고 Oracle과 같은 상용 라이선스 버전의 데이터베이스와 더 비슷하다고 인식되어 왔습니다. 그러나 현재 주요 버전의 MySQL과 PostgreSQL은 모두 쿼리 성능, 신뢰성, 보안 등의 측면에서 많은 강력한 기능을 지원합니다. PostgreSQL에 대해 자세히 알아보고 AWS 프리 티어를 사용하여 Amazon Aurora PostgreSQL 또는 Amazon RDS for PostgreSQL을 체험해 보세요.
AWS의 MySQL 호스팅 옵션
Amazon EC2의 자체 관리형 MySQL
지금까지 관계형 데이터베이스는 온프레미스였으며 데이터베이스 워크로드가 클라우드로 이동함에 따라 조직은 처음에 Amazon EC2를 활용하여 자체 데이터베이스를 실행했습니다. 이 접근 방식을 사용하면 하드웨어 프로비저닝, 데이터베이스 설정, 조정, 패치, 백업, MySQL 확장성 등 온프레미스 데이터베이스에 수반되는 일반적인 관리 작업을 모두 관리할 수 있습니다.
Amazon RDS의 완전관리형 MySQL
Amazon Relational Database Service(Amazon RDS)는 총 소유 비용에 최적화되고 쉽게 관리할 수 있는 관계형 데이터베이스 서비스입니다. 수요에 따라 간편하게 설정 및 운영하고 규모를 조정할 수 있습니다. RDS는 프로비저닝, 구성, 백업, 패치 적용처럼 획일적인 데이터베이스 관리 작업을 자동화합니다.
RDS를 통해 몇 분 만에 새 데이터베이스를 생성할 수 있으며, 요구 사항에 맞게 데이터베이스를 사용자 지정할 수 있는 유연성을 활용할 수 있습니다. 읽기 가능한 두 개의 대기, 최적화된 쓰기 및 읽기, AWS Graviton4 기반 인스턴스 등의 기능을 통해 성능을 최적화하고, 여러 요금 옵션 중에서 선택하여 비용을 효과적으로 관리할 수 있습니다.
Amazon Aurora MySQL 호환 버전을 통한 현대화
Amazon Aurora는 MySQL을 위한, 비할 데 없는 고성능과 고가용성을 글로벌 규모로 제공합니다. Aurora는 완벽한 호환성과 함께 MySQL보다 5배 높은 처리량을 제공합니다. Aurora는 광범위한 규정 준수 표준과 엔터프라이즈 보안 기능, 전 세계에 분산된 앱에 대한 지원을 제공합니다.
Amazon RDS for MySQL을 시작하는 방법은 간단합니다.
1
Amazon RDS에 가입
Amazon RDS 프리 티어에 액세스합니다.
2
간단한 자습서로 학습
RDS를 사용해 MySQL 데이터베이스를 생성하고 연결하는 방법을 알아봅니다.
3
Amazon RDS로 구축 시작
MySQL on Amazon RDS 사용 설명서를 참조하여 구축을 시작합니다.
MySQL 데이터베이스 마이그레이션 프로세스
네이티브 및 타사 MySQL 데이터베이스 마이그레이션 접근 방식
SQL 덤프 및 복제 서비스
MySQL 관계형 데이터베이스 관리 시스템 마이그레이션에 대한 가장 실용적인 기본 접근 방식은 SQL 덤프를 수행한 다음, 복제 작업을 수행하여 데이터베이스를 동기화하는 것입니다. 내장 백업 유틸리티인 MySQL의 mysqldump는 MySQL 서버 데이터베이스 마이그레이션의 기반 역할을 합니다. mysqldump는 전체 데이터베이스를 덤프 파일로 덤프하고 데이터베이스를 재생성하기 위한 일련의 SQL 문을 제공합니다. 이 방법은 인터넷 연결이 빠르고, 안정적이며, 데이터 마이그레이션 시간이 중요하지 않고, 데이터베이스 크기가 10GB 미만인 경우에 유용합니다.
Percona XtraBackup 및 Amazon S3
먼저 Percona XtraBackup 파일 및 백업을 Amazon S3로 전송하여 소스 데이터베이스에서 새로운 Amazon RDS for MySQL 또는 Aurora DB 클러스터로 데이터베이스 서버를 일대일 방식으로 마이그레이션할 수 있습니다. 이 데이터 마이그레이션 변환 프로세스를 사용하여 데이터를 로드하면 mysqldump를 사용하는 것보다 훨씬 더 빠를 수 있습니다.
INFORMATION_SCHEMA 데이터베이스
내장된 INFORMATION_SCHEMA 데이터베이스를 MySQL 메타데이터 탐색기로 사용할 수 있습니다. 이 MySQL 메타데이터 탐색기를 AWS DMS Schema Conversion과 함께 사용하면 소스 데이터베이스 스키마가 대상 데이터베이스 스키마 및 데이터 유형과 일치하는지 확인하고, 차이를 보완할 부분을 식별할 수 있습니다.
관리형 MySQL 데이터 마이그레이션 서비스
AWS Database Migration Service
AWS Database Migration Service(DMS)는 MySQL 데이터베이스 워크로드를 검색, 평가, 변환하고 AWS로 마이그레이션하여 수동으로 편집하는 작업량과 부담을 줄여줍니다. AWS DMS 마이그레이션 마법사를 사용하면 변경 데이터 캡처(CDC)를 통한 자동 복제를 활용하여 소스 및 대상 인프라를 모두 선택하고 자동 평가 및 대상 객체 권장 사항이 포함된 보고서를 생성할 수 있습니다. MySQL의 스키마 또는 객체 정의를 MySQL 마이그레이션으로 변환할 필요가 없습니다. 데이터를 마이그레이션하기 전에 AWS Application Discovery Service를 활용하여 MySQL 서버 데이터베이스의 종속성을 찾아보세요.
AWS Application Migration Service
간단한 리프트 및 시프트 작업을 수행하여 온프레미스 MySQL 서버에서 EC2로 데이터를 마이그레이션하는 경우 AWS Application Migration Service를 사용하여 전체 서버를 EC2로 마이그레이션할 수 있습니다. 이 기법은 단일 데이터베이스 또는 다중 데이터베이스 개체에 적용할 수 있습니다.