Amazon S3에 Amazon RDS MySQL DB 인스턴스 binlog 파일 업로드를 예약하려면 어떻게 해야 합니까?
최종 업데이트 날짜: 2020년 6월 10일
Amazon Relational Database Service(Amazon RDS) MySQL DB 인스턴스 binlog 파일을 Amazon Simple Storage Service(Amazon S3)에 백업해야 합니다. 파일 다운로드 및 파일을 S3 버킷과 동기화하는 작업을 예약하려면 어떻게 해야 합니까?
간략한 설명
기본적으로, binlog 파일을 Amazon RDS MySQL DB 인스턴스에서 선택한 S3 버킷에 복사할 수 없습니다. 대신 binlog 파일을 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 다운로드하십시오. 그런 다음, cron 작업을 사용하여 파일을 S3 버킷과 동기화하십시오.
해결 방법
참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
1. MySQL 이진 로그에 액세스할 수 있도록 RDS DB 인스턴스에서 binlog 파일 보존을 활성화하십시오. 다음은 보존 기간을 24시간으로 설정하는 예제입니다.
mysql> call mysql.rds_set_configuration('binlog retention hours', 24);
2. RDS MySQL DB 인스턴스에서 다음 명령을 실행하십시오. binlog retention hours 파라미터를 24(또는 1일)로 올바로 설정했는지 확인합니다.
mysql> call mysql.rds_show_configuration;
예상 출력:
+------------------------+-------+-----------------------------------------------------------------------------------------------------------+
| name | value | description |
+------------------------+-------+-----------------------------------------------------------------------------------------------------------+
| binlog retention hours | 24 | binlog retention hours specifies the duration in hours before binary logs are automatically deleted. |
| source delay | 0 | source delay specifies replication delay in seconds between current instance and its master. |
| target delay | 0 | target delay specifies replication delay in seconds between current instance and its future read-replica. |
+------------------------+-------+-----------------------------------------------------------------------------------------------------------+
3. EC2 인스턴스에 MySQL을 설치하고 mysql 및 mysqlbinlog 명령을 실행하십시오.
$ sudo yum update
$ sudo yum install mysql57
4. 다음 명령을 실행하여 유틸리티를 올바르게 설치했는지 확인하십시오.
$ rpm -qa|grep mysql
예상 출력:
mysql57-server-5.7.21-2.6.amzn1.x86_64
mysql57-common-5.7.21-2.6.amzn1.x86_64
mysql57-errmsg-5.7.21-2.6.amzn1.x86_64
mysql57-5.7.21-2.6.amzn1.x86_64
5. S3 버킷 생성 및 AWS Identity and Access Management(IAM) 사용자 계정 생성 작업을 수행하십시오.
6. IAM 사용자에게 S3 버킷에 액세스할 수 있는 권한을 부여하십시오.
7. 아직 수행하지 않은 경우, AWS CLI(AWS 명령줄 인터페이스)를 설치한 다음 AWS CLI를 구성합니다.
8. GitHub 웹사이트에서 rds-binlog-to-s3 스크립트를 다운로드합니다. 이 스크립트는 binlog 파일을 다운로드한 후 S3 버킷에 업로드합니다.
9. 스크립트 권한을 수정하십시오.
$ chmod 744 rds-binlog-to-s3.sh
10. AWS CLI를 사용해 EC2 인스턴스에서 rds-binlog-to-s3 스크립트 실행:
$ rds-binlog-to-s3.sh
11. cron 작업을 설정해 binlog 파일을 S3 버킷에 동기화:
$ crontab -e
0 0 * * * /home/ec2-user/scheduler/RDS-binlog-to-s3.sh