How to use the ROSA Fleet Optimizer
Use the collapsible sections on the left to enter fleet details and get a live cost estimate. Click the ? beside any field for a tooltip. Values update the summary cards, chart, and breakdown table as you type. Pre-filled defaults are a starting example; replace them with your fleet.
Fleet Configuration
Count your clusters by type:
- Classic, Single-AZ: Classic ROSA clusters deployed into one availability zone. Each carries ~$1,300/mo of control-plane and infra node overhead on-demand (3 CP + 2 Infra nodes).
- Classic, Multi-AZ: Classic clusters spread across 3 AZs. Overhead is ~$1,540/mo (3 CP + 3 Infra nodes). Most production clusters are multi-AZ.
- HCP clusters (already migrated): Clusters already on Hosted Control Planes. These have no CP/Infra nodes; instead a flat $182.50/mo cluster fee. Enter only clusters that are already on HCP; use the Classic → HCP Migration lever to model a future migration.
ocm list clusters. The cluster type (Classic vs HCP) is shown in the Type column.Workload: vCPU by Profile
Enter your total worker vCPUs. Do not include control plane or infra nodes, which are captured in the overhead above.
- General Purpose (M-family): m5, m6i, m7i instances. Good for mixed or web workloads. Default rate: $0.048/vCPU·hr (us-east-1 on-demand).
- Memory Optimized (R-family): r5, r5a, r6i, r7i instances. In-memory databases, caching, analytics. Default rate: $0.063/vCPU·hr.
- Compute Optimized (C-family): c5, c6i, c7i instances (Graviton: c7g). CPU-bound workloads, batch processing. Default rate: $0.043/vCPU·hr.
- Burst vCPUs: Autoscaling headroom: the difference between max and min replica counts across machine pools. Pick a profile (General, Memory, or Compute) for the burst pool rate. If you don't use autoscaling, set this to 0.
Burst utilization (shown when burst vCPUs > 0) is the average share of the month that burst capacity is actually running. Default is 20%. Autoscale headroom is rarely at max vCPU count around the clock.
- From metrics: For each autoscaled machine pool, compare average node count to minimum and maximum over 30 days. Utilization ≈ (average − minimum) ÷ (maximum − minimum), expressed as a percentage. Weight by vCPU if pools differ in instance size.
- From max replica settings: Sum (max − min) vCPU across pools for burst headroom. Compare to time-series data or billing reports showing how often you approach max.
- Quick guesstimate: Daily peak-only traffic (e.g. business hours) is often 15–25%. Weekly batch spikes might be 5–10%. Sustained seasonal scale-out can be 40%+.
Avg vCPUs per node is used only to estimate node count for EBS storage. Match it to your dominant instance size: 8 vCPU for r5a.2xlarge or m5.2xlarge, 16 for r5a.4xlarge, etc.
Current Pricing
ROSA Contract is your Red Hat subscription tier. This determines the per-4-vCPU block monthly fee:
- PAYGO: $125/block/mo (no commitment)
- 1-Year: $83.33/block/mo (annual subscription)
- 3-Year: $55.58/block/mo (3-year subscription)
Check your contract in console.redhat.com → Subscriptions or ask your Red Hat account team.
AWS EC2 Discount is your effective discount off on-demand EC2 pricing for steady-state worker nodes and Classic CP/Infra overhead. Set this to reflect however you're buying EC2:
- 0% (fully on-demand / PAYGO)
- ~40% (equivalent to 1-year EC2 reserved instances)
- ~60% (equivalent to 3-year EC2 reserved instances)
- Custom % (your Enterprise Discount Program (EDP) or negotiated private pricing)
Sync with contract (on by default) sets the EC2 discount from your ROSA contract selection (0%, 40%, or 60%). Turn it off to set a custom discount independently.
Apply AWS EC2 discount to burst appears below the EC2 discount slider when burst vCPUs > 0. It is off by default. Autoscaled burst nodes are often on-demand and may not inherit the same reserved instance, Savings Plan, or EDP coverage as steady workers. Enable only when your burst EC2 usage receives the same discount as base capacity. This option is disabled when Spot for burst is enabled (Spot uses a fixed 0.30× on-demand multiplier instead).
Optimization Levers
Karpenter and ARM Graviton require at least one HCP cluster or Classic → HCP Migration enabled (modeling HCP-only fleets counts too).
- Classic → HCP Migration: Models moving all Classic clusters to Hosted Control Planes. Eliminates CP/Infra EC2 overhead per cluster and replaces it with the $182.50/mo HCP cluster fee, typically saving $900-$1,300/cluster/month depending on region.
- Karpenter (requires HCP): Available on ROSA HCP 4.22+. Reduces required node count ~10% through better bin-packing vs the Classic cluster-autoscaler. Applies to steady and burst vCPU counts.
- Spot for burst: Models autoscale headroom on Spot instances (0.30× on-demand EC2, ~70% off). Requires Karpenter and burst vCPUs > 0. Enable when burst pools tolerate Spot interruption. Overrides the burst EC2 discount checkbox.
- ARM Graviton Target: Percentage of General, Memory, and Compute worker vCPUs to migrate to Graviton (m7g / r7g / c7g). Uses an E=1.25 performance multiplier, meaning 100 x86 vCPUs can be replaced by 80 ARM vCPUs for equivalent throughput. Graviton rates: General and Compute ~15% lower, Memory ~20% lower $/vCPU vs x86. Requires HCP.
Summary Cards
Three cards at the top compare scenarios. Amounts are planning estimates in USD, not a formal quote.
- Baseline: A saved snapshot of fleet, pricing, and levers. After you finish configuring your current fleet, click Set current as baseline to capture “where we are now” before modeling changes.
- Current estimate: Live total from your current settings.
- Monthly Savings / Increase: Difference between baseline and current (positive savings when current is lower).
Reading the Chart
The chart compares your saved Baseline against the Configured scenario (current settings). Each stacked bar shows ROSA worker fee, EC2+EBS, and overhead. The baseline bar uses muted colours; configured uses full colour.
Use the Monthly / Yearly toggle to switch between monthly run rate and annual run rate (monthly × 12). Re-baseline after a migration or contract change to update the reference bar.
Reading the Breakdown Table
The breakdown reflects your current configuration (live settings, including levers). The Detail column shows the formula used; you can verify any line against your own rates.
- Rows for profiles with 0 vCPU are dimmed but still visible.
- The 50% ARM badge on General, Memory, Compute, or Burst rows means that percentage of those vCPUs will run on Graviton, with the E=1.25 multiplier applied to node count.
- The Spot badge on Burst means Spot for burst is enabled.
- Burst EC2 cost scales by utilization % (not 730 hr/mo at full headroom). ROSA worker fees for burst use utilization-adjusted vCPU as well.
- Classic CP/Infra overhead uses the same EC2 discount multiplier as worker nodes.
Sharing Results
Click the red Share button next to Set current as baseline to open the share dialog. It saves your current fleet, pricing, levers, and baseline snapshot in a compact string so others can reopen the same comparison.
- Copy link: Full URL with the config embedded after
#s=. Send in chat, email, or a ticket. Opening the link loads the scenario automatically. - Copy code: Just the config string, without the URL. Useful when a link is too long for your tool.
- Load shared config: In the share dialog, paste a link or code string from someone else and click Load. You can also paste a share link directly into the browser address bar.
Share this scenario
Copy a link or code string to share your fleet settings, levers, and baseline with a colleague. Anyone who opens the link sees the same comparison.
Share link or code
Load shared config
Paste a share link or code string from someone else:
Planning estimates in USD only. Not a formal quote or billing guarantee.
Compare your saved baseline against the current configuration. Heights show {{ chartPeriod === 'monthly' ? 'monthly' : 'annual' }} run rate.
| Component | Detail | Monthly | Annual | |
|---|---|---|---|---|
| ROSA Worker Fee | {{ fleet.totalRosaVCPU }} vCPU × {{ rosaRateLabel }}/4-block | ${{ fmt(fleet.rosaFee) }} | ${{ fmtK(fleet.rosaFee * 12) }} | |
| EC2, General Purpose {{ cfg.armPct }}% ARM | {{ fleet.genVCPU }} vCPU @ blended rate | {{ fleet.genVCPU }} vCPU × ${{ cfg.rateGeneral.toFixed(3) }} × {{ ec2MultLabel }} | ${{ fmt(fleet.genEC2) }} | ${{ fmtK(fleet.genEC2 * 12) }} |
| EC2, Memory Optimized {{ cfg.armPct }}% ARM | {{ fleet.memVCPU }} vCPU @ blended rate | ${{ fmt(fleet.memEC2) }} | ${{ fmtK(fleet.memEC2 * 12) }} | |
| EC2, Compute Optimized {{ cfg.armPct }}% ARM | {{ fleet.cmpVCPU }} vCPU @ blended rate | {{ fleet.cmpVCPU }} vCPU × ${{ cfg.rateCompute.toFixed(3) }} × {{ ec2MultLabel }} | ${{ fmt(fleet.cmpEC2) }} | ${{ fmtK(fleet.cmpEC2 * 12) }} |
| EC2, Burst {{ cfg.armPct }}% ARM Spot | {{ fleet.burstVCPU }} vCPU @ blended rate × {{ burstMultLabel }} × {{ cfg.burstUsagePct }}% uptime | {{ fleet.burstVCPU }} vCPU × {{ burstRateLabel }} × {{ burstMultLabel }} × {{ cfg.burstUsagePct }}% uptime | ${{ fmt(fleet.burstEC2) }} | ${{ fmtK(fleet.burstEC2 * 12) }} |
| EBS Storage | {{ fleet.totalNodes }} nodes × $24/mo (300 GB gp3) | ${{ fmt(fleet.ebs) }} | ${{ fmtK(fleet.ebs * 12) }} | |
| Classic CP / Infra | {{ fleet.classicClusterCount }} clusters × ~${{ fmt(fleet.classicOHPerCluster) }}/cluster × {{ ec2MultLabel }} | ${{ fmt(fleet.classicOH) }} | ${{ fmtK(fleet.classicOH * 12) }} | |
| HCP Cluster Fees | {{ fleet.hcpClusterCount }} clusters × {{ hcpFeeLabel }}/mo | ${{ fmt(fleet.hcpFees) }} | ${{ fmtK(fleet.hcpFees * 12) }} | |
| Total | {{ fleet.totalVCPU }} steady vCPU + {{ fleet.burstVCPU }} burst @ {{ cfg.burstUsagePct }}% | ${{ fmt(fleet.total) }} | ${{ fmtK(fleet.total * 12) }} |
The purpose of this document is to give you an indicative and non-binding pricing calculations for Cloud Services in order to enable you to build your requirements and your budget. This document does not and is not intended to contractually bind Red Hat, Inc. and its affiliates to the pricing or information to be included in the contract between you and the authorised partner of Red Hat which shall be separately agreed between you and the authorised partner of Red Hat and its affiliates. Red Hat and its affiliates do not make any representation or warranty, express or implied, as to the accuracy or completeness of this document. Red Hat and its affiliates shall not have any liability to any party that relies or uses this document or for any claims or liabilities due to any errors or omissions that resulted from this document. No party may rely on this document as creating any legal obligation of any kind on Red Hat and its affiliates.