Amazon RDS DB 인스턴스로 데이터를 가져오려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 11월 19일

가동 중단 시간을 최소화하면서 기존 데이터베이스에서 Amazon Relational Database Service(Amazon RDS) 인스턴스로 데이터를 가져오려면 어떻게 해야 합니까?

간략한 설명

기존 데이터베이스에서 RDS DB 인스턴스로 데이터를 가져오려면 다음을 수행합니다.

  1. 원본 데이터베이스에서 데이터를 내보냅니다.
  2. 내보낸 데이터를 업로드합니다.
  3. 업로드한 데이터를 RDS DB 인스턴스로 가져옵니다.

데이터 가져오기 프로세스를 수행하려면 가져온 원본 데이터베이스의 크기에 따라 다양한 서버 가동 중단 시간이 요구됩니다. 또한 요구되는 가동 중단 시간은 대상 DB 인스턴스에서 사용되는 데이터베이스 엔진 유형에 따라서도 달라집니다. 자세한 내용은 다음 DB별 해결 방법을 참조하십시오.

해결 방법

일반 데이터 가져오기 성능 지침

다음 성능 지침은 모든 Amazon RDS 데이터 가져오기/내보내기 작업에 적용됩니다.

  • 압축 및 다중 스레드를 사용하여 병렬로 데이터를 로드 및 언로드합니다. 병렬로 많은 데이터를 로드하는 경우 데이터 로드 프로세스 중 클라이언트 머신에 충분한 리소스가 있어야 합니다.
  • 많은 데이터 로드에 대해 RDS DB 인스턴스의 보존 기간을 0으로 설정하여 자동 백업을 비활성화하는 방법을 고려하십시오.. 이 변경 내용을 적용하려면 RDS DB 인스턴스를 재부팅해야 합니다. 중요: 프로덕션 인스턴스에서 백업 비활성화는 권장되지 않습니다. 이 방법은 특정 시점 복구 기능을 차단하며, DB 인스턴스의 모든 이전 자동 스냅샷을 삭제하고, 삭제된 스냅샷의 복구를 차단하기 때문입니다. 그러나 DB 인스턴스가 아직 프로덕션에 없는 경우 백업을 비활성화하면 로드 성능을 향상시킬 수 있습니다. 데이터 로드가 완료된 후에는 자동 백업을 활성화해야 합니다. 또한 데이터 로드 프로세스의 중요한 단계에서 DB 스냅샷을 생성하는 방법도 고려하십시오. 그러면 필요한 경우 스냅샷에서 인스턴스를 복원할 수 있습니다.
  • 다중 AZ 데이터 로드의 동기식 쓰기 작업으로 인한 오버헤드를 줄이도록 데이터 로드 작업 중 다중 AZ를 비활성화하는 방법을 고려하십시오. 중요: 다중 AZ 기능은 모든 프로덕션 RDS DB 인스턴스의 모범 사례이며, 다중 AZ는 데이터 로드가 완료되는 즉시 활성화해야 합니다.

데이터베이스 엔진별 데이터 가져오기 지침

Amazon RDS MySQL 또는 MariaDB로 데이터 가져오기 – MySQL 도구(예: mysqldump, mysql복제)를 사용하여 Amazon RDS로 데이터를 가져올 수 있습니다. MySQL 5.6.13 이상을 사용하는 복제는 외부 RDS DB 인스턴스에서, 그리고 해당 인스턴스로 데이터를 복제할 수 있습니다. MariaDB DB 인스턴스로 데이터를 가져오는 경우 MariaDB 도구(예: mysqldump, mysql표준 복제)를 사용하여 Amazon RDS로 데이터를 가져올 수 있습니다.

Amazon RDS에서 PostgreSQL로 데이터 가져오기 – PostgreSQL 도구(예: pg_dump, psqlcopy 명령)를 사용하여 Amazon RDS로 데이터를 가져올 수 있습니다.

