Docs Menu
Docs Home
/ /
Atlas App Services
/

読み込み設定 (read preference)

項目一覧

  • Overview
  • 読み込み設定(read preference)を指定する場合
  • 手順

リンクされた MongoDB Atlas クラスター の 読み込み設定( read preference ) を構成して、Atlas App Services がデータベース読み取りリクエストをルーティングする レプリカセット ノードのタイプを制御できます。また、タグセットを指定して、レプリカセットの特定のノードを対象にすることもできます。

フェデレーティッド データソースでは読み込み設定 (read preference) を設定できません。

デフォルトでは、App Services は primaryの読み込み設定(read preference)を使用します。これにより、すべての読み取りリクエストはレプリカセットのプライマリ ノードを介してルーティングされます。

デフォルトの読み込み設定( primary )は、ほとんどのユースケースで十分有効です。 次の操作を行う必要がある場合は、クラスターの読み込み設定(read preference)を指定することを検討してください。

  • ワークロードのレポート作成用に最適化された特別なインデックスを持つ分析ノードなど、カスタム構成を持つ特定のセカンダリから読み取ります。

  • グローバルに分散されたレプリカセットの特定のリージョンのノードから読み取ります。

  • レプリカセットのフェイルオーバー中に読み取りの可用性を維持します。つまり、 primaryノードがない場合は古い可能性のあるデータを読み取り続けます。

1

App Services UI のクラスターの構成画面から、リンクされたクラスターの読み込み設定(read preference)を構成できます。 構成画面にアクセスするには、左側のナビゲーションでManageの下の Linked Data Sourcesをクリックします。 データソースのリストで、読み込み設定(read preference)を構成するクラスターを選択します。

2

クラスター構成画面で、 Read Preferenceドロップダウンからモードを選択します。

読み込み設定(read preference)ドロップダウン メニュー

次の読み込み設定 (read preference) モードが利用可能です。

モード
説明
App Services はすべての読み取り操作を現在のレプリカセットプライマリ ノードにルーティングします。 これは、デフォルトの読み込み設定 (read preference) モードです。
App Services は、すべての読み取り操作を現在のレプリカセットのプライマリ ノードにルーティングします(使用可能な場合)。 自動フェイルオーバー中などプライマリが使用できない場合は、代わりに読み取りリクエストはセカンダリ ノードにルーティングされます。
App Services は、すべての読み取り操作を現在のレプリカセットのセカンダリ ノードの 1 つにルーティングします。
App Services は、すべての読み取り操作をレプリカセットの使用可能なセカンダリ ノードの 1 つにルーティングします。 セカンダリが使用できない場合、読み取りリクエストは代わりにレプリカセットのプライマリにルーティングされます。
App Services は、クライアントと比較してネットワーク レイテンシが最も低いレプリカセット メンバーに読み取り操作をルーティングします。
3

primary以外の読み込み設定(read preference)を指定する場合は、1 つ以上の読み込み設定( read preference)タグも指定できます。 読み取りリクエストを処理するには、レプリカセットノードは、指定されたすべての読み込み設定(read preference)タグをノード構成に含める必要があります。

注意

Atlas クラスター タグセット

MongoDB Atlasクラスターは、ノードのタイプに応じて、各ノードに対して事前定義されたタグセットを使用して構成されます。 Atlas クラスターで定義されているノードの詳細については、「 Atlas レプリカセット タグ 」を参照してください。

読み込み設定(read preference)タグを指定するには、 Add Tagをクリックし、 Read Preference Tagsテーブルの新しい行にタグのKeyValueを入力します。

読み込み設定(read preference)タグ テーブル
4

Read Preferenceと任意のRead Preference Tagsを指定したら、 Saveをクリックします。 Once saved, App Services routes all incoming database read requests for the cluster according to your preference.

1

App Services CLIを使用してリンクされたクラスターの読み込み設定(read preference)を定義するには、アプリケーションの構成ファイルのローカル コピーが必要です。

アプリの最新バージョンのローカルコピーを取得するには、次のコマンドを実行します。

appservices pull --remote="<Your App ID>"

Tip

App Services UI のDeploy > Export App画面からアプリケーションの構成ファイルのコピーをダウンロードすることもできます。

2

連結クラスターの読み取り設定を構成するには、クラスターのconfig.jsonファイルを開き、 config.readPreferenceの値を設定します。

/data_sources/<Service Name>/config.json
{
"name": "<MongoDB Service Name>",
"type": "mongodb-atlas",
"config": {
"readPreference": "<Read Preference Mode>"
}
}

次の読み込み設定 (read preference) モードが利用可能です。

モード
説明
App Services はすべての読み取り操作を現在のレプリカセットプライマリ ノードにルーティングします。 これは、デフォルトの読み込み設定 (read preference) モードです。
App Services は、すべての読み取り操作を現在のレプリカセットのプライマリ ノードにルーティングします(使用可能な場合)。 自動フェイルオーバー中などプライマリが使用できない場合は、代わりに読み取りリクエストはセカンダリ ノードにルーティングされます。
App Services は、すべての読み取り操作を現在のレプリカセットのセカンダリ ノードの 1 つにルーティングします。
App Services は、すべての読み取り操作をレプリカセットの使用可能なセカンダリ ノードの 1 つにルーティングします。 セカンダリが使用できない場合、読み取りリクエストは代わりにレプリカセットのプライマリにルーティングされます。
App Services は、クライアントと比較してネットワーク レイテンシが最も低いレプリカセット メンバーに読み取り操作をルーティングします。
3

primary以外の読み込み設定(read preference)を指定する場合は、1 つ以上の読み込み設定( read preference)タグも指定できます。 読み取りリクエストを処理するには、レプリカセットノードは、指定されたすべての読み込み設定(read preference)タグをノード構成に含める必要があります。 クラスターに読み込み設定(read preference)タグセットを指定するには、 primary以外のreadPreferenceを指定していることを確認し、1 つ以上のタグ定義オブジェクトをconfig.readPreferenceTagSetsに追加します。

/data_sources/<Service Name>/config.json
{
"name": "<MongoDB Service Name>",
"type": "mongodb-atlas",
"config": {
"readPreference": "<Read Preference Mode (other than primary)>",
"readPreferenceTagSets": [
{ <Tag Key>: <Tag Value> },
...
],
}
}

注意

Atlas クラスター タグセット

Atlas クラスターは、ノードのタイプに応じて、各ノードに対して事前定義されたタグセットを使用して構成されます。 Atlas クラスターで定義されているノードの詳細については、「 Atlas レプリカセット タグ 」を参照してください。

4

クラスターの 読み込み設定(read preference) を設定したら、更新された構成をリモート アプリにプッシュできます。 App Services CLI はプッシュ時に更新をすぐに配置します。

appservices push --remote="<Your App ID>"

戻る

クライアント アプリから Atlas をクエリする