메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

MySQL DB 스냅샷에서 MariaDB DB 인스턴스로 데이터 마이그레이션

Amazon RDS MySQL DB 스냅샷을 AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 MariaDB 10.1을 실행하는 새 DB 인스턴스로 마이그레이션할 수 있습니다. MySQL 5.6을 실행하는 Amazon RDS DB 인스턴스에서 DB 스냅샷을 생성해야 합니다. RDS MySQL DB 스냅샷 생성 방법에 대한 자세한 내용은 DB 스냅샷 생성 단원을 참조하십시오.

MySQL에서 MariaDB로 마이그레이션하면 MariaDB DB 인스턴스는 기본 DB 파라미터 그룹 및 옵션 그룹과 연동됩니다. DB 스냅샷을 복구한 후에는 새 DB 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 연동할 수 있습니다. 그러나 MariaDB 파라미터 그룹에는 구성 가능한 다양한 시스템 변수 집합이 있습니다. MySQL 및 MariaDB 시스템 변수 간의 차이에 대한 정보는 System Variable Differences Between MariaDB 10.0 and MySQL 5.6을 참조하십시오. DB 파라미터 그룹에 대한 자세한 내용은 DB 파라미터 그룹 작업 단원을 참조하십시오. 옵션 그룹에 대한 자세한 내용은 옵션 그룹 작업 단원을 참조하십시오.

MariaDB와 MySQL 간의 호환성 관련 문제

MariaDB와 MySQL 간의 비호환성 관련 문제로는 다음과 같은 것들이 있습니다.

  • MySQL 5.7 또는 MySQL 5.5로 생성된 DB 스냅샷은 MariaDB 10.1로 마이그레이션할 수 없습니다.

  • 원본 MySQL 데이터베이스에서 SHA256 암호 해시를 사용하는 경우, MariaDB 데이터베이스에 연결하려면 먼저 SHA256 해시 처리된 사용자 암호를 재설정해야 합니다. 다음 코드는 SHA256 해시 처리된 암호를 재설정하는 방법을 보여줍니다.

    Copy
    SET old_passwords = 0; UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('new_password') WHERE (User, Host) = ('master_user_name', %); FLUSH PRIVILEGES;
  • RDS 마스터 사용자 계정에서 SHA-256 암호 해시를 사용하는 경우, 이 암호는 rds modify-db-instance AWS CLI 명령, ModifyDBInstance API 작업 또는 AWS Management Console을 사용하여 재설정해야 합니다. MariaDB DB 인스턴스 수정에 대한 자세한 내용은 MariaDB 데이터베이스 엔진 기반 DB 인스턴스의 변경 단원을 참조하십시오.

  • MariaDB는 Memcached 플러그인을 지원하지 않지만, Memcached 플러그인이 사용하는 데이터는 InnoDB 테이블 형식으로 저장됩니다. MySQL DB 스냅샷을 마이그레이션한 후에는 SQL을 사용하여 Memcached 플러그인이 사용하는 데이터에 액세스할 수 있습니다. innodb_memcache 데이터베이스에 대한 자세한 내용은 InnoDB memcached Plugin Internals를 참조하십시오.

AWS Management Console

