Skip to content
Cloud Efficiency Hub

Cross-Region and Internet Data Transfer from Misplaced MongoDB Atlas Clients

The short version

Atlas bills outgoing data transfer from cluster nodes daily, priced by cloud provider and by the regions of the source and destination.

PointFive Research

Cloud cost research at PointFive

MongoDB Atlas service
MongoDB Atlas
Category
Networking
Reference
CER-0538
Type
Inefficient Architecture

Explanation

Why the waste happens and who it affects.

Transfer within the same region is the cheapest, transfer to a different region costs more, and transfer out to the internet costs the most; MongoDB notes that queries from on-premises environments, across cloud providers, or between continents on the same provider incur the greatest data transfer costs. Every query result an application reads counts as outgoing transfer, so where clients run relative to the cluster sets the rate paid on all read traffic.

The problem shows up when application servers, ETL and CDC tools, BI connectors or analytics notebooks run in a different region or cloud from the cluster, or on-premises, or when a third-party SaaS tool reads the database over the internet. Unprojected queries that return whole documents, repeated re-reads of data the client already has, and uncompressed driver connections multiply the volume. MongoDB says most customers spend under 10% of their Atlas budget on data transfer and publishes specific steps for accounts that spend significantly more.

Billing model

The pricing dimensions that drive this cost.

Same-region transfer
Lowest-cost category; on AWS the documented range is $0.00 to $0.01 per GB
Different-region transfer
Charged when data moves between regions of the same provider; on AWS $0.02 to $0.15 per GB
Internet egress
Transfer to a location outside the provider's regions, the highest category; on AWS $0.09 to $0.16 per GB
Incoming transfer
Atlas does not charge for incoming data transfer, and Free and Flex clusters are not charged for outgoing data

How to detect

5 checks to find it in your estate.

  • Review data transfer line items on the Atlas invoice and in Cost Explorer by cluster and transfer type (same region, different region, internet) and flag clusters where cross-region or internet transfer is a large share of cost
  • Map which clients connect to each cluster using Database Access History (client IP address, username and host for authentications over the last 7 days) and compare their locations with the cluster's provider and region
  • Check the Network metrics (bytes out) for each cluster and correlate spikes with specific jobs such as exports, ETL syncs or BI extracts
  • Review the heaviest queries in the Query Profiler for missing projections that return whole documents, and for repeated full reads that could be incremental
  • For multi-region clusters, check whether reads use the nearest read preference and whether writes originate from the highest priority region

How to fix

5 ways to remove the waste.

  • Co-locate applications, pipelines and BI tools with the cluster in the same cloud provider and region, or move the cluster to where most of its clients run
  • Where clients must stay in other regions, use a multi-region cluster with nodes near them and read preference nearest, and send writes from the highest priority region, weighing the added node and replication cost
  • Add projection or a $project stage so queries return only the fields the application uses, and stop re-reading data the client already holds
  • Enable network compression in the client drivers; Atlas already compresses intra-cluster traffic
  • Route large exports and analytics workloads through a copy in the consumer's region (for example an analytics node or a scheduled export) rather than repeated cross-region or internet queries

Documentation

Vendor references for pricing and configuration.