How to inventory everything running in your cloud account
This guide is for non-experts who need a practical inventory of servers, databases, storage, networking, and scheduled jobs in a cloud account. You will finish with a spreadsheet or CSV-backed list of running resources you can review for cost, security, and cleanup.
TL;DR — To get a list of everything running in your cloud account, start in your provider's dashboard and export each major resource page: compute (virtual machines), databases, storage, load balancers, networking, containers, and scheduled jobs. If your provider supports a command-line interface (CLI, a tool you run from Terminal/PowerShell), use the resource-list command to export a single CSV or JSON file for a faster, more complete inventory. Reading time: ~5 min
Goal
When you finish, you will have a current inventory of the resources running in your cloud account: what exists, where it runs, and whether it is active. You should be able to hand this list to your team, compare it to your bill, and spot anything unexpected.
Prerequisites
- Your cloud provider login
- Access level: billing viewer, read-only, or administrator; if you cannot see resource lists, ask your account owner for read-only access
- A spreadsheet app such as Excel, Google Sheets, or Numbers
- Optional: your provider's CLI installed if you want a one-file export
- Optional CLI check commands, depending on your system:
aws --version
az version
gcloud version
- Your account ID, subscription name, or project name if your provider uses more than one scope
- A place to save exports, for example a folder named
cloud-inventory-2026-10
Steps
Step 1: Open the provider dashboard and set the correct account or project
Go to your provider's dashboard, then switch to the exact account, subscription, organization, or project you want to inspect.
Typical menu path in your provider's dashboard: Account switcher/Profile menu → Select account/project/subscription
What you should see when this succeeds: the dashboard header shows the correct account or project name, and the billing/cost page matches the environment you expect.
Step 2: Export the compute list
Open the page that lists virtual machines (VMs, rented servers in the cloud), instances, or app services.
Typical menu path in your provider's dashboard: Dashboard → Compute/Instances/Virtual Machines
If there is an export button, click Export → CSV. If there is no export button, copy these columns into a spreadsheet manually:
- Name
- Status
- Region
- Public IP
- Private IP
- Size/type
- Tags/labels
- Created date
What you should see when this succeeds: a CSV download starts, or you have a sheet tab with every server-like resource listed.
Step 3: Export databases, storage, and load balancers
Repeat the same export process for the next three categories.
Typical menu paths in your provider's dashboard:
Dashboard → Databases/Managed DatabasesDashboard → Storage/Buckets/Blob Storage/VolumesDashboard → Networking → Load Balancers/Application Gateways
Use Export → CSV on each page if available. If not, record these columns manually:
- Name
- Engine/type
- Status
- Region
- Public endpoint or URL
- Attached network or VPC/VNet (private cloud network)
- Tags/labels
What you should see when this succeeds: you now have separate exports or spreadsheet tabs for databases, storage, and traffic-routing resources.
Step 4: Export networking and security resources
Open the pages for networks, public IPs, firewalls/security groups, and DNS zones.
Typical menu paths in your provider's dashboard:
Dashboard → Networking → Networks/VPC/VNetDashboard → Networking → Public IPs/Elastic IPsDashboard → Networking → Firewalls/Security GroupsDashboard → Networking → DNS/Zones
Record or export these fields:
- Name
- Region
- Attached resource
- Public IP or CIDR (IP range)
- Status
- Rules count for firewalls/security groups
What you should see when this succeeds: you can match public-facing IPs and DNS names to the services using them.
Step 5: Export containers, serverless, and scheduled jobs
If you use modern app platforms, also check container clusters, serverless functions, and schedulers/cron jobs (timed tasks).
Typical menu paths in your provider's dashboard:
Dashboard → Containers/Kubernetes/ClustersDashboard → Functions/ServerlessDashboard → Scheduler/Cron/Jobs
Record or export these fields:
- Name
- Status
- Region
- Trigger type
- Last run time
- Public endpoint, if any
What you should see when this succeeds: your inventory includes resources that may not appear on the main server list but still cost money or expose services.
Step 6: If available, export everything with the provider CLI
If your provider offers a CLI, use it to get a broader list in one file. Use the command that matches your provider.
# AWS: all supported resources via Resource Groups Tagging API
aws resourcegroupstaggingapi get-resources --output json > aws-resources.json
# Azure: all resources in the current subscription
az resource list --output table
az resource list --output json > azure-resources.json
# Google Cloud: all resources in the current project
gcloud asset search-all-resources --scope="projects/PROJECT_ID" --format=json > gcp-resources.json
Replace PROJECT_ID with your real project ID.
What you should see when this succeeds: a JSON file appears in your current folder, or the terminal shows a long list of resources with names, types, and locations.
Step 7: Build one master inventory sheet
Create one spreadsheet with these columns and paste in each export.
Resource Name,Resource Type,Status,Region,Public Endpoint,Private Network,Owner Tag,Created Date,Notes
Use one row per resource. For Resource Type, use literal values such as:
vm
database
storage-bucket
block-volume
load-balancer
public-ip
firewall-rule
container-cluster
function
scheduled-job
dns-zone
What you should see when this succeeds: one spreadsheet shows all running resources in one place, and you can sort by region, type, or status.
Verify it works
Use these checks to confirm your inventory is complete enough to be useful:
-
Open your provider's billing or cost page.
- Typical menu path:
Dashboard → Billing/Cost Management - Compare billed services to your sheet. Every billed category should have matching rows in your inventory.
- Typical menu path:
-
Count public-facing resources.
- In your sheet, filter
Public EndpointorPublic IPto non-empty values. - The count should roughly match what you see under
Networking → Public IPsandLoad Balancers.
- In your sheet, filter
-
If you used CLI export, open the file and confirm it contains resource names and types.
# macOS/Linux
head -n 20 aws-resources.json
head -n 20 azure-resources.json
head -n 20 gcp-resources.json
# Windows PowerShell
Get-Content .\azure-resources.json -TotalCount 20
- Expected result: readable entries with names, resource types, and locations/regions.
- Spot-check one known app.
- Find a production app you know exists.
- Confirm your inventory includes its server or container, database, DNS name, and public entry point.
Common pitfalls
Looking only at servers
Mistake: you export only virtual machines and stop there.
Symptom: the bill shows databases, storage, or load balancers that are missing from your list.
Fix: also export Databases, Storage, Load Balancers, Public IPs, Functions, and Scheduled Jobs.
Being in the wrong account, project, or subscription
Mistake: you are logged in, but the dashboard is pointed at a different environment.
Symptom: the list looks too small, or production resources are missing.
Fix: use the account switcher first, then re-run the exports from the correct account/project/subscription.
Missing a region filter
Mistake: the resource page is filtered to one region.
Symptom: you only see resources from one city/region, even though you know you run in several.
Fix: change the region filter to All regions before exporting.
Ignoring stopped resources
Mistake: you only record items marked Running.
Symptom: your cleanup list misses stopped VMs, unattached disks, and idle public IPs that can still cost money.
Fix: export all statuses, then sort by Status in your spreadsheet.
Assuming the dashboard is the full truth
Mistake: you trust one UI page and skip the CLI or billing cross-check.
Symptom: hidden resources such as snapshots, scheduled jobs, or old public IPs are absent.
Fix: compare dashboard exports to the billing page, and run the provider CLI export if available.
Forgetting shared or linked services
Mistake: you inventory only the app account and skip shared DNS, backups, or networking in another account.
Symptom: your application works, but key supporting resources are missing from the inventory.
Fix: repeat the same export process for every linked account, project, or subscription your team uses.
This article was written by an AI system and published pending human review. Verify anything you intend to act on.
Have a project in mind?
Get an instant AI price estimate for it, or talk directly to our team.
One email a month on what we learn building with AI