Amazon RDS에서 Oracle로 데이터 가져오기 – 소형 데이터베이스는 Oracle SQL Developer에서 사용 가능한 데이터베이스 복사 기능을 사용할 수 있습니다. 대형 데이터베이스의 경우 내보내기 파라미터를 지정하는 경우 RDS DB 인스턴스에 정의된 디렉터리로의 파일 전송 및 데이터베이스 링크를 사용하는 내보내기가져오기에 대한 데이터 펌프가 필요합니다.

SQL Server 데이터베이스 가져오기 및 내보내기 – .bak 파일을 사용하여 Microsoft SQL Server 데이터베이스에 대한 기본 백업 및 복원을 사용할 수 있습니다. 또한 온프레미스 데이터베이스의 전체 백업을 생성하고, Amazon Simple Storage Service(Amazon S3)에서 백업을 저장한 후 Amazon RDS로 백업 파일을 복원할 수 있습니다.

Aurora MySQL로 데이터 가져오기 – Amazon RDS로 가져오기만 하면 기본 도구(예: mysqldump 및 mydumper)를 사용하여 Amazon Aurora for MySQL로 마이그레이션할 수 있습니다. Aurora MySQL 호환 가능 이진 로그 복제를 사용하여 가동 중단 시간을 줄일 수 있습니다. 또한 Amazon S3에 저장된 Percona Xtrabakup을 사용하거나 Amazon RDS MySQL DB 인스턴스의 스냅샷을 사용하거나 기존 RDS MySQL DB 인스턴스의 Aurora 복제본을 생성하여 Aurora MySQL로 마이그레이션할 수 있습니다. 모든 마이그레이션 옵션에 대해 모든 원본 테이블이 동적 행 형식을 사용하는 InnoDB Storage 엔진으로 변환되어야 합니다. 그러면 마이그레이션 속도를 가속화하고, Aurora로 성공적인 마이그레이션을 수행할 수 있습니다. 자세한 내용은 Amazon Aurora로 MySQL 데이터베이스 마이그레이션의 모범 사례를 참조하십시오.

AWS Database Migration Service(AWS DMS) 사용 – AWS DMS를 사용하여 온프레미스 환경에서 AWS로 데이터를 가져올 수 있습니다. DMS는 가동 중단 시간을 최소화하면서 동종 및 이기종 마이그레이션 모두를 제공합니다. DMS는 다음과 같은 마이그레이션 유형을 제공합니다.

  • 기존 데이터 마이그레이션(전체 로드) – 원본에서 대상 데이터베이스 인스턴스로 기존 데이터를 이전합니다. 일회성 로드로, 이전에 나열된 가져오기 및 내보내기 옵션과 비슷합니다. 이 마이그레이션 유형은 상당한 가동 중단 시간도 감당할 수 있는 중소 규모의 데이터베이스에 가장 적합합니다.
  • 기존 데이터 마이그레이션 및 지속적 변경 내용 복제(전체 로드 + CDC(변경 데이터 캡처)) – 최소의 가동 중단 시간으로 데이터를 마이그레이션하려는 경우 AWS DMS에서 기존 데이터를 마이그레이션하고 전환되기 전까지 원본에서 대상으로 데이터 변경 내용을 복제할 수 있습니다. 이 마이그레이션 유형은 가동 중단 시간을 최소화해야 하는 중소 규모의 데이터베이스에 가장 적합합니다(이때 가동 중단은 전환 기간에만 지속됨).
  • 데이터 변경 내용만 복제(CDC) – 기본 가져오기 및 내보내기 도구의 효율성을 활용하여 기존 데이터를 마이그레이션하고 원본에서 대상 인스턴스로 지속적 변경 내용만 캡처하는 CDC 전용 작업을 설정합니다. CDC 사용자 지정 시작 시간 파라미터는 데이터 동기화를 시작할 특정 시점을 지정합니다. 이 마이그레이션 유형은 가동 중단 시간을 최소화해야 하는 중간과 대규모의 데이터베이스에 가장 적합합니다(이때 가동 중단은 전환 기간에만 지속됨).