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

序章

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

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

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

前提条件

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

  • 1つのUbuntu18.04サーバー。 このサーバーには、root以外の管理ユーザーとUFWで構成されたファイアウォールが必要です。 Ubuntu18.04初期サーバーセットアップガイドに従ってこれをセットアップします。

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

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

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

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

  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 <[email protected]> . . .

この時点で、APTインストールはまだどこを見つけるかを知りません mongodb-org パッケージには、MongoDBの最新バージョンをインストールする必要があります。

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

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

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

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

  • deb:これは、ソースエントリが通常のDebianアーキテクチャを参照していることを意味します。 その他の場合、行のこの部分は次のようになります。 deb-src、これは、ソースエントリがDebianディストリビューションのソースコードを表すことを意味します。
  • [ arch=amd64,arm64 ]:これは、APTデータをダウンロードするアーキテクチャを指定します。 この場合、それは指定します amd64arm64 アーキテクチャ。
  • https://repo.mongodb.org/apt/ubuntu:これは、APTデータを見つけることができる場所を表すURIです。 この場合、URIは公式のMongoDBリポジトリが配置されているHTTPSアドレスを指します。
  • bionic/mongodb-org/4.4:Ubuntuリポジトリにはいくつかの異なるリリースを含めることができます。 これは、バージョンのみが必要であることを指定します 4.4mongodb-org 利用可能なパッケージ bionic Ubuntuのリリース(「BionicBeaver」はUbuntu 18.04のコードネームです)。
  • multiverse:この部分は、APTが4つの主要なUbuntuリポジトリの1つを指していることを示しています。 この場合、それはマルチバースリポジトリを指しています。

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

  1. sudo apt update

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

  1. sudo apt install mongodb-org

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

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

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

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

次を実行します 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-10-06 15:08:09 UTC; 6s ago Docs: https://docs.mongodb.org/manual Main PID: 13429 (mongod) CGroup: /system.slice/mongod.service └─13429 /usr/bin/mongod --config /etc/mongod.conf

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

  1. sudo systemctl enable mongod

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

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

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

Output
MongoDB shell version v4.4.1 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2244c4df-38a3-4109-9fd2-68948865647a") } MongoDB server version: 4.4.1 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

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

次に、MongoDBサーバーインスタンスを次のように管理する方法を見ていきます。 systemd.

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

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

前述のように、 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 18.04でMongoDBを保護する方法のガイドに従って、MongoDBインストールのセキュリティを強化することを強くお勧めします。 保護されたら、リモート接続を受け入れるようにMongoDBを構成できます

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