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

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

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

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

重要

If you convert a development server to a replica set for production use, consult the security checklist first. Do this before you expose your cluster to the Internet.

You can migrate from a standalone server to a MongoDB Atlas cluster. MongoDB Atlas is the fully managed service for MongoDB deployments in the cloud. To learn more, see Migrate or Import Data in the MongoDB Atlas documentation.

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

Hostname
ポート
説明

mongodb0.example.net

27017

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

mongodb1.example.net

27017

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

mongodb2.example.net

27017

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

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

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

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

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

1

Use mongosh to connect to your existing mongod instance:

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

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

use admin
db.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: x509
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mongodb/client.pem
CAFile: /etc/mongodb/ca.pem
clusterFile: /etc/mongodb/member.pem

内部ノード認証にキーファイルを使用するようにレプリカセットを構成します。 認証するには、各ノードが同じキーファイルのコピーを持っている必要があります。

設定
オプション
説明

レプリカセット キーファイルへのパスを設定します。

以下に例を挙げます。

replication:
replSetName: "rs0"
security:
keyFile: /etc/mongodb/keyfile

認可なしでレプリカセットを構成します。

警告

この構成は、ネットワーク経由でアクセスできない内部レプリカセットにのみ使用してください。

設定
オプション
説明

MongoDB がクライアント接続をリッスンするホスト名または IP アドレスを設定します。 サーバーへのネットワーク アクセスをブロックするには、このオプションをlocalhostに設定します。

以下に例を挙げます。

replication:
replSetName: "rs0"
net:
bindIp: localhost
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

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

このページを評価