Billing on the platform is usage based. That means, you only pay for the resources that you actually use during the billing period (most commonly, a month). At the end of the billing period you will receive an invoice with resource usage details and cost of each resource, appropriate taxes (where applicable) and the total amount.
Note that project quota (limiting amount of resources that you can use simultaneously) is simply a safety measure; it is not used in billing. The goal of quota is to prevent scenarios of uncontrolled resources consumption - for example, a runaway script creating resources in endless cycle and not removing them. If default quota is not sufficient for your needs, you can request the support team to increase it. This operation has no impact on your monthly bill (however, increased resources consumption will most definitely increase it).
Resources cost is defined as "price per unit of the resource, per hour". Note that internally the usage collection is performed more frequently, so if you use specific resource less than an hour, you will be charged for the actual usage time and not for the full hour.
From the billing perspective, all resources may be split into three categories:
- Non-billable resources. Typically those are "configuration" items; like private networks or routers.
- Billable resources with its own billing. Those are "elementary particles" of the billing - each item there on the list has it's own cost, per item or per amount. Examples of such resources include instances (or strictly speaking, instance flavors, as price is defined per flavor) or floating IPs.
- Composite resources - these are the components that you build out of the "elementary particles". They don't have their own pricing; however, they are build out of other resources, and some of those resources are billable. For example, an auto-scaling stack is a composite resource: it is built using a load balancer, one or multiple instances, commonly a floating IP, a network, etc - or, from a billing perspective, a set of billable and non-billable resources. So when you build an auto-scaling group, you will not see this item in your monthly invoice; however, you will see some of the items that are used to build that auto-scaling group.
The following resources are non-billable:
- Networks - any networks, subnets, private IPs you create in your datacenter.
- Routers - a router used to connect different networks.
- Security groups.
- Key pairs you create or upload for ssh authentication.
- Inbound traffic - unlike outbound, the inbound (incoming) traffic is free of charge.
- And, pretty much anything else you don't see as billable resource, including "little" things like API calls you make.
The following resources are coming with their own per item or per quantity cost:
- Instances are billed per flavor, per hour, as long as the instances based on this flavor exists (with the exception of "shelved" status). Note that individual resources (RAM, vCPU, boot disk storage) are not billed separately and included in the flavor price. Also note that different operating systems may have different pricing (Windows instance costs more than Linux instance of identical size) - that's because Windows instances will be using a different (more expensive) flavor.
- Volumes are billed per GB, per hour. Different storage types, if configured (like SSD and HDD) are priced differently.
- Snapshots are billed per GB, per hour. All snapshots (instance snapshots and volume snapshots are billed identically, regardless of the original storage tiers. However, volume snapshots (unlike instance snapshots) are incremental, and may grow over time.
- Private images that you upload and store in your account are billed per GB, per hour. Platform images that are managed by the service provider are free.
- Floating IPs - the public IPs are billed per hour of usage, per IP address. Note that IP address billing is on from the moment the IP is allocated (reserved), till the moment it is released (returned to the provider's pool). A floating IP which is reserved but not attached to any instance is still going to be billed.
- Load balancers are billed per item, per hour, plus per GB of the egress traffic that goes through the load balancer.
- DNS records are billed per zone, per month, regardless of the number of records in that zone.
- Outbound network traffic is billed per GB during the month. Note that traffic pricing is typically tiered (which means, more you use, less (per GB) you pay.
- Object storage is billed per GB, averaged during the month (additionally to the egress traffic it produces on your behalf). Similarly to the traffic, the pricing is typically tiered - more you consume, less per GB you pay.
As we discussed earlier, many of the resources you use in the cloud are composed out of other resources. There is virtually unlimited number of combinations how these resources can be put together, to the list below is not comprehensive and provided for informative purposes only - so you can get a better sense how much the project you build may cost.
Here are the most common examples of the composite resources that you are likely to use:
VPN instance, as well as the other marketplace instances, is in fact a (free) application which is running on a (paid) flavor you use. It will also use some (paid) egress traffic.
Instance based on bootable volume will show in your invoice as two separate items - instance (flavor) and the volume of the size and type that you choose during the instance creation.
An auto-scale stack will show as a load balancer, one or multiple instance(s) depending on how it scales up and down during the usage, possibly traffic and any other resources (like object storage) that your application may use.