5.7. MongoDBクラスタ

ここでは MongoDB クラスタを組む場合の概要を説明します。

MongoDB クラスタの詳細は、以下を参照してください。

5.7.1. MongoDB クラスタ

レプリカセットを組む場合と、シャーディングを組む場合の2通りがあります。

レプリカセット

データベースの冗長性が必要な場合は、MongoDB のレプリカセットを組みます。

レプリカセットでは、3台のマシンが必要になります。 それぞれのマシンで mongod サーバを起動します。 3台のうち1台が Primay、残り2台は Secondary となります。 (Secondary 1台、Arbiter 1台という構成も可能です)。

レプリカセットを使用する場合は、BaaSサーバ側の設定で3台のマシンを指定する必要があります。 詳細は MongoDB の設定 の「レプリカセット環境の場合」を参照してください。

シャーディング

スケーラビリティを向上させたい場合は、MongoDB のシャーディングクラスタを組む必要があります。

MongoDB のシャーディングでは、1つのシャード毎にレプリカセットを組む必要があります。 また、これとは別に設定サーバが3台必要になります。 従って、全体では シャード数 x 3 + 3台のマシンが必要になります。

また、BaaS サーバと同一のマシン内に、ルーティングを行う mongos サーバを起動する必要があります。 BaaS サーバからは、mongos サーバに接続するための接続設定が必要です。 詳細は MongoDB の設定 の「シャーディング環境の場合」を参照してください。

5.7.2. テナント単位の MongoDB クラスタ切り替え

ver 5.0.0 より、テナント単位で MongoDB クラスタを切り替えできるようになっています。

プライマリの MongoDB クラスタとは別に複数の MongoDB クラスタを立ち上げ、 テナント毎に別個の MongoDB クラスタにデータを格納することができます。

  • テナントが使用する MongoDB クラスタをプライマリクラスタ以外に指定できます。
    • デベロッパーコンソールでテナントを作成する際に、接続する MongoDB クラスタのサーバ設定(ホスト名/ポート番号、認証ユーザ・パスワード)を入力してください。
  • 既存のテナントを別の MongoDB クラスタに変更することも可能です。
    • 変更はデベロッパーコンソールで行ってください。
    • ただし、データは自動では移動しませんので、 mongodumpmongorestore を使用して手動で バックアップ・リストアが必要です。
  • 1個の MongoDB クラスタに複数のテナントを収容することが可能です。

注意

個別の MongoDB クラスタに格納されるのは主にオブジェクトストレージ・ファイルストレージです。 ユーザ・グループ・セッショントークンは常にプライマリクラスタに格納され、 別の MongoDB クラスタに格納することはできません。