Move the Compute or Move the Data?

Compare cloud data placement using complete transfer paths, refresh costs, workload demand and freshness limits, with a reproducible synthetic cost model.

audience="Teams deciding where a data-intensive workload should run." decision="Keep remote reads, move computation to the authoritative data, or maintain a scoped copy near the workload." position="Compare complete paths and operating obligations. Accept a placement only when it meets freshness, access and recovery requirements as well as a defensible cost range." scope="A provider-neutral engineering decision model. All volumes, rates and totals in the worked example are synthetic, not cloud prices, quotations or customer savings." outputs={['A directed transfer register', 'A normalized cost ledger', 'A three-option comparison', 'A demand and refresh sensitivity test', 'A scoped placement experiment', 'An owned decision and revisit trigger']} />

Executive summary

A cheaper compute environment can make an application more expensive when every job must fetch a large working set from another location. Moving the dataset can remove those reads but introduce replication, duplicate storage, refresh processing and another access boundary. Moving computation toward the authoritative data can reduce the large transfer while making a smaller result transfer and deployment dependency more important. None of these options is automatically the cheapest or the safest.

This paper compares those three choices for a bounded workload. Its position is to price the whole path and accept the operating contract before changing placement. Specify what information the workload needs, how current it must be, which identities may use it, what happens when a copy becomes stale and how the organization returns to the previous path. A cost estimate without these conditions can recommend a design the application cannot legitimately use.

The practical problem is not simply that cloud egress costs money. A bill can contain several charges for one logical transfer, and repeated scans can move much more data than the stored dataset suggests. A new copy can be cheaper at one demand level and more expensive at another. A lower transfer rate can be irrelevant when the alternative increases compute time, interrupts a contractual commitment or creates a permanent reconciliation task. Compare options over the same workload, horizon and accepted service quality.

The diagrams below are explanatory models, not deployment instructions. The numerical example uses invented currency units, decimal gigabytes and constant rates to expose the arithmetic. It does not quote AWS, Azure or Google Cloud, forecast an Ampity customer outcome or establish a negotiated discount. Official documentation supports the charging distinctions; the proposed review method and sample thresholds are our engineering recommendations. Replace every synthetic assumption with measured usage and applicable commercial terms before making a purchasing decision.

Define the useful workload before comparing locations

Start with the completed work a user recognizes. For a document-analysis service, that might be a permitted report produced from a defined set of source revisions. For an operational dashboard, it could be an accepted refresh serving current orders. For an AI-assisted search workflow, distinguish source ingestion, index construction, retrieval and inference. Those activities have different data movements and should not be collapsed into one request count.

Write the workload denominator and observation window. Count completed jobs, abandoned jobs, retries, scheduled refreshes and background reconciliation separately. Identify whether the window includes the peak, normal demand and quiet periods. A monthly average hides a batch that exhausts network throughput overnight. A successful small experiment cannot establish that the same design meets the busy-period latency requirement or the largest tenant's working set.

Define the data needed per job rather than assuming it is the whole dataset. A job may read a few object ranges, repeatedly scan an entire table or fetch documents already available in a permitted cache. Record actual bytes crossing each boundary, including retries and metadata where material. Separate logical bytes read by an application from compressed bytes transported and the provider's billable usage unit. These figures can legitimately differ, but their relationship must be explained.

Also define accepted output quality. Two placements are not equivalent if one produces fresher results, reads a different source revision or omits permission checks. A local copy that makes an answer inexpensive but stale beyond the business limit has failed the comparison. Keep quality, latency and authorization as admission constraints rather than treating them as costs that can always be traded away. The cost owner should compare only options the service owner considers usable.

Establish the data authority and freshness contract

Identify the system that owns each fact. A transactional store may own the latest order status while an object store owns the referenced document. A search index, warehouse or embedding collection is usually a derived representation for a particular workload. Moving that representation does not transfer business authority to it. Document which decisions may use the derived state and which require a current authoritative read.

State freshness in an observable form. “Near real time” does not define whether an incomplete ten-minute-old snapshot is acceptable. Record the source revision or watermark, coverage of the expected records, observed update time, maximum permitted age and behavior when the requirement cannot be checked. A timestamp showing the last successful refresh cannot prove that every relevant source change reached the copy. Keep partial completion distinguishable from a usable snapshot.

