前書き

MongoDBは、最新のWebアプリケーションで一般的に使用される無料のオープンソースのNoSQLドキュメントデータベースです。 このチュートリアルは、実稼働アプリケーション環境用にサーバーでMongoDBをセットアップするのに役立ちます。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • このhttps://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 [初期サーバーセットアップチュートリアル]に従ってセットアップされた1つのUbuntu 16.04サーバー(sudo非ルートユーザーを含む)およびファイアウォール。

手順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

ステップ2-MongoDBのインストールと検証

これでMongoDBパッケージ自体をインストールできます。

sudo apt-get install -y mongodb-org

このコマンドは、MongoDBサーバーの便利な管理ツールとともに、MongoDBの最新の安定バージョンを含むいくつかのパッケージをインストールします。

次に、 `+ systemctl +`でMongoDBを起動します。

sudo systemctl start mongod

`+ systemctl +`を使用して、サービスが適切に開始されたことを確認することもできます。

sudo systemctl status mongod

出力

- High-performance, schema-free document-oriented database
  Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
  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 +)。

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

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 [サーバーの初期セットアップチュートリアル]の指示に従ってサーバーのファイアウォールを有効にすると仮定すると、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」ポートへのトラフィックが表示されます。特定のIPアドレスのみをMongoDBサーバーへの接続を許可することを決定した場合、許可された場所のIPアドレスが_Anywhere_の代わりに出力に表示されます。

出力

Status: active

To                         Action      From
--                         ------      ----

OpenSSH                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

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

結論

MongoDBのインストールと構成に関する詳細な手順については、https://www.digitalocean.com/community/search?q = mongodb [これらのDigitalOceanコミュニティの記事]を参照してください。