← back to blogs
AWS Transform Storage Migration TCO FSx for NetApp ONTAP Amazon S3

I Fed AWS Transform a 1.4 KB CSV. It Built Me a Storage Business Case.

Nine storage volumes, one plain CSV, and the Mumbai region. Here is how the AWS Transform storage assessment actually behaves, what it routed where, and the assumptions behind the number.

VR
Vishnu Rachapudi Oct 22, 2026  /  10 min read
// contents
  1. Why storage gets skipped in migration planning
  2. Getting into the right track
  3. The inventory I uploaded
  4. Discovery and the scenario plan
  5. The result
  6. What you get to download
  7. Notes if you try this yourself
// 01

Why storage gets skipped in migration planning

Migration assessments tend to lead with servers: CPU, memory, instance families, licensing. Storage often ends up as a single line item.

That works for disks attached to VMs. It falls apart for the stuff that is not attached to anything: the NetApp filer everyone mounts, the SAN LUNs behind the Oracle box, the backup repository that has quietly grown to 15 TB, the tape library nobody wants to talk about.

AWS Transform assessments can now take that detached storage, map it to AWS services, and produce a TCO. I wanted to see what that looks like end to end, so I built a small fictional inventory and ran it.

// heads up

Everything below uses a made-up company I called TechCorp. The volumes, sizes and IOPS are sample data, not a customer environment. The screenshots and outputs are real.

// 02

Getting into the right track

I opened AWS Transform in Mumbai (ap-south-1). The landing page now has separate tiles for continuous modernization, app assessment, Windows, mainframe, infrastructure assessment and workload migration. There is also a banner about cross-region processing starting October 7, 2026, which is worth reading if your customer has data residency requirements.

AWS Transform landing page in the Mumbai region with six workload tiles
AWS Transform home in ap-south-1. Storage lives under Assess Infrastructure, not continuous modernization.

My first question in chat was too vague, and Transform went straight into continuous modernization: connect a repo through the ATX CLI, run a modernization-readiness analysis. Useful, but wrong track. It did ask whether I meant a source-code repository or a mainframe application.

Transform chat explaining modernization-readiness analysis using the ATX CLI
The detour. A vague prompt lands you in code analysis.

Once I asked about storage directly, the answer was clear. Storage assessment is part of the migration assessment job. Server-attached storage gets a basic estimate automatically in every migration assessment. Detached storage (file, block, object) needs its own input.

Transform explaining server-attached vs detached storage and the inputs it accepts
Transform's own explanation of the two storage types and what it expects as input.

The inputs it listed were an RVTools export or a NetApp DII export (zipped CSV query results, with different queries for NAS and SAN). I had neither. I had a CSV. More on that in a second.

I asked it to create a workspace called Assessment, then a migration assessment job. Both happen through chat with a confirm button. The job came up as MigrationAssessmentV2-2026-10-22-0946 with a two-step plan on the left: Import inventory and Generate Migration Business Case.

Migration assessment job plan with Import inventory and Generate Migration Business Case steps
The job plan. Three ways in: upload files, run the discovery collector, or just describe the environment.

The line that caught my eye was "You can upload the files in any format." I took that literally.

// 03

The inventory I uploaded

Nine volumes, 80 TB used in total: three NAS shares, three SAN LUNs, three backup or archive stores. One flat CSV, 14 columns, nothing from the official template.

# techcorp-storage-inventory.csv (first rows)
asset_id,storage_category,storage_type,source_system,protocol,application,environment,
provisioned_tb,used_tb,peak_iops,peak_throughput_mbps,access_pattern,retention,ha_requirement
NAS-001,File,NAS,NetApp FAS8200,NFSv4,Engineering shared drives,Production,10,8,6000,400,...
SAN-001,Block,SAN,Dell EMC Unity XT,Fibre Channel,Oracle ERP database,Production,6,5,25000,800,...
BACKUP-002,Object,Archive,LTO-8 tape library,Tape,Compliance archive,Production,30,25,0,0,...
GroupVolumesUsedWhat is in it
NAS (file)NAS-001 to 00320 TBNetApp NFS shares, Windows SMB home drives, a dev Linux NFS server
SAN (block)SAN-001 to 00310 TBOracle ERP, a VMware datastore, a staging SQL Server
Backup / archiveBACKUP-001 to 00350 TBVeeam repository (30 days), tape compliance archive (7 years), DB dumps (1 year)

I also put in columns I expected Transform to care about: ha_requirement (Multi-AZ for production) and retention. Keep those two in mind.

Green banner confirming techcorp-storage-inventory.csv uploaded successfully
1.39 KB uploaded through the chat attachment button.
// 04

Discovery and the scenario plan

Ingestion ran in the background while the chat stayed usable. Once it finished, the Summarize inventory panel showed all nine volumes, typed correctly as file, block and object, with TB converted to GiB (10 TB became 10,240 GiB). No template, no complaints.

Summarize inventory panel showing 9 storage resources discovered
Storage count 9, discovery complete. Each volume gets its own AWS storage ID.
Remaining SAN and BACKUP volumes with capacity and used GiB
The SAN and backup rows. Capacity and used values match the CSV exactly.

Then it proposed a scenario. This is the part worth slowing down on, because every number in the final TCO comes from here.

inventory.csv 9 rows, 80 TB Transform job ap-south-1 FSx for NetApp ONTAP 3 NAS + 3 SAN Amazon S3 3 backup / archive On-prem TCO PDF / PPTX / XLSX

FSx for NetApp ONTAP: 6 volumes

All three NAS shares and all three SAN LUNs went to FSx for NetApp ONTAP. Not EBS. Transform's own explanation earlier in the chat said block storage maps to EBS, so this is worth noticing.

