Amazon RDS for MySQL DB 인스턴스의 binlog 파일을 Simple Storage Service(Amazon S3)에 업로드하도록 예약하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Relational Database Service(Amazon RDS) for MySQL DB 인스턴스 binlog 파일을 Amazon Simple Storage Service(Amazon S3)에 백업해야 합니다. 파일을 다운로드하고 파일을 S3 버킷과 동기화하는 작업은 어떻게 예약하나요?

간략한 설명

기본적으로 binlog 파일은 Amazon RDS for 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.    Amazon RDS for 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 Command Line Interface를 설치한 다음 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 스크립트를 실행합니다. 추가할 mysqlbinlog 옵션을 모두 포함하도록 mysqlbinlog 명령을 수정합니다.

$ rds-binlog-to-s3.sh

11.    cron 작업을 설정해 binlog 파일을 S3 버킷에 동기화:

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

관련 정보

MySQL 데이터베이스 로그 파일