

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Percona XtraBackup, Amazon EFS, Amazon S3을 사용하여 온프레미스 MySQL 데이터베이스를 Aurora MySQL로 마이그레이션하기
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3"></a>

*Rohan Jamadagni, Udayasimha Theepireddy, Sajith Menon, Amazon Web Services*

## 요약
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-summary"></a>

이 패턴은 Percona Xtrabackup을 사용하여 대규모 온프레미스 MySQL 데이터베이스를 Amazon Aurora MySQL로 효율적으로 마이그레이션하는 방법을 설명합니다. Percona Xtrabackup은 MySQL 기반 서버를 위한 오픈 소스, 논블로킹 백업 유틸리티입니다. 이 패턴은 Amazon Elastic File System(Amazon EFS)을 사용하여 백업을 Amazon Simple Storage Service(Amazon S3)에 업로드하는 시간을 줄이고 백업을 Amazon Aurora MySQL로 복원하는 방법을 보여줍니다. 또한 이 패턴은 대상 Aurora MySQL 데이터베이스에 적용할 바이너리 로그의 수를 최소화하기 위해 증분 Percona 백업을 만드는 방법에 대한 세부 정보를 제공합니다. 

## 사전 조건 및 제한 사항
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-prereqs"></a>

**사전 조건 **
+ 활성 상태의 AWS 계정
+ AWS Identity and Access Management(IAM) 역할 및 정책을 만들 권한
+ 온프레미스 MySQL 데이터베이스와 AWS의 Virtual Private Cloud(VPC) 간 네트워크 연결

**제한 사항 **
+ 소스 서버는 Network File System(NFS) 클라이언트(nfs-utils/nfs-common)를 설치할 수 있는 Linux 기반 시스템이어야 합니다.
+ 백업 파일 업로드에 사용되는 S3 버킷은 서버 측 암호화(SSE-S3/SSE-KMS)만 지원합니다.
+ Amazon S3는 백업 파일 크기를 5TB로 제한합니다. 백업 파일이 5TB를 초과하면 파일을 여러 개의 작은 크기의 파일로 나눌 수 있습니다.
+ S3 버킷에 업로드되는 소스 파일의 수는 100만 개를 초과할 수 없습니다.
+ 이 패턴은 Percona Xtrabackup 전체 백업 및 증분 백업만 지원합니다. `--tables`, `--tables-exclude`, `--tables-file`, `--databases`, `--databases-exclude`, 또는 `--databases-file`을 사용하는 부분 백업을 지원하지 않습니다.
+ Aurora는 소스 MySQL 데이터베이스에서 사용자, 함수, 저장 프로시저 또는 시간대 정보를 복원하지 않습니다.

**제품 버전**
+ 소스 데이터베이스는 MySQL 버전 5.5, 5.6, 5.7이어야 합니다.
+ MySQL 5.7의 경우 Percona XtraBackup 2.4를 사용해야 합니다.
+ MySQL 5.6과 5.6의 경우 Percona XtraBackup 2.3 또는 2.4를 사용해야 합니다.

## 아키텍처
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-architecture"></a>

**소스 기술 스택**
+ Linux 기반 운영 체제
+ MySQL 서버
+ Percona XtraBackup

**대상 기술 스택**
+ Amazon Aurora
+ Amazon S3
+ Amazon EFS

**대상 아키텍처 **

