Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

RDS MySQL ソース設定ガイド

このガイドでは、MySQL ClickPipe を使用して、Amazon RDS MySQL から ClickHouse Cloud にデータをレプリケートできるように設定する方法を説明します。MySQL CDC (変更データキャプチャ) に関するよくある質問については、MySQL のよくある質問ページ を参照してください。

バイナリログの保持を有効にする

バイナリログは、MySQL サーバーインスタンスに対して行われたデータ変更に関する情報を含むログファイルの集合であり、レプリケーションにはバイナリログファイルが必要です。RDS MySQL でバイナリログの保持を設定するには、バイナリログを有効にしbinlog の保持期間を延長する 必要があります。

自動バックアップでバイナリログを有効にする

MySQL でバイナリログを有効にするかどうかは、自動バックアップ機能によって決まります。自動バックアップは、RDS Console で Modify > Additional configuration > Backup の順に移動し、Enable automated backups チェックボックスをオンにすることで (まだ選択されていない場合) 、インスタンスに対して設定できます。

RDS で自動バックアップを有効にする

レプリケーションのユースケースに応じて、Backup retention period を十分に長い値に設定することを推奨します。

binlog の保持期間を延長する

デフォルトでは、Amazon RDS は バイナリログ をできるだけ早く削除します (つまり、遅延パージ) 。障害発生時でもレプリケーションに必要な バイナリログ ファイルを利用できるよう、binlog の保持期間を少なくとも 72 時間 に延長することを推奨します。バイナリログ の保持期間 (binlog retention hours) を設定するには、mysql.rds_set_configuration プロシージャを使用します。

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

この設定がされていない場合や、間隔が短すぎる場合、バイナリログに欠落が生じ、ClickPipes でレプリケーションを再開できなくなるおそれがあります。

binlog 設定を構成する

RDS Console で MySQL インスタンスをクリックし、Configuration タブに移動すると、パラメータグループを確認できます。

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モードを有効にする

Global Transaction Identifiers (GTIDs) は、MySQL でコミットされた各トランザクションに割り当てられる一意の ID です。これにより、binlog レプリケーションが簡素化され、トラブルシューティングも容易になります。MySQL ClickPipe が GTID ベースのレプリケーションを使用できるようにするため、GTID モードを有効にすることを 推奨 します。

GTID ベースのレプリケーションは、Amazon RDS for MySQL バージョン 5.7、8.0、8.4 でサポートされています。Aurora MySQL インスタンスで GTID モードを有効にするには、次の手順に従ってください。

  1. RDS Console で MySQL インスタンスをクリックします。
  2. Configuration タブをクリックします。
  3. パラメータグループのリンクをクリックします。
  4. 右上の Edit ボタンをクリックします。
  5. enforce_gtid_consistencyON に設定します。
  6. gtid-modeON に設定します。
  7. 右上の Save Changes をクリックします。
  8. 変更を反映するため、インスタンスを再起動します。
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. ユーザーにレプリケーション権限を付与します。

    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

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Click Modify.
  3. Scroll to the Database authentication section.
  4. Select Password and IAM database authentication.
  5. Click Continue.
  6. 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

  1. Log in to your ClickHouse Cloud account.
  2. Select the ClickHouse service you want to connect.
  3. Select the Settings tab.
  4. Scroll to the Network security information section at the bottom of the page.
  5. Copy the service's Service role ID (IAM) value, shown below.
Service role ID (IAM) value in the Network security information section

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your RDS instance.

Obtain the resource ID

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Select the Configuration tab.
  3. 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

  1. Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
  2. Open the IAM console.
  3. 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"
          ]
        }
      ]
    }
  4. 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ベースのアクセス制御

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 のよくある質問ページを参照してください。

Navigation