MongoDB インストール · 3 min read · Sep 15, 2025
Ubuntu 24.04 に MongoDB をインストールしてセキュリティを強化する方法

MongoDB はオープンソースのクロスプラットフォームで分散型の NoSQL(非 SQL または非リレーショナル)データベースシステムです。従来の SQL データベースのようにデータをテーブルに格納するのではなく、MongoDB は柔軟なドキュメントを使用してさまざまなデータ形式を格納します。MongoDB はデータを格納するためにバイナリ JSON 形式である BSON を使用します。
MongoDB は、組み込みの高可用性、自動フェイルオーバー、データ冗長性を備えた分散型 NoSQL データベースであり、分散クラスター全体でシャーディングを介して水平スケーリングを提供します。マルチリージョンの地理的展開をサポートし、CRUD 操作(読み取りおよび書き込み)、データ集約パイプライン、テキスト検索、地理空間クエリをサポートするクエリ API を提供します。
このガイドでは、Ubuntu 24.04 サーバーに MongoDB をインストールする方法を示します。Ubuntu サーバーの準備、MongoDB リポジトリの追加、MongoDB サーバーのインストール、MongoDB の管理者の作成、MongoDB 認証の有効化を行います。最後に、’mongosh’ シェルを使用して MongoDB でユーザーとデータベースを作成する方法を学びます。
前提条件
始める前に、次のものを用意してください:
- Ubuntu 24.04 サーバー
- 管理者権限を持つ非ルートユーザー
システムの準備
Ubuntu システムに MongoDB をインストールする前に、システムを構成していることを確認してください。この場合、次のように Ubuntu サーバーを構成します:
- systemd を介して透明な巨大ページを無効にする
- デフォルトの MongoDB ‘mongod’ ユーザーの制限を増やす
- ‘ /etc/systctl.conf ‘ ファイルを介して fs.file-max を設定し、swappiness を有効にする
透明な巨大ページ (THP) の無効化
システムで THP を無効にするには、起動時またはスタートアップ時に自動的に実行される新しい systemd サービスファイルを作成します。
新しいサービスファイル ‘/ etc/systemd/system/disable-thp.service ‘ を ‘nano’ エディタで作成します。
sudo nano /etc/systemd/system/disable-thp.serviceサービスを介して THP を無効にするために、次の構成を挿入します。
[Unit]
Description=透明な巨大ページ (THP) を無効にする
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.targetファイルを保存してエディタを終了します。
次に、以下の ‘ systemctl ‘ コマンドを実行して systemd マネージャをリロードし、’ disable-thp ‘ サービスを開始および有効にします。これにより、システム起動時に THP が無効になります。
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.serviceUlimits の設定
THP を無効にした後、ユーザー ‘mongod’ のデフォルトの最大ファイルとプロセスを少なくとも ‘ 64000 ‘ に増やす必要があります。
次の ‘nano’ エディタコマンドで新しいファイル ‘ /etc/security/limits.d/mongodb.conf ‘ を作成します。
sudo nano /etc/security/limits.d/mongodb.conf最大ファイルオープンとプロセスを ‘ 64000 ‘ に増やすために、次の構成を挿入します。
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000ファイルを保存してエディタを終了します。
swappiness と fs.file-max の設定
最後に、MongoDB 用にデフォルトの ‘ fs.file-max ‘ を増やし、swappiness を有効にする必要があります。そのためには、’ /etc/sysctl.conf ‘ ファイルを編集します。
次の ‘nano’ エディタコマンドで ‘ /etc/sysctl.conf ‘ ファイルを開きます。
sudo nano /etc/sysctl.conffs.file-max を設定し、swappiness を有効にするために、次の構成を挿入します。
fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1完了したら、ファイルを保存してエディタを終了します。
次に、以下の ‘ sysctl ‘ コマンドを実行して、再起動せずに変更を適用します。
sudo sysctl -p
APT パッケージマネージャを使用した MongoDB のインストール
Ubuntu システムを構成したので、MongoDB をインストールする準備が整いました。このセクションでは、公式の MongoDB リポジトリから最新の MongoDB 8.0 バージョンをインストールします。
まず、以下の ‘ apt ‘ コマンドを実行して Ubuntu パッケージインデックスを更新し、’ gnupg ‘ と ‘ curl ‘ パッケージをインストールします。インストールを確認するには ‘ Y ‘ を入力します。
sudo apt update && sudo apt install gnupg curl
次に、MongoDB の GPG キーとリポジトリを追加するために、次のコマンドを実行します。この例では、Ubuntu 24.04 サーバーに MongoDB 8 をインストールします。
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmorecho "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
次に、以下の ‘ apt ‘ コマンドを実行してパッケージインデックスを更新し、’ mongodb-org ‘ パッケージをシステムにインストールします。インストールを続行するには ‘ Y ‘ を入力します。
sudo apt update && sudo apt install mongodb-org
インストールが完了したら、以下の ‘ systemctl ‘ コマンドを実行して systemd マネージャをリロードします。’ mongod ‘ サービスが Ubuntu システムに追加されます。
sudo systemctl daemon-reload最後に、以下のコマンドを実行して MongoDB ‘ mongod ‘ サービスを開始、有効化、確認します。MongoDB がシステムで実行されていることがわかります。
sudo systemctl enable --now mongod
sudo systemctl status mongod
MongoDB サーバーのセキュリティ強化
MongoDB をインストールした後、次の手順で MongoDB サーバーのインストールをセキュリティ強化します:
- ‘ mongosh ‘ シェルを使用して MongoDB の新しい管理ユーザーを作成する
- ‘ /etc/mongod.conf ‘ ファイルを編集して MongoDB 認証を有効にする
MongoDB 管理ユーザーの作成
このセクションでは、’mongosh’ シェルを介して新しい MongoDB 管理者ユーザーを作成します。’mongosh’ シェルは MongoDB サーバーと対話するためのクライアントコマンドラインであり、MySQL/MariaDB の ‘mysql’ や PostgreSQL の ‘psql’ のようなものです。
管理ユーザーを作成するには、以下の ‘ mongosh ‘ シェルコマンドで MongoDB サーバーにログインします。
mongosh次に、以下のクエリを実行して MongoDB テレメトリーを無効にします。
disableTelemetry()
次に、データベース ‘ admin ‘ に移動し、以下のクエリを実行して MongoDB の新しい管理ユーザーを作成します。この例では、新しいユーザー ‘ myAdmin ‘ を作成し、プロンプトが表示されたら新しいパスワードを入力します。
use admindb.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)次に ‘ quit() ‘ と入力して MongoDB シェルを終了します。

