AWS 向けの顧客管理 VPC (BYO-VPC)
1
既存の 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"のタグを追加します。
2
S3 ゲートウェイエンドポイントを設定する
VPC に S3 ゲートウェイエンドポイントがまだ設定されていない場合は、VPC と Amazon S3 の間で安全かつプライベートに通信できるよう、これを作成する必要があります。このエンドポイントを使用すると、ClickHouse のサービスはパブリックインターネットを経由せずに S3 にアクセスできます。設定例については、以下のスクリーンショットを参照してください。
3
ネットワーク接続を確認する
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 サービスが接続できなかったり、正常に動作しなかったりする可能性があります。
4
AWS アカウントを設定する
初回の BYOC セットアップでは、ClickHouse Cloud の BYOC コントローラーがインフラストラクチャを管理できるようにするため、特権 IAM ロール (
ClickHouseManagementRole) が作成されます。これは、CloudFormation template または Terraform module (以下を参照) のいずれかを使用して実行できます。BYO-VPC セットアップをデプロイする場合は、IncludeVPCWritePermissions パラメーターを false に設定し、ClickHouse Cloud に顧客管理 VPC を変更する権限が付与されないようにしてください。Storage buckets、Kubernetes クラスター、コンピュートリソースはこの初期セットアップには含まれていません。これらは後続の手順でプロビジョニングされます。VPC はお客様が管理しますが、ClickHouse Cloud が AWS アカウント内で Kubernetes クラスター、service account 用の IAM ロール、S3 bucket、そのほかの必須リソースを作成および管理するには、引き続き IAM 権限が必要です。
Terraform module
CloudFormation ではなく Terraform を使用する場合は、terraform-byoc-onboarding module を使用してください。<version> を、module のリリースページにある最新のタグに置き換えます。常に最新リリースを使用してください。module は clickhouse_management_role_arn を出力します。標準フローでは対応は不要で、オンボーディングは ClickHouse Cloud console で続行されます。ただし、セットアップがデフォルトと異なる場合 (たとえば、カスタムロール名を連携する場合) は ClickHouse から求められるため、手元に控えておいてください。external_id の値は ClickHouse Cloud console によって生成され、同じ AWS アカウント上のすべての BYOC インフラストラクチャで共有されます。legacy emptyid プレースホルダーを含む詳細については、AWS external ID を参照してください。module は以前、
https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz の tarball として配布されていました。この URL は引き続き利用できますが、非推奨です。上記の GitHub module を使用してください。5
BYOC インフラストラクチャをセットアップする
ClickHouse Cloud console で新しいインフラストラクチャをセットアップする際は、次の項目を設定します。
- VPC configuration で Use existing VPC を選択します。
- VPC ID を入力します (例:
vpc-0bb751a5b888ad123)。 - 先ほど設定した 3 つのサブネットの Private subnet IDs を入力します。
- 構成上パブリック向けロードバランサーが必要な場合は、必要に応じて Public subnet IDs を入力します。
- Set up Infrastructure をクリックしてプロビジョニングを開始します。
新しいリージョンのセットアップには最大 40 分かかる場合があります。
顧客管理 IAM ロール
顧客管理 IAM ロールはプライベートプレビューです。以下の手順を実行する前に、この機能を組織で有効にするため、ClickHouse Support にお問い合わせください。
- ClickHouse Cloud が通常作成するインフラストラクチャごとの IAM ロールを事前に作成する
- クロスアカウントアクセスに使用する
ClickHouseManagementRoleから IAM の書き込み権限を削除する - ロールの権限と信頼関係を完全に管理する
external_id を受け取ります。同じ AWS account 内のすべての BYOC インフラストラクチャは、同じ external ID を共有します。旧来の emptyid プレースホルダーを含む詳細については、AWS external ID を参照してください。
1
IAM の書き込み権限なしで管理ロールを設定する
初回の BYOC セットアップを実行する際は、管理ロールの IAM 書き込み権限を無効にします。CloudFormation template では、
IncludeIAMWritePermissions パラメータを false に設定します。Terraform module の場合は次のとおりです。<version> は、module の releases page にある最新のタグに置き換えてください。必ず最新のリリースを使用してください。2
インフラストラクチャごとの IAM ロールを作成する
各 BYOC インフラストラクチャがプロビジョニングされる前に、terraform-byoc-onboarding の per-infra module を使用して、必要な IAM ロール (EKS pod identity roles、ClickHouse S3 access role、data-plane management role) を作成します。
<version> は、module の releases page にある最新のタグに置き換えてください。必ず最新のリリースを使用してください。3
インフラストラクチャごとのロールを最新の状態に保つ