AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

MongoDB Atlas Infinite: アーキテクチャ

Atlas Infinite は、コンピューティングとストレージを 2 つの独立したレイヤーに分離します。コンピュート ノードは、クエリ、トランザクション、および集計を実行します。ストレージレイヤーはデータを永続的に保存し、複数のコピーを保持して高可用性を実現します。 MongoDB はコンピュートレイヤーとは独立してストレージレイヤーを管理するため、スケーリングとリカバリ操作はデータを移動やレプリケートすることなく実行されます。

次の図は、Atlas Infinite が Atlas 内、アプリケーション、コンピュート、ストレージ層にわたって Atlas 内にどのように収まるかを示し、Atlas マネジメント インターフェースは以下のとおりです。

Atlas Infinite アーキテクチャ:アプリケーション、コンピュート、および Atlas が管理するストレージ層と、Atlas マネジメント インターフェース。

Atlas Infinite のコンピューティングとストレージがAtlas のアプリケーションとマネジメントスタックにどのように適合するか

コンピュート ノードは、クエリ、トランザクション、集計を実行するレイヤーです。コンピュート ノードはストレージから分離されているため、ストレージとは独立してコンピューティングキャパシティーを増やすできます。需要が増加するにつれてコンピュートキャパシティーを追加し、需要が減少した場合は増やすことができます。オートスケーリングを有効にすると、Atlas はコンピュートを調整します。

public previewでは、Atlas はクラスターのリージョン内の個別のアベイラビリティーゾーンにコンピュート ノードを配置します。

Atlas Infinite のストレージレイヤーは、アプリケーションのデータを耐久性が維持し、高可用性のために複数のコピーを保持します。 Atlas Infinite を使用すると、 MongoDB はアプリケーションのワークロードを実行するコンピューティング ノードとは別に、ストレージを独立したレイヤーとして管理します。ストレージレイヤーは、 コンピューティングレイヤーとは独立して、レプリケーションを処理し、読み取りを処理し、継続的なバックアップを提供します。クラスター層を増やす場合、またはコンピュートノードに障害が発生し、Atlas Infinite がフェイルオーバー を実行しても、アプリケーションのデータはクエリを処理するためにストレージレイヤーで使用可能なままです。 MongoDB は、それを新しいコンピューティング ノードにコピーしません。

Atlas Infinite は、各クラスターをストレージレイヤー全体に分離します。 Atlas は、ストレージレイヤー内の通信について、X.509 証明書と内部トラフィックを相互に認証します。

ストレージレイヤーが共有されているため、各カスタマーのデータは、カスタマー間で共有されることのない一意のキーで暗号化されます。 Atlas が Atlas Infinite データを暗号化する方法については、「 Atlas の保管時の暗号化の概要 」を参照してください。

Atlas Infinite クラスターには、選択可能なコンピューティング ノードとして、書込み (write) を処理する プライマリ と、もう 1 つの選挙可能な ノードである スタンバイ の 2 つの選択可能なコンピューティング ノードがあります。プライマリが障害または再起動したときに引き継ぐものです。public preview中に、ワークロード分離のために最大 5 つのノードを追加することができ、合計で最大 7 つになります。追加するノードは読み取りのみを処理できます。次のノードタイプを追加できます。

  • 読み取り専用ノードは、 運用ワークロードからの読み取りを提供します。

  • 分析ノードは、分析クエリを運用ワークロードから分離します。

public previewの Atlas Infinite クラスターでは、検索ノードはサポートされていません。

コンピューティング ノードはプライマリに投票しません。ストレージレイヤーは、クラスターのノード間の選挙ではなくフェイルオーバーを調整します。プライマリに障害が発生または再起動すると、スタンバイはプライマリになります。ストレージレイヤーは、すべての コンピューティングノードですぐに利用できる最近のデータを保持します。

読み込み設定 (read preference) は、Atlas Core クラスターで と同様に機能します。すべての読み込み設定(読み込み設定 (read preference) )モードと事前定義されたレプリカセットタグを使用できます。

アプリケーションの ドライバー が読み込み設定 (read preference)を設定します。ドライバーのデフォルトは であるため、読み込み設定 (read preference)primary を変更しない限り、アプリケーションはすべての読み取りをプライマリに送信します。

Atlas Infinite クラスターには 1 つの スタンバイノードがあります。アプリケーションがプライマリ以外のノードから読み取る場合、読み取り専用ノードまたは分析ノードを追加し、別の読み込み設定 (read preference)を設定しない限り、それらの読み取りはその スタンバイノードに送信されます。次の推奨事項を使用してください。

  • 複数のノードからアプリケーションの運用上の読み取りを処理するには、読み取り専用ノードを追加します。読み取り専用ノードは、 を除く任意の読み込み設定 (read preference)で読み取りを処理するため、追加する各ノードはそのトラフィックの一部として処理されます。これらの読み取りをスタンバイ ノードと読み取り専用ノードに分散するには、 の読み込み設定primarysecondaryPreferred (read preference)を設定します。これにより、アプリケーションの読み取りがプライマリから削除され、単一の スタンバイノードが過負荷に達するのが回避されます。 Atlas Core クラスターでは、ノードを追加せずに複数のセカンダリがそれらの読み取りを分散します。

  • 分析などのワークロード をアプリケーションの運用読み取りから分離するには、 分析ノード または 読み取り専用ノード を追加し、事前定義されたレプリカセットタグ を使用してそれらのノードにクエリを送信します。

バックアップ、復元、ポイントインタイムリカバリはストレージレイヤーで動作します。バックアップと復元の詳細については、「 Atlas Infinite クラスターの復元 」を参照してください。

書込み保証 (write concern)は、書込み (write)操作に対してMongoDBにリクエスト確認応答のレベルを記述します。

