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