前書き
MongoDBは、最新のWebアプリケーションで一般的に使用される無料のオープンソースのNoSQLドキュメントデータベースです。 このチュートリアルは、実稼働アプリケーション環境用にサーバーでMongoDBをセットアップするのに役立ちます。
前提条件
このチュートリアルを実行するには、次のものが必要です。
-
このinitial server setup tutorialに従ってセットアップされた1つのUbuntu 16.04サーバー(sudo非rootユーザーとファイアウォールを含む)。
[[step-1 -—- adding-the-mongodb-repository]] ==ステップ1—MongoDBリポジトリを追加する
MongoDBはすでにUbuntuパッケージリポジトリに含まれていますが、公式のMongoDBリポジトリは最新バージョンを提供し、ソフトウェアのインストール方法として推奨されています。 このステップでは、この公式リポジトリをサーバーに追加します。
UbuntuはGPGキーで署名されていることを確認することでソフトウェアパッケージの信頼性を保証するため、まず公式のMongoDBリポジトリのキーをインポートする必要があります。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
キーを正常にインポートすると、次のように表示されます。
出力
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
次に、MongoDBリポジトリの詳細を追加して、apt
がパッケージのダウンロード元を認識できるようにする必要があります。
次のコマンドを発行してMongoDB用のリストファイルを作成します。
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
リポジトリの詳細を追加したら、パッケージリストを更新する必要があります。
sudo apt-get update
[[step-2 -—- installing-and-verifying-mongodb]] ==ステップ2—MongoDBのインストールと検証
これでMongoDBパッケージ自体をインストールできます。
sudo apt-get install -y mongodb-org
このコマンドは、MongoDBサーバーの便利な管理ツールとともに、MongoDBの最新の安定バージョンを含むいくつかのパッケージをインストールします。
次に、systemctl
でMongoDBを起動します。
sudo systemctl start mongod
systemctl
を使用して、サービスが正しく開始されたことを確認することもできます。
sudo systemctl status mongod
出力
● mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
Main PID: 4093 (mongod)
Tasks: 16 (limit: 512)
Memory: 47.1M
CPU: 1.224s
CGroup: /system.slice/mongodb.service
└─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf
最後の手順は、システムの起動時にMongoDBを自動的に起動できるようにすることです。
sudo systemctl enable mongod
これでMongoDBサーバーが構成されて実行され、systemctl
コマンドを使用してMongoDBサービスを管理できます(例: sudo systemctl stop mongod
、sudo systemctl start mongod
)。
[[step-3 --- adjusting-the-firewall-optional]] ==ステップ3—ファイアウォールの調整(オプション)
サーバーでファイアウォールを有効にするためにinitial server setup tutorialの指示に従ったとすると、MongoDBサーバーはインターネットからアクセスできなくなります。
MongoDBサーバーを同じサーバーで実行されているアプリケーションでローカルでのみ使用する場合は、これが推奨される安全な設定です。 ただし、インターネットからMongoDBサーバーに接続できるようにする場合は、ufw
での着信接続を許可する必要があります。
どこからでもデフォルトのポート27017
でMongoDBにアクセスできるようにするには、sudo ufw allow 27017
を使用できます。 ただし、デフォルトのインストールでMongoDBサーバーへのインターネットアクセスを有効にすると、データベースサーバー全体への無制限のアクセスが許可されます。
ほとんどの場合、MongoDBは、アプリケーションをホストする別のサーバーなど、特定の信頼できる場所からのみアクセスする必要があります。 このタスクを実行するために、MongoDBのデフォルトポートへのアクセスを許可しながら、明示的に接続を許可される別のサーバーのIPアドレスを指定できます。
sudo ufw allow from your_other_server_ip/32 to any port 27017
ファイアウォール設定の変更は、ufw
で確認できます。
sudo ufw status
出力に許可された27017
ポートへのトラフィックが表示されます。特定のIPアドレスのみにMongoDBサーバーへの接続を許可することにした場合、許可された場所のIPアドレスがAnywhereの代わりに表示されます。出力で。
出力
Status: active
To Action From
-- ------ ----
27017 ALLOW Anywhere
OpenSSH ALLOW Anywhere
27017 (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6)
サービスへのアクセスを制限するためのより高度なファイアウォール設定は、UFW Essentials: Common Firewall Rules and Commandsで説明されています。
結論
MongoDBのインストールと構成に関するより詳細な手順は、these DigitalOcean community articlesにあります。