MongoDBをリモートアクセス用に有効にする方法

MongoDBをリモートアクセス用に有効にする方法
モニター上のコード。
画像: Maximusdn/Adobe Stock

MongoDBは、強力で柔軟性の高いNoSQLサーバーであり、様々な種類の最新アプリやサービスに利用できます。また、MongoDBはスケーラビリティも高く、膨大な量の非構造化データを処理できます。

参照:採用キット: データベースエンジニア(TechRepublic Premium)

Ubuntu と RHEL ベースの Linux ディストリビューションの両方に MongoDB をインストールする方法について概説しましたが、リモート アクセス用に設定する方法については説明が省略されていました。

RHEベースのディストリビューションでは、MongoDBの最新バージョンに対応するため、インストール方法が変更されました。新しいインストールでは、異なるリポジトリとインストールコマンドが必要です。リポジトリは次のコマンドで作成します。

sudo nano /etc/yum.repos.d/mongodb-org-6.0.repo

そのリポジトリの内容は次のとおりです。

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

最後に、インストール コマンドは次のようになります。

sudo dnf install mongodb-org mongodb-mongosh -y

MongoDB をインストールして実行したら、リモートアクセス用に設定する必要があります。なぜでしょうか?MongoDB サーバーを、他のリモートマシンにデータを提供するための集中的な場所として利用したい場合があるからです。

MongoDBでリモートアクセスを有効にするために必要なもの

MongoDB をリモート アクセス用に有効にするには、実行中の MongoDB インスタンスと sudo 権限を持つユーザーが必要です。

MongoDBのリモートアクセスを有効にする方法

まず最初に認証を有効にする必要があります。そのためには、次のコマンドでMongoDBコンソールにアクセスします。

mongosh

次のようにして、組み込みの MongoDB 管理者に変更します。

use admin

次のようにして新しい管理者ユーザーを作成します。

db.createUser(
  {
    user: "madmin",
    pwd: passwordPrompt(), // or cleartext password
    roles: [
      { role: "userAdminAnyDatabase", db: "admin" },
      { role: "readWriteAnyDatabase", db: "admin" }
    ]
  }
)

お好きなユーザー名に変更できますmadmin。新しいパスワードを作成するように求められます。注意:パスワードは一度しか入力できませんので、慎重に入力してください。

次に、次のコマンドで MongoDB 構成ファイルを開きます。

sudo nano /etc/mongod.conf

次の行を見つけます:

#security:

その行を次のように変更します。

security:
    authorization: enabled

ファイルを保存して閉じます。

次のコマンドで MongoDB を再起動します。

sudo systemctl restart mongod

これでリモートアクセスを有効にできます。もう一度、MongoDBの設定ファイルを次のように開きます。

sudo nano /etc/mongod.conf

そのファイルで、次のセクションを見つけます。

net:
  port: 27017  bindIp: 127.0.0.1  

そのセクションを次のように変更します。

net:  port: 27017
  bindIp: 0.0.0.0

ファイルを保存して閉じます。次のコマンドでMongoDBを再起動します。

sudo systemctl restart mongod

サーバーでファイアウォールを使用している場合は、ポート 27017 を開く必要があります。たとえば、Ubuntu ベースのディストリビューションでは次のようになります。

sudo ufw allow from remote_machine_ip to any port 27017

次のコマンドでファイアウォールをリロードします。

sudo ufw reload

リモートアクセスを許可

この時点で、上記で作成した新しい管理者ユーザーとパスワードを使用して、ポート27017でMongoDBに接続できるはずです。これでMongoDBのリモートアクセスを有効にする手順は完了です。このサーバーを集中型DBプラットフォームとして使用したい場合は、これで可能になります。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

MongoDB について詳しくは、TechRepublic Academy の以下のリソースをご覧ください:
Node、Express、MongoDB を使用した RESTful API の構築
フルスタック Web 開発: Node と MongoDB NoSQL データベースを使用した Web サイトの構築
データ アナリティクス エキスパート認定バンドル

Tagged: