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

복제를 사용하여 MySQL 데이터 내보내기

복제를 사용하여 MySQL 5.6 이상 DB 인스턴스에서 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스로 데이터를 내보낼 수 있습니다. Amazon RDS 외부의 MySQL 인스턴스는 데이터 센터의 온프레미스 환경이나 Amazon EC2 인스턴스에서 실행 중일 수 있습니다. MySQL DB 인스턴스는 버전 5.6.13 이상을 실행 중이어야 합니다. Amazon RDS 외부의 MySQL 인스턴스는 Amazon RDS 인스턴스와 같은 버전이나 더 최신 버전을 실행 중이어야 합니다.

Amazon RDS 외부에서 실행 중인 MySQL의 인스턴스에 대한 복제는 MySQL DB 인스턴스에서 데이터베이스를 내보내는 데 걸리는 시간 중에만 지원됩니다. 데이터 내보내기가 완료되어 애플리케이션이 외부 인스턴스에 대한 액세스를 시작할 수 있을 때 복제가 종료되어야 합니다.

아래 목록에 수행할 단계가 나와 있습니다. 각 단계에 대해서는 이후 섹션에서 자세히 설명합니다.

  1. Amazon RDS 외부에서 실행 중인 MySQL의 인스턴스를 준비합니다.

  2. MySQL DB 인스턴스가 복제 소스가 되도록 구성합니다.

  3. mysqldump를 사용하여 Amazon RDS 인스턴스에서 Amazon RDS 외부의 인스턴스로 데이터베이스를 전송합니다.

  4. Amazon RDS 외부에서 실행 중인 인스턴스에 대한 복제를 시작합니다.

  5. 내보내기가 완료된 후 복제를 중지합니다.

Amazon RDS 외부에 MySQL의 인스턴스 준비

Amazon RDS 외부에 MySQL의 인스턴스를 설치합니다.

마스터 사용자로 인스턴스에 연결하고, 인스턴스에 액세스하는 서비스, 애플리케이션 및 관리자를 지원하는 데 필요한 사용자를 만듭니다.

MySQL 문서의 지침에 따라 Amazon RDS 외부에서 실행 중인 MySQL의 인스턴스를 복제본으로 준비합니다. 자세한 내용은 Setting the Replication Slave Configuration을 참조하십시오.

내보내기 중에 외부 인스턴스가 읽기 전용 복제본으로 작동하도록 송신 규칙을 구성합니다. 송신 규칙에 따라 MySQL 읽기 전용 복제본은 복제 중에 MySQL DB 인스턴스에 연결할 수 있습니다. 원본 Amazon RDS MySQL DB 인스턴스의 포트와 IP 주소에 대한 TCP 연결을 허용하는 송신 규칙을 지정합니다.

읽기 전용 복제본이 Amazon VPC의 Amazon EC2 인스턴스에서 실행 중인 경우 VPC 보안 그룹에서 송신 규칙을 지정합니다. 읽기 전용 복제본이 VPC에 있지 않은 Amazon EC2 인스턴스에서 실행 중인 경우 Amazon EC2 보안 그룹에서 송신 규칙을 지정합니다. 읽기 전용 복제본이 온프레미스에 설치되어 있는 경우 방화벽에서 송신 규칙을 지정합니다.

읽기 전용 복제본이 VPC에서 실행 중인 경우 보안 그룹 송신 규칙 이외에 VPC ACL 규칙을 구성합니다. Amazon VPC 네트워크 ACL에 대한 자세한 내용은 네트워크 ACL을 참조하십시오.

  • 원본 MySQL DB 인스턴스의 IP 주소에서 포트 1024-65535로의 TCP 트래픽을 허용하는 ACL 송신 규칙

  • ACL 송신 규칙: 원본 MySQL DB 인스턴스의 포트와 IP 주소로의 아웃바운드 TCP 트래픽 허용

복제 원본 준비

MySQL DB 인스턴스를 복제 소스로 준비합니다.

클라이언트 컴퓨터에서 복제를 설정하는 동안 이진 로그를 저장하기에 충분한 디스크 공간을 사용할 수 있는지 확인합니다.

Creating a User For Replication 섹션의 지침에 따라 복제 계정을 만듭니다.

복제 원본 MySQL DB 인스턴스를 실행 중인 시스템에서 복제 중에 외부 MySQL 읽기 전용 복제본의 연결을 허용하도록 송신 규칙을 구성합니다. Amazon RDS 외부에서 실행 중인 MySQL 읽기 전용 복제본의 IP 주소에서 Amazon RDS 인스턴스가 사용하는 포트에 대한 TCP 연결을 허용하는 수신 규칙을 지정합니다.

VPC에서 Amazon RDS 인스턴스가 실행 중인 경우 VPC 보안 그룹에서 수신 규칙을 지정합니다. Amazon RDS 인스턴스가 VPC에서 실행 중이지 않은 경우에는 데이터베이스 보안 그룹에서 수신 규칙을 지정합니다.

Amazon RDS 인스턴스가 VPC에서 실행 중인 경우 보안 그룹 수신 규칙 이외에 VPC ACL 규칙을 구성합니다. Amazon VPC 네트워크 ACL에 대한 자세한 내용은 네트워크 ACL를 참조하십시오.

  • ACL 수신 규칙: 외부 MySQL 읽기 전용 복제본의 IP 주소에서 Amazon RDS 인스턴스가 사용하는 포트에 대한 TCP 연결을 허용합니다.

  • ACL 송신 규칙: 포트 1024-65535에서 외부 MySQL 읽기 전용 복제본의 IP 주소로 TCP 연결을 허용합니다.

