AWS 向けの顧客管理 VPC (BYO-VPC)
ClickHouse Cloud に新しい VPC をプロビジョニングさせる代わりに、既存の VPC を使用して ClickHouse BYOC をデプロイする場合は、以下の手順に従ってください。この方法では、ネットワーク構成をより柔軟に制御でき、既存のネットワークインフラストラクチャに ClickHouse BYOC を統合できます。
既存の VPC を設定する
- VPC に
clickhouse-byoc="true"タグを付与します。 - ClickHouse Cloud で使用できるよう、3 つの異なるアベイラビリティゾーンにまたがるプライベートサブネットをちょうど 3 つ割り当てます。
- 各サブネットの CIDR 範囲が少なくとも
/25(例: 10.0.0.0/25) であることを確認します。/25では、アベイラビリティゾーンごとにおよそ 10 台の ClickHouse server ノードをサポートできます。ほとんどのデプロイメントには/24を推奨し、拡張が見込まれるデプロイメントにはより大きなサブネットを使用してください。ポッドの IP アドレスはサブネット自体から割り当てられるため、各レプリカがサブネットアドレスを消費します。 - ロードバランサーが適切に設定されるよう、各サブネットに
kubernetes.io/role/internal-elb=1とclickhouse-byoc="true"のタグを追加します。


S3 ゲートウェイエンドポイントを設定する
VPC に S3 ゲートウェイエンドポイントがまだ設定されていない場合は、VPC と Amazon S3 の間で安全かつプライベートに通信できるよう、これを作成する必要があります。このエンドポイントを使用すると、ClickHouse のサービスはパブリックインターネットを経由せずに S3 にアクセスできます。設定例については、以下のスクリーンショットを参照してください。

ネットワーク接続を確認する
Outbound インターネットアクセス ClickHouse BYOC コンポーネントが Tailscale の control plane と通信できるようにするため、VPC では少なくともアウトバウンドのインターネットアクセスを許可する必要があります。Tailscale は、プライベートな管理操作のために安全なゼロトラストネットワークを提供する目的で使用されます。Tailscale への初回登録と初期セットアップにはパブリックインターネット接続が必要であり、これは直接接続または NAT ゲートウェイ経由で実現できます。この接続は、BYOC デプロイメントのプライバシーとセキュリティの両方を維持するために必要です。
DNS 名前解決 VPC で DNS 名前解決が正しく機能しており、標準の DNS 名がブロック、改変、上書きされていないことを確認してください。ClickHouse BYOC は、Tailscale の control server と ClickHouse service の endpoint を名前解決するために DNS に依存しています。DNS が利用できない、または設定に不備がある場合、BYOC サービスが接続できなかったり、正常に動作しなかったりする可能性があります。
AWS アカウントを設定する
初回の BYOC セットアップでは、ClickHouse Cloud の BYOC コントローラーがインフラストラクチャを管理できるようにするため、特権 IAM ロール (ClickHouseManagementRole) が作成されます。これは、CloudFormation template または Terraform module (以下を参照) のいずれかを使用して実行できます。
BYO-VPC セットアップをデプロイする場合は、IncludeVPCWritePermissions パラメーターを false に設定し、ClickHouse Cloud に顧客管理 VPC を変更する権限が付与されないようにしてください。
Terraform module
CloudFormation ではなく Terraform を使用する場合は、terraform-byoc-onboarding module を使用してください。
module "clickhouse_onboarding" {
source = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws?ref=<version>"
external_id = "<external-id-provided-by-clickhouse>"
include_vpc_write_permissions = false
}<version> を、module のリリースページにある最新のタグに置き換えます。常に最新リリースを使用してください。
module は clickhouse_management_role_arn を出力します。標準フローでは対応は不要で、オンボーディングは ClickHouse Cloud console で続行されます。ただし、セットアップがデフォルトと異なる場合 (たとえば、カスタムロール名を連携する場合) は ClickHouse から求められるため、手元に控えておいてください。
external_id の値は ClickHouse Cloud console によって生成され、同じ AWS アカウント上のすべての BYOC インフラストラクチャで共有されます。legacy emptyid プレースホルダーを含む詳細については、AWS external ID を参照してください。
BYOC インフラストラクチャをセットアップする
ClickHouse Cloud console で新しいインフラストラクチャをセットアップする際は、次の項目を設定します。
- VPC configuration で Use existing VPC を選択します。
- VPC ID を入力します (例:
vpc-0bb751a5b888ad123)。 - 先ほど設定した 3 つのサブネットの Private subnet IDs を入力します。
- 構成上パブリック向けロードバランサーが必要な場合は、必要に応じて Public subnet IDs を入力します。
- Set up Infrastructure をクリックしてプロビジョニングを開始します。

顧客管理 IAM ロール
高度なセキュリティ要件や厳格なコンプライアンスポリシーがある組織では、ClickHouse Cloud に IAM ロールを作成させる代わりに、独自の IAM ロールを指定できます。この方法では、IAM 権限を完全に制御でき、組織のセキュリティポリシーを適用できます。
顧客管理 IAM ロールを使用すると、次のことが可能になります。
- ClickHouse Cloud が通常作成するインフラストラクチャごとの IAM ロールを事前に作成する
- クロスアカウントアクセスに使用する
ClickHouseManagementRoleから IAM の書き込み権限を削除する - ロールの権限と信頼関係を完全に管理する
以下の両方の module は、ClickHouse Cloud console で生成された external_id を受け取ります。同じ AWS account 内のすべての BYOC インフラストラクチャは、同じ external ID を共有します。旧来の emptyid プレースホルダーを含む詳細については、AWS external ID を参照してください。
IAM の書き込み権限なしで管理ロールを設定する
初回の BYOC セットアップを実行する際は、管理ロールの IAM 書き込み権限を無効にします。CloudFormation template では、IncludeIAMWritePermissions パラメータを false に設定します。Terraform module の場合は次のとおりです。
module "clickhouse_onboarding" {
source = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws?ref=<version>"
external_id = "<external-id-provided-by-clickhouse>"
include_iam_write_permissions = false
}<version> は、module の releases page にある最新のタグに置き換えてください。必ず最新のリリースを使用してください。
インフラストラクチャごとの IAM ロールを作成する
各 BYOC インフラストラクチャがプロビジョニングされる前に、terraform-byoc-onboarding の per-infra module を使用して、必要な IAM ロール (EKS pod identity roles、ClickHouse S3 access role、data-plane management role) を作成します。
module "clickhouse_per_infra_iam" {
source = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws-per-infra-iam?ref=<version>"
spoken_name = "<spoken-name-provided-by-clickhouse>"
region = "<aws-region-of-the-infrastructure>"
external_id = "<external-id-provided-by-clickhouse>"
}<version> は、module の releases page にある最新のタグに置き換えてください。必ず最新のリリースを使用してください。
インフラストラクチャごとのロールを最新の状態に保つ
ClickHouse Cloud がデフォルトで作成する IAM ロールについては、BYOC Privilege Reference を参照してください。