Amazon MSK と ClickHouse の統合
前提条件
以下のことを前提とします:
- ClickHouse Connector Sink、Amazon MSK、および MSK コネクタに精通していること。Amazon MSK の はじめにガイド と MSK Connect ガイド を推奨します。
- MSK ブローカーが公開されていること。パブリックアクセス のセクションを参照してください。
Amazon MSK と ClickHouse の公式 Kafka コネクタ
接続詳細を収集する
ClickHouseにHTTP(S)で接続するには、次の情報が必要です:
-
HOST と PORT: 通常、ポートはTLSを使用する場合は8443、TLSを使用しない場合は8123です。
-
DATABASE NAME: デフォルトでは、
default
という名前のデータベースがあります。接続したいデータベースの名前を使用してください。 -
USERNAME と PASSWORD: デフォルトでは、ユーザー名は
default
です。あなたのユースケースに適したユーザー名を使用してください。
あなたのClickHouse Cloudサービスの詳細はClickHouse Cloudコンソールで確認できます。接続するサービスを選択し、Connectをクリックしてください:

HTTPSを選択すると、詳細は例のcurl
コマンドに表示されます。

セルフマネージドのClickHouseを使用している場合、接続の詳細はあなたのClickHouse管理者によって設定されています。
手順
- ClickHouse Connector Sink に精通していることを確認します。
- MSK インスタンスを作成する。
- IAM ロールを作成して割り当てる。
- ClickHouse Connect Sink の リリースページ から
jar
ファイルをダウンロードします。 - Amazon MSK コンソールの カスタムプラグインページ にダウンロードした
jar
ファイルをインストールします。 - コネクタがパブリックな ClickHouse インスタンスと通信する場合は、インターネットアクセスを有効にする。
- 設定でトピック名、ClickHouse インスタンスのホスト名、およびパスワードを提供します。
パフォーマンス調整
パフォーマンスを向上させる方法の一つは、バッチサイズと Kafka から取得するレコード数を調整することです。次の設定を worker 構成に追加します。
使用する具体的な値は、希望するレコード数とレコードサイズによって異なります。例えば、デフォルト値は次の通りです。
詳細については、公式の Kafka および Amazon MSK のドキュメントをご確認ください。
MSK Connect 用のネットワーキングに関する注意事項
MSK Connect が ClickHouse に接続するためには、MSK クラスターをプライベートサブネットに配置し、インターネットアクセス用のプライベート NAT を接続することを推奨します。以下にその設定方法を示します。パブリックサブネットもサポートされていますが、Elastic IP アドレスを ENI に常に割り当てる必要があるため推奨されません。AWS からの詳細はこちら。
- プライベートサブネットを作成する: VPC 内に新しいサブネットを作成し、プライベートサブネットとして指定します。このサブネットにはインターネットへの直接アクセスは許可しません。
- NAT ゲートウェイを作成する: VPC のパブリックサブネットに NAT ゲートウェイを作成します。NAT ゲートウェイにより、プライベートサブネット内のインスタンスがインターネットまたは他の AWS サービスに接続できますが、インターネットからこれらのインスタンスに対する接続を防ぎます。
- ルートテーブルを更新する: インターネット行きのトラフィックを NAT ゲートウェイに向けるルートを追加します。
- セキュリティグループとネットワーク ACL の設定を確認する: セキュリティグループ および ネットワーク ACL (アクセスコントロールリスト) を設定し、ClickHouse インスタンスへの関連トラフィックを許可します。
- ClickHouse Cloud の場合は、9440 と 8443 番ポートでの受信トラフィックを許可するようセキュリティグループを設定します。
- セルフホストされた ClickHouse の場合は、設定ファイルのポート(デフォルトは 8123)で受信トラフィックを許可するようにセキュリティグループを設定します。
- MSK にセキュリティグループをアタッチする: NAT ゲートウェイにルーティングされた新しいセキュリティグループが MSK クラスターにアタッチされていることを確認します。