このセクションでは、Atlas Infinite クラスターの書込み保証 (write concern)のデフォルト、Atlas が各書込み保証 (write concern)フィールドの処理方法、および Atlas Core クラスターとの書込み保証 (write concern) の違いについて説明します。

Atlas Infinite クラスターでは、ストレージレイヤーはデータを保存してレプリケートし、ストレージレイヤーが書込み (write) をキャプチャすると Atlas は書込み (write) を確認します。

Atlas Infinite クラスターでは、デフォルトの書込み保証 (write concern)は w: "majority" です。アプリケーション、接続文字列または単一の 書込み操作に対して書込み保証 (write concern)が設定されます。 Atlas UIではデフォルトを変更できません。

Atlas は、アプリケーションが送信する書込み保証 (write concern)を受け入れ、必要に応じて Atlas Infinite クラスターがサポートする値に変更することで、アプリケーションの書込み保証が機能し続けるようにします。

Atlas Infinite クラスターでは、Atlas は書込み保証 (write concern) ) フィールドを次のように処理します。

  • アプリケーションは、書込み (write) 確認応答のレベルを次のように設定します。 w:

    • アプリケーションでw が設定されていない場合、Atlas はデフォルトw: "majority" を適用します。 Atlas Infinite クラスターでは、"majority" はクラスターのノードの過半数ではなく、ストレージレイヤー内の過半数を指します。 Atlas は w: "majority" 書込みをロールバックしません。

    • アプリケーションがw を 0 または 1 に設定している場合、Atlas はアプリケーションが設定した値を適用します。 w: 0 は確認応答をリクエストしません。 w: 1 の書込みは w: "majority" の書込みよりもすぐに返されますが、Atlas はまれに失敗してそれをロールバックする可能性があります。

    • アプリケーションで w が 2 または 2 を超える数値に設定されている場合、Atlas は w: "majority" を適用します。

  • アプリケーションは、時間制限を設定できます wtimeout (接続文字列内の wtimeoutMS)(ミリ秒単位)。 wtimeout は、デフォルトのを使用する書込みを含む w: "majority" の書込みに適用されます。

    • アプリケーションがwtimeout を設定している場合、Atlas が確認できない書き込みは、wtimeout の制限に達すると書込み保証 (write concern)エラーが返されます。

    • アプリケーションでwtimeout が設定されていない場合、書込み (write) は無期限に待機し、アプリケーションをブロックします。

  • |service|常に適用される j: true。ストレージレイヤーは、 Atlas がそれを確認する前に、ノードのメモリ外で各書き込みを保持します。アプリケーションの j 設定は、この動作に影響を与えません。

Atlas Infinite クラスターと Atlas Core クラスターでは、書込み保証 (write concern) が次のように異なります。

  • Atlas Infinite クラスターで、w を 0、1、または "majority" に設定します。 w: 1 と w: "majority" の場合、ストレージレイヤーは書込みを保証します。 w: 0 の場合、ストレージレイヤーは書込みを確認しません。 Atlas Core クラスターでは、w を数値に設定して、その多くのノードからの確認を要求することもできます。

  • Atlas Infinite クラスターでは、Atlas は常に j: true を適用し、ジャーナル確認を無効にすることはできません。 Atlas Core クラスターでは、j: false を使用してジャーナル確認をオフにできます。

Atlas Infinite クラスターでは、 oplogコレクション、local.oplog.rs はレプリケーションを提供しません。レプリケーションはストレージレイヤーで処理されるためです。コレクションは、変更ストリームと限定的な履歴を必要とする一部の内部関数を提供します。コレクションは、クラスターの保存済みデータにカウントされます。

  • レプリケーションではoplogコレクション は使用されません。 Atlas Infinite クラスターでは、レプリケーションはストレージレイヤーで行われ、Atlas はoplogコレクション、local.oplog.rs もここに保存します。すべてのノードはストレージレイヤーから読み取るため、クラスターに参加または再参加するノードはoplog ウィンドウより遅れることはありません。詳細については、「 レプリケーションとフェイルオーバー 」を参照してください。

  • oplogコレクションは変更ストリーム と 内部 関数を提供します。local.oplog.rs は 変更ストリーム と、限定的な履歴を必要とする一部の内部関数を提供します。保持ウィンドウ は、中断された変更ストリームを再開できる時間の経過量を決定しますが、クラスター自体を復元できる期間を決定するものではありません。その場合は、 ポイントインタイム復元 を使用します。

  • Atlas がエントリを保持する期間。 Atlas は、すべてのoplogエントリを少なくともoplog の最小保持ウィンドウが保持します。エントリがウィンドウよりも古くなると、Atlas24 はそれを削除します。デフォルトの最小oplog保持ウィンドウは、Atlas Infinite と Atlas Core では 時間です。 でoplog Additional Settingsの最小保持ウィンドウを設定して、クラスターが保持する履歴量を決定できます。

  • oplogコレクションはデータ サイズとコストにどのように影響します。 oplogコレクションには、クラスターへのすべての書き込みが記録されます。 oplogコレクションは、Atlas Core クラスターと同様に、クラスターに保存されているデータとストレージのコストにカウントされます。 Atlas が継続的なクラウドバックアップのために保持する履歴は、バックアップコストの一部です。その履歴は クラスターストレージにはカウントされません。詳細については、 「 MongoDB Atlas Infinite Cluster のコスト 」を参照してください。

アプリケーションは、コードを変更せずに Atlas Infinite で実行されます。 Atlas Infinite はMongoDBワイヤプロトコル を使用するため、アプリケーションはMongoDBドライバーやその他の接続方法を使用して Atlas Infinite クラスターに接続します。 MongoDBプログラムによるツールを使用してクラスターにアクセスして管理することもできます。