MySQL DB 스냅샷에서 MariaDB DB 인스턴스로 마이그레이션하려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. [Migrate Snapshot]을 선택합니다.

  4. [Migrate to DB Engine]에서 [MariaDB]를 선택합니다.

  5. [Migrate Database] 페이지에서 RDS가 MariaDB DB 인스턴스를 시작하는 데 필요한 추가 정보를 입력합니다.

    • [DB Instance Class]: 데이터베이스에 필요한 스토리지와 용량을 지닌 DB 인스턴스 클래스를 선택합니다(예: db.r3.large). 빠르고 일관된 I/O 성능이 필요한 프로덕션 애플리케이션의 경우에는 프로비저닝된 IOPS 스토리지를 사용하는 것이 좋습니다. 자세한 내용은 성능 개선을 위한 Amazon RDS 프로비저닝된 IOPS 스토리지 단원을 참조하십시오. MariaDB 10.1은 이전 세대 DB 인스턴스 클래스를 지원하지 않습니다. 자세한 내용은 DB 인스턴스 클래스 단원을 참조하십시오.

    • [DB Snapshot ID]: DB 스냅샷 식별자의 이름을 입력합니다.

      DB 스냅샷 식별자는 다음과 같은 제약 조건이 있습니다.

      • 1~255자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.

      • 반드시 글자이어야 합니다.

      • 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.

      공유된 수동 DB 스냅샷에서 복원하는 경우에는 DB 스냅샷 식별자가 공유된 DB 스냅샷의 Amazon 리소스 이름(ARN)이어야 합니다.

    • [DB Instance Identifier]: DB 인스턴스가 상주하는 AWS 리전의 계정에 고유한 DB 인스턴스 이름을 입력합니다. 이 식별자는 DB 인스턴스의 인스턴스에 대한 엔드포인트 주소에서 사용됩니다.

      DB 인스턴스 식별자는 다음과 같은 제약 조건이 있습니다.

      • 1~63자의 영숫자 문자 또는 하이픈으로 구성되어야 합니다.

      • 첫 번째 문자는 글자이어야 합니다.

      • 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.

      • AWS 리전 내에서 AWS 계정의 모든 DB 인스턴스에 대해 고유한 것이어야 합니다.

    • [VPC]: 기존 VPC가 있는 경우, VPC 식별자(예: vpc-a464d1c1)를 선택하여 해당 VPC를 MariaDB DB 인스턴스에 사용할 수 있습니다. VPC에 대한 자세한 내용은 Amazon Virtual Private Cloud(VPC) 및 Amazon RDS 단원을 참조하십시오.

      기존 VPC가 없다면 [Create a new VPC]를 선택하여 Amazon RDS에서 VPC를 새로 생성하도록 할 수 있습니다.

      EC2 Classic Network에서는 MariaDB 인스턴스를 생성할 수 없습니다.

    • [Subnet Group]: 기존 서브넷 그룹이 있으면 해당 서브넷 그룹 식별자(예: gs-subnet-group1)를 선택하여 MariaDB DB 인스턴스에서 그 서브넷 그룹을 사용할 수 있습니다.

      기존 서브넷 그룹이 없다면 [Create a new subnet group]을 선택하여 Amazon RDS에서 서브넷 그룹을 새로 생성하도록 할 수 있습니다.

    • [Publicly Accessible]: DB 인스턴스의 인스턴스가 VPC에 있는 리소스만 액세스할 수 있도록 하려면 [No]를 선택합니다. 퍼블릭 네트워크에 있는 리소스가 DB 인스턴스의 인스턴스에 액세스할 수 있도록 하려면 [Yes]를 선택합니다. 기본값은 [Yes]입니다.

    • [Availability Zone]: MariaDB DB 인스턴스의 기본 인스턴스를 호스팅하려면 [Availability Zone]을 선택합니다. Amazon RDS가 [Availability Zone]을 선택하도록 하려면 [No Preference]를 선택합니다.

    • [Database Port]: DB 인스턴스의 인스턴스에 연결할 때 사용할 기본 포트를 입력합니다. 기본값은 3306입니다.

      기업 방화벽 뒤에 있어서 MySQL 기본 포트인 3306 같은 기본 포트에 액세스하지 못할 수도 있습니다. 이런 경우에는 기업 방화벽이 허용하는 포트 값을 입력합니다.

    • [Enable Encryption]: 새 MariaDB DB 인스턴스를 "유휴 상태에서" 암호화하려면 [Yes]를 선택합니다. [Yes]를 선택하면 [Master Key] 값으로 AWS KMS 암호화 키를 선택해야 합니다.

    • [Auto Minor Version Upgrade]: MySQL DB 엔진의 부 버전 업그레이드가 있을 때 MariaDB DB 인스턴스가 자동으로 업그레이드를 실행하도록 하려면 [Yes]를 선택합니다. [Auto Minor Version Upgrade] 옵션은 MariaDB DB 인스턴스의 경우, MySQL 엔진 마이너 버전으로 업그레이드할 때만 사용할 수 있습니다. 시스템 안정성 유지를 위한 정기 패치에는 적용되지 않습니다.

  6. [Migrate]를 선택합니다.

     MySQL에서 MariaDB로 마이그레이션

CLI

MySQL DB 스냅샷에서 MariaDB DB 인스턴스로 데이터를 마이그레이션하려면 AWS CLI restore-db-instance-from-db-snapshot 명령을 다음 파라미터와 함께 사용합니다.

  • --db-instance-identifier – DB 스냅샷에서 생성할 DB 인스턴스의 이름.

  • --db-snapshot-identifier – 복구할 DB 스냅샷에 대한 식별자.

  • --engine – 새 인스턴스에 사용할 데이터베이스 엔진.

Linux, OS X, Unix의 경우:

Copy
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier newmariadbinstance \ --db-snapshot-identifier mysqlsnapshot \ --engine mariadb

Windows의 경우:

Copy
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier newmariadbinstance ^ --db-snapshot-identifier mysqlsnapshot ^ --engine mariadb

API

MySQL DB 스냅샷에서 MariaDB DB 인스턴스로 데이터를 마이그레이션하려면 Amazon RDS API 작업 RestoreDBInstanceFromDBSnapshot을 호출합니다.

Copy
https://rds.us-west-2.amazonaws.com/ ?Action=RestoreDBInstanceFromDBSnapshot &DBInstanceIdentifier= newmariadbinstance &DBSnapshotIdentifier= mysqlsnapshot &Engine= mariadb &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2013-09-09 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140428/us-west-2/rds/aws4_request &X-Amz-Date=20140428T232655Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=78ac761e8c8f54a8c0727f4e67ad0a766fbb0024510b9aa34ea6d1f7df52fe92

관련 주제