開発者ドキュメント

Ubuntu20.04にMongoDBをインストールする方法

このチュートリアルの以前のバージョンは、 MelissaAndersonによって作成されました。

序章

MongoDB は、多くの最新のWebアプリケーションで使用されているドキュメントデータベースです。 従来のテーブルベースのリレーショナルデータベース構造に依存しないため、NoSQLデータベースとして分類されます。

代わりに、動的スキーマを持つJSONのようなドキュメントを使用します。つまり、リレーショナルデータベースとは異なり、MongoDBでは、データベースにデータを追加する前に事前定義されたスキーマは必要ありません。 更新されたスキーマを使用して新しいデータベースを設定しなくても、いつでも必要な頻度でスキーマを変更できます。

このチュートリアルでは、MongoDBをUbuntu 20.04サーバーにインストールしてテストし、systemdサービスとして管理する方法を学習します。

前提条件

このチュートリアルに従うには、次のものが必要です。

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

Ubuntuの公式パッケージリポジトリには、安定バージョンのMongoDBが含まれています。 ただし、この記事の執筆時点では、デフォルトのUbuntuリポジトリから入手できるMongoDBのバージョンは 3.6 ですが、最新の安定版リリースは4.4です。

このソフトウェアの最新バージョンを入手するには、MongoDBの専用パッケージリポジトリをAPTソースに含める必要があります。 次に、常に最新バージョンのMongoDBを指すメタパッケージであるmongodb-orgをインストールできるようになります。

開始するには、次のコマンドを実行して、MongoDBの最新の安定バージョンの公開GPGキーをインポートします。 4.4 以外のバージョンのMongoDBを使用する場合は、このコマンドのURL部分の4.4を変更して、インストールするバージョンに合わせてください。

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

cURLは、データの転送に使用される多くのオペレーティングシステムで使用できるコマンドラインツールです。 渡されたURLに保存されているデータをすべて読み取り、その内容をシステムの出力に出力します。 次の例では、cURLはGPGキーファイルの内容を出力し、それを次のsudo apt-key add -コマンドにパイプして、信頼できるキーのリストにGPGキーを追加します。

また、このcurlコマンドは、オプション-fsSLを使用することに注意してください。これらのオプションを組み合わせることで、基本的にcURLにサイレントに失敗するように指示します。 これは、何らかの理由でcURLがGPGサーバーに接続できない場合、またはGPGサーバーがダウンしている場合でも、結果のエラーコードが信頼できるキーのリストに誤って追加されないことを意味します。

キーが正常に追加された場合、このコマンドはOKを返します。

Output
OK

キーが正しく追加されたことを再確認する場合は、次のコマンドを使用して行うことができます。

  1. apt-key list

これにより、出力のどこかにMongoDBキーが返されます。

Output
/etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26] 2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5 uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com> . . .

この時点では、APTインストールは、最新バージョンのMongoDBをインストールするために必要なmongodb-orgパッケージの場所をまだ認識していません。

サーバー上で、APTがダウンロードおよびインストールするパッケージのオンラインソースを探す場所は、sources.listファイルとsources.list.dディレクトリの2つです。 sources.listは、APTデータのアクティブなソースをリストするファイルで、1行に1つのソースがあり、最も優先されるソースが最初にリストされています。 sources.list.dディレクトリでは、このようなsources.listエントリを個別のファイルとして追加できます。

次のコマンドを実行すると、sources.list.dディレクトリにmongodb-org-4.4.listという名前のファイルが作成されます。 このファイルの唯一の内容は、deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverseを読み取る1行です。

  1. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

この1行は、ソースが何であるか、およびソースがどこにあるかについて知る必要があるすべてをAPTに伝えます。

このコマンドを実行した後、サーバーのローカルパッケージインデックスを更新して、APTがmongodb-orgパッケージの場所を認識できるようにします。

  1. sudo apt update

その後、MongoDBをインストールできます。

  1. sudo apt install mongodb-org

