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

DB 스냅샷을 사용하여 MySQL DB 인스턴스에서 Amazon Aurora DB 클러스터로 데이터 마이그레이션

다음과 같은 방법으로 Amazon RDS MySQL DB 스냅샷의 데이터를 Amazon Aurora DB 클러스터로 마이그레이션(복사)할 수 있습니다.

참고

Amazon Aurora는 MySQL과 호환되기 때문에 MySQL 데이터베이스와 Amazon Aurora DB 클러스터 사이에 복제를 설정하면 MySQL 데이터베이스에서 데이터를 마이그레이션할 수 있습니다. 이때 MySQL 데이터베이스에서 실행되는 MySQL 버전은 5.5 이후를 사용하는 것이 좋습니다. 자세한 내용은 Amazon Aurora 복제 단원을 참조하십시오.

RDS MySQL 스냅샷을 Aurora로 마이그레이션

Amazon RDS MySQL DB 인스턴스의 DB 스냅샷을 마이그레이션하면 Aurora DB 클러스터를 생성할 수 있습니다. 새로운 DB 클러스터는 원본 Amazon RDS MySQL DB 인스턴스의 데이터로 채워집니다. 이때 DB 스냅샷은 MySQL 5.6 기반 Amazon RDS DB 인스턴스를 통해 생성한 스냅샷이어야 합니다.

DB 스냅샷을 마이그레이션하는 방법은 수동과 자동이 있습니다. DB 클러스터를 생성한 후에는 옵션으로 Aurora 복제본을 생성할 수도 있습니다.

일반적으로 다음 단계를 반드시 따라야 합니다.

  1. Amazon Aurora DB 클러스터에 프로비저닝할 공간 크기를 결정합니다. 자세한 내용은 필요한 공간 크기을(를) 참조하십시오.

  2. 콘솔을 사용하여 Amazon RDS MySQL 5.6 인스턴스의 리전에 스냅샷을 생성합니다. DB 스냅샷 생성에 대한 자세한 내용은 DB 스냅샷 생성을(를) 참조하십시오.

  3. DB 스냅샷이 DB 클러스터와 동일한 리전에 속하지 않을 때는 Amazon RDS 콘솔을 사용하여 DB 스냅샷을 해당 리전으로 복사합니다. DB 스냅샷 복사에 대한 자세한 내용은 DB 스냅샷 복사을(를) 참조하십시오.

  4. 콘솔을 사용하여 DB 스냅샷을 마이그레이션한 후 MySQL 5.6의 원본 DB 인스턴스와 동일한 데이터베이스로 Amazon Aurora DB 클러스터를 생성합니다.

주의

Amazon RDS는 AWS 계정마다 스냅샷 사본을 한 번에 각 리전의 스냅샷 사본 하나로 제한합니다.

필요한 공간 크기

MySQL DB 인스턴스의 스냅샷을 Aurora DB 클러스터로 마이그레이션할 때는 Aurora에서 마이그레이션 전에 Amazon Elastic Block Store(Amazon EBS) 볼륨을 사용하여 스냅샷의 데이터 형식을 결정합니다. 마이그레이션을 위해 데이터 형식을 결정할 때 공간이 추가로 필요한 경우가 간혹 있습니다. 따라서 데이터를 DB 클러스터로 마이그레이션할 경우, 다음과 같은 지침과 제한 사항을 준수해야 합니다.

  • Amazon Aurora는 최대 64TB 크기의 스토리지를 지원하지만, 스냅샷을 Aurora DB 클러스터로 마이그레이션하는 프로세스는 스냅샷의 EBS 볼륨 크기에 따라 제한됩니다. 따라서 마이그레이션할 수 있는 스냅샷의 최대 크기는 6TB입니다.

  • MyISAM 테이블이 아니거나 압축되지 않은 테이블은 최대 크기가 6TB로 제한됩니다. MyISAM 테이블이 있는 경우 Aurora 호환 테이블로 변환하기 위한 볼륨 추가 공간이 Aurora에 필요합니다. 테이블이 압축된 경우에는 Aurora 클러스터 볼륨에 저장하기 전에 압축된 테이블을 확장하기 위한 볼륨 추가 공간이 Aurora에 필요합니다. 이 추가 공간 요구 사항 때문에 MySQL DB 인스턴스에서 마이그레이션하는 MyISAM 테이블과 압축된 테이블이 크기가 3TB를 넘지 않는지 확인해야 합니다.

데이터를 Amazon Aurora로 마이그레이션하는 데 필요한 공간 크기 줄이기

데이터를 Amazon Aurora로 마이그레이션하기 전에 데이터베이스 스키마 설정을 변경할 수 있습니다. 이렇게 수정하는 이유는 다음과 같은 경우에 도움이 되기 때문입니다.

  • 마이그레이션 프로세스의 속도를 높이고 싶은 경우

  • 프로비저닝에 필요한 공간을 정확히 모르는 경우

  • 데이터 마이그레이션을 시도했지만 프로비저닝 공간 부족으로 마이그레이션이 실패한 경우

