본문으로 바로가기
본문으로 바로가기

RDS MySQL 원본 설정 가이드

이 단계별 가이드는 Amazon RDS MySQL을 구성하여 MySQL ClickPipe를 사용해 데이터를 ClickHouse Cloud로 복제하는 방법을 설명합니다. MySQL CDC와 관련된 일반적인 질문은 MySQL FAQs 페이지를 참고하십시오.

바이너리 로그 보존 활성화

바이너리 로그는 MySQL 서버 인스턴스에서 수행된 데이터 변경 사항에 대한 정보를 포함하는 로그 파일들의 모음이며, 복제를 위해서는 바이너리 로그 파일이 필요합니다. RDS MySQL에서 바이너리 로그 보존을 구성하려면 바이너리 로깅을 활성화하고 binlog 보존 기간을 늘려야 합니다.

1. 자동 백업을 통해 바이너리 로깅 활성화

자동 백업 기능은 MySQL에서 바이너리 로깅이 활성화되어 있는지를 결정합니다. 자동 백업은 RDS 콘솔에서 해당 인스턴스를 선택한 후 Modify > Additional configuration > Backup으로 이동하여 Enable automated backups 체크박스를 선택(이미 선택되어 있지 않은 경우)해 구성할 수 있습니다.

RDS에서 자동 백업을 활성화하는 화면

복제 사용 사례에 따라 Backup retention period를 충분히 긴 값으로 설정할 것을 권장합니다.

2. binlog 보존 기간 늘리기

참고

ClickPipes가 복제를 다시 시작하려고 할 때, 설정된 binlog 보존 값 때문에 필요한 binlog 파일이 이미 삭제된 경우 ClickPipe는 오류 상태로 전환되며 재동기화(resync)가 필요합니다.

기본적으로 Amazon RDS는 가능한 한 빨리 바이너리 로그를 삭제합니다(즉, lazy purging). 장애 상황에서도 복제를 위해 필요한 바이너리 로그 파일을 확보할 수 있도록, binlog 보존 기간을 최소 72시간으로 늘릴 것을 권장합니다. 바이너리 로그 보존 기간(binlog retention hours)을 설정하려면 mysql.rds_set_configuration 프로시저를 사용하십시오:

mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);

이 구성이 설정되지 않았거나 간격이 너무 짧게 설정되면, 바이너리 로그에 누락 구간이 생겨 ClickPipes가 복제를 재개하지 못할 수 있습니다.

binlog 설정 구성

파라미터 그룹은 RDS 콘솔에서 MySQL 인스턴스를 선택한 후 Configuration 탭으로 이동하면 확인할 수 있습니다.

MySQL 클러스터를 사용하는 경우, 아래 파라미터는 DB 인스턴스 그룹이 아니라 DB 클러스터 파라미터 그룹에서 찾을 수 있습니다.

RDS에서 파라미터 그룹을 찾는 위치

파라미터 그룹 링크를 클릭하면 해당 전용 페이지로 이동합니다. 오른쪽 상단에 Edit 버튼이 표시됩니다.

파라미터 그룹 편집

다음 파라미터를 다음과 같이 설정해야 합니다:

  1. binlog_formatROW로 설정합니다.
Binlog format을 ROW로 설정
  1. binlog_row_metadataFULL로 설정합니다.
Binlog row metadata를 FULL로 설정
  1. binlog_row_imageFULL로 설정합니다.
Binlog row image를 FULL로 설정

그런 다음 오른쪽 상단의 Save Changes를 클릭합니다. 변경 사항을 적용하려면 인스턴스를 재부팅해야 할 수 있습니다. 이를 확인하려면 RDS 인스턴스의 Configuration 탭에서 파라미터 그룹 링크 옆에 Pending reboot 표시가 있는지 확인합니다.

GTID 모드 활성화

MySQL ClickPipe는 GTID 모드 없이도 복제를 지원합니다. 그러나 성능 향상과 더 쉬운 문제 해결을 위해 GTID 모드를 활성화할 것을 권장합니다.

Global Transaction Identifiers (GTIDs)는 MySQL에서 커밋된 각 트랜잭션에 할당되는 고유 ID입니다. GTID는 binlog 기반 복제를 단순화하고 문제 해결을 더 용이하게 만듭니다. MySQL ClickPipe가 GTID 기반 복제를 사용할 수 있도록 GTID 모드를 활성화할 것을 권장합니다.

GTID 기반 복제는 Amazon RDS for MySQL 버전 5.7, 8.0, 8.4에서 지원됩니다. Aurora MySQL 인스턴스에서 GTID 모드를 활성화하려면 다음 단계를 따르십시오.

  1. RDS 콘솔에서 MySQL 인스턴스를 클릭합니다.
  2. Configuration 탭을 클릭합니다.
  3. 파라미터 그룹 링크를 클릭합니다.
  4. 오른쪽 상단의 Edit 버튼을 클릭합니다.
  5. enforce_gtid_consistencyON으로 설정합니다.
  6. gtid-modeON으로 설정합니다.
  7. 오른쪽 상단의 Save Changes를 클릭합니다.
  8. 변경 사항이 적용되도록 인스턴스를 재부팅합니다.
GTID enabled

MySQL ClickPipe는 GTID 모드 없이도 복제를 지원합니다. 그러나 성능 향상과 더 쉬운 문제 해결을 위해 GTID 모드를 활성화할 것을 권장합니다.

데이터베이스 사용자 구성

관리자 권한을 가진 사용자로 RDS MySQL 인스턴스에 연결한 후 다음 명령을 실행합니다.

  1. ClickPipes용 전용 사용자를 생성합니다.

    CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
    
  2. 스키마 권한을 부여합니다. 다음 예시는 mysql 데이터베이스에 대한 권한을 보여줍니다. 복제하려는 각 데이터베이스와 호스트에 대해 이 명령을 반복합니다.

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
    
  3. 사용자에게 복제(replication) 권한을 부여합니다.

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
    

네트워크 액세스 설정

IP 기반 액세스 제어

Aurora MySQL 인스턴스로의 트래픽을 제한하려면 문서화된 고정 NAT IP를 RDS 보안 그룹의 Inbound rules에 추가하십시오.

RDS MySQL에서 보안 그룹을 찾는 위치
위 보안 그룹의 인바운드 규칙을 편집하는 화면

프라이빗 네트워크를 통해 RDS 인스턴스에 연결하려면 AWS PrivateLink를 사용할 수 있습니다. 연결을 구성하려면 ClickPipes용 AWS PrivateLink 설정 가이드를 따르십시오.

다음 단계

Amazon RDS MySQL 인스턴스를 binlog 복제로 구성하고 ClickHouse Cloud에 안전하게 연결하도록 설정했으므로, 이제 첫 번째 MySQL ClickPipe를 생성할 수 있습니다. MySQL CDC 관련 자주 묻는 질문은 MySQL FAQ 페이지를 참조하십시오.