Meeting-BaaS オンプレミス:独自のミーティング bot インフラをデプロイする

LLazare Rossillon

完全なデータ管理とエンタープライズグレードのセキュリティを備えた独自インフラに Meeting-BaaS をデプロイできます。bot あたり $0.066/時間という実際のコスト、自動更新、ゼロダウンタイムデプロイ、完全なカスタマイズ機能を提供します。

Meeting-BaaS オンプレミス:独自のミーティング bot インフラをデプロイする
August 7, 2025

Meeting-BaaS オンプレミス クイックスタート

あらかじめ構築された Docker イメージを使用することで、独自の Meeting BaaS インフラを簡単に稼働させることができます。この記事では、その仕組み、必要なもの、そして最も重要なコストについて説明します。

ホスト版と同じ API 機能を維持しながら、データの完全な管理、カスタマイズ機能、エンタープライズグレードのセキュリティを実現できます。

最も重要な点として、このデプロイによりサービスレベルアグリーメントを備えた保守済み商用製品の安定性を維持しながら、ミーティング bot の実際の料金($0.066/時間)でお支払いいただけます

完全なデータ主権を持ちながら、AI ミーティングアシスタント、自動文字起こしワークフロー、リアルタイム音声ストリーミング、ミーティング分析、顧客インタラクション追跡、コンプライアンス監視、インテリジェントなミーティング要約を構築できます。

料金の評価

基本セットアップのコストは合計で月額約 $5,500 と見積もっています。内訳は以下のとおりです:

基本セットアップコスト:

  • コンサルティング費用: 月額 $10,000(セットアップ、保守、サポート、SLA を含む)
  • インフラコスト: 月額 $1,500(常時稼働 8 台の bot を含む)

例:月間 20,000 時間の場合

  • 基本セットアップ:月額 $5,500(1,408 時間を含む - 8 時間/日 × 8 台の bot × 22 営業日)
  • 追加時間:18,592 時間 × $0.066 = $1,227
  • 合計:月額 $6,727($0.336/時間)

スケールに応じてコスト効率が向上します:

  • 月間 50,000 時間:約 月額 $8,700($0.174/時間)
  • 月間 100,000 時間:約 月額 $12,100($0.121/時間)

前提条件

  • Kubernetes cluster(1.20 以上)
  • PostgreSQL データベース
  • Redis インスタンス
  • S3 互換ストレージ
  • SQS キュー
  • kubectl の設定
  • Docker/container runtime
  • 16GB 以上の RAM、8 vCPU 以上(最小要件)
  • ミーティングプラットフォームへの外部インターネットアクセス

仕組み

オンプレミスのデプロイでは、エンタープライズグレードの CI/CD 自動化を使用して、インフラを最新の改善点と常に同期します。

CI/CD による自動更新

シームレスな同期:

  • GitHub 連携: コードベースを更新すると、CI/CD pipeline が自動的に新しい Docker イメージをビルドしてプッシュします
  • リアルタイム更新: ローカルのバックエンドと bot が自動的にレジストリから最新バージョンを取得します
  • 手動介入ゼロ: 手動で更新を確認する必要はなく、すべて自動で実行されます

更新プロセスの仕組み:

  1. コード変更: GitHub Actions ワークフローが git コミットハッシュ付きの新しい Docker イメージを自動的にビルドし、Scaleway Container Registry にプッシュします

  2. 自動検出: Kubernetes cluster がレジストリを監視し、ゼロダウンタイムデプロイのためにローリングアップデートを使用します

  3. ゼロダウンタイムデプロイ: システムが pod を 1 つずつ置き換え、古い pod を終了する前に新しい pod が正常であることを確認します

主なメリット:

  • 常に最新: 最新機能、バグ修正、セキュリティパッチの自動適用
  • ゼロダウンタイム: サービスを中断することなくシームレスに更新
  • バージョン追跡: git コミットハッシュによる完全な監査証跡
  • エンタープライズの信頼性: 本番環境と同じ CI/CD pipeline

最新の改善点への自動同期インフラの完全な管理を実現できます。

クイックセットアップ

1. Kubernetes 設定のクローン

git clone https://github.com/Meeting-BaaS/kubernetes-config.git
cd kubernetes-config

2. BaaS CLI のインストール

./baas_controller.sh install

3. 環境の設定

export ENVIRON=prod  # or preprod for staging

