ClickHouse Cloud を Azure Blob Storage に接続する
本ガイドでは、データのインジェスト、外部テーブル、その他の連携シナリオのために、ClickHouse Cloud を Azure Blob Storage に安全に接続する方法を説明します。
概要
ClickHouse Cloud は、複数の認証方式を使用して Azure Blob Storage に接続できます。 本ガイドでは、適切な方式の選択と、安全な接続設定の手順を説明します。
サポートされるユースケース:
- azureBlobStorage テーブル関数 を使用した Azure Blob Storage からのデータ読み取り
- AzureBlobStorage テーブルエンジン を使用した外部テーブルの作成
- ClickPipes を介したデータの取り込み
- Azure Blob Storage へのバックアップ保存
ClickHouse Cloud サービスと Azure Blob Storage コンテナが同一の Azure リージョンにデプロイされている場合、IP アドレスの許可リスト登録は機能しません。
これは、Azure が同一リージョン内のトラフィックを、パブリックインターネットや NAT ゲートウェイを経由させず、内部ネットワーク (VNet + Service Endpoints) 経由でルーティングするためです。 その結果、パブリック IP アドレスに基づく Azure Storage Account のファイアウォールルールは適用されません。
IP 許可リスト登録が機能するケース:
- ClickHouse Cloud サービスがストレージアカウントとは異なる Azure リージョンにある場合
- ClickHouse Cloud サービスが AWS/GCP 上にあり、Azure Storage に接続する場合
IP 許可リスト登録が機能しないケース:
- ClickHouse Cloud サービスとストレージが同一の Azure リージョンにある場合。IP 許可リスト登録の代わりに接続文字列経由で Shared Access Signatures (SAS) を使用するか、ABS と ClickHouse を異なるリージョンにデプロイしてください。
ネットワーク設定(リージョン間のみ)
このセクションは、ClickHouse Cloud サービスと Azure Blob Storage コンテナーが異なる Azure リージョンにある場合、または ClickHouse Cloud が AWS/GCP 上にある場合にのみ適用されます。 同一リージョンでのデプロイの場合は、代わりに SAS トークンを使用してください。
ClickHouse Cloud の egress IP を確認する
IP ベースのファイアウォールルールを設定するには、ClickHouse Cloud のリージョンに対応する egress IP アドレスを許可リストに登録する必要があります。
以下のコマンドを実行して、リージョンごとの egress / ingress の IP アドレス一覧を取得します。
他のリージョンを除外するために、下記の eastus を利用しているリージョン名に置き換えてください:
次のような出力が表示されます:
ClickHouse Cloud でサポートされているリージョン一覧については Azure regions を参照し、 使用すべき名前については Azure regions list の "Programmatic name" カラムを参照してください。
詳細は "Cloud IP addresses" を参照してください。
Azure Storage のファイアウォールを設定する
Azure Portal で対象の Storage Account に移動します。
- Networking → Firewalls and virtual networks に移動します
- Enabled from selected virtual networks and IP addresses を選択します
- 前の手順で取得した各 ClickHouse Cloud の egress IP アドレスを Address range フィールドに追加します
ClickHouse Cloud のプライベート IP(10.x.x.x アドレス)は追加しないでください
- Save をクリックします
詳細については、Configure Azure Storage firewalls docs を参照してください。
ClickPipes の設定
Azure Blob Storage と ClickPipes を併用する場合、ClickPipes の UI で認証を設定する必要があります。 詳細については「最初の Azure ClickPipe の作成」を参照してください。
ClickPipes は、アウトバウンド接続に専用の固定 IP アドレスを使用します。 IP ベースのファイアウォールルールを使用している場合、これらの IP を許可リストに登録する必要があります。
「固定 IP の一覧」を参照してください。
このドキュメントの冒頭で説明した「同一リージョン内での IP 許可リストに関する制限」は、ClickPipes にも適用されます。 ClickPipes サービスと Azure Blob Storage が同じリージョンにある場合は、IP 許可リストではなく SAS トークンによる認証を使用してください。