完全なデータ管理とエンタープライズグレードのセキュリティを備えた独自インフラに 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
- RAM 16GB 以上、vCPU 8 以上(最小)
- ミーティングプラットフォームへのアウトバウンドインターネットアクセス
仕組みについて
オンプレミスデプロイでは、エンタープライズグレードの CI/CD 自動化を使用して、インフラを最新の改善内容と同期させます。

CI/CD によるイメージビルドと、お客様の指示によるデプロイ
仕組み:
- GitHub 連携: CI/CD パイプラインは、コードベースを更新すると自動的に新しい Docker イメージをビルドしてプッシュします
- ロールアウトはお客様が管理: Kubernetes はレジストリを監視して自動デプロイするわけではありません。レジストリにある新しいイメージは、お客様が指示するまで cluster には反映されません。
baas_controller.sh upgradeコマンドを実行(または自動化したい場合は Flux や ArgoCD Image Updater などの独自イメージウォッチャーを設定)して、新しいタグを取得してください。
更新プロセスの仕組み:
-
コード変更: GitHub Actions ワークフローが git コミットハッシュ付きの新しい Docker イメージを自動的にビルドし、Scaleway Container Registry にプッシュします
-
デプロイのトリガー: 準備ができたときに新しいイメージタグに対してアップグレードコマンドを実行してください。独自のレジストリ監視コントローラーを設定しない限り、自動実行はされません
-
ゼロダウンタイムデプロイ: トリガー後、Kubernetes は pod を 1 つずつ入れ替え、古い pod を終了する前に新しい pod が正常であることを確認します
主なメリット:
- ✅ タイミングはお客様が決定: 機能、修正、セキュリティパッチを当社のスケジュールではなく、お客様自身のスケジュールで適用できます
- ✅ ゼロダウンタイム: トリガー後はサービス中断なくシームレスなローリングアップデートを実施
- ✅ バージョントラッキング: git コミットハッシュによる完全な監査証跡
- ✅ エンタープライズの信頼性: 本番環境と同じ CI/CD パイプライン
アップグレードコマンドを実行するたびに、最新の改善内容を取り込みながら、インフラの完全なコントロールを維持できます。
クイックセットアップ
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(requests)/ 3 vCPU(limits)
- メモリ:RAM 3GB(requests)/ RAM 6GB(limits)
- ストレージ:録画用 20GB
インフラ最小要件
- コントロールプレーン:2 vCPU、RAM 4GB
- ワーカーノード:16 vCPU、RAM 32GB(約 8 bot をサポート)
- データベース:8 vCPU、RAM 32GB(PostgreSQL)
- キャッシュ:2 vCPU、RAM 4GB(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