4. サービスのデプロイ

# Deploy bots (uses pre-built Docker images)
ENVIRON=prod ./baas_controller.sh bots install

# Check status
ENVIRON=prod ./baas_controller.sh bots status

# View logs
ENVIRON=prod ./baas_controller.sh bots log -f

主要コマンド

Bot 管理

# Install bots
ENVIRON=prod ./baas_controller.sh bots install

# Upgrade bots (zero downtime)
ENVIRON=prod ./baas_controller.sh bots upgrade

# Check status
ENVIRON=prod ./baas_controller.sh bots status

# View logs
ENVIRON=prod ./baas_controller.sh bots log -f

# Uninstall (causes downtime)
ENVIRON=prod ./baas_controller.sh bots uninstall

API サーバー管理

# Install API server
ENVIRON=prod ./baas_controller.sh api install

# Upgrade API server
ENVIRON=prod ./baas_controller.sh api upgrade

# Check status
ENVIRON=prod ./baas_controller.sh api status

# View logs
ENVIRON=prod ./baas_controller.sh api log -f

Cluster 管理

# Install cluster
ENVIRON=prod ./baas_controller.sh cluster install

# Access metrics
ENVIRON=prod ./baas_controller.sh cluster metrics

リソース要件

Bot Pod あたり

  • CPU:1.5 vCPU(要求値)/ 3 vCPU(制限値)
  • メモリ:3GB RAM(要求値)/ 6GB RAM(制限値)
  • ストレージ:録画用 20GB

インフラの最小要件

  • コントロールプレーン:2 vCPU、4GB RAM
  • ワーカーノード:16 vCPU、32GB RAM(約 8 台の bot をサポート)
  • データベース:8 vCPU、32GB RAM(PostgreSQL)
  • キャッシュ(cache):2 vCPU、4GB RAM(Redis)

環境変数

# Required
export ENVIRON=prod
export KUBECONFIG=/path/to/kubeconfig

# Optional
export SKIP_VALIDATION=1  # Skip confirmations

ゼロダウンタイム更新

# Always use upgrade, never install for running services
ENVIRON=prod ./baas_controller.sh bots upgrade
ENVIRON=prod ./baas_controller.sh api upgrade

トラブルシューティング

# Check pod status
kubectl get pods -n services

# Describe pod issues
kubectl describe pod <pod-name> -n services

# Check persistent volumes
kubectl get pvc -n services

# Test connectivity
kubectl exec -it <pod-name> -n services -- curl -I https://meet.google.com

API 連携

# Set API endpoint
export MEETING_BAAS_API=https://your-domain.com/api
export API_KEY=your-api-key

# Test connection
curl -H "Authorization: Bearer $API_KEY" $MEETING_BAAS_API/version

ストレージ設定

永続ボリューム

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: bot-storage
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: sbs-15k  # High IOPS

ストレージクラス

  • sbs-15k:録画用の高 IOPS
  • sbs-default:汎用
  • scw-bssd:高パフォーマンス向け NVMe

モニタリング

# Access Grafana (if deployed)
ENVIRON=prod ./baas_controller.sh cluster metrics

# Check resource usage
kubectl top pods -n services
kubectl top nodes

スケーリング

# Scale bots horizontally
kubectl scale deployment meeting-bots --replicas=10 -n services

# Auto-scaling (HPA)
kubectl get hpa -n services

セキュリティ

ネットワークポリシー

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: bot-network-policy
spec:
  podSelector:
    matchLabels:
      app: meeting-bots
  policyTypes:
    - Ingress
    - Egress
  egress:
    - to:
        - namespaceSelector: {}
      ports:
        - protocol: TCP
          port: 443

RBAC

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: services
  name: bot-role
rules:
  - apiGroups: [""]
    resources: ["pods", "services"]
    verbs: ["get", "list", "watch"]

バックアップと復元

# Database backup
kubectl exec -it postgres-pod -n services -- pg_dump meeting_baas > backup.sql

# Restore database
kubectl exec -i postgres-pod -n services -- psql meeting_baas < backup.sql

クリーンアップ

# Remove all services
ENVIRON=prod ./baas_controller.sh bots uninstall
ENVIRON=prod ./baas_controller.sh api uninstall

# Remove cluster (destructive)
ENVIRON=prod ./baas_controller.sh cluster uninstall
関連ブログplatform