데이터베이스를 Amazon Aurora로 마이그레이션하는 프로세스를 개선하려면 다음과 같은 설정 변경이 가능합니다.

중요

이 업데이트는 반드시 프로덕션 인스턴스가 아닌 프로덕션 데이터베이스의 스냅샷에서 새롭게 복구된 DB 인스턴스에 실행해야 합니다. 그런 다음, 새로운 DB 인스턴스의 스냅샷에서 Amazon Aurora DB 클러스터로 데이터를 마이그레이션하면 프로덕션 데이터베이스의 서비스 중단을 방지할 수 있습니다.

테이블 유형 제한 또는 지침

MyISAM 테이블

Amazon Aurora는 InnoDB 테이블만 지원합니다. 데이터베이스에 MyISAM 테이블이 있으면 이 테이블은 Amazon Aurora로 마이그레이션하기 전에 변환해야 합니다. 이 때, 마이그레이션 절차 중 MyISAM에서 InnoDB로 변환하려면 추가 공간이 필요합니다.

공간이 부족할 가능성을 줄이거나 마이그레이션 프로세스 속도를 높이려면 MyISAM 테이블을 마이그레이션하기 전에 모두 InnoDB 테이블로 변환해야 합니다. 이렇게 변환되는 InnoDB 테이블의 크기는 Amazon Aurora에서 해당 테이블에 요구하는 크기와 동일합니다. MyISAM 테이블을 InnoDB로 변환하는 명령은 다음과 같습니다.

alter table <schema>.<table_name> engine=innodb, algorithm=copy;

압축된 테이블

Amazon Aurora에서는 압축된 테이블(ROW_FORMAT=COMPRESSED로 만든 테이블)이 지원되지 않습니다.

공간이 부족할 가능성을 줄이거나 마이그레이션 프로세스 속도를 높이려면 ROW_FORMATDEFAULT, COMPACT, DYNAMIC 또는 REDUNDANT로 설정하여 압축된 테이블을 확장합니다. 자세한 내용은 https://dev.mysql.com/doc/refman/5.6/en/innodb-row-format.html을(를) 참조하십시오.

기존 MySQL DB 인스턴스에서 다음 SQL 스크립트를 사용하면 데이터베이스에 있는 MyISAM 테이블 또는 압축된 테이블의 목록을 표시할 수 있습니다.

Copy
-- This script examines a MySQL database for conditions that will block -- migrating the database into Amazon's Aurora DB. -- It needs to be run from an account that has read permission for the -- INFORMATION_SCHEMA database. -- Verify that this is a supported version of MySQL. select msg as `==> Checking current version of MySQL.` from ( select 'This script should be run on MySQL version 5.6. ' + 'Earlier versions are not supported.' as msg, cast(substring_index(version(), '.', 1) as unsigned) * 100 + cast(substring_index(substring_index(version(), '.', 2), '.', -1) as unsigned) as major_minor ) as T where major_minor <> 506; -- List MyISAM and compressed tables. Include the table size. select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`, round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)" from INFORMATION_SCHEMA.TABLES where ENGINE <> 'InnoDB' and ( -- User tables TABLE_SCHEMA not in ('mysql', 'performance_schema', 'information_schema') or -- Non-standard system tables ( TABLE_SCHEMA = 'mysql' and TABLE_NAME not in ( 'columns_priv', 'db', 'event', 'func', 'general_log', 'help_category', 'help_keyword', 'help_relation', 'help_topic', 'host', 'ndb_binlog_index', 'plugin', 'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log', 'tables_priv', 'time_zone', 'time_zone_leap_second', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'user' ) ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' );

스크립트를 실행하면 다음 예제와 비슷한 결과를 출력합니다. 이 예제는 MyISAM에서 InnoDB로 변환해야 하는 두 개의 테이블을 보여 줍니다. 그 밖에도 출력 화면에는 각 테이블의 크기도 메가바이트(MB) 단위로 나옵니다.

Copy
+---------------------------------+------------------+ | ==> MyISAM or Compressed Tables | Approx size (MB) | +---------------------------------+------------------+ | test.name_table | 2102.25 | | test.my_table | 65.25 | +---------------------------------+------------------+ 2 rows in set (0.01 sec)

콘솔을 사용한 DB 스냅샷 마이그레이션하기

Amazon RDS MySQL DB 인스턴스의 DB 스냅샷을 마이그레이션하면 Aurora DB 클러스터를 생성할 수 있습니다. 새로운 DB 클러스터는 원본 Amazon RDS MySQL DB 인스턴스의 데이터로 채워집니다. 이때 DB 스냅샷은 MySQL 5.6 기반 Amazon RDS DB 인스턴스를 통해 생성한 스냅샷이며 암호화되지 않아야 합니다. DB 스냅샷 생성에 대한 자세한 내용은 DB 스냅샷 생성을(를) 참조하십시오.

