AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

スタンドアロンの自己管理型 mongod のレプリカセットへの変換

テストおよび開発には、スタンドアロンのmongodインスタンスを使用してください。スタンドアロン インスタンスは単一障害点になる可能性があるため、本番環境への配置には適していません。レプリカセットは、冗長性と可用性を提供します。本番環境では常にレプリカセットを使用してください。

本番環境で使用したいデータを含むスタンドアロンサーバーがある場合は、まずスタンドアロンサーバーをレプリカセットに変換します。

重要

開発サーバーを本番用レプリカセットに変換する場合は、まずセキュリティ チェックリストを参照してください。クラスターをインターネットに公開する前に、これを実行します。

スタンドアロン サーバーから MongoDB Atlas クラスターに移行できます。MongoDB Atlas は、MongoDB をクラウド内に配置するための完全管理サービスです。詳細については、MongoDB Atlas ドキュメントの「データを移行またはインポート」を参照してください。

このチュートリアルでは次のサーバーを使用します。

Hostname
ポート
説明

mongodb0.example.net

27017

データを含む実行中のスタンドアロンMongoDB Server 。

mongodb1.example.net

27017

レプリカセットに参加する新しいMongoDB Server 。

mongodb2.example.net

27017

レプリカセットに参加する新しいMongoDB Server 。

スタンドアロン インスタンスを変換する前に、レプリカセットとシャーディングされたクラスターのどちらがワークロードに適しているかを検討してください。

シャーディングされたクラスターは、データを複数のサーバーでホストされることが多いシャードに分散させることで、冗長性と可用性を提供し、水平スケーリングを可能にします。

レプリカセットで認証を使用するには、X. 509証明書またはキーファイルを使用して内部認証を実行するようにレプリカセット ノードも構成する必要があります。

詳細については、以下を参照してください。

1

mongosh を使用して既存の mongodインスタンスに 接続 します。

mongosh "mongodb://mongodb0.example.net:27017"

adminデータベースに切り替えてshutdownを実行します。

use admindb.adminCommand( { shutdown: 1, comment: "Convert to replica set" })

shutdown コマンドを実行すると、サーバーは次の例のようなメッセージで応答します。

MongoNetworkError: connection <connection number> to <host>:<port> closed

2

各サーバーの構成ファイルを更新して、 replSetName設定を行います。

replication: replSetName: "rs0"
3

レプリカセット内の各サーバーのメンバー認証を設定します。

内部ノード認証に X. 509証明書を使用するようにレプリカセットを構成します。

設定
オプション
説明

認証で使用する TLS モードを設定します。 X. 509証明書認証を必要とするようにサーバーを構成するには、このオプションをrequireTLSに設定します。

クライアント接続用の TLS 証明書を含む.pemファイルへのパスを設定します。

認証局(CA)のルート証明書チェーンを含む ファイルへのパスを設定します。

クラスター ノード接続の TLS 証明書を含む.pemファイルへのパスを設定します。

クラスター ノードを認証するために使用されるモードを設定します。 X. 509認証を使用するには、このオプションをx509に設定します。

以下に例を挙げます。

replication: replSetName: "rs0"security: clusterAuthMode: x509net: tls: mode: requireTLS certificateKeyFile: /etc/mongodb/client.pem CAFile: /etc/mongodb/ca.pem clusterFile: /etc/mongodb/member.pem
4

各メンバーに対してmongodを開始します。

5

レプリカセットを初期化するには、 mongoshを使用してサーバー インスタンスに再接続します。

mongosh "mongodb://mongodb0.example.net:27017"

次に、rs.initiate() メソッドを実行します。

rs.initiate()

レプリカセットを開始する必要があるのは一度だけです。

レプリカセットの構成を表示するには、 rs.conf()を使用します。

レプリカセットのステータスを確認するには、 rs.status()を使用します。

6

新しいレプリカセットには、単一のプライマリノードがあります。追加のノードを追加する前に、クラスターに関するドキュメントを確認してください。

ノードを追加するには、rs.add() メソッドを実行します。

rs.add("mongodb1.example.net:27017")rs.add("mongodb2.example.net:27017")
7

レプリカセットが正しく構成されていることを確認するには、rs.status() メソッドを実行し、新しいノードが members フィールドに一覧表示されていることを確認します。

rs.status()
8

スタンドアロンサーバーをレプリカセットに変換した後、アプリケーションで使用される接続文字列をレプリカセットの接続文字列に更新します。

  • mongodb0.example.net:27017

  • mongodb1.example.net:27017

  • mongodb2.example.net:27017

mongodb://mongodb0.example.net:27017,mongodb1.example.net:27017,mongodb2.example.net:27017

それから、アプリケーションを再起動します。

このページを評価