Debian 9にMongoDBをインストールする方法

前書き

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

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

前提条件

このチュートリアルを実行するには、次のhttps://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-9 [初期サーバーセットアップチュートリアル]に従ってDebian 9サーバーをセットアップする必要があります。 sudo対応の非rootユーザーとファイアウォール。

ステップ1-MongoDBのインストール

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

まず、MongoDB署名キーを `+ apt-key add `で追加する必要があります。 そうする前に、 ` curl +`コマンドがインストールされていることを確認する必要があります。

sudo apt install curl

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

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

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

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

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

sudo apt update

`+ mongodb-org +`パッケージをインストールして、サーバーといくつかのサポートツールをインストールします。

sudo apt-get install mongodb-org

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

sudo systemctl enable mongod
sudo systemctl start mongod

MongoDBサーバーの便利な管理ツールとともに、MongoDBの最新の安定バージョンをインストールして開始しました。

次に、サーバーが実行中で正常に動作していることを確認しましょう。

ステップ2-サービスとデータベースの確認

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

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

sudo systemctl status mongod

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

Output●  - MongoDB Database Server
  Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
  Active:  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サーバーは稼働しています。

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

このコマンドを実行してください。

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

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

OutputMongoDB shell version v4.0.2
connecting to:
MongoDB server version: 4.0.2
{
   "authInfo" : {
       "authenticatedUsers" : [ ],
       "authenticatedUserRoles" : [ ]
   },

}

応答の「+ ok 」フィールドの「+1」の値は、サーバーが正常に動作していることを示します。

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

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

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

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

sudo systemctl status mongod

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

sudo systemctl stop mongod

停止時にサーバーを起動するには、次を入力します。

sudo systemctl start mongod

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

sudo systemctl restart mongod

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

sudo systemctl disable mongod

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

sudo systemctl enable mongod

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

ステップ4-ファイアウォールの調整(オプション)

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-9 [初期サーバーセットアップチュートリアル]の手順に従ってサーバーのファイアウォールを有効にすると、MongoDBサーバーはインターネットからアクセスできません。

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

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

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

sudo ufw allow from /32 to any port

`+ ufw +`でファイアウォール設定の変更を確認できます:

sudo ufw status

出力で許可されているポート「27017」へのトラフィックが表示されます。

出力

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

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

サービスへのアクセスを制限するためのより高度なファイアウォール設定は、https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands [UFW Essentials:Common Firewall Rules and Commands]で見つけることができます。

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

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

sudo nano /etc/mongod.conf

サーバーのIPアドレスを「+ bindIP +」値に追加します。

/etc/mongod.conf

. . .
# network interfaces
net:
 port: 27017
 bindIp: 127.0.0.1
. . .

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

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

sudo systemctl restart mongod

MongoDBは現在リモート接続をリッスンしていますが、誰でもアクセスできます。 https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-mongodb-on-ubuntu-16-04#part-two-securing-mongodb [インストール方法とUbuntu 16.04でMongoDBを保護]して管理ユーザーを追加し、さらに物事をロックダウンします。

結論

MongoDBの構成および使用方法に関する詳細なチュートリアルは、https://www.digitalocean.com/community/search?q = mongodb [これらのDigitalOceanコミュニティの記事]にあります。 公式のhttps://docs.mongodb.com/v3.2/[MongoDB documentation]も、MongoDBが提供する可能性に関する優れたリソースです。

Related