내보내기 중에 아무런 이진 로그도 제거되지 않을 만큼 백업 보존 기간이 충분히 길게 설정되어 있는지 확인합니다. 내보내기가 완료되기 전에 제거되는 로그가 있으면, 복제를 처음부터 다시 시작해야 합니다. 백업 보존 기간 설정에 대한 자세한 정보는 백업 작업 단원을 참조하십시오.

mysql.rds_set_configuration 저장 프로시저를 사용하여 내보내기 중에 이진 로그가 제거되지 않을 만큼 충분히 길게 이진 로그 보존 기간을 설정합니다. 자세한 내용은 MySQL 이진 로그 액세스 단원을 참조하십시오.

원본 인스턴스의 이진 로그가 제거되지 않도록 더욱 확실히 하기 위해, 원본 인스턴스에서 Amazon RDS 읽기 전용 복제본을 만듭니다. 자세한 내용은 읽기 전용 복제본 생성 단원을 참조하십시오. Amazon RDS 읽기 전용 복제본이 생성된 후, mysql.rds_stop_replication 저장 프로시저를 호출하여 복제 프로세스를 중지합니다. 원본 인스턴스가 더 이상 이진 로그 파일을 제거하지 않을 것이므로, 복제 프로세스에 이런 파일을 사용할 수 있습니다.

데이터베이스 복사

RDS 읽기 전용 복제본에서 MySQL SHOW SLAVE STATUS 문을 실행하고 다음 값을 기록합니다.

  • master_host

  • master_port

  • master_log_file

  • exec_master_log_pos

mysqldump 유틸리티를 사용하여 Amazon RDS에서 로컬 클라이언트 컴퓨터로 데이터를 복사하는 스냅샷을 만듭니다. 그런 다음, RDS 외부에서 실행 중인 MySQL 인스턴스로 데이터를 로드하는 또 다른 유틸리티를 실행합니다. 클라이언트 컴퓨터에 복제할 데이터베이스의 mysqldump 파일을 보관하기에 충분한 공간이 있는지 확인합니다. 매우 큰 데이터베이스의 경우 이 프로세스는 여러 시간이 걸릴 수 있습니다. Creating a Dump Snapshot Using mysqldump 섹션의 지침을 따르십시오.

다음 예제에서는 클라이언트에서 mysqldump를 실행한 후 덤프를 mysql 클라이언트 유틸리티로 파이프하여 데이터를 외부 MySQL 인스턴스로 로드하는 방법을 보여줍니다.

Linux, OS X, Unix의 경우:

Copy
mysqldump -h RDS instance endpoint \ -u user \ -p password \ --port=3306 \ --single-transaction \ --routines \ --triggers \ --databases database database2 \ --compress \ --compact | mysql \ -h MySQL host \ -u master user \ -p password \ --port 3306

Windows의 경우:

Copy
mysqldump -h RDS instance endpoint ^ -u user ^ -p password ^ --port=3306 ^ --single-transaction ^ --routines ^ --triggers ^ --databases database database2 ^ --compress ^ --compact | mysql ^ -h MySQL host ^ -u master user ^ -p password ^ --port 3306

다음 예제에서는 클라이언트에서 mysqldump를 실행하고 덤프를 파일에 쓰는 방법을 보여줍니다.

Linux, OS X, Unix의 경우:

Copy
mysqldump -h RDS instance endpoint \ -u user \ -p password \ --port=3306 \ --single-transaction \ --routines \ --triggers \ --databases database database2 > path/rds-dump.sql

Windows의 경우:

Copy
mysqldump -h RDS instance endpoint ^ -u user ^ -p password ^ --port=3306 ^ --single-transaction ^ --routines ^ --triggers ^ --databases database database2 > path\rds-dump.sql

내보내기 완료

mysqldump 파일을 로드하여 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에 데이터베이스를 만든 후, 원본 MySQL DB 인스턴스에서 복제를 시작하여 Amazon RDS 읽기 전용 복제본에서 복제를 중지한 후에 원본에 발생한 모든 변경 내용을 내보냅니다.

MySQL CHANGE MASTER 문을 사용하여 외부 MySQL 인스턴스를 구성합니다. 사용자에게 부여된 REPLICATION SLAVE 권한의 ID와 암호를 지정합니다. RDS 읽기 전용 복제본에서 실행한 Mysql SHOW SLAVE STATUS 문에서 얻은 master_host, master_port, relay_master_log_fileexec_master_log_pos 값을 지정합니다. 자세한 내용은 Setting the Master Configuration on the Slave를 참조하십시오.

MySQL START SLAVE 명령을 사용하여 원본 MySQL DB 인스턴스와 MySQL 복제본에서 복제를 시작합니다.

Amazon RDS 인스턴스에서 MySQL SHOW SLAVE STATUS 명령을 실행하여 이 인스턴스가 읽기 전용 복제본으로 작동 중인지 확인합니다. 결과 해석에 대한 자세한 내용은 SHOW SLAVE STATUS Syntax를 참조하십시오.

MySQL 인스턴스에서의 복제가 Amazon RDS 원본을 따라잡은 후, MySQL STOP SLAVE 명령을 사용하여 원본 MySQL DB 인스턴스에서의 복제를 종료합니다.

Amazon RDS 읽기 전용 복제본에서 mysql.rds_start_replication 저장 프로시저를 호출합니다. 그러면 Amazon RDS가 원본 MySQL DB 인스턴스에서 이진 로그 파일 제거를 시작할 수 있습니다.