Amazon S3에 Amazon RDS MySQL DB 인스턴스 binlog 파일 업로드를 예약하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 9일

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 버킷과 동기화하십시오.

해결 방법

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을 설치하고 mysqlmysqlbinlog 명령을 실행하십시오.

$ 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.    binlog 파일을 S3 버킷과 동기화하도록 cron 작업을 설정하십시오.

$ crontab -e
0 0  * * * /home/ec2-user/scheduler/RDS-binlog-to-s3.sh

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?