AWS Storage Blog

Inside the AWS Storage Assessment: How intelligent analysis replaces guesswork

A completed storage assessment looks simple: an AWS Storage service recommended per workload, capacity and performance recommendations, and cost. This post walks through the analysis of how we go from analyzed data to right-sizing on AWS.

In Part 1 of this series, we covered what an AWS Storage Assessment delivers: service recommendations, right-sized configurations, and validated cost models from actual telemetry. Teams planning storage migration need this because manual estimates miss workload characteristics that drive cost and architecture decisions. A single RVTools export or a 30-day NetApp Data Infrastructure Insights collection produces a per-workload business case ready for leadership review.

The numbers in an assessment (68% of capacity inactive, high-confidence classification, 60–80% cost reduction from I/O density tiering) are not spreadsheet formulas. They come from a multi-stage pipeline of detection, classification, and optimization that weighs many dimensions at one time, whatever the source. Understanding it helps you judge an assessment before acting on it.This post covers six stages:

  • Automatic workload classification.
  • Inactive data and infrastructure detection.
  • Right-sizing and efficiency modeling.
  • Configuration optimization.
  • Data protection cost modeling.
  • Scenario analysis with what-if engine.

Automatic workload classification

Most storage assessments require a storage architect to manually tag every volume by workload type. For 1,000 volumes across multiple arrays, this takes days and introduces errors that compound through the analysis, for example, a backup server sized as a file server, or a database volume priced as archive. The assessment instead runs an automated classification pipeline that adapts to whatever data source you provide.

Classification adapts to source quality

Different data sources carry different signals, and the assessment adapts to each. Rich performance-telemetry sources (NetApp Data Infrastructure Insights, Dell InsightIQ) let it classify by what a volume is, from array metadata such as protocol, IOPS patterns, and share associations. Hypervisor exports (RVTools, vSphere) and discovery tools (AWS Transform, ModelizeIT, Cloudamize) let it classify by what a server does, from naming patterns, application detection, and measured IOPS. Manual templates provide user-declared mappings, validated against protocol and capacity signals.

The classification pipeline

For sources requiring inference, each volume passes through four stages in priority order, as detailed in the following table.

Stage What it evaluates Example
Keyword matching Server names, volume names against known function tokens SQLSRV01 matches “SQL,” classifies as database. BKPSERVER matches “BKP,” classifies as backup
Segment-aware parsing Structured decomposition of concatenated enterprise identifiers DSSPTVBP040 decomposes to site (DSS) + platform (PTV) + function (BP) + sequence (040). Backup detected at position 6.
Protocol corroboration NFS/SMB/iSCSI from storage config narrows service candidates NFS + file server name tokens = high-confidence file server
IOPS behavior Peak IOPS density compared to workload profiles 50 TB at 200 IOPS (0.004 IOPS/GB) = cold regardless of name

The stages run in priority order, and the parser uses word-boundary awareness to prevent false positives (for example, “Profiles-1” does not match “FILES”). Each classification carries a confidence score. Where multiple signals agree, the volume classifies automatically; where they conflict or fall below the threshold, it’s flagged for human review rather than guessed.

Infrastructure separation

Before sizing runs, the assessment identifies infrastructure components that would distort results if treated as customer workloads:

  • VMware vCLS agents, Nutanix Controller VMs, hypervisor appliances, VM templates
  • Powered-off servers (not consuming IOPS, excluded from performance sizing)
  • Desktop operating service instances (outside storage scope)
  • Storage constructs: clone volumes (full-capacity sizing double-counts shared blocks), datastore-backing volumes (already counted using their VMs), replication destinations (treated separately), distributed volume fragments (parts of a scale-out file system; the parent is the real workload), and tiering targets (cold data already counted in the source volume)

All exclusion decisions are surfaced with volume counts and capacity attribution. The assessment identifies candidates; the customer confirms.

From classification to service routing

Classification then drives service routing, shown in the figure 1.

A reference table mapping workload characteristics to AWS storage services, grouped into color-coded bands: Block Storage, File Storage, Object Storage, High-Performance Compute, and Data Protection. Each row lists a workload type, its protocol, the key selection criteria, and the recommended AWS service, for example, databases needing over 80,000 IOPS or sub-millisecond latency route to Amazon EBS io2 Block Express, while multi-protocol NAS routes to Amazon FSx for NetApp ONTAP.

Figure 1: Service routing: How AWS Storage Assessments map workload characteristics to AWS storage services

