This article outlines what operations in Terra have a Google Cloud Platform (GCP) cost and how you will pay for GCP charges with a Terra Billing project. It also explains the billing structure (i.e., GCP and Terra), how GCP calculates and bills Terra users for charges, and how Terra Billing projects act as a pass-through to pay for the GCP costs of your work in Terra.
Terra costs (i.e., GCP fees)
The Terra platform itself is a cloud-native system that is free to use with a registered account. You pay only for the resources you use, such as GCP costs associated with operations in Terra.
|Data storage||Workspace Storage (Google bucket)||Created when you create a workspace|
|Cloud Environment persistent disk||
Detachable storage associated with the VM that runs Galaxy, Jupyter notebooks, or RStudio analysis. See GCP storage pricing.
See GCP compute pricing.
|Running analysis apps (Jupyter notebooks, Galaxy, and RStudio)|
|Egress||Accessing data in Requester Pays buckets||
See GCP egress pricing.
Terra passes along GCP charges with no markup (the links above will take you directly to the GCP pricing pages). See Understanding and controlling Cloud costs on Terra for more details and examples.
How you are billed for work in Terra (Terra/GCP billing structure)
Costs are calculated at the workspace level
All work in Terra is done in project workspaces, computational sandboxes where you can organize and access data and tools. It's similar to 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 to directly identify who is responsible for the charges.
Terra Billing projects connect workspaces and Cloud billing
Every workspace has an associated Terra Billing project you assign when you create the workspace. The Terra Billing project acts as a passthrough between Terra (the workspace) and GCP (Cloud Billing account) to pay the workspace costs.
A Google Cloud Billing account pays all GCP costs
Every Terra Billing project has an umbrella Google Cloud Billing account that pays for all workspace costs.
Terra's billing hierarchy.
Blue boxes are GCP components, and gray boxes are Terra components
To create a workspace in Terra, you need access to a Terra Billing project. See How to set up billing in Terra for step-by-step instructions. Once you have a Terra Billing project, you can create or clone (copy) a workspace. All operations in the workspace will be funded by the Cloud Billing account via the Terra Billing project.
You do not need to be a user on a Terra Billing project to work in Terra All work is paid through the Terra Billing project assigned to the workspace. You can work in someone else's workspace if it's been shared with you (and you have the right permissions). For example, can-compute permission allows you to run workflows and interactive analyses (Galaxy, Jupyter, and RStudio).
Workspace Billing project example
Here's an example of what you will see in Terra. The workspace depicted below stores data for the Analysis, Visualization, and Informatics Lab-Space (AnVIL). The GCP storage fees are paid by the Google Cloud Billing account associated with the Terra Billing project
What does access to billing allow?
Collaborators with billing access (to either a Terra Billing project or a Google Cloud billing account) can create resources and then use them. Note, however, It is workspace permissions, not billing permissions, that determine who can accrue costs.
Terra Billing project users can create their own workspaces
They are the workspace owner, by default. All workspace costs are paid via the Terra Billing project.
Cloud Billing account users can create their own Billing projects.
They are the Billing project owner by default, and can create workspaces with that Billing project. All costs for these workspaces are paid for by the umbrella Google Cloud Billing account.
How can billing owners control costs?
Owners of Cloud Billing accounts and Terra Billing projects control who can create Billing projects and workspaces (respectively) by assigning the appropriate permissions (see the chart below).
Note, however, that if collaborators have created their own Billing projects or workspaces, billing owners have less control. To learn more, see How to disable billing in Terra.
Can access cost breakdown
Can create Terra Billing projects (Terra UI)
Can create workspaces
Can store, egress and analyze data
Google Cloud Billing account admin/viewer/user
Depends on workspace role
Terra Billing project owner or user
Depends on workspace role
Collaborators with no billing can accrue costs
A colleague does not need to be included in a Terra Billing project or a Google Cloud Billing account to work in Terra. They only need to have the appropriate workspace permissions. Permissions that allow spend include:
- can-compute (can run analysis)
- writer (can copy data to workspace storage)
- reader (can egress data from workspace storage unless it is a Requester Pays bucket). Egress costs are borne by the workspace's Terra Billing project.
To learn more, see Managing shared resources (billing, data, and workspaces).
Note: Collaborators can accrue costs even after they're removed from billing
Anyone who creates a workspace is the owner by default, and can spend in the workspace they create. Thus, a collaborator on a shared Billing project can create a workspace where they can accrue data storage, analysis, and egress costs. These costs will be paid through the Terra Billing project, as long as it is active, even if the collaborator is later removed from the billing project.
To learn how to prevent a collaborator from accruing GCP costs, see How to disable billing in Terra.
Be mindful of how you share workspaces A workspace owner, writer, and even reader can accrue costs, even if they have no access to billing! If you share a workspace with someone as Writer or Owner they will be able to store data or run an analysis, even if they are not a user of the workspace Billing project.
Even workspace readers will be able to accrue costs (egress charge) by downloading data unless the workspace bucket is flagged as Requester Pays. Additionally, because costs are calculated at the workspace level, it is not possible to directly identify who is responsible for costs. For this reason, it is extremely important to be careful when sharing a workspace!
To learn more, see Understanding and controlling cloud costs on Terra.
Terra Billing projects versus Google Projects
Note that although both relate to billing, Terra Billing projects and Google projects are distinct and different entities (and the Google project is mostly behind the scenes). See more details below.
What is a Terra Billing project?
Terra Billing projects are internal to Terra. They connect workspaces (where costs accrue) and Cloud Billing accounts that ultimately pay for costs. When you create a workspace in Terra (gray boxes in the diagram below, bottom level), you assign a Terra Billing project (gray box second from the top) that acts as a passthrough for GCP costs.
What is a Google Project?
A Google project is a Google construct that organizes all your Google Cloud resources. For example, all of your Cloud Storage buckets and objects, along with user permissions for accessing them, reside in a project.
Terra automatically generates a Google project (blue boxes second from the bottom) that is unique to that workspace (analogous to the workspace bucket storage) that organizes and tracks all GCP resources used in the workspace. The workspace Google project is mostly behind the scenes (unless you access GCP console - e.g., to set up budget alerts or track spend in a GCP bill). This process works in only one direction. It is not possible to create a GCP project and move or assign it to a Terra workspace.
Workspace projects in GCP console
Billing account owners and viewers will see all the associated Terra-created Google projects in GCP console (choose Billing > Account management). The Google project that Terra creates will have the format
terra-#### (see below).
Billing permissions FAQs
What happens when owners remove a user from a Google Cloud Billing account?
A user who no longer has a role in a GCP Billing account can no longer create a Terra Billing project. Instead, they will get the following error message:
They will also not be able to see detailed cost breakdowns or reports in GCP console.
Note: Users can still charge costs to the Billing account they have just been removed from!
By creating workspaces under any Billing projects they created or where they are still users
By performing operations in any workspaces they created or that were shared with them
To learn how to prevent these charges, see Best practices for managing shared (funding) resources.
What happens when owners remove a user from a Terra Billing project?
When you remove a user from a Terra Billing project, they will no longer be able to create workspaces with that Billing project.
If they have been removed from all Terra Billing projects, they will get the following message when they try to clone or create a workspace:
Note: Users can still charge costs to the Billing project they have just been removed from!
By operating in any workspace that has been shared with them
By operating in any workspace they created when they were still a Billing project user
(as long as that Billing project is connected to a valid GCP Billing account)
To prevent this, Billing account owners will need to 1. disable billing on all Terra projects created by this user, and 2. remove them from any shared workspaces. To learn more, see Best practices for managing shared (funding) resources.
What happens when you remove a user from a workspace?
When a user is removed from a workspace (i.e., has no permission to view, compute or share the workspace), they will be unable to access the workspace. When they try to open the workspace, they will get a warning message, and they will no longer be able to accrue any costs by analyzing in the workspace. This takes effect immediately.
Can you link a Terra billing project and a Google project?
It is not possible to link an existing Google Project to a Terra workspace. Only Terra can create the workspace Google projects (which are mostly in the background and different from the Terra Billing project).
In some cases, GCP users can run into trouble when trying to integrate their Terra billing projects with GCP. It's useful to understand the following:
Terra will always create a GCP project when you create a workspace. You can see the workspace Google project in the Workspace Information (on the right column in the Dashboard).
If you are the Google Cloud Billing account owner, you will see the workspace projects in the GCP console here. The Google project that Terra creates **will have the format
Google Cloud Billing account owners can change the Cloud Billing account associated with a Terra Billing project in Terra. Go to the Billing page at https://app.terra.bio/#billing.
|Congratulations! You've completed the article on understanding Terra costs and billing!|
- Cloud costs and how to control them when working on Terra
- How much did my workflow cost?
- To learn more about estimating the cost of an interactive analysis - see Understanding and adjusting your Cloud Environment.