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

ネットワーク トラフィックを圧縮

MongoDBドライバーは、 MongoDB Serverとの間で送受信されるメッセージを圧縮できます。これにより、各操作で転送されるデータ量が減ります。圧縮により、制約されたネットワークのパフォーマンスが向上し、 MongoDB Atlas の実行中に関連するデータ転送コストが削減されます。

圧縮はワイヤプロトコルレベルで動作するため、アプリケーションが実行するすべての操作に適用されます。複数のアルゴリズムを指定した場合 、ドライバーはMongoDB Serverもサポートしているリスト内の最初のアルゴリズムを使用します。

MongoDBドライバーは次の圧縮アルゴリズムをサポートしています。

MongoDB Atlas は、クラウドリージョン、クラウドプロバイダー、および インフラストラクチャとMongoDB Atlas間で転送されたデータに対して料金を請求します。ネットワーク圧縮により、アプリケーションが送受信するデータ量が減り、これらのデータ転送コストを削減できます。価格の詳細については、「 データ転送コスト 」を参照してください。

ネットワーク圧縮には、効率的な利点も得られます。圧縮されたメッセージはネットワーク間での転送時間が短縮されるため、アプリケーションの応答時間を向上させることができます。圧縮により、 MongoDBトラフィックが使用する帯域幅も削減されるため、同じネットワーク上の他のアプリケーションで使用できる帯域幅が増えます。

圧縮アルゴリズムを選択する場合は、次のガイドラインを考慮してください。

  • 圧縮効率とリソース使用量のバランスを取るには、Zstandard を使用します。 Zstandard は、ほとんどのアプリケーションでのデフォルトの選択に適しています。

  • 最小限の計算オーバーヘッドを必要とするレイテンシの影響を受けやすいアプリケーションには、 Snappy を使用してください。

  • MongoDBドライバーと環境間での広範な互換性を実現するには、Zlib を使用してください。

Tip

CPU 使用率の監視

圧縮により、ネットワーク帯域幅とCPU使用量のトレードオフが発生します。ネットワーク圧縮を有効にした後は、トレードオフがワークロードにメリットがあることを確認するため、アプリケーションのCPU使用率をモニターします。これらのトレードオフの詳細については、CPU Utilization and Network 圧縮 in MongoDB ブログ記事を参照してください。

次の表は、各 圧縮アルゴリズムでサポートされる最小のドライバーとMongoDB Server のバージョンを示しています。

圧縮アルゴリズム
ドライバーの最小バージョン
サーバーの最小バージョン

2.15

4.2

2.5

4.2

2.15

4.2

MongoDB接続のネットワーク圧縮を有効にするには、必要な依存関係をインストールし、使用する圧縮アルゴリズムを指定します。

一部の圧縮アルゴリズムでは、追加の gem をインストールする必要があります。次の表は、各アルゴリズムとその必要な依存関係(存在する場合)を示しています。

圧縮アルゴリズム
依存

Snappy

snappy gem をアプリケーションに追加します。をインストールするには、Gemfile に gem 'snappy' を追加し、bundle install コマンドを実行します。

Zlib

追加の gem は必要ありません。アプリケーションには zlib 標準ライブラリ拡張機能が含まれている必要があります。

Zstandard

zstd-ruby gem をアプリケーションに追加します。をインストールするには、Gemfile に gem 'zstd-ruby' を追加し、bundle install コマンドを実行します。

必要な gem をインストールせずに Snappy または Zstandard を有効にすると、ドライバーは Mongo::Client の作成時に未確認の依存関係エラーを発生させます。

MongoDB インスタンスへの接続の圧縮を有効にするには、次のいずれかの方法で使用するアルゴリズムを指定します。

  • アルゴリズムを接続stringにパラメーターとして追加する

  • Mongo::Clientオブジェクトの compressors オプションでアルゴリズムを指定する

接続文字列を使用してネットワーク圧縮を有効にするには、compressors オプションを追加します。 1 つ以上のアルゴリズムをコンマ区切りのリストとして指定できます。

uri = "mongodb://<hostname>:<port>/?compressors=zlib,snappy"
client = Mongo::Client.new(uri)

クライアントオブジェクトで圧縮を有効にするには、compressors オプションを Mongo::Client コンストラクターに渡します。

client = Mongo::Client.new(["<hostname>:<port>"],
compressors: ["zlib", "snappy"])