![\[Percona Xtrabackup을 사용하여 Amazon Aurora MySQL로 대규모 MySQL 데이터베이스를 마이그레이션하는 아키텍처입니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/bf327776-bafd-484d-9ae2-a6f5c8af6edd/images/7a410539-1511-4106-90e2-8c0c8e95f92b.png)


## 도구
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-tools"></a>

*서비스*
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html)는 MySQL 배포를 간편하고 비용 효율적으로 설정, 운영 및 확장할 수 있게 해 준 완전 관리형 관계형 데이터베이스입니다. Aurora MySQL은 MySQL의 드롭인 대체품입니다.
+ [Amazon Elastic File System(Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)은 AWS 클라우드에서 공유 파일 시스템을 생성하고 구성하는 데 도움이 됩니다.
+ [Amazon Simple Storage Service(Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

**기타 도구**
+ [Percona Xtrabackup은](https://www.percona.com/doc/percona-xtrabackup/2.4/index.html) 데이터베이스를 중단하거나 차단하지 않고 MySQL 데이터베이스의 스트리밍, 압축 및 증분 백업을 수행하는 오픈 소스 유틸리티입니다.

## 에픽
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-epics"></a>

### Amazon EFS 파일 시스템 생성
<a name="create-an-amazon-efs-file-system"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| Amazon EFS 탑재 대상과 연결할 보안 그룹을 생성합니다. | AWS Transit Gateway를 통해 온프레미스 데이터베이스에 대한 VPN 연결로 구성된 VPC에 보안 그룹을 생성합니다. 이 스토리와 다른 스토리에 설명된 명령 및 단계에 대한 자세한 내용은 이 패턴 끝에 있는 "관련 리소스" 섹션의 링크를 참조하세요. | AWS DevOps/데이터베이스 관리자 | 
| 보안 그룹 규칙을 편집합니다. | 유형 NFS, 포트 2049, 온프레미스 데이터베이스 서버의 IP 범위를 소스로 사용하여 인바운드 규칙을 추가합니다. 기본적으로 이 아웃바운드 규칙은 모든 트래픽이 나가도록 허용합니다. 그렇지 않은 경우 아웃바운드 규칙을 추가하여 NFS 포트에 대한 연결을 엽니다. 포트 2049\$1 (소스: 동일 보안 그룹의 보안 그룹 ID)와 포트 22(소스: EC2 인스턴스에 연결할 IP 범위)라는 두 개의 인바운드 규칙을 더 추가합니다. | AWS DevOps/데이터베이스 관리자 | 
| 파일 시스템을 생성합니다. | 탑재 대상에서는 이전 스토리에서 만든 VPC와 보안 그룹을 사용합니다. 온프레미스 데이터베이스의 I/O 요구 사항에 따라 처리량 모드와 성능을 선택합니다. 필요에 따라 저장되어 있는 데이터 암호화를 활성화합니다. | AWS DevOps/데이터베이스 관리자 | 

### 파일 시스템을 탑재
<a name="mount-the-file-system"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| EC2 인스턴스와 연결할 IAM 인스턴스 프로파일 역할을 생성합니다. | Amazon S3에서 객체를 업로드하고 액세스할 권한이 있는 IAM 역할을 생성합니다. 백업이 정책 리소스로 저장되는 S3 버킷을 선택합니다. | AWS DevOps | 
| EC2 인스턴스 생성합니다. | Linux 기반 EC2 인스턴스를 시작하고 이전 단계에서 생성한 IAM 인스턴스 프로파일 역할과 앞서 생성한 보안 그룹을 연결합니다. | AWS DevOps | 
| NFS 클라이언트를 설치합니다. | 온프레미스 데이터베이스 서버와 EC2 인스턴스에 NFS 클라이언트를 설치합니다. 설치 지침은 "추가 정보" 섹션을단원을 참조하세요. | DevOps | 
| Amazon EFS 파일 시스템을 마운트합니다. | Amazon EFS 파일 시스템을 온프레미스와 EC2 인스턴스에 탑재합니다. 각 서버에서 백업을 저장할 디렉터리를 만들고 탑재 대상 엔드포인트를 사용하여 파일 시스템을 탑재합니다. 예제를 보려면 "추가 정보" 섹션을 참조하세요. | DevOps | 

### MySQL 소스 데이터베이스의 백업 생성
<a name="make-a-backup-of-the-mysql-source-database"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| Percona XtraBackup 설치합니다. | 온프레미스 데이터베이스 서버에 Percona Xtrabackup 2.3 또는 2.4(MySQL 데이터베이스 버전에 따라 다름)를 설치합니다. 설치 링크는 "관련 리소스" 섹션을 참조하세요. | 데이터베이스 관리자 | 
| 소스 데이터베이스의 스키마와 테이블 수를 계수합니다. | 소스 MySQL 데이터베이스의 스키마와 객체 수를 수집하고 기록합니다. 마이그레이션 후 이 수를 사용하여 Aurora MySQL 데이터베이스를 검증합니다. | 데이터베이스 관리자 | 
| (선택 사항) 소스 데이터베이스의 최신 바이너리 로그 시퀀스를 기록해 둡니다. | 소스 데이터베이스와 Aurora MySQL 간에 바이너리 로그 복제를 설정하여 가동 중지 시간을 최소화하려면 이 단계를 수행합니다. log-bin을 활성화해야 하고 server\$1id는 고유해야 합니다. 백업을 시작하기 직전에 소스 데이터베이스의 현재 바이너리 로그 시퀀스를 기록해 둡니다. 전체 백업만 사용하려는 경우 전체 백업 직전에 이 단계를 수행합니다. 전체 백업 후 증분 백업을 수행하려는 경우 Aurora MySQL DB 인스턴스에서 복원할 최종 증분 백업 직전에 이 단계를 수행합니다. | 데이터베이스 관리자 | 
| 소스 MySQL 데이터베이스의 전체 백업을 시작합니다. | Percona XtraBackup을 사용하여 MySQL 소스 데이터베이스의 전체 백업을 수행합니다. 전체 및 증분 백업 명령의 예는 "추가 정보" 섹션을 참조하세요. | 데이터베이스 관리자 | 
| (선택 사항) Percona XtraBackup을 사용한 증분 백업을 수행합니다. | 증분 백업을 사용하면 소스 데이터베이스를 Aurora MySQL과 동기화하기 위해 적용해야 하는 바이너리 로그의 양을 줄일 수 있습니다. 용량이 크고 트랜잭션이 많은 데이터베이스는 백업 중에 대량의 바이너리 로그를 생성할 수 있습니다. 증분 백업을 수행하여 공유 Amazon EFS 파일 시스템에 저장하면 데이터베이스 백업 및 업로드 시간을 크게 줄일 수 있습니다. 자세한 내용은 "추가 정보" 섹션을 참조하세요. Aurora로 마이그레이션 프로세스를 시작할 준비가 될 때까지 증분 백업을 계속 수행합니다. | 데이터베이스 관리자 | 
| 백업을 준비합니다. | 이 단계에서는 백업 중에 진행 중이었던 트랜잭션의 백업에 트랜잭션 로그를 적용합니다. 마지막 백업을 제외하고 각 증분 백업에 트랜잭션 로그(--apply-log-only)를 계속 적용하여 백업을 병합합니다. 예제를 보려면 "추가 정보" 섹션을 참조하세요. 이 단계 후에 전체 병합 백업은 \$1/<efs\$1mount\$1name>/fullbackup에 저장됩니다. | 데이터베이스 관리자 | 
| 최종 병합 백업을 압축하고 분할합니다. | 최종 병합 백업을 준비한 후에는 tar, zip 및 split 명령을 사용하여 백업의 더 작은 압축 파일을 생성합니다. 예제를 보려면 "추가 정보" 섹션을 참조하세요. | 데이터베이스 관리자 | 

### Aurora MySQL DB 클러스터에 백업 복원
<a name="restore-the-backup-to-an-aurora-mysql-db-cluster"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| Amazon S3로 백업을 업로드합니다. | 백업 파일이 저장되는 Amazon EFS 파일 시스템은 온프레미스 데이터베이스와 EC2 인스턴스 모두에 탑재되므로 EC2 인스턴스에서 백업 파일을 쉽게 사용할 수 있습니다. Secure Shell (SSH)을 사용하여 EC2 인스턴스에 연결하고 압축된 백업 파일을 신규 또는 기존 S3 버킷에 업로드합니다 (예: aws s3 sync \$1/<efs\$1mount\$1name>/fullbackup s3://<bucket\$1name>/fullbackup. 자세한 내용은 "관련 리소스" 섹션의 링크를 참조하세요. | AWS DevOps | 
| Aurora가 Amazon S3에 액세스할 수 있도록 서비스 역할을 생셩합니다. | "rds.amazonaws.com"을 신뢰하는 IAM 역할과 Aurora가 백업 파일이 저장된 S3 버킷에 액세스할 수 있도록 하는 정책을 생성합니다. 필요한 권한은 ListBucket, GetObject, 그리고 GetObject Version입니다. | AWS DevOps | 
| Aurora용 네트워킹 구성을 생성합니다. | 두 개 이상의 가용 영역과 소스 데이터베이스로의 아웃바운드 연결을 허용하는 서브넷 라우팅 테이블 구성을 포함하는 클러스터 DB 서브넷 그룹을 생성합니다. 온프레미스 데이터베이스가 아웃바운드에 연결하는 것을 허용하고 관리자가 Aurora DB 클러스터에 연결할 수 있도록 허용하는 보안 그룹을 생성합니다. 자세한 내용은 "관련 리소스" 섹션의 링크를 참조하세요. | AWS DevOps/데이터베이스 관리자 | 
| 백업을 Aurora MySQL DB 클러스터에 복원합니다. | Amazon S3에 업로드한 백업에서 데이터를 복원합니다. 소스 데이터베이스의 MySQL 버전을 지정하고, 백업 파일을 업로드한 S3 버킷 이름 및 폴더 경로 접두사(예: "추가 정보" 섹션의 예제에서는 "fullbackup")를 제공하며, Aurora가 Amazon S3에 액세스할 수 있도록 권한을 부여하기 위해 생성한 IAM 역할을 제공합니다. | AWS DevOps/데이터베이스 관리자 | 
| Aurora MySQL 데이터베이스를 검증합니다. | 복원된 Aurora DB 클러스터의 스키마 및 객체 수를 소스 데이터베이스에서 가져온 수와 비교하여 검증합니다. | 데이터베이스 관리자 | 
| 빈로그 복제를 설정합니다. | Aurora DB 클러스터에 복원된 마지막 백업을 만들기 전에 앞서 기록해 둔 바이너리 로그 시퀀스를 사용합니다. 소스 데이터베이스에서 복제 사용자를 생성하고 "추가 정보" 섹션의 지침에 따라 적절한 권한을 제공하고, Aurora에서 복제를 활성화하고, 복제가 동기화되었는지 확인합니다. | AWS DevOps/데이터베이스 관리자 | 

## 관련 리소스
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-resources"></a>

**Amazon Elastic 파일 시스템 생성**
+ [보안 그룹 생성](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)(Amazon VPC 설명서)
+ [트랜짓 게이트웨이 VPN 연결](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpn-attachments.html)(Amazon VPC 설명서)
+ [AWS Transit Gateway를 사용하여 VPN 처리량 규모 조정](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/)(네트워킹 및 콘텐츠 전송 블로그)
+ [Amazon EFS 파일 시스템 생성](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step1-efs)(Amazon EFS 설명서)
+ [탑재 대상 생성](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html)(Amazon EFS 설명서)
+ [저장 데이터 암호화](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html)(Amazon EFS 설명서)

**EFS 파일 시스템 탑재**
+ [Amazon EC2의 IAM 역할](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)(Amazon EC2 설명서)
+ [Amazon EC2 Linux 인스턴스 시작](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance)(Amazon EC2 설명서)
+ [NFS 클라이언트 설치](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs)(Amazon EFS 설명서)
+ [온프레미스 클라이언트에 Amazon EFS 파일 시스템 탑재](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect)(Amazon EFS 설명서)
+ [EFS 파일 시스템 탑재](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html)(Amazon EFS 설명서)

**MySQL 소스 데이터베이스의 백업 생성**
+ [Percona XtraBackup 2.3 설치 (Percona XtraBackup 설명서)](https://www.percona.com/doc/percona-xtrabackup/2.3/installation.html)
+ [Percona XtraBackup 2.4 설치 (Percona XtraBackup 설명서)](https://www.percona.com/doc/percona-xtrabackup/2.4/installation.html) 
+ [복제 마스터 구성 설정](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html)(MySQL 설명서)
+ [외부 MySQL 데이터베이스의 데이터를 Aurora MySQL DB 클러스터로 마이그레이션](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html)(Aurora 설명서)
+ [증분 백업](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html)(Percona Xtrabackup 설명서)

**Amazon Aurora MySQL로 백업 복원**
+ [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#create-bucket-intro)(Amazon S3 설명서)
+ [SSH를 사용하여 Linux 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)(Amazon Ec2 설명서)
+ [AWS CLI 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)(AWS CLI 설명서)
+ [동기화 명령](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html)(AWS CLI 명령 참조)
+ [Amazon S3 리소스에 액세스할 수 있는 IAM 정책 생성](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html)(Aurora 설명서)
+ [DB 클러스터 사전 요구 사항](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html#Aurora.CreateInstance.Prerequisites)(Aurora 설명서)
+ [DB 서브넷 그룹을 사용한 작업](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets)(Aurora 설명서)
+ [프라이빗 DB 인스턴스에 대한 VPC 보안 그룹 생성](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB)(Aurora 설명서)
+ [S3 버킷에서 Aurora MySQL DB 클러스터 복원](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.Restore)(Aurora 설명서)
+ [MySQL 또는 다른 Aurora DB 클러스터를 사용한 복제 설정 ](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html#AuroraMySQL.Replication.MySQL.SettingUp)(Aurora 설명서)
+ [mysql.rds\$1set\$1external\$1master procedure](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_external_master.html)(Amazon RDS SQL 기반 MySQL 참조)
+ [mysql.rds\$1start\$1replication procedure](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_start_replication.html)(Amazon RDS SQL 기반 MySQL 참조)

**추가 참조**
+ [외부 MySQL 데이터베이스의 데이터를 Aurora MySQL DB 클러스터로 마이그레이션](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html)(Aurora 설명서)
+ [MySQL 서버 다운로드](https://downloads.mysql.com/archives/community/)(Oracle 웹사이트)

**자습서 및 동영상 **
+  [Amazon S3를 사용하여 MySQL 데이터를 Aurora MySQL DB 클러스터로 마이그레이션](https://aws.amazon.com/premiumsupport/knowledge-center/migrate-mysql-aurora-innobackup/)(AWS 지식 센터)
+  [Amazon EFS 설치 및 탑재](https://www.youtube.com/watch?v=NR8rVsSn_dY)(동영상)

## 추가 정보
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-additional"></a>

**NFS 클라이언트 설치**
+ Red Hat 또는 유사한 Linux 운영 체제를 사용하는 경우 다음 명령을 사용합니다. 

```
$ sudo yum -y install nfs-utils
```
+ Ubuntu 또는 유사한 Linux 운영 체제를 사용하는 경우 다음 명령을 사용합니다. 

```
$ sudo apt-get -y install nfs-common
```

자세한 내용은 Amazon EFS 설명서의 [안내](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs)를 참조하세요.

**Amazon EFS 파일 시스템 탑재**

다음 명령을 사용합니다.

```
mkdir ~/<efs_mount_name>
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/<efs_mount_name>
```

자세한 내용은 Amazon EFS 설명서의 [안내](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect)와 [EFS 파일 시스템 탑재](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html)를 참조하세요.

**MySQL 소스 데이터베이스의 백업 생성**

*전체 백업*

다음과 같은 명령을 사용합니다. 이 명령은 백업을 가져와 압축하여 각각 1GB의 작은 청크로 분할합니다.

```
xtrabackup --backup --user=dbuser --password=<password> --binlog-info=AUTO --stream=tar --target-dir=~/<efs_mount_name>/fullbackup | gzip - | split -d --bytes=1024MB - ~/<efs_mount_name>/fullbackup/backup.tar.gz &
```

전체 백업 후 후속 증분 백업을 생성하려는 경우 백업을 압축하여 분할하지 않습니다. 대신 다음과 유사한 명령을 사용합니다.

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/fullbackup/
```

*증분 백업*

`--incremental-basedir` 파라미터에는 전체 백업 경로를 사용합니다. 예:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/incremental/backupdate --incremental-basedir=~/<efs_mount_name>/fullbackup
```

여기서 *basedir은* 전체 백업 및 xtrabackup\$1checkpoints 파일의 경로입니다.

백업 생성에 관한 자세한 내용은 Aurora 설명서의 [외부 MySQL 데이터베이스에서 Amazon Aurora MySQL DB 클러스터로 데이터 마이그레이션](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html)을 참조하세요.

**백업 준비**

전체 백업을 준비하려면:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup
```

증분 백업을 준비하려면:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06062020
```

최종 백업을 준비하려면:

```
xtrabackup --prepare --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06072020
```

자세한 내용은 Percona Xtrabackup 설명서의 [증분 백업](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html)을 참조하세요.

**병합된 백업의 압축 및 분할**

\$1/<efs\$1mount\$1name>/fullbackup에서 병합된 백업을 압축하려면:

```
tar -zcvf <backupfilename.tar.gz> ~/<efs_mount_name>/fullbackup
```

백업을 분할하려면:

```
split -d -b1024M --verbose  <backupfilename.tar.gz> <backupfilename.tar.gz>
```

**빈로그 복제 설정**

소스 데이터베이스에서 복제 사용자를 생성하고 적절한 권한을 제공하려면:

```
CREATE USER 'repl_user'@'' IDENTIFIED BY ''; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'';
```

Aurora DB 클러스터에 연결하여 Aurora에서 복제를 활성화하려면 DB 클러스터 파라미터 그룹에서 바이너리 로그를 활성화합니다. `binlog_format = mixed`을 설정합니다(혼합 모드 권장됨). 이 변경 사항을 적용하려면 업데이트를 적용하기 위해 인스턴스를 다시 시작해야 합니다.

```
CALL mysql.rds_set_external_master ('sourcedbinstanceIP', sourcedbport, 'repl_user', '', 'binlog_file_name', binlog_file_position, 0); CALL mysql.rds_start_replication;
```

복제가 동기화되어 있는지 확인하려면:

```
SHOW Slave Status \G;
```

**Seconds Behind Master** 필드는 Aurora가 온프레미스 데이터베이스로부터 얼마나 뒤처져 있는지를 보여줍니다.