Define deletion and permission behavior before replication. A copied document may remain readable after source access changes unless the destination enforces current authorization or has an accepted propagation limit. Decide how a denied read, revoked relationship or deleted source affects caches, indexes and already-created outputs. More copies expand this obligation. They do not establish that the organization has an approved retention purpose or the legal right to move the information.

Freshness can change the financial result. A relaxed analytical workload may refresh a small subset daily; an operational decision may need frequent updates and authoritative validation. Model each contract separately. Do not attach the inexpensive refresh schedule to a workload that needs the more expensive one. If a supplier cannot provide sufficient change identifiers or coverage evidence, retain that limitation as a reason to reject the replica, not as a zero-cost blank cell.

Map directed flows and their actual charging boundaries

AWS's data transfer modeling guidance recommends identifying sources, destinations, volumes, requirements and the workload benefit of a transfer, then comparing different usage levels. In this paper's proposed register, each directed flow also receives a purpose, observation basis, billing owner and unresolved-charge field. The register connects a technical route to a cost claim without assuming that a diagram alone proves what was billed.

For every flow, record source and destination locations, service identities, direction, payload category and the network intermediaries that process it. Separate internet delivery, cross-region copying, replication, private connectivity and service-specific access. A line labelled “internal” is not enough. Record the actual billing category and scope under the applicable provider's documentation and agreement. An account boundary or geographic label does not independently establish the transfer price.

Avoid confusing a logical operation with a single charge. A transfer may incur outbound bandwidth plus processing through an intermediary. Requests, retrieval and storage can be billed separately. Conversely, an explicitly documented exemption can apply to one hop without removing other components. Associate each billable item with the flow that caused it, and keep shared hourly charges separate from variable byte charges so a component is not counted once per job and again in fixed overhead.

When the route cannot be resolved, keep its estimated cost range and owner visible. Do not distribute an unexplained remainder across the options in proportion to traffic and call it measured attribution. Reconcile the register against the bill and telemetry at their own scopes. Differences can arise from sampling, unit conversion, delayed usage records or unobserved background activity. A decision can proceed with bounded uncertainty, but only if the uncertainty could not silently reverse the accepted result.

The alternatives share an authoritative source, not a deployment topology. Solid arrows show working-data or result movement; dashed arrows show replica refresh. Each crossing needs its own measured volume and applicable charging rule. The diagram does not imply that local transfers are free or that a copied dataset has current permission to serve every reader.

Read provider pricing as conditions, not universal rules

Amazon S3 pricing separates storage, requests and retrieval, transfer and other feature charges. Google Cloud Storage pricing distinguishes transfer within Google Cloud, specialty networking and general outbound transfer, with location-specific conditions. These distinctions are a reason to resolve the actual product and route, not a reason to import one storage service's rules into every cloud workload.

Azure bandwidth pricing distinguishes incoming traffic, inter-region traffic and internet egress, and explains that actual pricing depends on the agreement and other commercial conditions. This paper deliberately does not reproduce rate tables. The exact regions, destination, product, purchased offer, tiers and applicable exclusions must be checked when pricing the candidate. A saved estimate should retain that evidence so another reviewer can see which conditions it assumed.

Unit definitions also matter. Azure's page specifies decimal terabytes in its bandwidth tables, while Google Cloud Storage documents binary gigabyte usage and distinguishes additional charging categories. Normalize raw bytes explicitly rather than treating a label such as GB as sufficient. Keep the original quantity and unit next to the converted figure. A small unit error applied to many refreshes can become a larger difference than the claimed improvement.

Promotional credits and exit arrangements need separate treatment. A temporary credit can reduce a particular invoice without lowering steady-state consumption. A migration concession may have eligibility and process requirements rather than applying to continuous replication. Do not assume a listed free-transfer case covers intermediary processing or every related service. Ask the commercial owner to confirm applicability and the end of any benefit, then compare both the supported period and the period after it expires.

Include network intermediaries and fixed capacity

Amazon VPC pricing describes NAT gateway hourly and data-processing charges in addition to applicable transfer charges. This is a concrete example of why a route can cost money even when a particular source-to-destination transfer category has no bandwidth charge. Inspect the path, not just the final destination. An endpoint change should be evaluated against its documented pricing and the application's security and routing requirements.

AWS's transfer-reduction guidance discusses caching, compression, dedicated connections and suitable endpoints. Our recommendation is to test these as separate candidates before moving an entire dataset. A route correction or a scoped reduction in repeated reads may solve the material cost without creating a new replica. That conclusion still needs measured evidence and must not weaken resilience or access control.

