MongoDBは、オープンソースのNoSQLデータベースです。
本記事では、MongoDBとはどのようなデータベースか解説します。
ご興味ある方にはCentOSにインストールおよび初期設定するための手順についてもご紹介しますので、最後まで御覧ください!
その他のNoSQLデータベースについてもお知りになりたい場合は、Redisについて以下の記事で紹介しています。
2023.11.09
RedisをCentOS7にインストールして初期設定する方法を解説
Redisとは、NoSQLに分類されるデータベースです。メモリ上で動作するため非常に高速に動作するという特徴があります。本記...
CentOSをVPSで利用するなら
ミライサーバー
\ 2週間無料でお試しできます! /
VPSを使ってみる
目次
MongoDBとは
MongoDBの概要
MongoDBは、柔軟なスキーマとスケーラビリティを備えたドキュメント指向のNoSQLデータベースです。
ドキュメント指向データベースは従来のリレーショナルデータベースと異なり、行や列の代わりにJSONライクな「ドキュメント」を使用してデータを格納します。
この特徴により、データ構造の変更が頻繁に発生するアプリケーションや、大量のデータを取り扱うシステムに適しています。
MongoDBは、高いパフォーマンス、可用性、自動スケーリングを実現するために設計されており、様々なプラットフォームで利用可能です。
また、開発者にとって直感的で理解しやすいクエリ言語を持ち、多くのプログラミング言語との統合が容易です。
NoSQLデータベースについては、以下の記事で詳しく解説しています。
Winserver:NoSQLとは。データベースの特徴と、RDBMSとの違いを解説
ドキュメント指向データベースとは
MongoDBの特徴であるドキュメント指向データベースについて詳しく見てみましょう。
ドキュメント指向データベースは、JSONやBSON(Binary JSON)のような形式で構成され、複数のフィールドや値(テキスト、数値、配列、他のドキュメントなど)を含むことができます。
対して、最も普及しているRDBMS(リレーショナルデータベース)では、表形式でデータを格納します。
それぞれ以下のような違いがあります。
ドキュメント指向DB | RDB | |
---|---|---|
最上位要素 | データベース | データベース |
行の集まり | コレクション | テーブル |
行 | ドキュメント | レコード |
ユーザー定義関数・トリガの対象範囲 | コレクションのみ対象 | 複数のテーブルにまたがって処理可能 |
ドキュメント指向データベースは以下のような特徴があります。
・スキーマレス
ドキュメントはスキーマを持たず、異なる構造のデータを同じコレクションに保存できます。
そのため、データモデルの変更が容易であり、アプリケーションの変更に柔軟に対応できます。
・階層的データ構造
ドキュメントは階層的なデータ構造を持ち、複雑なデータ関係を自然に表現できます。
この特徴により、JavaやC++などのオブジェクト指向プログラミングとの親和性が高くなります。
・クエリの柔軟性
ドキュメント指向データベースは、ドキュメント全体または特定のフィールドに対するクエリを実行できます。
また、多くの場合、リッチなクエリ言語とインデックス機能を提供し、効率的なデータアクセスを可能にします。
MongoDBは、これらの特徴を兼ね備えた代表的なドキュメント指向データベースであり、柔軟性、パフォーマンス、開発の容易さを提供します。
MongoDBのインストール
前提条件
今回は、ミライサーバーのVPSを利用し、仮想マシン上に構築されたCentOSにMongoDBをインストールする方法をご紹介します。
仮想マシンのスペックは以下のとおりです。
- CPU:4コア
- Memory:4GB
- Disk:SSD300GB
CentOSは以下のバージョンを利用しています。
- CentOSのバージョン:CentOS 7.9.2009
※ミライサーバーではCentOS 7などのOSをインストールした状態からお使いいただけます。
\ 2週間無料でお試しできます! /
VPSを使ってみる
また、コマンドの標記については、実際に入力するコマンドを太字、補足の内容を青字で記載しています。
MongoDBインストール手順
ここからは、MongoDBのインストール手順を紹介します。
1.一般ユーザーをwheelグループに登録
CentOSにMongoDBをインストールするには、管理者権限が必要です。
rootユーザーアカウントに直接ログインして使用するのは、セキュリティ上リスクがあるため、管理者権限への実行を許可する一般ユーザーをwheelグループに追加します。
以下のコマンドでは、rootユーザーで一般ユーザー(以下の例では、testuser)をwheelグループに追加しています。
# usermod -G wheel testuser |
今後管理者権限を使用する場合は、rootユーザーでログインするのではなく、一般ユーザーから、必要に応じてsuコマンドでrootユーザーに切り替えた上で実行するようにしましょう。
rootユーザーに切り替えるには、suコマンドを実行します。
rootユーザーに切り替えるには、suコマンドを実行します。
$ su –
パスワード: ※rootユーザーのパスワードを入力
# ※rootユーザーになった
2.パッケージ管理システムの構成
パッケージマネージャーを使用してmongodbをインストールするため、repoファイルを作成します。
$ sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo |
※以下の内容をそのまま記載します
[mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc |
3.MongoDBのインストール
yumコマンドで、MongoDBをインストールします。
$ sudo yum install mongodb-org |
2023年11月時点で、バージョン7.0.3がインストールされます。
MongoDBのバージョンは頻繁に更新される可能性があるため、最新版をインストールするのがおすすめです。
mongodbが正常にインストール後、起動します。
ステータスをチェックして、正常に起動することを確認します。
$ sudo systemctl status mongod |
4.mongodbサービスの起動・停止
mongodbの起動・停止、および再起動は以下のとおり行います。
動作 | コマンド |
---|---|
mongodbの起動 | sudo systemctl start mongod |
mongodbの停止 | sudo systemctl stop mongod |
mongodbの再起動 | sudo systemctl restart mongod |
5.mongodbサービスの自動起動設定
mongodbがシステム起動時に自動的に起動するように設定します。
$ sudo systemctl enable mongod |
これにより、システムが再起動されたときにMongoDBが手動で起動する必要がなくなります。
6.動作確認
mongodbを起動したら、実際に接続して動作を確認します。
問題なく起動していれば、mongoシェルのプロンプトが表示されます。
$ mongosh |
\ 2週間無料でお試しできます! /
VPSを使ってみる
MongoDBの初期設定
管理者ユーザー
初期状態では、ユーザーアカウント制御が行われていないため、適切な権限を付与したユーザーを作成します。
最初に、データベース全体を管理する管理ユーザーを作成します。
以下の例では、全データベースにadmin権限を持つ、adminユーザーを作成しています。
test> use admin admin> db.createUser({ user:”admin”, ※任意に変更してください pwd:”password”, ※任意に変更してください roles: [ { role: “userAdminAnyDatabase”, db: “admin” }, ] }) |
ユーザー作成に成功すれば、「1」が返ってきます。
認証設定
次に、MongoDBの設定を変更します。
MongoDBの主な設定は、/etc/mongod.conf ファイルに記述されています。
このファイルをエディタで開き、以下の設定を検討してください。
MongoDBへの不正アクセスを防止するため、ログインする際にユーザー名とパスワードを要求するように設定します。
設定箇所は、securityセクションです。
「authorization: enabled」を追記します。
この設定をいれることで、ユーザーは権限が付与されているデータベースのみアクセスができます。
ネットワークの設定
MongoDBに外部からのアクセスを許可する場合は、netセクションの設定を変更します。デフォルトでは、portは27017、bindIpはローカルに設定されています。
セキュリティリスクを考慮し、特定の信頼できるネットワークインターフェースにのみバインドすることをお勧めします。
なお、外部からのアクセスを許可する場合は、ファイアウォールルールでMongoDBが使用するポート(デフォルトは27017)を開放する必要があります。
設定が完了したら、MongoDBを再起動させ、設定を反映します。
まとめ
今回はMongoDBについて解説しました。
MongoDBは、高いパフォーマンスと複雑な形式のデータを扱える柔軟性を兼ね備えたドキュメント指向データベースです。
ただし注意しなければならないポイントとして、インストール直後は認証設定がなされておらずセキュリティ的に問題があるため、認証設定を必ず行うようにしましょう。
今回ご紹介した設定方法をぜひ参考にしてみてください。
CentOSをVPSで利用するならミライサーバー
ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。
ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
OSは、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから選択することができます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。
プランの選択でお困りの場合は、ぜひ一度お問い合わせください。
2023.08.03
VPSに申込み、SSH接続するまでの流れ【ミライサーバー】
オンラインビジネスやWebサイトの運営を始める際には、ホスティングサービスの中から自分の用途に合ったサーバー環境を利用することが一般的です。...