Google Cloud Run functions offer a flexible and cost-effective serverless solution for running your code in the cloud. This guide breaks down the pricing model for both first and second generation functions, helping you understand and optimize your costs.
First gen vs. second gen functions
Google Cloud Run functions come in two generations, each with its own pricing structure:
- First gen functions: The original offering, priced based on invocations, compute time, and networking.
- Second gen functions: Built on Cloud Run, offering more flexibility and features, with pricing based on vCPU, memory, and request count.
While Google recommends using second gen functions for new projects, both generations remain viable options. For a detailed comparison, see the Cloud Functions version comparison documentation.
First gen functions pricing
First gen functions are priced based on the following components:
- Compute Time: $0.0000100 per GHz-second
- Memory: $0.0000025 per GB-second
- Invocations: $0.40 per million
- Networking: $0.12 per GB of Internet data transfer out
The cost of the individual components are added together to get the total cost.
Google Cloud offers a generous free tier for first gen functions. For details on the free tier limits, refer to the official free tier documentation.
For more details, refer to the official first gen pricing documentation.
Understanding GHz-seconds and GB-seconds
For first gen functions, compute time is measured in GHz-seconds, while memory usage is measured in GB-seconds.
- GHz-seconds: The product of the CPU clock speed (in GHz) and the execution time (in seconds).
- GB-seconds: The product of the allocated memory (in GB) and the execution time (in seconds).
Examples:
- A 2.0 GHz CPU used for 1 second = 2 GHz-seconds
- A 2.4 GHz CPU used for 30 seconds = 72 GHz-seconds
- 256 MB (0.25 GB) of memory used for 1 second = 0.25 GB-seconds
- 1 GB of memory used for 30 seconds = 30 GB-seconds
Pricing example
Let’s say your first gen function runs for 200ms on a 2.4 GHz CPU with 256 MB (0.25 GB) of allocated memory:
- Compute Time: (2.4 GHz x 0.2 seconds) x ($0.0000100 / GHz-second) = $0.0000048
- Memory: (0.25 GB x 0.2 seconds) x ($0.0000025 / GB-second) = $0.000000125
- If this is the 2,000,001st invocation of the month, you’d also pay $0.0000004 for the invocation
Second gen functions pricing
Second gen functions are priced based on:
- vCPU usage: $0.00002400 per vCPU-second
- Memory usage: $0.0000025 per GB-second
- Invocations: $0.40 per million
- Networking: $0.12 per GB
Free tier
Google Cloud offers a generous free tier for second gen functions. For details on the free tier limits, refer to the official free tier documentation.
For more details, refer to the official second gen pricing documentation.
Resource allocation
With second gen functions, you can specify both CPU and memory:
- vCPU: Choose from 0.08 to 8 vCPUs
- Memory: Allocate from 128MB to 32GB
This granular control allows you to optimize performance and cost for your specific workloads.
Understanding vCPU-seconds
vCPU-second:
A vCPU (virtual CPU) is a unit of computing power in cloud environments. In Google Cloud Run functions, a vCPU typically represents a hardware hyper-thread, which is approximately equivalent to half of a physical CPU core. This means that 2 vCPUs would roughly correspond to one full physical CPU core. The exact performance can vary depending on the underlying hardware and workload characteristics. vCPUs allow for flexible resource allocation and can be easily scaled up or down based on workload requirements, with Cloud Run functions offering options from 0.08 to 8 vCPUs per instance.
A vCPU-second measures the amount of virtual CPU time consumed by your function. It’s calculated by multiplying the number of vCPUs allocated to your function by the execution time.
Examples:
- 1 vCPU used for 1 second = 1 vCPU-second
- 2 vCPUs used for 30 seconds = 60 vCPU-seconds
Pricing example
Let’s say your second gen function uses 1 vCPU and 2 GB of memory, and runs for 500ms:
- vCPU cost: 1 vCPU x 0.5 seconds x $0.00002400 per vCPU-second = $0.000012
- Memory cost: 2 GB x 0.5 seconds x $0.0000025 per GB-second = $0.0000025
- Invocation cost: $0.40 / 1,000,000 = $0.0000004
Total cost for this execution: $0.0000149
Note: Prices may vary by region. Always check the official Google Cloud pricing page for the most up-to-date information.