For each alternative, include resources that remain provisioned during idle time. Private connections, gateways, reserved workers and replica capacity may have fixed charges. If a shared component would remain for other workloads, distinguish an accounting allocation from a cash cost the change actually removes. Neither is inherently wrong, but a decision based on avoidable spend cannot count a shared bill as eliminated when the organization will keep paying it.

Capacity can introduce discontinuities. A larger peak can require another connection, instance or reserved-throughput tier, even when monthly transferred bytes change gradually. Model those changes as separate scenarios rather than fitting one constant rate across them. Record bandwidth headroom, admission controls and backfill duration. A candidate that minimizes the ordinary monthly bill but cannot recover a backlog within the required window has not met the operating contract.

Compare remote reads, source-local compute and a replica

Remote reads preserve one data authority and avoid maintaining a destination copy, but repeated working-set movement can dominate cost or latency. This option can be reasonable when demand is sparse, payloads are small, queries are selective or changing placement would create a larger dependency. Improve filtering and reuse only where the workload's freshness and access requirements allow it. Do not infer the traffic reduction from the existence of a cache.

Source-local compute keeps the large input near its owner and transfers the result where it is needed. It can require packaging the job for a different runtime, arranging identities and accepting that environment's capacity or service availability. Results can also be large. A video conversion, export or model artifact may transfer most of the original input size back out. Record the measured result distribution rather than assuming every computation returns a tiny summary.

A near-workload replica pays to bring an accepted representation closer to recurring jobs. Its economics depend on refresh volume, duplicate storage, copy validation and operating work. It may serve several workloads, but their access and freshness contracts can differ. Allocate shared costs transparently and model the marginal effect of the proposed workload. Counting the same avoided source read as a saving for several teams overstates the combined benefit.

Reject comparisons that quietly change the workload. A materialized subset might be a useful fourth candidate, but it cannot stand in for a full-history workload without a scope change. Likewise, removing redundancy or retaining less data is a service decision, not automatically a placement optimization. Record who accepts each change and how it affects recovery, security and customer-visible behavior. The alternative should have a clear name and a complete operating definition before its total appears in a chart.

Build a reproducible cost ledger

Use a fixed comparison horizon and separate recurring costs from transition costs. For each option, record compute, authoritative and duplicate storage, requests and retrieval, directed transfer, intermediary processing, fixed network capacity and incremental operating work. Include costs displaced by the option as separate negative entries only when their removal is supported. Retain the evidence source, measurement window and confidence for every line.

A practical recurring model is fixed monthly cost plus the sum of billable monthly volumes multiplied by their applicable rates, with additional request and compute usage included at their own units. This is a bookkeeping model, not an assertion that every real rate is linear. Real volume tiers, commitments and minimum charges require their own functions. Reconcile totals by line item before comparing them; a neat total cannot repair an omitted category.

For decision cost over H months, add transition cost to the sum of recurring monthly costs over those months. Do not divide the migration bill by H and then add it again. If demand, rates or contracts vary, calculate each month separately. Discounting and accounting treatment belong to the organization's financial review; the simple example here uses neither. Its purpose is to make the engineering quantities and omissions inspectable.

Track operational labor honestly. An estimate of additional staff time may be relevant to capacity planning without becoming an immediate cash saving. Label loaded staff cost, purchased support and avoided invoices separately. Similarly, risk should not receive an invented currency value just to make all options comparable. Keep unacceptable data or access conditions as disqualifiers, and retain accepted risks with owners and controls outside the arithmetic.

Work through a synthetic placement comparison

Consider a hypothetical analysis workload with 20,000 completed jobs per month. Let N denote thousands of completed jobs. Every remote job transfers a normalized five decimal GB of working data, so input movement is 5,000N GB. Set the invented input-transfer rate to 0.08 currency units per GB. Assume billable attempts and their modeled processing are already included in each option's coefficient; retries beyond that assumption require a revised coefficient. No number represents a provider price or customer result.

For remote reads, set monthly fixed cost to 200 units and job compute to 20N units. Input movement costs 400N units, producing a recurring total of 200 + 420N. For source-local compute, set fixed cost to 600 units, compute to 60N and result transfer to 2N. Its total is 600 + 62N. The result assumption is 100 GB per thousand completed jobs at an invented rate of 0.02 units per GB; other return-path charges are included in fixed cost for this simplified example.

