序章

MongoDB は、最新のWebアプリケーションで一般的に使用されている無料のオープンソースNoSQLドキュメントデータベースです。

このチュートリアルでは、MongoDBをインストールし、そのサービスを管理し、オプションでリモートアクセスを有効にします。

前提条件

このチュートリアルに従うには、この初期サーバーセットアップチュートリアルに従って、sudo対応の非rootユーザーとファイアウォールを含む1台のDebian9サーバーをセットアップする必要があります。

ステップ1—MongoDBをインストールする

Debian 9の公式パッケージリポジトリには、少し古いバージョンのMongoDBが含まれています。つまり、代わりに公式のMongoDBリポジトリからインストールします。

まず、MongoDB署名キーを追加する必要があります apt-key add. 確認する必要があります curl その前にコマンドをインストールします。

  1. sudo apt install curl

次に、キーをダウンロードしてに渡します apt-key add:

  1. curl https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -

次に、MongoDBリポジトリのソースリストを作成します。 apt どこからダウンロードするかを知っています。 まず、テキストエディタでソースリストファイルを開きます。

  1. sudo nano /etc/apt/sources.list.d/mongodb-org-4.0.list

これにより、新しい空のファイルが開きます。 次のように貼り付けます。

/etc/apt/sources.list.d/mongodb-org-4.0.list
deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main

ファイルを保存して閉じてから、パッケージキャッシュを更新します。

  1. sudo apt update

をインストールします mongodb-org サーバーといくつかのサポートツールをインストールするためのパッケージ:

  1. sudo apt-get install mongodb-org

最後に、有効にして開始します mongod MongoDBデータベースを実行するためのサービス:

  1. sudo systemctl enable mongod
  2. sudo systemctl start mongod

これで、MongoDBの最新の安定バージョンと、MongoDBサーバー用の便利な管理ツールがインストールされて開始されました。

次に、サーバーが実行され、正しく機能していることを確認しましょう。

ステップ2—サービスとデータベースを確認する

前の手順でMongoDBサービスを開始しました。次に、MongoDBサービスが開始され、データベースが機能していることを確認しましょう。

まず、サービスのステータスを確認します。

  1. sudo systemctl status mongod

次の出力が表示されます。

Output
mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-09-05 16:59:56 UTC; 3s ago Docs: https://docs.mongodb.org/manual Main PID: 4321 (mongod) Tasks: 26 CGroup: /system.slice/mongod.service └─4321 /usr/bin/mongod --config /etc/mongod.conf

によると systemd、MongoDBサーバーが稼働しています。

実際にデータベースサーバーに接続して診断コマンドを実行することで、これをさらに確認できます。

次のコマンドを実行します。

  1. mongo --eval 'db.runCommand({ connectionStatus: 1 })'

これにより、現在のデータベースバージョン、サーバーアドレスとポート、およびstatusコマンドの出力が出力されます。

Output
MongoDB shell version v4.0.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 4.0.2 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

の値 1 のために ok 応答のフィールドは、サーバーが正しく機能していることを示します。

次に、サーバーインスタンスを管理する方法を見ていきます。

ステップ3—MongoDBサービスの管理

MongoDBはsystemdサービスとしてインストールされます。つまり、標準を使用して管理できます。 systemd Ubuntuの他のすべてのシステムサービスと一緒にコマンド。

サービスのステータスを確認するには、次のように入力します。

  1. sudo systemctl status mongod

次のように入力すると、いつでもサーバーを停止できます。

  1. sudo systemctl stop mongod

サーバーが停止しているときにサーバーを起動するには、次のように入力します。

  1. sudo systemctl start mongod

次の1つのコマンドでサーバーを再起動することもできます。

  1. sudo systemctl restart mongod

前の手順では、MongoDBがサーバーで自動的に起動するようにしました。 自動起動を無効にする場合は、次のように入力します。

  1. sudo systemctl disable mongod

再度有効にするのも同じくらい簡単です。 これを行うには、次を使用します。

  1. sudo systemctl enable mongod

次に、MongoDBインストールのファイアウォール設定を調整しましょう。

手順4—ファイアウォールの調整(オプション)

初期サーバーセットアップチュートリアルの手順に従ってサーバーのファイアウォールを有効にすると、インターネットからMongoDBサーバーにアクセスできなくなります。

同じサーバー上で実行されているアプリケーションでローカルでのみMongoDBサーバーを使用する場合は、これが推奨される安全な設定です。 ただし、インターネットからMongoDBサーバーに接続できるようにする場合は、での着信接続を許可する必要があります。 ufw.

デフォルトのポートでMongoDBへのアクセスを許可するには 27017 どこからでも、あなたは使うことができます sudo ufw allow 27017. ただし、デフォルトのインストールでMongoDBサーバーへのインターネットアクセスを有効にすると、データベースサーバーとそのデータに無制限にアクセスできるようになります。

ほとんどの場合、MongoDBには、アプリケーションをホストしている別のサーバーなど、特定の信頼できる場所からのみアクセスする必要があります。 このタスクを実行するために、明示的に接続を許可される別のサーバーのIPアドレスを指定しながら、MongoDBのデフォルトポートへのアクセスを許可できます。

  1. sudo ufw allow from your_other_server_ip/32 to any port 27017

ファイアウォール設定の変更は、次のコマンドで確認できます。 ufw:

  1. sudo ufw status

ポートへのトラフィックが表示されるはずです 27017 出力で許可されます:

出力
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)

特定のIPアドレスのみにMongoDBサーバーへの接続を許可することにした場合は、許可された場所のIPアドレスが代わりに表示されます。 Anywhere 出力で。

サービスへのアクセスを制限するためのより高度なファイアウォール設定は、 UFW Essentials:Common Firewall RulesandCommandsにあります。

ポートが開いていても、MongoDBは現在ローカルアドレスのみをリッスンしています 127.0.0.1. リモート接続を許可するには、サーバーのパブリックにルーティング可能なIPアドレスをに追加します。 mongod.conf ファイル。

エディターでMongoDB構成ファイルを開きます。

  1. sudo nano /etc/mongod.conf

サーバーのIPアドレスをに追加します bindIP 価値:

/etc/mongod.conf
. . .
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,your_server_ip
. . .

既存のIPアドレスと追加したIPアドレスの間に必ずコンマを入れてください。

ファイルを保存し、エディターを終了して、MongoDBを再起動します。

  1. sudo systemctl restart mongod

MongoDBは現在リモート接続をリッスンしていますが、誰でもアクセスできます。 Ubuntu 16.04 にMongoDBをインストールして保護する方法のパート2に従って、管理ユーザーを追加し、さらにロックダウンします。

結論

MongoDBの構成と使用方法に関するより詳細なチュートリアルは、これらのDigitalOceanコミュニティの記事にあります。 公式のMongoDBドキュメントも、MongoDBが提供する可能性に関する優れたリソースです。