この記事では、MongoDBをインストールし、そのサービスを管理し、Ubuntu18.04VPSでリモート接続を許可する方法を説明します。
MongoDBは、NoSQLファミリーに属するオープンソースのデータベース管理システムです。 NoSQLは、従来のテーブルベースのSQLデータベース(MySQLおよびPostgreSQL)とは異なります。データは、事前定義されたスキーマのない柔軟なJSONのようなドキュメントに保存されるため、ダウンタイムなしでデータベースに大きな変更を加えることができます。インストールを始めましょう。
ステップ1:サーバーに接続する
始める前に、rootユーザーとしてSSH経由でサーバーに接続する必要があります。これを行うには、次のコマンドを使用します。
ssh root@IP_Address -p port_number
IP_Addressとport_numberを実際のサーバーのIPアドレスとSSHポート番号に置き換える必要があります。 rootアカウントにアクセスできない場合は、代わりにsudo権限を持つアカウントを使用できます。
ログインしたら、次のコマンドを実行して、サーバーが最新であることを確認します。
sudo apt update sudo apt upgrade
ステップ2:MongoDBのインストール
Ubuntuの公式ソフトウェアパッケージリポジトリには、MongoDBのバージョン3.6.3が付属していますが、この記事では、利用可能な最新バージョンであるMongoDB4.0をインストールします。ただし、MongoDBの新しいバージョンが公式Webサイトで利用可能かどうかはいつでも確認できます。
UbuntuにMongoDB4.0Community Editionをインストールするには、パッケージ管理システムで使用される公開鍵をインポートする必要があります。次のコマンドでそれを行うことができます:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
これでキーがインポートされたので、次の行でMongoDBリポジトリを追加できます:
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
次に、パッケージリストを更新します:
sudo apt update
この時点で、リポジトリが有効になり、パッケージリストが更新されます。次のコマンドを入力して、MongoDBCEパッケージのインストールを続行できます。
sudo apt install mongodb-org
mongodb-org-server、mongodb-org-mongos、mongodb-org-shell、mongodb-org-toolsパッケージは、mongodb-orgパッケージの一部としてシステムにインストールされます。
これで、MongoDB 4.0CommunityEditionがサーバーにインストールされました。次に、MongoDBサービスを開始し、起動時に開始できるようにする必要があります。
sudo systemctl start mongod sudo systemctl enable mongod
MongoDBのインストールを確認するには、次のコマンドを入力して接続ステータスを確認します。
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
次のような出力が必要です:
MongoDB shell version v4.0.6 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("c806e0e1-ab30-4d41-b882-026c09d2893f") } MongoDB server version: 4.0.6 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
おめでとうございます。サーバーにMongoDBが正常にインストールされました。次のステップでは、MongoDBサーバーの構成について説明します。
ステップ3:MongoDBの構成
mongod.conf
を変更することで、MongoDBインスタンスを構成できます。 /etc/
にあるファイル 。 Nanoを使用してファイルを編集しますが、必要に応じて、お好みのテキストエディタを使用できます。
sudo nano /etc/mongod.conf
リモート接続を可能にし、MongoDBの安全性を高めるために、構成ファイルにいくつかの変更を加えます。 MongoDBはデフォルトで、ローカルホスト(IP 127.0.0.1)のポート27017でのみ接続をリッスンします。リモートMongoDB接続を許可するには、サーバーのIPアドレスをMongoDB構成ファイルに追加する必要があります。これを以下の例として示します:
bind_ip = 127.0.0.1, your_server_ip #port = 27017 security: authorization: enabled
また、MongoDBデータベースへのユーザーアクセスを規制する認証オプションも含まれています。承認オプションが有効になっていない場合、各ユーザーはすべてのMongoDBデータベースにアクセスでき、セキュリティ上のリスクとなる任意のアクションを実行できます。変更をMongoDB構成ファイルに保存した後、変更を有効にするには、次のコマンドを使用してMongoDBサービスを再起動する必要があります。
sudo systemctl restart mongod
ステップ4:管理MongoDBユーザーの作成
MongoDBサーバーを構成し、認証オプションを有効にしたので、MongoDBインスタンスの管理に使用される管理用MongoDBユーザーアカウントを作成する必要があります。
mongoシェルにアクセスするには、次のように入力します。
mongo
次に、次のコマンドを使用してadminデータベースに接続します。
use admin
出力:
switched to db admin
次のコマンドを実行して、userAdminAnyDatabaseロールを持つmongo_adminという新しい管理ユーザーを作成します。
db.createUser( { user: "mongo_admin", pwd: "Strong_Pas$w0rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
そして、これを出力として取得します:
Successfully added user: { "user" : "mongo_admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
「Strong_Pas$w0rd」を実際の強力なパスワードに置き換えることを忘れないでください。これで、mongoシェルを終了できます:
quit()
ステップ5:管理ユーザーのアクセスを確認する
変更を確認するために、作成したmongo_adminユーザーを使用してmongoシェルにアクセスします。
mongo -u mongo_admin -p --authenticationDatabase admin use admin show users
また、これまでのすべての手順を実行した場合は、次の出力が得られるはずです。
出力:
> use admin switched to db admin > show users { "_id" : "admin.mongo_admin", "user" : "mongo_admin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
また、mongoシェルにアクセスするときに(引数なしで)ユーザーを一覧表示し、以前に使用したのと同じコマンドを使用することもできます。
ステップ6:ファイアウォールでのリモートMongoDBアクセスを許可する
このステップでは、ファイアウォールでMongoDBを許可することにより、MongoDBへのリモートアクセスを提供します。サーバーでファイアウォールを使用していない場合は、この手順をスキップできます。 MongoDBのデフォルトのポートは27017であるため、この例では、このポートがファイアウォールを通過できるようにする方法を示します。
UFW(Uncomplicated Firewall)を使用している場合は、MongoDBにリモートアクセスできるようにする方法に関する次のヒントを使用できます。
どこからでもデフォルトポート(27017)でMongoDBにアクセスできるようにするには、次のコマンドを使用できます。
sudo ufw allow 27017
特定のIPアドレスからのみデフォルトポート27017でMongoDBへのアクセスを許可するには、次のコマンドを使用できます。
sudo ufw allow from allowed_IP_address/32 to any port 27017
使用する実際のIPアドレスでallowed_IP_addressを変更する必要があります。
ファイアウォール設定への変更は、次のコマンドで確認できます:
sudo ufw status
出力:
Status: active To Action From -- ------ ---- 27017 ALLOW Anywhere OpenSSH ALLOW Anywhere 27017 (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
ステップ7:MongoDBに接続する
MongoDBをインストールして構成したので、MongoDBへの接続方法についていくつかの異なる方法を説明する必要があります。 Mongoシェルにアクセスする前に、MongoDB構成が機能することを確認する必要があります。
デフォルトポートのローカルMongoDBインスタンス
mongoシェルへの最も基本的な接続は、引数なしでmongoコマンドを実行することです。
mongo
デフォルト以外のポート上のローカルMongoDBインスタンス
特定のポートでMongoシェルに接続する場合は、次を使用できます。
mongo --port port_number
port_numberを実際のポート番号に置き換えるだけです。
リモートホスト上のMongoDBインスタンス
MongoDBインスタンスを使用してリモートホストマシンに接続する必要がある場合は、次の方法を使用できます。
接続文字列を指定できます。
mongo mongodb://your_domain_name.com:port_number
コマンドラインオプション–host
mongo --host your_domain_name.com:port_number
または、–host
mongo --host your_domain_name.com --port port_number
認証付きのMongoDBインスタンス
これらの例を使用して、認証が必要なMongoDBインスタンスに接続する方法を示します。
接続文字列でユーザー名、認証データベース、ポート番号を定義できます。また、接続文字列でパスワード(オプション)を定義することもできます。パスワードが接続文字列で定義されていない場合、シェルはパスワードの入力を求めます。
mongo --host mongodb://user@your_domain_name.com:port_number/?authSource=admin
–username
mongo --username user --password --authenticationDatabase admin --host your_domain_name.com --port port_number
MongoDBレプリカセットに接続する
接続文字列でレプリカセット名とメンバーを指定できます。
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA
DNSシードリスト接続形式を使用している場合は、接続文字列を指定できます。
mongo "mongodb+srv://server.your_domain_name.com/"
–host<レプリカセット名>/
mongo --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
TLS/SSL接続
接続文字列でssl=trueオプションを指定できます。
mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA&ssl=true
または、コマンドラインで–sslを指定し、replAという名前のレプリカセットに接続する方法について前の例を使用できます。
mongo --ssl --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number
上記のコマンドを使用する場合は、コマンドのyour_domain_name.com、host_name、user、replAなどの値を実際の値に置き換えることを忘れないでください。
ステップ8:MongoDBをアンインストールする
何らかの理由でMongoDBが気に入らず、システムから削除する必要がある場合は、次のコマンドに従うことができます。
sudo service mongod stop sudo apt purge mongodb-org* sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb
この記事では、MongoDBのインストール方法、ファイアウォールのカスタマイズ方法、管理者ユーザーの作成方法、リモートアクセスの有効化方法、MongoDBへの接続方法、およびMongoDBのアンインストールと削除方法について説明しました。これで、この知識を使用して、このすばらしいアプリケーションでプロジェクトを構築することから始めることができます。
もちろん、Ubuntu Hostingのお客様の1人である場合、またはManaged MongoDB Hostingプランのいずれかをお持ちの場合は、Ubuntu18.04VPSにMongoDBをインストールする必要はありません。管理者に聞いて座ってリラックスしてください。管理者はすぐにUbuntu18.04にMongoDBをインストールします。
PS 。 Ubuntu18.04VPSにMongoDBをインストールする方法に関するこの投稿が気に入った場合 、下のボタンを使用してソーシャルネットワークで友達と共有するか、コメントセクションにコメントを残してください。ありがとう。
ここで利用可能な新しいバージョン:Ubuntu20.04およびCentOS8にMongoDBをインストールする方法