The key components are routed as follows:

  • Database and application servers – Route to Amazon Elastic Block Store (Amazon EBS) (gp3, io2 Block Express, st1, sc1) or Amazon FSx for NetApp ONTAP block based on protocol, peak IOPS, latency sensitivity, and sequential versus random I/O patterns.
  • File services – Route to FSx for ONTAP (including NetApp FlexCache for multi-Region read caching), Amazon FSx for Windows File Server, Amazon Elastic File System (Amazon EFS), Amazon FSx for OpenZFS, Amazon S3 Files, or Amazon S3 File Gateway based on protocol (NFS or SMB), combined group capacity, throughput requirements, access patterns, and hybrid access needs. Groups above a consolidation threshold route to shared file services where multi-tenant efficiency reduces cost.
  • Backup repositories – Route to Amazon Simple Storage Service (Amazon S3) with lifecycle tiering across storage classes (Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval, Glacier Flexible Retrieval, Glacier Deep Archive) based on sequential I/O patterns, large capacity, and low IOPS density.
  • Archive and inactive volumes – Route to S3 Glacier storage classes (Instant Retrieval, Flexible Retrieval, Deep Archive) based on infrequent access patterns.
  • High-performance parallel workloads – Route to Amazon FSx for Lustre based on high throughput density and compute-coupled access patterns.
  • Mixed environments with NAS, block, and object workloads – Split automatically and route to multiple services in parallel.

Rather than just a label, the output is a service mapping, target configuration family, and confidence score, ready for the sizing engine.

Inactive data and infrastructure detection

After every workload is classified, the next question is how much of it should move at all. One of the highest-value findings is data that consumes expensive primary storage but serves no active workload. In the NAS example from Part 1, 844 of 3,920 volumes (1,720 TB) showed zero I/O activity over a 30-day collection, capacity that can be archived, tiered, or decommissioned before migration to cut both migration scope and ongoing AWS cost.The assessment flags three kinds of non-productive capacity before sizing:

  • Zombie volumes – Volumes with zero IOPS and zero throughput over the full collection period (7–30 days). In the environments we assess, a significant share of capacity commonly sits idle. Each is flagged with its capacity so you can archive it to S3 Glacier, decommission it, or keep it in scope; moving inactive data to S3 Glacier Deep Archive can cut its cost by up to 99% without application migration.
  • Replica and data-protection copies – Replication destinations duplicate source data, and sizing them alongside primaries can inflate estimates by roughly 30–50%. The assessment identifies them from source metadata and reports them separately so you can exclude them or plan independent migration. In the NAS example from Part 1, 646 replication volumes (646 TB) were identified.
  • Duplicate mount paths – NAS environments often expose the same volume across multiple mount paths. Two-pass deduplication (exact path matching, then server and capacity fingerprinting) collapses these.

Net impact

In the environments we assess, these detection stages typically reduce the in-scope workload set by 20–40% before sizing begins (in the VMware example from Part 1: 7,743 VMs reduced to 5,050 in-scope). Volumes removed at this stage are volumes that don’t generate AWS cost in the recommendation.

Right-sizing and efficiency modeling

With inactive data set aside, sizing focuses on what remains. The biggest savings come not from choosing the cheapest service, but from accurately determining how much capacity and performance each workload needs. On-premises storage is almost always over-provisioned, and that gap is budget that does not need to move to AWS.

Three capacity modes

The assessment supports three approaches to capacity sizing:

  • Provisioned – Sizes on total allocated capacity. Used when utilization data is unavailable or the customer wants to preserve existing headroom.
  • Used + buffer – Sizes on actual consumed capacity plus a configurable buffer. For the NAS example from Part 1 (10,667 TB allocated, 4,817 TB used), this reduces target capacity by 50% before any other optimization.
  • Intelligent mode – Applies per-workload logic based on utilization ratio, volume size, and performance characteristics. High-utilization volumes keep provisioned capacity; low-utilization volumes with low IOPS get aggressive right-sizing.

In the environments we assess, switching from provisioned-based to utilization-based sizing typically reduces costs by 40–60%.

Vendor-aware storage efficiency ratio

AWS storage services like FSx for ONTAP provide inline deduplication, compression, and compaction. If the source environment already runs these features (common on NetApp ONTAP, Pure Storage, and other modern arrays), the used capacity already reflects those savings. The assessment applies vendor-aware modeling:

  • Data from already-deduplicated sources receives zero additional efficiency credit. Applying an additional deduplication assumption would undersize the target, leading to capacity shortfalls post-migration.
  • Data from non-deduplicated sources receives the target service’s expected efficiency ratio, because those savings will genuinely be realized on the target for the first time.

This is the most common error in manual assessments.

I/O density-based data tiering

FSx for ONTAP provides multiple automatic tiering policies that move data between SSD and capacity pool based on access patterns. The assessment determines the optimal policy per volume based on I/O density, as shown in the following Figure 2.

A multi-section table showing how the assessment determines SSD versus capacity-pool allocation by workload type. The top section, for NAS file shares, lists cold-data percentage bands against tiering policies (from "All to capacity pool" for zombie data down to "None/Snapshots only" for hot data), each with a worked example such as 50 TB at 200 IOPS yielding 67 GB of SSD and 99.9% cold. A middle section covers block workloads (databases 100% SSD, applications 25–100%, general 25–83%), and a result band summarizes the 60–80% cost reduction from IO-density-based tiering.