For the replica, set fixed storage, validation and operating cost to 1,800 units. Let R denote normalized monthly refresh GB, including replays and backfill under the modeled operating condition. Set refresh transfer to 0.08R and job compute to 20N. With R equal to 10,000 GB, the recurring total is 2,600 + 20N. Set the one-time transition costs to zero for retaining remote reads, 1,800 for source-local compute and 3,600 for the replica. These costs are invented too.

At N equal to 20 and R equal to 10,000, recurring costs are 8,600, 1,840 and 3,000 units respectively. Over a twelve-month horizon, including transition once, totals are 103,200, 23,880 and 39,600 units. This narrowly specified example favors source-local compute financially. It does not establish that this option has the required runtime, latency or access behavior. If those acceptance conditions fail, its lower arithmetic total cannot make it a usable recommendation.

Test demand and refresh sensitivity separately

Holding the replica's refresh at 10,000 GB, its monthly cost is 2,600 + 20N. It crosses source-local compute at N equal to 2,000 divided by 42, approximately 47.62 thousand completed jobs. Below that threshold, source-local compute has the lower recurring cost; above it, the replica has the lower recurring cost within this model. A comparison at 20,000 jobs therefore cannot establish the choice at 80,000 jobs.

Remote reads and source-local compute cross at N equal to 400 divided by 358, approximately 1.12 thousand jobs. That shows why the higher fixed-cost candidate need not be economical for a sparse workload. The twelve-month transition-inclusive crossing is different: compare 200 + 420N with 750 + 62N, where 150 is the source-local transition cost divided by twelve. The threshold becomes about 1.54 thousand jobs. Do not present a recurring crossover as a payback promise.

Refresh is an independent variable. At 20,000 jobs, the replica costs 2,200 + 0.08R units, while source-local compute costs 1,840. No nonnegative refresh volume makes the replica cheaper in that particular recurring scenario. At 80,000 jobs, the replica costs 3,400 + 0.08R and source-local compute costs 5,560. The replica is cheaper only below 27,000 refresh GB per month. A freshness requirement that pushes refresh beyond that threshold reverses the result.

These thresholds assume constant rates and no capacity step. Test low, expected and high demand alongside ordinary and recovery refresh volumes. Include a failure period that loses cache reuse or requires a full rebuild. Do not multiply the same optimistic traffic reduction across independent paths without observing it. Keep the sensitivity result understandable: name the assumption that changes the preferred option and the measurement that would resolve it.

The desktop chart shows recurring cost, not transition-inclusive cost. The phone view gives the same sampled values and crossover as readable records. Currency units and rates are synthetic. The apparent winner is conditional on R equal to 10,000 GB, constant coefficients and all three options passing their nonfinancial acceptance checks.

Account for AI ingestion, retrieval and inference

AI workloads introduce several distinct movements. Source documents may be ingested into a derived index, embeddings may be stored in another environment and retrieved material may cross a model-provider boundary. Training or batch evaluation can repeatedly read larger sets than an ordinary user request. Map these activities separately. “The model is in the same cloud” does not identify the exact region, route, contractual processing boundary or destination of submitted data.

Keep tokens and transferred bytes as separate units. Token billing is not a network volume measure, and prompt caching does not necessarily eliminate source ingestion or retrieval traffic. A system can send fewer model tokens while still scanning the same object corpus. Record changes in each meter and verify the output quality against the same workload. Do not credit a smaller prompt with an egress saving unless that particular boundary actually moved fewer billable bytes.

For refresh, identify what causes reprocessing. A document revision, permission change, parser upgrade or embedding-model change can invalidate different derived artifacts. A full rebuild may read every source object and temporarily retain both representations. Include the dual-run interval, copy verification and abandoned work. A monthly change rate based only on user edits can materially understate the cost of maintaining the accepted AI retrieval representation.

Placement must preserve authorization and permitted use. A local index can lower retrieval latency while retaining content that a user may no longer access. A provider fallback can change the destination of sensitive material. Require the relevant access, deletion, contractual and security review before admitting those paths. An AI assistant can help summarize the flow register, but generated route descriptions or rates are not evidence; reviewers must resolve them against observed behavior and authoritative terms.

Include migration, recovery and reversibility

Transition cost includes more than the initial transfer. Inventory export preparation, destination setup, validation, dual running, changes to identities and deployment, cutover effort and any retained source capacity. Copying bytes successfully does not establish a usable dataset. Verify record coverage, revisions, schema compatibility and the application operations that will consume the destination. A partial or stale copy can make the migration inexpensive on paper while making service behavior unacceptable.

