Snowpark Container Services costs¶
The costs associated with using Snowpark Container Services can be categorized into storage cost, compute pool cost, and data transfer cost.
Storage cost¶
When you use Snowpark Container Services, storage costs associated with Snowflake, including the cost of Snowflake stage usage or database table storage, apply. For more information, see Exploring storage cost. In addition, the following cost considerations apply:
Image repository storage cost: The implementation of the image repository uses a Snowflake stage. Therefore, the associated cost for using the Snowflake stage applies.
Log storage cost: When you store local container logs in event tables, event table storage costs apply.
Mounting volumes cost:
When you mount a Snowflake stage as a volume, the cost of using the Snowflake stage applies.
When you mount storage from the compute pool node as a volume, it appears as local storage in the container. But there is no additional cost because the local storage cost is covered by the cost of the compute pool node.
Block storage cost: When you create a service that uses block storage, you are billed for block storage and snapshot storage. For more information about storage pricing, see the CreditConsumptionTable.pdf file. The SPCS Block Storage Pricing table in this document provides the information.
Compute pool cost¶
A compute pool is a collection of one or more virtual machine (VM) nodes on which Snowflake runs your Snowpark Container Services jobs and services. The number and type (instance family) of the nodes in the compute pool (see CREATE COMPUTE POOL) determine the credits it consumes and thus the cost you pay.
You incur charges for a compute pool in the IDLE, ACTIVE, STOPPING, or RESIZING state, but not when it is in a STARTING or SUSPENDED state. To optimize compute pool expenses, you should leverage the AUTO_SUSPEND feature (see CREATE COMPUTE POOL). For more information, see the CreditConsumptionTable.pdf file.
The following views provide usage information:
ACCOUNT_USAGE views
The following ACCOUNT_USAGE views contain Snowpark Container Services credit usage information:
The SNOWPARK_CONTAINER_SERVICES_HISTORY view offers credit usage information (hourly consumption) exclusively for Snowpark Container Services.
In the METERING_DAILY_HISTORY view, query for rows in which the
service_type
column contains the valueSNOWPARK_CONTAINER_SERVICES
.In the METERING_HISTORY view, query for rows in which the
service_type
column contains the valueSNOWPARK_CONTAINER_SERVICES
.
ORGANIZATION_USAGE views
In the METERING_DAILY_HISTORY view, use the
SERVICE_TYPE = SNOWPARK_CONTAINER_SERVICES
query filter.
Data transfer cost¶
Data transfer is the process of moving data into (ingress) and out of (egress) Snowflake. For more information, see Understanding data transfer cost. When you use Snowpark Container Services, the following additional cost considerations apply:
Outbound data transfer: Snowflake applies the same data transfer rate for outbound data transfers from services and jobs to other cloud regions and to the internet, consistent with the rate for all Snowflake outbound data transfers. For more information, see the CreditConsumptionTable.pdf file (table 4a).
You can query the DATA_TRANSFER_HISTORY ACCOUNT_USAGE view for usage information. The
transfer_type
column identifies this cost as theSNOWPARK_CONTAINER_SERVICES
type.Internal data transfer: This class of data transfer refers to data movements across compute entities within Snowflake, such as between two compute pools or a compute pool and a warehouse, that resulted from executing a service function. For more information, see the CreditConsumptionTable.pdf file (tables 4(a) for AWS, 4(b) for Azure, and the column titled “SPCS Data Transfer to Same Cloud Provider, Same Region”).
To view the costs associated with internal data transfer, you can do the following:
Query the INTERNAL_DATA_TRANSFER_HISTORY view in the ACCOUNT_USAGE schema.
Query the DATA_TRANSFER_HISTORY view in the ACCOUNT_USAGE schema. The
transfer_type
column identifies this cost as theINTERNAL
type.Query the DATA_TRANSFER_HISTORY view in the ORGANIZATION_USAGE schema. The
transfer_type
column identifies this cost as theINTERNAL
type.Query the DATA_TRANSFER_DAILY_HISTORY view in the ORGANIZATION_USAGE schema. The
service_type
column identifies this cost as theINTERNAL_DATA_TRANSFER
type.Query the RATE_SHEET_DAILY view in the ORGANIZATION USAGE schema. The
service_type
column identifies this cost as theINTERNAL_DATA_TRANSFER
type.Query the USAGE_IN_CURRENCY_DAILY view in the ORGANIZATION USAGE schema. The
service_type
column identifies this cost as theINTERNAL_DATA_TRANSFER
type.