Azure Cosmos DB supports several storage models and various ways to access the stored data, this brings us to the question, how do the customers get billed for using Cosmos DB? The answer is customers are billed based on Request Units (RUs) they consume.
RUs are an abstraction of system resources (compute, memory, IO). 1 RU is the cost to read 1 KB item in Cosmos DB.
Since, performance depends on the throughput, the billing unit is, number of RUs consumed per second. Cosmos DB has recommended standards for RUs that must be configured to meet the performance SLAs. e.g. a minimum of 10 RUs/s must be provisioned to store each 1 GB of data.
Azure Cosmos DB provides ways to examine the number of RUs consumed by each database operation. This enables the users to optimize data access and querying for cost savings or performance depending on their requirements.
RUs can be scaled up or down in units of 100 RUs per second. This can be done either programmatically using Azure CLI or through the Azure portal.
RUs can be provisioned for the whole database or at the container level within the database. RU throughput can be dedicated to one container or can be shared across multiple containers.