Tracking AWS Cloud Spend
Using Fuzzball in the cloud incurs costs in several ways.
Cloud providers charge for the resources needed to run Fuzzball Orchestrate/Federate. These costs are fairly minimal since a combined Orchestrate and Federate installation only requires 8 CPUs and 32 GBs memory. An AWS Fuzzball Orchestrate installation also requires services such as RDS, EFS, S3, EKS, etc.
The most substantial cost associated with a cloud instance of Fuzzball is incurred by the cloud provider billing for the compute that runs users’ workflows. These costs are more variable and can be substantial depending on the workflow(s). Administrators are advised to carefully consider potential costs when configuring resource definitions and storage classes to avoid unanticipated bills. For reference, see this EC2 pricing guide.
Fuzzball includes GPU costs in cloud provisioner price estimates. How the GPU cost is obtained depends on the backend:
- AWS: Instance prices (including GPU instance types) come from the AWS Price List for the deployment region and are refreshed periodically. If the price list is temporarily unreachable, the most recently cached prices are used.
- GCP: Per-GPU rates are retrieved live from the Cloud Billing API when available. When the API does not return a rate for a GPU family, a built-in default of $3.00/GPU/hr is used.
- Azure: VM prices come from the Azure Retail Prices API. When the API has no price for a VM size, built-in fallback rates (including $3.00/GPU/hr) are used.
- OCI: The OCI pricing API does not publish per-GPU rates, so GPU cost estimates always use a
fallback per-GPU hourly rate. The built-in default is $3.00/GPU/hr; administrators who manage the
orchestrator configuration directly can override it with the
defaultGPUHourlyRatesetting in the OCI provisioner backend configuration. See the OCI Provisioner Specifications for details.
Fuzzball itself is also a paid service. Specifically, usage of the following Fuzzball components is metered per minute.
Orchestrate: This is the main component of Fuzzball that hosts the API and web interfaces, accepts and parses Fuzzfiles, and orchestrates workflows. It is expected to be a long-running service.
Substrate: This component runs on compute nodes. It is the container runtime used by Fuzzball. Because Fuzzball spins cloud resources up and down for the duration of jobs within a workflow, you will only be charged for this service while jobs are running.
Substrate (GPU): There is a special variant of Fuzzball Substrate that runs on resources containing GPUs. This version of substrate is billed at a different rate. Like the CPU-only version of Substrate, the GPU-enabled variant only runs for the duration of a job.
The cloud-provider bill above tells you the total spent. To attribute spend to
specific workflows, jobs, users, or groups, Fuzzball maintains its own
per-workflow charge ledger and exposes it through the fuzzball report
subcommands. See Per-Workflow Charges
for the CLI surface, the billing categories, and the egress classification model.
The Fuzzball system installs its own meters that track the usage of each billed service rounded up to the nearest whole minute. These report data to the AWS marketplace hourly. You can view charges for Fuzzball in the AWS console by selecting “Billing and Cost Management”.

Once there, select “Bills” and filter “Charges by service” on the keyword “Fuzzball”.
