Storage Migration TCO Calculator
Moving 100 TB out of AWS over the internet bills $7,791. Moving the same 100 TB in bills nothing. Between those two numbers sit four more paths — Direct Connect, cross-region, same-region, and a physical shipment. Price the transfer, the dual-write period, and the business downtime into one total cost of ownership before you book the window.
📦 Migration Cost Profile
Choose the data volume, the transfer path, and the business parameters. The engine prices the primary transfer, the extra storage and sync traffic of the dual-write period, and the cost of the cutover outage — then ranks all six paths on the same workload.
Why the Migration Bill Has Almost Nothing to Do With Bandwidth
Ask an engineer what a 100 TB migration costs and the answer is usually a bandwidth calculation — how many days at how many Mbps. Ask a finance team and the answer is a single line item on the invoice. The two answers rarely meet, because the dominant cost of a migration is neither the bytes nor the link: it is the direction the bytes travel, the length of the dual-write window, and whether the business can tolerate being offline while the last delta lands.
This calculator separates those three lines. Transfer is a function of the path you choose. Dual-write is a function of how long both systems run at once. Downtime is a function of your business, and it is usually the largest number in the model.
Six paths, one dataset, four orders of magnitude of difference
Take 100 TB with 1% daily change and a 14-day dual-write period. The dataset is identical in every row; only the route changes.
| Transfer path | Billing basis | 100 TB + 14 TB delta |
|---|---|---|
| Same-region (cloud → cloud) | Free within a region for the services shown | $0 |
| Inbound (on-prem → cloud) | $0.00/GB ingress on every major provider | $0 |
| Cross-region (cloud → cloud) | $0.02/GB inter-region | $2,280 |
| Direct Connect | $0.02/GB + $0.30 per port-hour | $2,520 |
| Physical shipment (Snowball Edge) | $1,800 per job ≤100 TB + shipping + delta egress | $3,331 |
| Internet egress | Tiered $0.09 → $0.085 → $0.07 → $0.05 per GB | $8,771 |
The spread is not a rounding error. Moving the same 100 TB out of a cloud provider over the public internet costs 3.5× more than a Direct Connect port and infinite times more than moving it in. That asymmetry is deliberate: ingress wins workloads, egress retains them.
The tier is cumulative, so the label price is not your price
Every AWS pricing page quotes egress at $0.09/GB, and almost nobody pays $0.09/GB on a migration. The tiers are cumulative across the whole account for the month, so a 100 TB transfer works through every band on its way up:
| Cumulative monthly egress | Marginal rate | Total bill | Effective $/GB |
|---|---|---|---|
| 1 TB | $0.09/GB | $81 | $0.0810 |
| 10 TB | $0.085/GB | $891 | $0.0891 |
| 50 TB | $0.085/GB | $4,291 | $0.0858 |
| 100 TB | $0.070/GB | $7,791 | $0.0779 |
| 150 TB | $0.070/GB | $11,291 | $0.0753 |
| 500 TB | $0.050/GB | $28,791 | $0.0576 |
Two consequences follow. First, a migration that pushes total account egress past 150 TB drops the marginal rate to $0.05/GB — cheaper than a Direct Connect port's $0.02/GB only until you add the port. Second, and more importantly, the migration does not get its own bill: it is pooled with the account's ordinary egress, which means a busy month can quietly move your migration traffic into a cheaper band, and a quiet one can leave it stranded in the expensive tier.
The dual-write period is a second bill nobody forecasts
Very few migrations run as a single copy. The safe pattern keeps the old system authoritative while the new one catches up, which means both copies exist at once and every write has to be forwarded. That period has a cost that scales with its length:
| Dual-write period | Delta transported | Transfer bill | Extra storage | Combined |
|---|---|---|---|---|
| 0 days | 0 GB | $7,791 | $0 | $7,791 |
| 7 days | 7,000 GB | $8,281 | $537 | $8,818 |
| 14 days | 14,000 GB | $8,771 | $1,073 | $9,844 |
| 30 days | 30,000 GB | $9,891 | $2,300 | $12,191 |
| 60 days | 60,000 GB | $11,791 | $4,600 | $16,391 |
Doubling the dual-write window from 30 to 60 days adds $4,200 to a migration whose transfer line is under $12,000. The line is easy to miss because it never appears as "dual-write" — it arrives as a slightly larger storage bill and a slightly larger egress bill, both of which look normal in isolation.
Downtime is usually the largest line, and it is the one people round
The transfer path can be chosen. The dual-write window can be tuned. Downtime is a property of the business, and on most migrations it dominates everything else:
| Cutover outage | Business loss rate | Downtime cost | Share of the 100 TB TCO |
|---|---|---|---|
| 4 hours | $500/hr | $2,000 | 16.9% |
| 8 hours | $500/hr | $4,000 | 28.9% |
| 8 hours | $2,000/hr | $16,000 | 61.9% |
| 8 hours | $5,000/hr | $40,000 | 80.2% |
| 24 hours | $5,000/hr | $120,000 | 92.4% |
| 8 hours | $50,000/hr | $400,000 | 97.6% |
At $5,000 per hour, an eight-hour cutover is $40,000 — 4.6× the entire transfer bill and 80.2% of a $49,844 total cost of ownership. This is why the correct comparison is rarely "internet versus Direct Connect" and almost always "a longer dual-write period versus a longer outage". Buying two more weeks of dual-write to remove six hours of downtime is a trade that closes at almost any realistic loss rate — and it is a trade the transfer-path spreadsheet never surfaces, because it lives on a different slide.
Physical shipment is not free, and it has a cliff
Shipping a device is the classic answer to "the link is too slow", and it is genuinely cheap per byte at the top of the range. AWS prices the current Snowball Edge Storage Optimized device at a flat $1,800 per job for up to 100 TB of load, and $3,200 once the load passes 100 TB — a $1,400 step for one extra terabyte:
| Load on device | Job fee | Effective $/GB |
|---|---|---|
| 100 TB | $1,800 | $0.018 |
| 101 TB | $3,200 | $0.032 |
| 210 TB | $3,200 | $0.015 |
Three caveats keep physical shipment from being an automatic win. The device is on site and in transit for weeks, which stretches the dual-write period and its two billing lines along with it. The job fee excludes round-trip shipping and excludes network egress for whatever changes while the device is in transit — the delta still has to be synced over a wire, and at 14 TB that is about $1,231 of egress on its own. And the ingest is free but the destination storage is not. On the numbers above, a Direct Connect port beats Snowball outright ($2,520 against $3,331) because the 1 Gbps transfer finishes inside the port's billing window while the device is still in a van.
A fifth path is worth stating plainly: if source and destination live in the same region, or if the direction is into a cloud provider, the transfer line is zero and the migration is priced entirely by dual-write and downtime. Before optimising a transfer path, confirm the transfer has a price at all.
How to use this in a migration plan
- Establish the direction first. Outbound is billed, inbound is not, same-region is free. Half of all migration cost models are solving a problem the architecture already removed.
- Price the path you actually have, not the one on the pricing page. The cumulative tier means the effective rate on 100 TB is $0.0779/GB, not $0.09/GB — and it depends on the rest of your account's egress that month.
- Choose the dual-write window as a cost decision. Every extra week adds delta traffic and a duplicate copy. Two weeks of dual-write buys a great deal of outage avoidance for roughly $1,000 on a 100 TB migration.
- Put a number on an hour of downtime. Even a rough figure changes the plan: at $5,000/hr the outage is 80% of the TCO, and the engineering effort belongs on shrinking the cutover, not the transfer.
- Re-price if the volume crosses 100 TB. The Snowball job fee steps up, and the egress tier moves down. Neither is linear, and both are easy to hit without noticing.
Why this tool matters: cloud providers publish migration cost calculators for their own services, and they price one path — theirs. This calculator prices all six paths against the same dataset, and it keeps the two lines providers never quote together in one view: the length of the dual-write window and the cost of the outage.
Pricing Basis, Sources & Assumptions
Every rate on this page is a published vendor list price — no negotiated discounts, private pricing, or credit offsets. Totals are in USD and exclude tax. Rates were last checked against the sources below on .
| Pricing input | Basis used on this page |
|---|---|
| Region | US East (N. Virginia) for AWS rates. The Direct Connect data-transfer-out rate is the US-mainland → US-mainland Direct Connect location figure; other regions publish different DTO rates and Snowball job fees vary by region. |
| Currency | USD — on-demand list price, tax excluded |
| Last checked | — the AWS egress tier ladder, the Direct Connect DTO and port-hour rates, and the Snowball Edge per-job fees were re-checked on this date. |
Modelling assumptions
- AWS internet egress is tiered and cumulative across services in one account: 100 GB per month free, then $0.09/GB to 10 TB, $0.085/GB to 50 TB, $0.07/GB to 150 TB, and $0.05/GB above that. The migration's traffic is pooled with the account's other egress.
- Direct Connect: $0.02 per GB data transfer out to a US Direct Connect location, plus the port-hour rate for the capacity that matches the link entered — $0.30/hr at 1 Gbps, $2.25/hr at 10 Gbps, $22.50/hr at 100 Gbps. Port hours are billed for the transfer period; provisioning a physical port takes two to twelve weeks and ports are rarely torn down the day a migration ends.
- Cross-region transfer between AWS regions is modelled at $0.02/GB. Same-region transfer between the services this model covers is $0.00, and inbound transfer to AWS is $0.00/GB at all locations.
- Snowball Edge Storage Optimized (210 TB) is $1,800 per job for up to 100 TB of load and $3,200 per job for 101–210 TB, including 15 on-site days at $250 per additional day, plus round-trip shipping at carrier rates — modelled here at $300. Ingest into S3 is $0.00/GB, but storage and PUT charges apply.
- The dual-write period holds both a source and a target copy. Extra storage is priced at S3 Standard $0.023/GB-month, prorated over a 30-day month. Delta sync traffic is priced on the same path as the primary transfer, except for physical shipment, where the delta necessarily runs over the network.
- Volumes are decimal: 1 TB = 1,000 GB on this page.
What this model excludes
- Egress or transfer charges levied by a source provider other than AWS when migrating between clouds, which vary by provider and direction.
- Request charges: S3 PUT/COPY at $0.005 per 1,000 operations, GET at $0.0004 per 1,000 — material for object counts in the tens of millions, immaterial below that.
- DataSync, Storage Gateway, or Transfer Family service hours; engineering time; licensing; and the opportunity cost of staff attention during the window.
- Early-deletion or minimum-duration charges on the source side, retrieval fees, and any egress allowance bundled into a support or commitment agreement.
- Tax, credits, private pricing agreements, EDP discounts, and the EU Data Act migration waiver.
Sources
- AWS (2026). "Amazon EC2 Data Transfer Pricing." Internet egress tiers and the monthly free allowance. aws.amazon.com
- AWS (2026). "AWS Direct Connect Pricing." Dedicated and hosted port-hour rates, data transfer out rates per Direct Connect location, and free data transfer in. aws.amazon.com
- AWS (2026). "AWS Snowball Pricing." Service fee per job, included on-site days, per-day extension fee, and free data transfer in to S3. aws.amazon.com
- AWS (2026). "Amazon S3 Pricing." Standard storage rate per GB-month used for the target copy. aws.amazon.com
- AWS (2026). "Data Transfer Between AWS Regions." Inter-region transfer rates. aws.amazon.com
Vendor list prices change without notice — re-check the linked pages before committing spend. jslet takes no vendor sponsorship and carries no affiliate links; see about.