スタンドアロンの自己管理型 mongod のレプリカセットへの変換
スタンドアロン mongod
インスタンスは、テストと開発に役立ちます。スタンドアロン インスタンスは単一障害点になる可能性があるため、本番環境への配置には適していません。レプリカセットはクラスターとも呼ばれ、冗長性と可用性を提供します。本番環境では常にレプリカセットを使用してください。
本番環境で使用したいデータを含むスタンドアロンサーバーがある場合は、まずスタンドアロンサーバーをレプリカセットに変換します。
重要
開発サーバーを本番用のレプリカセットに変換する場合は、クラスターをインターネットに公開する前にセキュリティ チェックリストを参照してください。
スタンドアロン サーバーから MongoDB Atlasクラスターには簡単に移行できます。 MongoDB Atlas は、MongoDB をクラウドに配置するためのフルマネージド サービスです。 詳細については、MongoDB Atlas ドキュメントの「 データの移行またはインポート 」を参照してください。
このタスクについて
サーバー アーキテクチャ
このチュートリアルでは次のサーバーを使用します。
Hostname | ポート | 説明 |
---|---|---|
|
| データを含む実行中のスタンドアロンMongoDB Server 。 |
|
| レプリカセットに参加する新しいMongoDB Server 。 |
|
| レプリカセットに参加する新しいMongoDB Server 。 |
始める前に
クラスター タイプ
スタンドアロン インスタンスを変換する前に、レプリカセットとシャーディングされたクラスターのどちらがワークロードに適しているかを検討してください。
シャーディングされたクラスターは、特殊な種類のクラスターです。シャーディングされたクラスターは冗長性と可用性を提供し、データを複数のシャードに分散させます。シャードは通常、複数のサーバーでホストされ、水平スケーリングを可能にします。
承認
レプリカセットで認証を使用するには、X. 509証明書またはキーファイルを使用して内部認証を実行するようにレプリカセット ノードも構成する必要があります。
詳細については、以下を参照してください。
手順
レプリカセット ノードの構成
各サーバー と の構成ファイルを更新して、 replSetName
設定を設定します。
replication: replSetName: "rs0"
メンバー認証の設定
レプリカセット内の各サーバーのメンバー認証を設定します。
内部ノード認証に X. 509証明書を使用するようにレプリカセットを構成します。
設定 | オプション | 説明 |
---|---|---|
認証で使用する TLS モードを設定します。 X. 509証明書認証を必要とするようにサーバーを構成するには、このオプションを | ||
クライアント接続用の TLS 証明書を含む | ||
認証局(CA)のルート証明書チェーンを含む ファイルへのパスを設定します。 | ||
クラスター ノード接続の TLS 証明書を含む | ||
クラスター ノードを認証するために使用されるモードを設定します。 X. 509認証を使用するには、このオプションを |
以下に例を挙げます。
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 アドレスを設定します。 サーバーへのネットワーク アクセスをブロックするには、このオプションを |
以下に例を挙げます。
replication: replSetName: "rs0" net: bindIp: localhost
MongoDB を起動する
各メンバーに対してmongod
を開始します。
レプリカセットを初期化します。
レプリカセットを初期化するには、mongosh
を使用してサーバーインスタンスに再接続します。
mongosh "mongodb://mongodb0.example.net:27017"
次に、rs.initiate()
メソッドを実行します。
rs.initiate()
レプリカセットを開始する必要があるのは一度だけです。
レプリカセットの構成を表示するには、 rs.conf()
を使用します。
レプリカセットのステータスを確認するには、 rs.status()
を使用します。
レプリカセットにノードを追加します。
新しいレプリカセットには、単一のプライマリノードがあります。次の手順では、レプリカセットに新しいノードを追加します。追加のノードを追加する前に、クラスターに関するドキュメントを確認してください。
ノードを追加するには、rs.add()
メソッドを実行します。
rs.add("mongodb1.example.net:27017") rs.add("mongodb2.example.net:27017")
レプリケーションステータスを確認します。
レプリカセットが正しく構成されていることを確認するには、rs.status()
メソッドを実行し、新しいノードがmembers
フィールドに一覧表示されていることを確認します。
rs.status()