database cluster をスケールアウトする
スケールアウトは cluster に node を追加する操作で、容量は node のサイズではなく台数に応じて増えます。既存の node を大きくする場合は database のリソース構成を変更する を参照してください。
この 2 つは操作する場所が異なります。ここが最も間違えやすい点です。リサイズは Resource タブ、スケールアウトは Overview タブにあります。
アーキテクチャごとの対応
| アーキテクチャ | 追加できるもの | 場所 |
|---|---|---|
| Standalone | なし | 非対応。Standalone は定義上 1 node です。スケールアップするか、Replica Set へ移行してください。 |
| Replica Set | データを保持する node | Node configuration セクション |
| Sharded Cluster | mongos router | Mongos configuration セクション |
| Sharded Cluster | shard | Shard configuration セクション |
Sharded Cluster の config server は 3 node で固定です。このページにも他のどこにも、変更する操作はありません。
操作の場所
- メインメニューから Database Platform → All Databases または Non-Relational Database を選びます。
- Cluster ID をクリックして cluster を開き、Overview タブのままにします。
- 拡張したい node 構成セクションまでスクロールします。
- Quantity の横の鉛筆アイコンをクリックします。
このアイコンは見落としやすい位置にあります。ツールバーではなく、Quantity の値と同じ行に並んでいます。
Replica Set をスケールアウトする
Update Number of Node というドロワーが開き、New Number Of Nodes は自由入力ではなくドロップダウンになっています。

ドロップダウンには、replica set が健全に動作する値だけが並びます。replica set は多数決で Primary を選出するため、メンバー数が偶数でも耐障害性は上がらず、票が割れるリスクだけが増えます。3 node の cluster に提示されるのが 4 や 6 ではなく 5 と 7 なのはこのためです。
値を選んで Update をクリックします。
Sharded Cluster をスケールアウトする
Sharded Cluster には独立して拡張できるものが 2 つあり、それぞれ解決する問題が異なります。
mongos router を追加する
client がデータではなくルーティング層で待たされているとき、つまり同時接続が多い、あるいは shard は空いているのに router の負荷が高いときに増やします。
Mongos configuration セクションの Quantity の横の鉛筆から Update Number of Mongos Node を開きます。新しい値を入力し、Update をクリックします。
| 項目 | ルール |
|---|---|
| New Number Of Nodes | 2〜32 の整数 |
shard を追加する
データそのものが現在の shard の容量を超えたとき、つまりルーティングではなく容量や書き込みスループットが問題のときに増やします。
Shard configuration セクションの Quantity の横の鉛筆から Update Number of Shards を開きます。

| 項目 | ルール |
|---|---|
| New Number Of Shards | 2〜32 の整数。各 shard は 3 node の replica set なので、data node 数は 3 の倍数で増減します。 |
新しい値を入力し、Update をクリックします。
実行中に起きること
Sharded Cluster の 2 つの操作は負荷が同じではありません。この違いが、いつ実行するかを決める材料になります。
| 操作 | 実行中の影響 |
|---|---|
| mongos router の追加 | リクエストのルーティングが一時的に影響を受け、latency が上がります。新しい router は cluster に join した後にトラフィックを受け始めます。router はデータを保持しないため、移動するものはありません。 |
| shard の追加 | MongoDB が新しい shard 構成へデータを再配置します。その間は性能が落ち、大規模なデータではその時間は短くありません。 |
shard の追加は、設定の切り替えではなく日程を決めて実施する移行作業として扱ってください。router の追加は通常のローリング変更に近いものです。
開始前に知っておくべき制約が 2 つあります。
- スケールアウトは一方通行です。 このサービスは node 数と shard 数の増加のみに対応しています。追加した node、router、shard をあとから取り除く手段はなく、追加した分の課金は続きます。推測で大きな値に飛ばすのではなく、段階的に増やしてください。
- 変更は一度に 1 つだけ。 node 数と shard 数は、他の構成変更と同時には変更できません。リサイズを完了してからスケールアウトを開始し、その間は cluster が Running に戻るまで待ってください。
スケールアウトも他のリソース変更と同じく quota を消費します。shard を 1 つ増やすことは node を 3 つ増やすことであり、それぞれにディスクが付きます。開始前に Resource タブの Available quota を確認してください。超過する場合は操作が拒否されます。
次のステップ
- スケールアウトではなくスケールアップする場合は database のリソース構成を変更する
- database cluster の情報を確認する で新しい node と shard の構成を確認できます
- 各アーキテクチャがどこまで拡張できるかは 機能とアーキテクチャ