FSx for NetApp ONTAP assessment configuration in the scenario plan
Single-AZ, Gen 2, 50th percentile peak sizing, 45% deduplication.

S3: 3 volumes, plus a TCO across all 9

The backup and archive stores went to S3 with a fixed class split: 20% Standard, 30% Standard-IA, 50% Glacier Instant Retrieval. The backup repository split is on, so volumes over 2 TiB keep a 100 GiB landing zone. The on-prem side gets 40% hardware, 25% software and 50% storage discount rates.

S3 storage assessment and on-premises TCO comparison configuration
S3 class allocation and the on-prem discount assumptions.

Data quality passed with no exclusions. Transform also offered an optional Cloud Economics assessment (staff productivity, resilience and agility benchmarks).

Cloud Economics optional assessment, data quality passed, no excluded resources
Data quality check passed. Cloud Economics is optional and off by default.

Small friction here. I typed "do cloud economics assessment". Transform replied asking me to confirm I wanted to proceed without it, and I answered "yes do". The confirmation was phrased the opposite way to my request, so be explicit in chat when you confirm something.

Transform asking to confirm proceeding without the Cloud Economics assessment
A confirmation question phrased in the opposite direction of my request.
// 05

The result

CategoryAWS / yearOn-prem / year
Storage$61,491$475,820
FSx for NetApp ONTAP$53,530
S3$7,961
Support$6,149$0
Total$67,640$475,820
Assessment result table with AWS annual cost of 67,640 dollars and on-prem 475,820 dollars
Scenario "Initial Assessment", 9 storage devices.

On paper that is roughly 7x cheaper on AWS. FSx ONTAP is about 79% of the AWS total, covering 30 TB of file and block, including the 25,000 IOPS Oracle volume. The 50 TB of backup and archive comes to under $8K a year in S3.

The chat breakdown lists the support line under "Cloud Economics". The PDF and the deck call it Business Support: $6,149, which is 10% of the storage cost.

Where the $475,820 comes from

The deck has a 5-year cash flow slide, and that is where the on-prem number makes sense. Year 1 carries the hardware. Years 2 to 5 do not.

Year 1Years 2 to 5 (each)5-year total
On-premises$1,707,100$168,000$2,379,100
AWS$67,640$67,640$338,199

$2,379,100 over five years is exactly $475,820 a year. So the annual on-prem figure is a 5-year average with a Year 1 purchase inside it. Year on year after that, the comparison is $168,000 on-prem against $67,640 on AWS.

The deck's on-prem slide says the estimate uses industry average benchmark costs on a 5-year hardware refresh cycle, and that it excludes employee costs, migration tools and professional services. My CSV had no on-prem cost data at all, so every on-prem number here is Transform's benchmark.

Where the FSx money goes

The workbook's FSxN-Cost-Summary sheet breaks the $53,530 down per storage array. Transform grouped the volumes by array name, so SAN-001 and SAN-002 (both on the Dell EMC Unity XT) became one file system. That is why the PDF says 5 arrays for 6 volumes.

ArrayTypeFSxN size (GiB)SSD %Throughput / moAnnual
NetApp FAS8200NAS5,27921.1$614.40$10,236
Windows File Server 2019NAS4,51822.7$614.40$9,907
Linux NFS serverNAS3,19032.1$614.40$9,527
Dell EMC Unity XTBlock5,98573.7$614.40$14,435
HPE NimbleBlock1,54286.1$614.40$9,425
Total20,514$3,072.00$53,530

Every file system got 384 MiB/s of provisioned throughput at $614.40 a month. Across five file systems that is $36,864 a year, about 69% of the FSx cost. Capacity is the smaller part of this bill. The 30 TiB used on-prem comes out as 20,514 GiB of FSx capacity in the workbook.

And the S3 side

ClassAllocationSize (GiB)Annual
S3 Standard20%10,220$3,372.60
S3 Standard-IA30%15,330$2,792.52
S3 Glacier Instant Retrieval50%25,550$1,686.36
Backup landing zone (EBS gp3)100$109.44
Total51,200$7,960.92

The Object-S3-Detail sheet shows all three volumes on "Default Allocation", a 16,384 KiB average object size, and zero daily PUTs and GETs. None of that was in my CSV, so those are Transform's fill-ins too.

// 06

What you get to download

Reports arrived as a zip plus an error_file.csv, both in the job's Artifacts tab.

Reports ready message with a zip file and error_file.csv
Initial_Assessment zip (4.8 MB) and error_file.csv (2.2 KB).

Inside the zip:

Zip contents showing analysis xlsx, business_case pptx and report pdf
Three deliverables per scenario.

The PDF's assumptions section spells out exactly how the numbers were built: 80% usable SSD, 16% system space, 3% metadata, 5% snap reserve, 50% simultaneous peaks, 10% API overhead on S3, and a 100 GiB gp3 landing zone for the backup repository.

Report PDF assumptions list and disclaimer
Note the line on deduplication: 45% savings applied "when data is missing".

Two things in that page matter. The 45% compression and dedupe saving is a default applied when your data does not include it, and mine did not. And the recommendation text points you to the error file before treating the estimate as final.

The PDF's executive summary also lists strategic benefits like savings "with Reserved Instances" and moving to "right-sized EC2 instances". This assessment had 0 servers in scope and $0 compute. Edit that table before the report goes to anyone.

The error file

error_file.csv has six rows, one for each FSx volume, all at WARNING severity. Each one says the inventory reported no average latency, so Transform substituted a 2.0 ms default and costed the volume from it. The same six rows are in the workbook's Assessment Issues sheet. The three S3 volumes have no warnings.

My CSV had peak IOPS and throughput but no latency column. Adding avg_latency_ms per volume is the fix it asks for, followed by a re-run.

// 07

Notes if you try this yourself