데이터를 찾고자 하는 AWS 리전에 DB 스냅샷이 없을 때는 Amazon RDS 콘솔을 사용하여 DB 스냅샷을 해당 리전으로 복사합니다. DB 스냅샷 복사에 대한 자세한 내용은 DB 스냅샷 복사을(를) 참조하십시오.

콘솔을 사용하여 DB 스냅샷을 마이그레이션할 경우, 콘솔에서 DB 클러스터와 기본 인스턴스 모두를 생성하는 데 필요한 작업이 따릅니다.

AWS Key Management Service(AWS KMS) 암호화 키를 사용하여 새 Aurora DB 클러스터가 "유휴 상태에서" 암호화되도록 선택할 수도 있습니다. 이 옵션은 암호화되지 않은 DB 스냅샷에만 가능합니다.

콘솔을 사용하여 MySQL 5.6 DB 스냅샷을 마이그레이션하는 방법

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

  2. [Snapshots]를 선택합니다.

  3. [Snapshots] 페이지에서 Aurora DB 클러스터로 마이그레이션하려는 스냅샷을 선택합니다.

  4. [Migrate Database]를 선택합니다.

     Amazon Aurora로 스냅샷 마이그레이션
  5. [Migrate Database] 페이지에서 다음과 같이 값을 설정합니다.

    • DB Instance Class:: 데이터베이스에 필요한 스토리지와 용량을 가진 DB 인스턴스 클래스를 선택합니다(예: db.r3.large). Aurora 클러스터 볼륨은 데이터베이스의 데이터가 늘어날수록 자동으로 증가하며 최대 크기는 64테라바이트(TB)입니다. 따라서 현재 스토리지 요구 사항에 맞는 DB 인스턴스 클래스를 선택해야 합니다. 자세한 내용은 Amazon Aurora 스토리지을(를) 참조하십시오.

    • [DB Instance Identifier]: 선택한 리전의 계정에 대해 고유한 DB 클러스터 이름을 입력합니다. 이 식별자는 DB 클러스터에 속한 인스턴스의 엔드포인트 주소로 사용됩니다. 선택한 리전 및 DB 엔진을 포함(예: aurora-cluster1)하는 등 이름에 지능적 요소를 추가할 수도 있습니다.

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

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

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

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

      • AWS 리전별로 AWS 계정 하나당 모든 DB 인스턴스는 고유해야 합니다.

    • [VPC]: 기존 VPC가 있는 경우, VPC 식별자(예: vpc-a464d1c1)를 선택하여 해당 VPC를 Amazon Aurora DB 클러스터에 사용할 수 있습니다. 기존 VPC 사용 방법에 대한 자세한 내용은 Amazon Aurora에 사용할 VPC를 생성하는 방법을(를) 참조하십시오.

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

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

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

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

      참고

      퍼블릭 서브넷에서는 프로덕션 DB 클러스터가 필요 없을 수도 있습니다. 애플리케이션 서버만 DB 클러스터에 액세스하기 때문입니다. DB 클러스터가 퍼블릭 서브넷에 필요 없는 경우에는 [Publicly Accessible]을 [No]로 설정합니다.

    • [Availability Zone]: Aurora DB 클러스터의 기본 인스턴스를 호스팅하려면 가용 영역을 선택합니다. Amazon RDS에서 가용 영역을 선택하게 하려면 [No Preference]를 선택합니다.

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

      참고

      기업 방화벽 뒤에 있어서 MySQL 기본 포트인 3306 같은 기본 포트에 액세스하지 못할 수도 있습니다. 이런 경우에는 기업 방화벽이 허용하는 포트 값을 입력합니다. 나중에 Aurora DB 클러스터에 연결할 때도 필요하므로 이 포트 값을 기억해야 합니다.

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

    • [Auto Minor Version Upgrade]: MySQL DB 엔진의 부 버전 업그레이드가 있을 때 Aurora DB 클러스터가 자동으로 업그레이드를 실행하도록 하려면 Yes를 선택합니다.

      Auto Minor Version Upgrade 옵션은 Amazon Aurora DB 클러스터에 대해 MySQL 엔진 마이너 버전으로의 업그레이드에만 적용됩니다. 시스템 안정성 유지를 위한 정기 패치에는 적용되지 않습니다.

     Amazon Aurora로 스냅샷 마이그레이션
  6. [Migrate]를 선택하여 DB 스냅샷을 마이그레이션합니다.

  7. [Instances]를 선택한 다음 화살표 아이콘을 선택하여 DB 클러스터 세부 정보를 표시하고 마이그레이션 진행 상황을 모니터링합니다. 세부 정보 페이지를 보면 DB 클러스터의 기본 인스턴스에 연결하는 데 사용할 클러스터 엔드포인트가 표시됩니다. Amazon Aurora DB 클러스터 연결에 대한 자세한 내용은 Amazon Aurora DB 클러스터 연결을(를) 참조하십시오.

     DB 클러스터 세부 정보

관련 주제