Specify the candidate's recovery condition. If the replica is lost, record the rebuild volume, available throughput, maximum completion time and resulting workload mode. If source-local compute becomes unavailable, determine whether remote reads are an accepted fallback and whether that path has been tested. The fallback can have a different cost and latency profile. Model it explicitly rather than treating normal-period efficiency as evidence of outage-period readiness.

Reversal depends on what changed. A read-only analytical copy can often be removed after traffic returns to its authoritative source, subject to retained-artifact disposition. A write-capable destination may create divergence requiring reconciliation before returning. Do not call a routing switch a complete rollback if accepted writes or external effects remain elsewhere. Name the final retained state, unresolved records and evidence needed to close the transition.

Keep the scope of resilience spending visible. Cross-region or cross-zone movement may support an accepted availability objective. Removing it can change that objective rather than merely remove waste. Compare a topology-preserving candidate first where possible. If the organization chooses reduced resilience, record the business acceptance separately and do not describe the resulting bill reduction as a like-for-like improvement. The cheapest compliant candidate can legitimately cost more than an inadmissible one.

Run a bounded placement experiment

Choose one representative workload with known source revisions and inert or isolated output destinations. Agree the allowed data classification, spend limit, observation coverage and stop conditions. The experiment should not introduce a production replica with broad credentials simply to estimate traffic. Use the minimum permitted data and identities needed to test the disputed assumption, while noting where that narrower scope cannot establish full production behavior.

Measure each complete candidate rather than extrapolating from a ping or one successful query. Capture completed work, end-to-end latency distribution, billable attempts, source and result bytes, refresh work, intermediary usage and output correctness. Keep the load generator and measurement settings unchanged unless a documented workload difference requires otherwise. Include cold starts, cache misses and a refresh failure so the comparison does not depend entirely on the healthy warm path.

Reconcile experimental usage with the provider's usage records when they become available. Keep provisional telemetry estimates distinct from settled invoice observations, and record the wait or attribution gaps. A trial credit can hide a charge rather than remove the underlying meter. Calculate the candidate under the intended steady-state commercial terms as well as the experimental bill. If a meter cannot be observed, preserve its supported bound and owner instead of substituting zero.

End the experiment with an owned decision. State which assumptions were confirmed, which remain uncertain and whether the result changes the preferred candidate. Stop without expansion when permissions, freshness, spend or output quality fail. An experiment that reveals an unacceptable copy boundary has produced useful evidence even if it does not justify a migration. Preserve the measurements and configuration so the next reviewer can reproduce the reasoning rather than trust a slide claiming a percentage saved.

Record the decision and conditions for revisiting it

The decision record should name the workload, accepted source state, selected placement, rejected alternatives, comparison horizon and applicable commercial evidence. Include recurring and transition totals separately, the demand range and the refresh conditions under which the choice changes. Record access, freshness, performance and recovery acceptance results alongside the costs. A reader should be able to tell whether the organization chose a lower bill, greater headroom or a simpler operating obligation.

Assign revisit triggers to observations the team can monitor. Examples include sustained demand entering the crossover range, refresh volume exceeding its accepted bound, a contract ending, a new data classification or a rebuild no longer fitting the recovery window. A trigger starts a review; it should not automatically move data. The new decision still needs current prices, compatible service behavior and an accountable owner.

State limitations plainly. This method does not establish legal permission to transfer data, quote provider prices or guarantee future savings. The synthetic model omits changing tiers, commitments, tax, exchange rates and capacity discontinuities. Its thresholds do not apply when the workload or coefficients change. For a write-heavy application with cross-location consistency requirements, cost modeling must follow a separate correctness and recovery review rather than substitute for it.

Data placement decision checklist

  • Identify useful completed work, the accepted data revision and the freshness limit. Attach the directed flow register and unresolved observations.
  • Normalize bytes and billing units, then retain each current rate's product, location, scope and agreement basis. Separate variable processing, fixed capacity and duplicated storage.
  • Compare remote reads, source-local compute and a scoped replica over the same horizon. Include transition once, failure refresh and genuinely displaced costs.
  • Test demand and refresh independently. Record where the preferred option changes and which unknown could reverse the decision.
  • Accept security, permissions, quality, latency, recovery and reversal before selecting by price. Assign an owner and an observed revisit trigger.

Start the next review with one flow register and reconciled cost ledger. Use the egress investigation playbook and cloud cost engineering paper. Discuss the evidence in an AWS consulting and migration review or reliability review. Downloads are anonymous; contact is optional.