Findings

Optimization checks CloudOpt runs on your cloud data.

CloudOpt runs a fixed set of checks on collected data. Failed checks appear as findings; passed checks produce no output.

Inventory checks need collect … inventory. Rightsizing and utilization checks also need collect … metrics. Pricing loads during analyze.

Provider-specific checks run when required data and capabilities are present. Skipped checks go to the report appendix with a reason.

Compute

Stopped instance with ongoing charges

Severity: medium | Requires: inventory, cost | Providers: AWS, GCP

Compute instances in stopped state that still bill for storage or other attached resources.

Terminate if the instance is done, or delete unused volumes after you confirm nothing important remains on disk.

EC2 downsize candidate

Severity: medium | Requires: metrics, pricing | Providers: AWS

EC2 instances with p95 CPU below 25% over the observation window.

Check memory and disk I/O, then resize during a maintenance window.

GCE downsize candidate

Severity: medium | Requires: metrics, pricing | Providers: GCP

Compute Engine instances with p95 CPU below 25% over the observation window.

Validate memory, disk, and licensing constraints before changing machine type. Custom machine types and shared-core instances have additional filtering.

Persistently idle EC2 instance

Severity: medium | Requires: metrics, pricing | Providers: AWS

Instances with multiple consecutive idle periods (near-zero utilization).

Confirm the workload is retired, then stop or terminate and release unused Elastic IPs.

Storage

Unattached block volume

Severity: medium | Requires: inventory | Providers: AWS, GCP

Block volumes (EBS or persistent disks) with no active attachment.

Snapshot if you need a backup, then delete the volume.

Stale volume snapshot

Severity: low | Requires: inventory | Providers: AWS, GCP

Volume snapshots older than 90 days.

Confirm retention policy, then delete snapshots you no longer need.

EBS gp2 to gp3 optimization

Severity: low | Requires: inventory, pricing | Providers: AWS

gp2 volumes where gp3 would cost less at equivalent IOPS/throughput.

Modify volume type after you confirm baseline performance needs.

GCP pd-standard to pd-balanced optimization

Severity: low | Requires: inventory, pricing | Providers: GCP

pd-standard disks where pd-balanced would cost less at equivalent performance.

Migrate attached disks after confirming IO requirements.

Database

RDS downsize candidate

Severity: medium | Requires: metrics, pricing | Providers: AWS

RDS instances with low CPU utilization relative to instance class.

Check memory and connection limits, then modify instance class in a maintenance window. Sparse metrics mark the finding investigation-only.

Cloud SQL downsize candidate

Severity: medium | Requires: metrics, pricing | Providers: GCP

Cloud SQL instances with low CPU utilization relative to tier.

Validate connections and memory, then reduce tier during maintenance. Sparse metrics mark the finding investigation-only.

Network

Low-utilization NAT gateway

Severity: low | Requires: metrics, pricing | Providers: AWS

NAT gateways with minimal outbound traffic.

Look at VPC endpoints or consolidated egress before changing topology. Often investigation-only.

Low-utilization Cloud NAT gateway

Severity: low | Requires: metrics, pricing | Providers: GCP

Cloud NAT gateways with minimal outbound traffic.

Review VPC Service Controls and Private Google Access before changing topology. Often investigation-only.

Idle GCP external IP address

Severity: low | Requires: inventory | Providers: GCP

Static external IP addresses not attached to active resources.

Release unused IPs or attach them to active resources.

Billing

Committed use discount coverage opportunity

Severity: low | Requires: cost | Providers: GCP

Eligible compute spend that could benefit from committed use discounts.

Model 1- or 3-year commitments only after stabilizing baseline usage. Marked investigation-only because commitments reduce flexibility.

Governance

Missing cost allocation tags

Severity: low | Requires: inventory | Providers: AWS, GCP

Resources with spend but missing Owner or CostCenter tags (or your org equivalents).

Apply the tags your finance team expects.

Running a subset of checks

All checks:

cloudopt analyze

One category:

cloudopt analyze --category compute,storage

Specific rule IDs:

cloudopt analyze --rules compute.ec2_downsize_candidate,storage.unattached_block_volume

Missing data

If a check lacks required signals, it lands in the appendix as not evaluated. Collect the missing data and run analyze again. Coverage scores in the report show how complete your data is.