This article outlines what operations in Terra have a cloud cost and how you will pay for Azure cloud charges using a linked Azure subscription. It explains how Terra and Azure billing are related (i.e., Terra Billing projects act as pass-throughs to cover cloud costs of your work in Terra), how cloud costs grow as you scale your work in Terra, and how Azure calculates and bills Terra users for charges (broadly).
What has a cost (Azure Cloud fee) in Terra
The Terra platform itself is a cloud-native system that does not charge administration or support fees. You pay only for the resources you use, including infrastructure costs for resources needed to power your group's Terra environment and cloud costs associated with operations in Terra.
Cloud costs passed through via a Terra Billing project
|Your organization’s isolated resources that power workspaces
|Starts to accrue when you create a Terra Billing project. This cost starts at $10-15/day depending on the region you select. This base cost increases when more workspaces are created.
|Workspace file storage
(blob storage container)
|Accrues when you add files to your workspace storage. Cost based on usage (see Azure blob storage pricing).
(compute and disk)
|Running interactive analysis (JupyterLab)
|Accrues when you create an interactive Cloud Environment and the VM is running. Note that the attached persistent disk also has a cost as long as the cloud environment exists. Cost based on usage (see Azure Cloud compute and Azure Cloud disk rates).
|Accrues when a workflow is running (see Azure Cloud compute and Azure Cloud disk rates).
|Copying data from other cloud vendors (Google or AWS) or from other regions within Azure
|Cost based on usage (see Azure Cloud bandwidth pricing).
Terra passes along Azure cloud charges with no markup (the links above will take you directly to the Azure pricing pages).
How you are billed for work in Terra on Azure
There are two categories of cloud costs in Terra on Azure.
- Infrastructure costs (power your Terra Environment and all workspaces)
- Working costs (cloud resources you use for data storage, egress, and analysis)
Infrastructure Costs: Your Terra Environment and its workspaces
When your organization creates a Terra Billing project, it launches a private Terra Environment that is controlled by you. The Terra Environment is an isolated set of resources shared with only individuals within your organization that power all actions your group takes in Terra.
The Terra Environment cost includes
- A database server used by workspace data tables and Cromwell engines
- Services that enable logging for troubleshooting
- A storage account used by all workspace storage containers
- Scalable resources that power Workspaces and their services
- Networking services
A limited set of resources is first spun up, which kicks off a daily “base cost” - currently$10-15/day depending on the region you select.The starting base infrastructure can accommodate at least one workspace. When you create more workspaces, you may trigger a scale event, which currently adds an additional $5 day.
How infrastructure costs scale
Infrastructure resources are deployed in tiers, with each tier having a greater cost.
Workspaces in a tier
Each tier of resources can accommodate a greater number of "smaller" workspaces (with fewer services running) - or fewer "larger" workspaces (with many services running) before resources automatically scale up.
Cost increases with
- Number of workspaces
- Number of services running in a workspace (data tables, workflow management, workflow engines)
The base cost increases as more workspaces are added
The number of workspaces created before a scale event is triggered (increase in the base cost) varies by how many services and engines are running within each workspace.
How to reduce your base cost
- Use fewer workspaces
- Delete unnecessary workspaces (deleting workspace services requires deleting the workspace)
- Don’t turn on the Workflow Service in a workspace unless you plan to use it.
Terra does not limit how often resources scale, so a research group should monitor how many workspaces they are using.
The base cost for your Terra Environment continues to accrue as long as you have a Terra Billing projectDeleting the Terra Billing project is the only way to eliminate the base infrastructure cost, but this will also delete everything you have done in Terra.
To delete a Terra Billing Project
You must delete all workspaces listed under a Billing Project before you can delete the Billing Project and its associated Terra Environment.
From the Billing page, click the trash can icon to the right of the Billing project. Note that you must be an owner to delete the Billing Project, so it will be listed under the Owned by You section at the left.
Working costs: Data storage and egress, and compute costs
You pay for cloud resources consumed in a workspace, such as data storage (unstructured and tabular data), analysis (i.e., virtual machines - or VMs - compute and disk), and egress (copying between cloud providers or between regions within a single cloud provider).
Paying for working costs
Every workspace is assigned to a Terra Billing project when it’s created. Thus, to create a workspace in Terra, you need access to a Terra Billing project (see How to set up billing in Terra on Azure (admins) for step-by-step instructions). When you create or clone (copy) a workspace, all workspace costs are then covered by the billing project.
Workspace permissions determine who can accrue cost in the workspaceAll operations in the workspace - regardless of who does the work - will be funded by the Azure subscription via the Terra Billing project. If you give a colleague writer permission on your workspace, they can run an analysis or add data to workspace cloud storage.
For this reason, you will want to be careful when sharing a workspace, as any colleague with writer permission can accrue cloud costs in the workspace.
You can think of paying for work in Terra much like paying for electricity in your house: the owner (or whoever's name is on the electric bill) is responsible for all the electricity used, not who uses it. As with your electric bill, it's not even possible in Terra to directly identify who is responsible for the cloud charges.
Colleagues who are not on your Terra Billing project can work in Terra!This is because work is paid for through the workspace Billing project. You can work in someone else's workspace if it's been shared with you (and you have the right permissions).
For example, colleagues with workspace writer permission can run workflows and interactive analyses (Galaxy, Jupyter, and RStudio). Resource costs are covered by the umbrella Azure subscription, no matter who does the work (so you will want to be careful when sharing workspaces). For more about workspace roles, see Sharing data and tools (workspace permissions).
How working costs scale
- Amount of data stored in workspace blob storage
- Analysis (compute time for running workflows and cloud environment VMs)
- Egress (when you download data to your local environment or move data across cloud vendors or between regions within a single vendor)
How to reduce your working costs
- Delete unnecessary files (such as workflow intermediate files) from your workspace cloud storage.
- Delete unnecessary Notebook Cloud Environments and their persistent disks
- Limit egressing data
Cost monitoring (Terra on Azure)
Terra Billing project spend reporting
Billing project owners can see the total spend, total compute, and total storage costs for their billing projects on the Billing page (https://app.terra.bio/#billing).
From this page, Billing Project Owners and Maintainers who also have permission to view the Azure subscription can click View project resources in Azure Portal to get more detailed and exact costs as reported by Azure. We suggest that workspace users reach out to their Terra Billing Project’s owner or maintainer to collaborate on monitoring costs.
Terra estimates the costs of running JupyterLab in a workspace cloud environment (see screenshots below). Note that these are estimates only of the costs of the VM compute (billed by the hour) and Persistent Disk disk (billed by the month).
In the environment details pane
Clicking on the cloud logo in the right sidebar will reveal the JupyterLab Environment Details pane with VM and disk cost estimates.
In the sidebar
Hover over the JupyterLab logo in the right sidebar to see the VM compute and disk cost estimates.
These cost estimates are also available on the Cloud environments page (app.terra.bio/#clusters).
The VM compute cost (per hour) is indicated with an arrow at the top (screenshot below). The disk cost (per month) is at the bottom.
Azure cost reporting
Currently, only those with access to the subscription in the Azure portal can monitor detailed and exact costs as reported by Azure. Cost reports are based on the application deployed within the subscription.
For more details, see the Microsoft documentation Get started in cost analysis.