Debian9にMongoDBをインストールする方法
序章
MongoDB は、最新のWebアプリケーションで一般的に使用されている無料のオープンソースNoSQLドキュメントデータベースです。
このチュートリアルでは、MongoDBをインストールし、そのサービスを管理し、オプションでリモートアクセスを有効にします。
前提条件
このチュートリアルに従うには、この初期サーバーセットアップチュートリアルに従って、sudo対応の非rootユーザーとファイアウォールを含む1台のDebian9サーバーをセットアップする必要があります。
ステップ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
これにより、新しい空のファイルが開きます。 次のように貼り付けます。
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サービスを開始しました。次に、MongoDBサービスが開始され、データベースが機能していることを確認しましょう。
まず、サービスのステータスを確認します。
- 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サーバーが稼働しています。
実際にデータベースサーバーに接続して診断コマンドを実行することで、これをさらに確認できます。
次のコマンドを実行します。
- mongo --eval 'db.runCommand({ connectionStatus: 1 })'
これにより、現在のデータベースバージョン、サーバーアドレスとポート、およびstatusコマンドの出力が出力されます。
OutputMongoDB 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の他のすべてのシステムサービスと一緒にコマンド。
サービスのステータスを確認するには、次のように入力します。
- sudo systemctl status mongod
次のように入力すると、いつでもサーバーを停止できます。
- sudo systemctl stop mongod
サーバーが停止しているときにサーバーを起動するには、次のように入力します。
- sudo systemctl start mongod
次の1つのコマンドでサーバーを再起動することもできます。
- sudo systemctl restart mongod
前の手順では、MongoDBがサーバーで自動的に起動するようにしました。 自動起動を無効にする場合は、次のように入力します。
- sudo systemctl disable mongod
再度有効にするのも同じくらい簡単です。 これを行うには、次を使用します。
- sudo systemctl enable mongod
次に、MongoDBインストールのファイアウォール設定を調整しましょう。
手順4—ファイアウォールの調整(オプション)
初期サーバーセットアップチュートリアルの手順に従ってサーバーのファイアウォールを有効にすると、インターネットからMongoDBサーバーにアクセスできなくなります。
同じサーバー上で実行されているアプリケーションでローカルでのみMongoDBサーバーを使用する場合は、これが推奨される安全な設定です。 ただし、インターネットからMongoDBサーバーに接続できるようにする場合は、での着信接続を許可する必要があります。 ufw
.
デフォルトのポートでMongoDBへのアクセスを許可するには 27017
どこからでも、あなたは使うことができます sudo ufw allow 27017
. ただし、デフォルトのインストールでMongoDBサーバーへのインターネットアクセスを有効にすると、データベースサーバーとそのデータに無制限にアクセスできるようになります。
ほとんどの場合、MongoDBには、アプリケーションをホストしている別のサーバーなど、特定の信頼できる場所からのみアクセスする必要があります。 このタスクを実行するために、明示的に接続を許可される別のサーバーのIPアドレスを指定しながら、MongoDBのデフォルトポートへのアクセスを許可できます。
- sudo ufw allow from your_other_server_ip/32 to any port 27017
ファイアウォール設定の変更は、次のコマンドで確認できます。 ufw
:
- 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構成ファイルを開きます。
- sudo nano /etc/mongod.conf
サーバーのIPアドレスをに追加します bindIP
価値:
. . .
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,your_server_ip
. . .
既存のIPアドレスと追加したIPアドレスの間に必ずコンマを入れてください。
ファイルを保存し、エディターを終了して、MongoDBを再起動します。
- sudo systemctl restart mongod
MongoDBは現在リモート接続をリッスンしていますが、誰でもアクセスできます。 Ubuntu 16.04 にMongoDBをインストールして保護する方法のパート2に従って、管理ユーザーを追加し、さらにロックダウンします。
結論
MongoDBの構成と使用方法に関するより詳細なチュートリアルは、これらのDigitalOceanコミュニティの記事にあります。 公式のMongoDBドキュメントも、MongoDBが提供する可能性に関する優れたリソースです。