ClickHouse コントロールプレーンとお客様の BYOC VPC 間の接続
次のセクションでは、Tailscale のプライベートネットワークが、トラブルシューティングおよびオプションの管理アクセスにどのように使用されるかを説明します。
Tailscale Private Network
概要
- 管理操作: ClickHouse の管理サービスがお客様の BYOC インフラストラクチャと連携するため
- トラブルシューティングアクセス: ClickHouse のエンジニアが診断のために Kubernetes API サーバーおよび ClickHouse システムテーブルにアクセスするため
- メトリクスアクセス: ClickHouse の集中管理された監視ダッシュボードが、お客様の BYOC VPC 内にデプロイされた Prometheus スタックのメトリクスにアクセスし、ClickHouse のエンジニアがその環境のオブザーバビリティを確保できるようにするため
BYOC における Tailscale の仕組み
-
Tailnet アドレスの登録: 各エンドポイントは一意の tailnet アドレスを登録します (例: Kubernetes API サーバーの場合は
k8s.xxxx.us-east-1.aws.byoc.clickhouse-prd.com) -
Tailscale エージェントコンテナー: EKS クラスター内で Tailscale エージェントコンテナーが実行され、以下を担当します。
- Tailscale の協調サーバーへの接続
- サービスを登録して検出可能にすること
- Nginx ポッドとのネットワーク設定の調整
-
Nginx ポッド: Nginx ポッドは以下を行います。
- Tailscale からの TLS トラフィックの終端
- EKS クラスター内の適切な IP へのトラフィックのルーティング
ネットワーク接続プロセス
-
初期接続:
- 両端の Tailscale エージェント (ClickHouse エンジニアの環境とお使いの BYOC EKS クラスター) が Tailscale の協調サーバーに接続します
- EKS クラスター側のエージェントが Kubernetes サービスを登録し、検出できるようにします
- ClickHouse エンジニアがそのサービスを確認できるようにするには、社内でエスカレーションする必要があります
-
接続モード:
- ダイレクトモード: エージェントは NAT トラバーサル トンネル経由で直接接続の確立を試みます
- リレーモード: ダイレクトモードで接続できない場合、通信は Tailscale DERP (Distributed Encrypted Relay Protocol) サーバー経由のリレーモードにフォールバックします
-
暗号化:
- すべての通信はエンドツーエンドで暗号化されます
- 各 Tailscale エージェントはそれぞれ独自の公開鍵と秘密鍵のペアを生成します (PKI と同様)
- トラフィックは、ダイレクトモードとリレーモードのどちらを使用する場合でも暗号化されたままです
セキュリティ機能
- EKSクラスター内のTailscaleエージェントは、Tailscaleの協調/リレーサーバーに対してアウトバウンド接続を開始します
- インバウンド接続は不要です — セキュリティグループのルールで、Tailscaleエージェントへのインバウンドトラフィックを許可する必要はありません
- これにより、攻撃対象領域が縮小され、ネットワークセキュリティの設定が簡素化されます
- Tailscaleが顧客のエンドポイントへルーティングできるようになる前に、エンジニアは社内の承認ワークフローを通じてアクセスを申請する必要があります
- アクセスには有効期限があり、自動的に失効します
- すべてのアクセスは監査され、記録されます
管理サービスからのアクセス
- EKS API サーバーがプライベート エンドポイントのみを使用するように設定できます
- この場合、管理サービスは Tailscale 経由で API サーバーにアクセスします (人によるトラブルシューティングアクセスと同様です)
- パブリックアクセスは、緊急時の調査やサポートに備えたバックアップ手段として維持されます
ネットワークトラフィックの流れ
- EKS クラスター内の Tailscale エージェント → 協調サーバー (アウトバウンド)
- エンジニアのマシン上の Tailscale エージェント → 協調サーバー (アウトバウンド)
- エージェント間で直接またはリレーによる接続が確立されます
- 確立されたトンネルを通じて暗号化されたトラフィックが流れます
- EKS 内の Nginx ポッドが TLS を終端し、内部サービスにルーティングします
- Tailscale 接続は、管理とトラブルシューティングにのみ使用されます
- クエリトラフィックや顧客データが Tailscale を経由することはありません
- すべての顧客データはお使いの VPC 内に保持されます
ネットワーク境界
- Inbound: 顧客の BYOC VPC に流入するトラフィック。
- Outbound: 顧客の BYOC VPC から発生し、外部の宛先へ送信されるトラフィック。
- Public: パブリックインターネットからアクセスできるネットワークエンドポイント。
- Private: VPC peering、VPC プライベートリンク、Tailscale などのプライベート接続経由でのみアクセスできるネットワークエンドポイント。