
コアコンポーネント
API Server
API Server は、セルフホスト Cartesia サービスへのすべてのリクエストのエントリポイントです。REST API リクエストと WebSocket 接続を処理します。PubSub Controller (NATS)
API サーバーとモデルコンテナの間で非同期通信プロトコルを活用し、スムーズで低レイテンシーなリクエスト処理を実現しています。この設計により、以下が可能になります:- モデルコンテナが自由にクラスタに参加・離脱できる。
- 長時間にわたるリクエストライフサイクルを効率的にステートフル管理できる。
- API サーバーとモデルコンテナ間の調整により、リクエストに対して最も低レイテンシーな経路を提供できる。
Model Workers (Engine)
Cartesia は TTS および STT の両方に対してバッチ処理されたエンジンワーカーを提供しています。ここでカスタマイズする中核的なパラメータはbatch_size (B) です。このパラメータやその他のパラメータのトレードオフについては、Performance Tuning のセクションで説明します。
License Proxy Server
セルフホストデプロイメントの認証とライセンス有効性の確認のために、Cartesia のクラウド環境と通信する単一のサービスをデプロイします。これにはいくつか理由がありますが、主な目的は、このサービスが唯一のアウトバウンド通信を行うサービスとなり、ネットワークセキュリティポリシーの設定を容易にするためです。 Proxy では、希望する分離レベルを選択できます:Connected: デプロイメントが定期的に Cartesia のクラウドに ping を送信してライセンスを検証し、利用状況に関するテレメトリを送信します。Air-gapped: 完全に分離されたモードで、オフラインライセンスを使用して動作します。エアギャップモードでは、監査ログを通じて利用情報を取得するため、お客様と直接連携します。
Connected モードでのデプロイをおすすめしますが、完全に分離されたデプロイメントが必要な場合は、GTM チームがセットアップを支援します。
Connected と Air-gapped のいずれのモードでも、接続が切れたりライセンスが期限切れになったりした場合に即座に運用を停止しないよう、猶予期間が設定されています。
ネットワークトポロジーとポート
以下の値は、cartesia-kube で配布される Helm チャートに基づいています。
サービス間ポート
| コンポーネント | ポート | プロトコル |
|---|---|---|
| API server | 5000 | HTTP / WebSocket |
| API metrics | 8080 | HTTP (Prometheus) |
| NATS | 4222 | NATS protocol (TCP) |
| NATS monitoring | 8222 | HTTP |
| License proxy | 8080 | HTTP |
| Worker metrics | 8080 | HTTP (Prometheus) |
サービス間トラフィック
| From | To | 目的 |
|---|---|---|
| クライアント | Ingress → API 5000 | REST および WebSocket リクエスト |
| API | NATS 4222 | TTS および STT ジョブの発行 |
| API | License proxy 8080 (LICENSE_PROXY_URL) | リクエストごとの認可チェック |
| Workers | NATS 4222 | 推論ジョブのサブスクライブ |
| License proxy | Cartesia ライセンスエンドポイント | 認証および監査ログの転送(エアギャップモードでは両方ともローカルで実行) |
| API および Workers | Google Cloud Storage | ボイス、LoRA、マイグレーションの同期 |
| Prometheus | API 8080、Worker 8080 | 5 秒ごとのメトリクススクレイプ |
アウトバウンド egress (Connected モード)
connected モードでは、クラスタが以下の宛先へのアウトバウンドアクセスを必要とします。ファイアウォールで許可リストに追加してください:| 宛先 | ポート | 理由 |
|---|---|---|
us-docker.pkg.dev | 443 | Pod 起動時のコンテナイメージの取得 |
storage.googleapis.com | 443 | GCS からのボイス、LoRA、マイグレーションの同期 |
api.cartesia.ai | 443 | License-proxy の認証(connected モード) |
| DNS | 53 (UDP + TCP) | 標準的な名前解決 |
クラスタの egress を制限する
Helm チャートには、DNS、RFC1918 のプライベートレンジ(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)、およびクラウドメタデータの IP(169.254.169.254/32)以外のすべてのクラスタ外 egress をブロックする、オプトイン方式の NetworkPolicy が同梱されています。values.yaml で有効にできます:
サービス間のトラフィック
クラスタ内のすべてのサービス間通信は暗号化されていません。 クラスタネットワークへのアクセスは、クラウドプロバイダーのネットワーキング、および適用したNetworkPolicy リソースによって制限されます。チャートには、クラスタ外への egress をすべてブロックするオプトインポリシーが同梱されています(前述の クラスタの egress を制限する を参照)。
ingress 用 TLS の設定(EKS の ACM、GKE の Managed Certificates、セルフマネージドクラスタの BYO 証明書)については、Managed Kubernetes を参照してください。