A confession up front
I've been building AWS estimates for years, and I found this feature today. Turns out bulk import for EC2 has existed since December 2022 — it just never crossed my path, because the old calculator buried it and I'd trained myself to click through the wizard on autopilot.
The Pricing Calculator went generally available inside the AWS console in May 2025, and in the redesigned experience the Bulk import button now sits right on the Add service screen where you can't miss it. So this isn't a launch post. It's a "how did I not know about this" post — and if you price fleets by hand, it might save you the same forty clicks it's about to save me.
The problem it solves
Here's a scene every consultant knows. A client sends over a fleet: 30-odd EC2 instances across a couple of regions, mixed operating systems, some on-demand, some destined for Savings Plans. You open the Pricing Calculator and start the ritual — Add service, pick region, pick OS, pick instance type, set usage, pick pricing model, add storage, save. Then again. And again.
By instance twelve you've lost track of which ones you've done, and by instance thirty you've made at least one silent typo that quietly inflates the estimate. Bulk import kills that ritual: fill one Excel template, upload it, and every row becomes a priced line item. I ran a real fleet through it this week — here's exactly how it works, what tripped me up, and the one error that cost me ten minutes.
Where to find it
Go to calculator.aws and hit Create estimate (no sign-in needed for a public estimate, though signing in gets you volume-discount-aware pricing). On the Add service screen, look top-right: there's a Bulk import button next to the service search.
Click it and you land on the Bulk import screen, where the first choice is which service to estimate in bulk. Right now the dropdown offers three: EC2 Instances, EC2 Dedicated Hosts, and Elastic Block Store (EBS). I picked EC2 Instances.
The three-step flow
The screen lays it out plainly: download the template, fill it, upload it.
Step 1 — Download the template
Download the EC2 Instances Excel template. The instructions are blunt about one thing, and they're right: download it fresh every time. The template carries dropdown validation lists (regions, OS, purchasing options) that change as AWS adds regions and plans. A stale template from last quarter will fail validation on values that are now valid — or worse, accept values that no longer are.
Step 2 — Fill in your data
Open the workbook and go to the Inputs tab. There's also an Instructions tab with a full column-definition table, which is genuinely useful.
Step 3 — Upload the Excel file
Choose the file, wait for "Loading service," and the calculator parses every row.
What the template actually looks like
The Inputs sheet is two logical blocks under one banner row — Elastic Cloud Compute (EC2) Specifications and Elastic Block Storage (EBS) — plus an Errors column at the far right that the calculator fills in for you on a failed parse.
| Column | Required? | What goes in it |
|---|---|---|
| Group | Optional | A label to organize line items (e.g. Production). No >, <, &. |
| Description | Optional | Free-text note per row. Same character restriction. |
| AWS Region | Required | Region code — us-east-1, ap-south-1. Use the dropdown. |
| Operating System | Required | Linux, Windows Server, RHEL, SUSE, SQL variants — dropdown. |
| Instance Type | Required | Free text, family.size — m5.2xlarge, t4g.nano. |
| Tenancy | Required | Shared Instances or Dedicated Instances. |
| Number of Instances | Required | Integer count. |
| Assumed Usage | Conditional | Hours value when pricing by hours/week. |
| Usage Type | Required | Always On, or an hours-based utilization option. |
| Purchasing Option | Required | On-Demand, Spot, or a Savings Plan / Reserved term. |
The EBS columns (Storage Type, Storage amount, Provisioned IOPS, Throughput, Snapshot Frequency, Snapshot amount) are optional — you can price pure compute, or compute plus storage. IOPS only applies to gp3/io1/io2, throughput only to gp3.
The dropdowns are the quiet hero. Region, OS, Tenancy, and Purchasing Option are validated picklists baked into the sheet — so you're not guessing at the exact label the parser wants.
What broke (learn from my ten minutes)
My first upload failed on a single row, and the Errors column told me exactly why:
Read that carefully — the OS field is echoing back the instance type value. That's the tell. My columns had shifted: I'd pasted a block of data and knocked the Instance Type value into the wrong cell, so the parser was trying to validate t4g.nano as an operating system.
This template is positional, and paste is the enemy. Type into the dropdowns, or paste one column at a time and verify alignment before uploading.
A few other things worth knowing before you hit upload:
- 1,000 rows max per upload. Plenty for most fleets; chunk larger migrations.
- Instance type is validated against region + OS + tenancy as a combination, not in isolation. A type in
us-east-1may not exist inap-south-1, and the error only surfaces after upload. - Errors are per-row, not fatal. A bad row gets flagged; the good rows still import. Fix and re-upload.
The payoff
Once it parsed cleanly, every row showed up as a line item under a Bulk Import group, nested under whatever Group names I'd set. Each Config Summary expands to the full spec — tenancy, OS, workload, instance, pricing strategy, EBS — exactly as if I'd clicked through the wizard by hand, minus the clicking.
One upload, not thirty. A defensible, itemized estimate — and I can hand the client the same spreadsheet I built it from.
Where this fits in a consulting workflow
This is a small feature with an outsized effect on migration and rightsizing work. The spreadsheet is the artifact: you can version it, diff it, review it with a client, and regenerate the estimate whenever the fleet changes.
It slots neatly ahead of a Compute Optimizer pass — bulk-price the current fleet, then bulk-price the recommended one, and the delta is your rightsizing business case in two uploads. If you price AWS fleets for a living, download the template once and try it on your next estimate. The forty clicks you don't make will pay for the learning curve on the first attempt.
Pair it: current fleet → Compute Optimizer recommendations → bulk-price both → the delta is your FinOps pitch.