MySQL 데이터베이스를 Amazon Aurora MySQL로 마이그레이션

hansung.dev·2023년 2월 13일
1

Data Engineer

목록 보기
3/3

온프레미스 MySQL를 Amazon Aurora MySQL로 마이그레이션 하는 방법은 3가지 방법이 있습니다.

A. 유틸리티를 사용하여 데이터 덤프를 생성한 mysqldump, XtraBackup 다음 해당 데이터를 기존 Amazon Aurora MySQL DB 클러스터로 가져올 수 있습니다. (Native Migration)
B. 퍼블릭 클라우드에서 제공하는 도구(AWS DMS)를 사용하는 방법
C. 위 1번과 2번을 혼합하는 Hybrid Migration 방법

이번 포스팅에서는 위 A에 대해서 살펴보겠습니다. B는 다음 포스팅에서 다룰 예정입니다.

Native Migration

온프레미스 MySQL의 데이터를 백업 하고 AWS Aurora MySQL에 복구합니다.
사용할수 있는 도구는 3가지가 있습니다.

  1. mysqldump
  2. Percona XtraBackup
  3. mydumper

MySQL 데이터베이스를 Amazon RDS for MySQL 또는 Amazon Aurora MySQL로 마이그레이션

1. mysqldump

mysqldump는 Mysql 클라이언트 유틸리티에서 기본적 제공하는 논리 백업 도구입니다. 데이터베이스 및 테이블 등의 객체를 SQL문으로 생성해줍니다. 복구를 할때는 이 SQL를 실행하여 복구를 합니다.

mysqldump는 다음 조건이 충족될 때 적합합니다.

  • 데이터 세트가 10GB보다 작습니다.
  • 원본 데이터베이스와 대상 데이터베이스 간의 네트워크 연결은 빠르고 안정적입니다.
  • 마이그레이션 시간은 중요하지 않으며 마이그레이션 재시도 비용이 매우 낮습니다.
  • 중간 스키마 또는 데이터 변환을 수행할 필요가 없습니다.

mysqldump를 사용하여 데이터를 복구할려면 아래 3가지 단계를 진행합니다.

  1. 소스 데이터가 포함된 덤프 파일을 생성합니다.
  2. 대상 데이터베이스에서 이 덤프 파일을 복원합니다.
  3. 지속적인 복제를 위해 바이너리 로그 위치를 검색합니다.

2. Percona XtraBackup

Amazon RDS for MySQL 및 Amazon Aurora MySQL은 Amazon S3 버킷에 저장된 Percona XtraBackup 파일에서의 마이그레이션을 지원합니다.

Percona XtraBackup은 다음 조건이 충족될 때 적합합니다.

원본 데이터베이스에 대한 관리 시스템 수준 액세스 권한이 있습니다.

일대일 방식으로 데이터베이스 서버를 마이그레이션합니다. 하나의 원본 MySQL 서버가 하나의 새로운 Amazon RDS for MySQL 또는 Aurora DB 클러스터가 됩니다.

Percona XtraBackup을 사용하여 전체 데이터 로드를 수행하려면 다음 세 단계를 따르십시오.

  1. 소스 데이터가 포함된 백업 파일을 생성합니다.
  2. 새 대상 데이터베이스를 시작하는 동안 Amazon S3에서 이 백업 파일을 복원합니다.
  3. 지속적인 복제를 위해 바이너리 로그 위치를 검색합니다.

3. mydumper

mydumper 및 myloader는 수동으로 SQL 명령을 호출하거나 사용자 지정 마이그레이션 스크립트를 설계할 필요 없이 다중 스레드 스키마 및 데이터 마이그레이션을 수행하는 타사 유틸리티입니다. mydumper는 mysqldump와 유사하게 작동하지만 병렬 백업, 일관된 읽기 및 내장 압축과 같은 많은 개선 사항을 제공합니다. mydumper의 또 다른 이점은 각 개별 테이블이 별도의 파일로 덤프된다는 것입니다. 이 도구는 매우 유연하며 합리적인 구성 기본값을 가지고 있습니다. 소규모 및 대규모 마이그레이션의 요구 사항을 모두 충족하도록 기본 구성을 조정할 수 있습니다.

mydumper는 다음 조건이 충족될 때 적합합니다.

  • 마이그레이션 시간이 중요합니다.
  • Percona XtraBackup을 사용할 수 없습니다.

다음 조건 중 하나에 해당하는 경우 이 도구를 사용하지 않기로 결정할 수 있습니다.

  • Amazon RDS for MySQL DB 인스턴스 또는 자체 관리형 MySQL 5.5 또는 5.6 데이터베이스에서 마이그레이션합니다. 이 경우 Percona XtraBackup이 더 나은 결과를 얻을 수 있습니다.
  • 운영 체제 제한으로 인해 타사 소프트웨어를 사용할 수 없습니다.
  • 데이터 변환 프로세스에는 SQL 형식이 아닌 플랫 파일 형식의 중간 덤프 파일이 필요합니다.

mydumper를 사용하여 전체 데이터 로드를 수행하려면 다음 세 단계를 따르십시오.

  1. 소스 데이터가 포함된 덤프 파일을 생성합니다.
  2. myloader를 사용하여 대상 데이터베이스에서 이 덤프 파일을 복원합니다.
  3. 지속적인 복제를 위해 바이너리 로그 위치를 검색합니다.

성능 비교

Percona XtraBackup은 데이터베이스 파일의 물리적 백업을 생성하는 반면 다른 도구는 논리적 백업을 생성합니다. Percona XtraBackup이 사용 사례와 호환되지 않는 경우 mydumper가 차선책입니다.

아래는 EC2의 MySQL를 AWS Aurora MySQL 5.7로 9GB 데이터를 마이그레이션한 성능 결과입니다.

Percona XtraBackup은 mysqldump보다 4배 더 빠르고 mydumper 백업보다 2배 더 빠릅니다. 예를 들어 총 400GB의 데이터로 더 큰 데이터 세트를 테스트한 결과 성능이 데이터 세트 크기에 비례하여 확장되는 것으로 나타났습니다.

profile
Data Engineer

0개의 댓글