メインコンテンツへ移動

MongoDB シングルノードをレプリカセットへ変換する方法

HAP システムアーキテクチャに基づき、MongoDB のシングルノード構成は、ストレージコンポーネントのイメージに組み込まれた MongoDB を使用する場合と、個別に導入した MongoDB を利用する場合に分類されます。また、認証の有無についても考慮が必要です。
全体として、以下 4 パターンがあります。

  • 組み込み MongoDB(認証無効)
  • 組み込み MongoDB(認証有効)
  • 外部 MongoDB(認証無効)
  • 外部 MongoDB(認証有効)

組み込み MongoDB とは、mingdaoyun-sc:3.2.0 イメージ内に含まれる MongoDB コンポーネントを指します。

  1. docker-compose.yaml の environment セクションに ENV_MONGODB_DAEMON_ARGS: "--replSet sc-mongodb" を追加します。

ENV_MONGODB_DAEMON_ARGS を追加すると、自動的にレプリカセットモードに移行します。組み込みスクリプトの内容は以下です:
rs.initiate({_id: "sc-mongodb",members:[ {_id : 1, host : "sc:27017"} ]})
※ 他のクライアントがこの MongoDB に接続する場合、クライアント側で sc サービス名に対する名前解決の設定が必要です。

services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap:7.5.1
environment: &app-environment
ENV_MONGODB_DAEMON_ARGS: "--replSet sc-mongodb"
  1. サービスを再起動します。マネージャのルートディレクトリで以下を実行してください。
bash ./service.sh restartall