MongoDB 認証の有効化
MongoDB 管理ユーザーを作成したので、’ /etc/mongod.conf ‘ ファイルを介して MongoDB 認証を有効にする準備が整いました。
以下の ‘nano’ エディタコマンドでデフォルトの MongoDB サーバー構成 ‘ /etc/mongod.conf ‘ を開きます。
sudo nano /etc/mongod.confMongoDB での認証を有効にするために、次の行を追加します。
security:
authorization: enabled完了したら、ファイルを保存してエディタを終了します。
次に、以下の ‘ systemctl ‘ コマンドを実行して MongoDB サーバーを再起動し、変更を適用します。これにより、MongoDB 認証が有効になります。
sudo systemctl restart mongodMongoDB 認証のテスト
MongoDB サーバーのインストールをセキュリティ強化したので、’mongosh’ シェルと新しい管理ユーザーおよびパスワードで MongoDB にログインして構成を確認しましょう。
以下の ‘ mongosh ‘ コマンドでユーザー ‘ myAdmin ‘ として MongoDB サーバーにログインします。プロンプトが表示されたらパスワードを入力します。
mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p
ログインしたら、以下のクエリを実行して接続状態を確認します。’ myAdmin ‘ ユーザーで MongoDB サーバーにログインしているはずです。
db.runCommand({connectionStatus : 1})次に ‘ quit() ‘ と入力して MongoDB サーバーを終了します。

MongoDB でのデータベースとユーザーの作成
このセクションでは、’mongosh’ シェルを使用して MongoDB で新しいデータベースとユーザーを作成する方法を学びます。したがって、管理者ユーザーとして MongoDB にログインしていることを確認してください。
まず、以下のクエリを実行してデータベース ‘ mydb ‘ に移動します。
use mydb次に、以下のクエリを実行して新しいユーザー ‘ myUser ‘ を作成し、データベース ‘ mydb ‘ への読み取りおよび書き込みアクセスを許可します。プロンプトが表示されたらパスワードを入力します。
db.createUser(
{
user: "myUser",
pwd: passwordPrompt(), // または平文のパスワード
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)‘ quit() ‘ と入力して MongoDB サーバーを終了します。

次に、以下の ‘mongosh’ コマンドを実行して ‘ myUser ‘ としてデータベース ‘ mydb ‘ にログインします。プロンプトが表示されたらパスワードを入力します。
mongosh --port 27017 --authenticationDatabase \
"mydb" -u "myUser" -p
ログインしたら、以下のクエリを使用して接続状態を確認します。
db.runCommand({connectionStatus : 1})以下のように、ユーザー ‘myUser’ として MongoDB サーバーに接続されており、データベース ‘ mydb ‘ への権限があることがわかります。

結論
おめでとうございます! Ubuntu 24.04 サーバーに MongoDB サーバーのインストールが完了しました。また、管理者ユーザーを作成し、MongoDB のインストールをセキュリティ強化しました。次に、’mongosh’ を使用して MongoDB サーバーに接続し、MongoDB でのユーザーとデータベースの管理に関する基本的なクエリを学びました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。