Figure 2: I/O density analysis: How the assessment determines SSD compared to capacity pool allocation

Allocation is set by workload type. For NAS file shares, IO density (IOPS per GB of used capacity) drives the split: busier data stays on SSD, sized to roughly 3 IOPS per GB, and the quieter remainder moves to the lower-cost capacity pool. For block workloads, databases get 100% SSD because they cannot tolerate capacity-pool latency, while application and general workloads get a graduated allocation. On sources with real measured IO patterns, the assessment tunes the SSD share per volume based on the workload’s write mix, IO size, latency, and load steadiness. On sources with derived IOPS (RVTools etc.), a conservative flat allocation is used. Because most NAS data is infrequently accessed, tiering the cold portion can cut storage costs by roughly 60 to 80 percent versus all-SSD.

Peak versus average analysis

Peak versus average analysis Performance sizing uses peak values from the collection period, not averages. For sources with array performance data, per-volume IOPS are scaled against the array’s observed peak rather than summing individual peaks (which would overstate requirements due to non-overlapping peak windows).

Configuration optimization

Right-sizing capacity is necessary but not sufficient. AWS storage services have configuration parameters (throughput tiers, availability options, volume types, deployment generations) that significantly affect both cost and performance. The assessment selects the optimal configuration, not just the service.

Amazon EBS volume type selection

EBS volume type selection (gp3, io2 Block Express, st1, sc1) is driven by IOPS, throughput, latency, capacity, and multi-attach requirements. gp3 handles up to 80,000 IOPS and 2,000 MBps; workloads exceeding these limits or requiring sub-millisecond latency route to io2 Block Express. Sequential workloads route to st1; near-zero activity volumes route to sc1.

Workloads exceeding single-volume limits are automatically split, with separate boot volume costing for virtual servers.

Amazon FSx for NetApp ONTAP configuration

Picking the right FSx for ONTAP configuration is less like choosing a product and more like solving a puzzle with several constraints at the same time. The assessment evaluates a matrix of configurations across throughput tiers, deployment options, and generations. A Gen2 Single-AZ file system scales to 12 HA pairs (up to 6,144 MBps, 200,000 SSD IOPS, and 512 TiB of SSD per HA pair, reaching 72 GBps and 2.4 million IOPS), whereas Gen2 Multi-AZ and Gen1 file systems use a single HA pair (Gen1 up to 192 TiB of SSD per file system). Each configuration has defined limits for IOPS, throughput, and SSD capacity.The optimizer selects the lowest-cost configuration that satisfies every constraint at the same time: aggregate IOPS and throughput (with a headroom buffer), total SSD capacity (hot data plus buffer and snapshot space), SVM count, and per-file system volume limits. When no single file system satisfies all of them, it calculates multi-file system layouts automatically, comparing eight deployment options (Cost Optimized and Performance Optimized, across Single-AZ and Multi-AZ, for Gen1 and Gen2) so you can weigh cost against availability with real numbers. Figure 3 shows how the optimizer searches this space.

A three-panel diagram showing how the optimizer selects an FSx for NetApp ONTAP configuration. The left panel lists five constraints that must all be satisfied: aggregate IOPS, aggregate throughput, total SSD, SVM count, and volume count. The center panel shows the Gen2 and Gen1 configuration search spaces and the selection, fallback, and validation logic. The right panel lists eight deployment options output, Cost Optimized and Performance Optimized across Single-AZ and Multi-AZ for both Gen1 and Gen2.

Figure 3: Amazon FSx for NetApp ONTAP configuration optimization: Multi-constraint selection across Gen1 and Gen2

Other service optimizations

You can also consider additional service optimizations:

  • Amazon FSx for Windows File Server – SSD versus HDD routing based on latency and IOPS density, with multi-file system splitting when throughput exceeds single-file system limits.
  • Amazon EFS – Throughput mode selection (Bursting versus Provisioned) based on peak demand relative to stored-data baseline, with Standard/IA tier split derived from access patterns.
  • Amazon FSx for OpenZFS– Multiple architecture options evaluated (Single-AZ, Multi-AZ, Intelligent Tiering to Amazon S3) with 512 TiB capacity enforcement. Compression mode selected per volume, with database data and redo volumes receiving zero compression per AWS best practice.
  • Amazon FSx for Lustre – Automatic SSD versus HDD determination with Amazon S3 as persistent data repository.
  • Amazon S3 File Gateway – Evaluated for hybrid file access patterns requiring on-premises NFS or SMB access to Amazon S3 backed storage with local caching.

