Это пошаговое руководство по настройке экземпляра RDS MariaDB для репликации данных через ClickPipe для MySQL.
Включение срока хранения бинарного лога
Бинарный лог — это набор файлов журналов, содержащих информацию об изменениях данных, внесённых в экземпляр сервера MySQL. Файлы бинарного лога необходимы для репликации. Необходимо выполнить оба следующих шага:
Включите binary logging через автоматическое резервное копирование
Функция автоматического резервного копирования определяет, включено ли binary logging для MySQL. Это можно настроить в консоли AWS:

Рекомендуется установить срок хранения резервных копий на достаточно длительный период в зависимости от сценария репликации.
Срок хранения binlog в часах
В Amazon RDS for MariaDB срок хранения binlog задаётся иначе: это время, в течение которого сохраняется файл binlog, содержащий изменения. Если какие-либо изменения не будут прочитаны до удаления файла binlog, репликация не сможет продолжиться. Значение по умолчанию для срока хранения binlog в часах — NULL, то есть бинарные логи не сохраняются.
Чтобы указать, сколько часов нужно хранить бинарные логи в экземпляре DB, используйте функцию mysql.rds_set_configuration, задав период хранения binlog, достаточный для выполнения репликации. 24 hours — рекомендуемый минимум.
mysql=> call mysql.rds_set_configuration('binlog retention hours', 24);Настройте параметры binlog в группе параметров
Группу параметров можно найти, если нажать на свой экземпляр MariaDB в RDS Console, а затем перейти на вкладку Configurations.

После нажатия на ссылку группы параметров вы перейдёте на страницу этой группы. В правом верхнем углу будет кнопка Edit:

Параметры binlog_format, binlog_row_metadata и binlog_row_image должны быть заданы следующим образом:
binlog_format—ROW.

binlog_row_metadata—FULL

binlog_row_image—FULL

Затем нажмите Save Changes в правом верхнем углу. Чтобы изменения вступили в силу, может потребоваться перезагрузить экземпляр. Если рядом со ссылкой на группу параметров на вкладке Configurations экземпляра RDS отображается Pending reboot, это означает, что экземпляр, скорее всего, нужно перезагрузить.
Включение режима GTID
Глобальные идентификаторы транзакций (GTID) — это уникальные идентификаторы, присваиваемые каждой зафиксированной транзакции в MySQL/MariaDB. Они упрощают репликацию binlog и облегчают устранение неполадок. В MariaDB режим GTID включен по умолчанию, поэтому никаких дополнительных действий со стороны пользователя не требуется.
Настройте пользователя базы данных
Подключитесь к своему экземпляру RDS MariaDB под пользователем с правами администратора и выполните следующие команды:
-
Создайте отдельного пользователя для ClickPipes:
CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password'; -
Выдайте права на схему. В следующем примере показаны права для базы данных
mysql. Повторите эти команды для каждой базы данных и хоста, которые вы хотите реплицировать:GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host'; -
Выдайте пользователю права на репликацию:
GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%'; GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
Использование IAM-аутентификации (необязательно)
Instead of a password, you can authenticate the ClickPipes user with an AWS IAM role. This lets ClickPipes connect to your Amazon RDS instance without storing database credentials.
Enable IAM authentication
- Log in to your AWS account and go to the RDS instance you want to configure.
- Click Modify.
- Scroll to the Database authentication section.
- Select Password and IAM database authentication.
- Click Continue.
- Review the changes and select Apply immediately.
Create the ClickPipes user
Create the ClickPipes user with IAM authentication enabled, then grant it the same schema and replication privileges shown above:
CREATE USER 'clickpipes_iam_user' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';Obtain the ClickHouse service IAM role ARN
- Log in to your ClickHouse Cloud account.
- Select the ClickHouse service you want to connect.
- Select the Settings tab.
- Scroll to the Network security information section at the bottom of the page.
- Copy the service's Service role ID (IAM) value, shown below.

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your RDS instance.
Obtain the resource ID
- Log in to your AWS account and go to the RDS instance you want to configure.
- Select the Configuration tab.
- Note the Resource ID value — it looks like
db-xxxxxxxxxxxxxx. This is your{RDS_RESOURCE_ID}, which you reference in the permissions policy.
Create the IAM role
- Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
- Open the IAM console.
- Create a new IAM role with the following trust and permissions policies.
Trust policy (replace
{ClickHouse_IAM_ARN}with the IAM role ARN of your ClickHouse instance):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "{ClickHouse_IAM_ARN}" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }Permissions policy (replace
{RDS_RESOURCE_ID}with the resource ID of your RDS instance,{RDS_REGION}with its region, and{AWS_ACCOUNT}with your AWS account ID):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:{RDS_REGION}:{AWS_ACCOUNT}:dbuser:{RDS_RESOURCE_ID}/clickpipes_iam_user" ] } ] } - Once the role is created, copy its ARN. This is your
{RDS_ACCESS_IAM_ROLE_ARN}.
You can now use this IAM role to authenticate with your RDS instance from ClickPipes.
Настройте сетевой доступ
Управление доступом по IP
Если вы хотите ограничить трафик к своему экземпляру RDS, добавьте указанные в документации статические NAT IP-адреса в Inbound rules группы безопасности RDS.


Доступ через частную сеть с помощью AWS PrivateLink
Чтобы подключиться к вашему экземпляру RDS через частную сеть, можно использовать AWS PrivateLink. Чтобы настроить подключение, воспользуйтесь нашим руководством по настройке AWS PrivateLink для ClickPipes.