Meeting-BaaS オンプレミス:独自のミーティング bot インフラをデプロイする
完全なデータ管理とエンタープライズグレードのセキュリティを備えた独自インフラに Meeting-BaaS をデプロイできます。bot あたり $0.066/時間という実際のコスト、自動更新、ゼロダウンタイムデプロイ、完全なカスタマイズ機能を提供します。
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 が自動的にレジストリから最新バージョンを取得します
- 手動介入ゼロ: 手動で更新を確認する必要はなく、すべて自動で実行されます
更新プロセスの仕組み:
-
コード変更: GitHub Actions ワークフローが git コミットハッシュ付きの新しい Docker イメージを自動的にビルドし、Scaleway Container Registry にプッシュします
-
自動検出: Kubernetes cluster がレジストリを監視し、ゼロダウンタイムデプロイのためにローリングアップデートを使用します
-
ゼロダウンタイムデプロイ: システムが pod を 1 つずつ置き換え、古い pod を終了する前に新しい pod が正常であることを確認します
主なメリット:
- ✅ 常に最新: 最新機能、バグ修正、セキュリティパッチの自動適用
- ✅ ゼロダウンタイム: サービスを中断することなくシームレスに更新
- ✅ バージョン追跡: git コミットハッシュによる完全な監査証跡
- ✅ エンタープライズの信頼性: 本番環境と同じ CI/CD pipeline
最新の改善点への自動同期とインフラの完全な管理を実現できます。
クイックセットアップ
1. Kubernetes 設定のクローン
git clone https://github.com/Meeting-BaaS/kubernetes-config.git
cd kubernetes-config2. BaaS CLI のインストール
./baas_controller.sh install3. 環境の設定
export ENVIRON=prod # or preprod for staging4. サービスのデプロイ
# 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 uninstallAPI サーバー管理
# 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 -fCluster 管理
# 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.comAPI 連携
# 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:録画用の高 IOPSsbs-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: 443RBAC
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