Costs are calculated from the AWS Pricing API for the selected AWS Region at assessment time.

Data protection and cost modeling

Backup and disaster recovery are often left out of a migration estimate, and then get billed for later. The assessment models data protection costs alongside primary storage, so your business case reflects total operational spend, not just storage fees. It models four protection services:

  • AWS Backup – Retention across daily, weekly, monthly, and yearly cycles, with warm and cold vault tiering. Rather than estimating backup size as a flat percentage, the model accounts for overlapping retention windows (a single snapshot can satisfy multiple cycles), so the number reflects real backup volume. Cross-Region replication and per-service rates (Amazon EBS, Amazon FSx, Amazon EFS) are priced independently.
  • AWS Elastic Disaster Recovery – For Amazon EBS workloads, the model adds per-server staging costs and multiplies by change rate to capture the true cost of ongoing replication.
  • NetApp SnapMirror cross-Region replication – The assessment reruns FSx for ONTAP sizing for the disaster recovery Region at scaled performance, then adds transfer costs based on bandwidth and change rate.
  • ONTAP SnapVault – Secondary-tier backup, with configurable retention policies and destination throughput-tier selection.

Scenario analysis: The what-if engine

A single recommendation is rarely the end of the conversation. Migration planning means weighing alternatives: different Regions, targets, scope boundaries, and assumptions. Rather than rerunning a full assessment for each, the engine explores five dimensions from one data collection:

  • Target comparison – Remap all workloads to a single service and compare costs side by side against the multi-service recommendation
  • Region comparison – Re-price the entire workload set across multiple Regions using live pricing, flagging unavailable services
  • Scope adjustment – Filter to a workload subset (production-only, specific applications, capacity thresholds) without re-uploading or re-detecting
  • Architecture scenarios – Run parallel what-ifs with different deployment options per workload group (for example, Performance Optimized Multi-AZ for production, Cost Optimized Single-AZ for dev/test)
  • Parameter sensitivity – Adjust efficiency ratios, growth buffers, or peak percentage assumptions globally and see cost impact instantly

From single collection to decision matrix

Let’s return to the VMware example from Part 1 (5,050 in-scope workloads). Questions like “What if we migrate production only,” “What about eu-west-1 instead of US,” or “Performance Optimized Multi-AZ for production, Cost Optimized Single-AZ for dev and test” each resolve in seconds from the same source data, as Figure 4 shows.

A left-to-right flow diagram showing how one data collection produces multiple validated scenarios. A "Single Collection" panel (source data, classification, baseline sizing and result) feeds a "Scenario Inputs" panel listing five what-if scenarios (production-only scope, EU Region, split architecture, all-EBS, and a 25% growth buffer). These pass through a "Parallel Sizing" panel of sizing and pricing engines into a "Decision Matrix Output" table comparing each scenario's scope, Region, configuration, and monthly cost, with a Decision Insights list of trade-offs beneath.

Figure 4: What-if scenario flow: Single data collection, to multiple validated scenarios, to decision matrix

Each scenario uses the same source data. The output is a decision matrix that teams present leadership with trade-offs clearly articulated: cost versus availability, Region versus compliance, phased versus full migration. Rather than a single recommendation, the assessment offers a set of validated options enabling informed decisions.

Conclusion

In this post, we covered the analytical methods that separate a data-driven assessment from a spreadsheet estimate: automated classification, inactive data detection, vendor-aware efficiency modeling, I/O density tiering, multi-constraint configuration optimization, and scenario analysis. Each stage removes a source of error that manual methods leave in place. The techniques apply regardless of source type, and the results are validated against live AWS pricing.

Contact your AWS account team, email migration-assessment@amazon.com, or request an assessment. AWS Migration Solutions Architects run these end-to-end scenarios collaboratively with the customer at no cost. For self-service analysis, AWS Transform assessments provides automated storage assessment capabilities that process telemetry data from multiple sources.

For the full process and examples, see Data-driven planning for cloud migration using AWS Storage Assessment.

Learn More

Read part 3 of this blog series: Planning data protection before migration: How AWS Storage Assessments model backup and disaster recovery costs

Pranav Batra

Pranav Batra

Pranav Batra is a Senior Solutions Architect at AWS in the Infrastructure Migration and Modernization team, specializing in storage data collection, analysis, and sizing logic. He is passionate about turning raw workload telemetry into recommendations customers can trust. When he isn't refining the algorithms behind AWS storage assessments, he's running them with customers on their real environments.

David Stein

David Stein

David Stein is a cloud computing and storage professional at AWS, serving as the Principal GTM lead for AWS Storage. Since joining AWS in 2013, he has led go-to-market strategies for multiple offerings, including EFS, Amazon FSx for Windows File Server, Amazon FSx for Lustre, and Amazon FSx for NetApp ONTAP. He is committed to helping organizations get the most out of the cloud.