プロンプトが表示されたら、YENTERの順に押して、パッケージをインストールすることを確認します。

コマンドが終了すると、MongoDBがシステムにインストールされます。 ただし、まだ使用する準備ができていません。 次に、MongoDBを起動し、正しく機能していることを確認します。

ステップ2— MongoDBサービスを開始し、データベースをテストする

前の手順で説明したインストールプロセスでは、MongoDBがsystemdによって制御されるデーモンとして実行されるように自動的に構成されます。つまり、さまざまなsystemctlコマンドを使用してMongoDBを管理できます。 ただし、このインストール手順ではサービスは自動的に開始されません。

次のsystemctlコマンドを実行して、MongoDBサービスを開始します。

  1. sudo systemctl start mongod.service

次に、サービスのステータスを確認します。 このコマンドには、サービスファイル定義に.serviceが含まれていないことに注意してください。 systemctlは、このサフィックスがまだ存在しない場合、自動的に渡す引数にこのサフィックスを追加するため、含める必要はありません。

  1. sudo systemctl status mongod

このコマンドは、サービスが稼働中であることを示す次のような出力を返します。

Output
● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-09 12:57:06 UTC; 2s ago Docs: https://docs.mongodb.org/manual Main PID: 37128 (mongod) Memory: 64.8M CGroup: /system.slice/mongod.service └─37128 /usr/bin/mongod --config /etc/mongod.conf

サービスが期待どおりに実行されていることを確認したら、MongoDBサービスを起動時に起動できるようにします。

  1. sudo systemctl enable mongod

データベースサーバーに接続して診断コマンドを実行することにより、データベースが動作していることをさらに確認できます。 次のコマンドはデータベースに接続し、現在のバージョン、サーバーアドレス、およびポートを出力します。 また、MongoDBの内部connectionStatusコマンドの結果も返します。

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

connectionStatusは、データベース接続のステータスを確認して返します。 応答のokフィールドの1の値は、サーバーが期待どおりに機能していることを示しています。

Output
MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1dc7d67a-0af5-4394-b9c4-8a6db3ff7e64") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

また、データベースは127.0.0.1のポート27017で実行されており、ローカルループバックアドレスはlocalhostを表していることに注意してください。 これはMongoDBのデフォルトのポート番号です。

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

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

前述のように、ステップ1で説明したインストールプロセスは、MongoDBをsystemdサービスとして実行するように構成します。 これは、他のUbuntuシステムサービスと同じように、標準のsystemctlコマンドを使用して管理できることを意味します。

前述のように、systemctl statusコマンドはMongoDBサービスのステータスをチェックします。

  1. sudo systemctl status mongod

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

  1. sudo systemctl stop mongod

停止時にサービスを開始するには、次のコマンドを実行します。

  1. sudo systemctl start mongod

サーバーがすでに実行されているときにサーバーを再起動することもできます。

  1. sudo systemctl restart mongod

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

  1. sudo systemctl disable mongod

次に、起動時に起動できるように再度有効にするには、enableコマンドを再度実行します。

  1. sudo systemctl enable mongod

systemdサービスの管理方法の詳細については、 Systemd Essentials:サービス、ユニット、およびジャーナルの操作を確認してください。

結論

このチュートリアルでは、公式のMongoDBリポジトリをAPTインスタンスに追加し、最新バージョンのMongoDBをインストールしました。 次に、Mongoの機能をテストし、いくつかのsystemctlコマンドを練習しました。

次のステップとして、 Ubuntu 20.04でMongoDBを保護する方法のガイドに従って、MongoDBインストールのセキュリティを強化することを強くお勧めします。 保護されたら、リモート接続を受け入れるようにMongoDBを構成できます

MongoDBを構成および使用する方法に関するその他のチュートリアルは、これらのDigitalOceanコミュニティの記事にあります。 また、MongoDBが提供する可能性についての優れたリソースであるため、公式のMongoDBドキュメントを確認することをお勧めします。

モバイルバージョンを終了