Virtual machines
Root on a machine, on the same network as everything else
For the work a managed runtime will not take: a daemon that has to stay resident, software that wants a kernel module, or a database you intend to run yourself. On the same private network as your services, in one bill.
$ keel vm create --size c2-4 --region eu-1 created vm-7f3a (c2-4, 4 vCPU, 8 GB) network attached to project private net key your-laptop $ keel vm ssh vm-7f3a root@vm-7f3a:~#
The instances
| Size | vCPU | Memory | NVMe | Transfer | Per hour | Per month |
|---|---|---|---|---|---|---|
| s1-1 | 1 shared | 1 GB | 25 GB | 1 TB | 0.0070 | 4.50 |
| s1-2 | 1 shared | 2 GB | 50 GB | 2 TB | 0.0120 | 8.00 |
| s2-4 | 2 shared | 4 GB | 80 GB | 4 TB | 0.0230 | 15.00 |
| c2-4 | 2 dedicated | 8 GB | 80 GB | 8 TB | 0.0360 | 24.00 |
| c4-8 | 4 dedicated | 16 GB | 160 GB | 16 TB | 0.0680 | 45.00 |
| c8-16 | 8 dedicated | 32 GB | 240 GB | 24 TB | 0.1320 | 88.00 |
A machine, or a service?
Most things should be a service. These are the cases where they should not.
machine
Take a machine when
- The process has to stay resident and hold state in memory.
- When the workload is steady enough that reserving is cheaper, or when a licence ties you to one machine
- You are running a database yourself rather than taking the managed one.
- You want to know exactly what is on the box, because an auditor will ask.
service
Take a service when
- It speaks HTTP and can be restarted at any moment without anybody noticing.
- You want a build per push and a rollback that takes seconds.
- The traffic is uneven and you would rather it scaled than sat there.
- You do not want to be the person who patches the kernel.
What the metered things cost
Billed by the second, charged by the month, and the first line of every invoice is the figure below multiplied by a number you can check in the console.
| Resource | Unit | Included | Rate |
|---|---|---|---|
| Compute, shared vCPU | per vCPU-hour | Hobby: 1 | 0.0085 |
| Compute, dedicated vCPU | per vCPU-hour | None | 0.0240 |
| Memory | per GB-hour | Hobby: 0.5 GB | 0.0042 |
| Egress bandwidth | per GB | Pro: 500 GB | 0.0900 |
| Ingress bandwidth | per GB | All | 0.0000 |
| Build minutes | per minute | Pro: 2,000 | 0.0080 |
| Persistent volume | per GB-month | None | 0.1500 |
| Volume snapshot | per GB-month | None | 0.0400 |
| Managed Postgres | per GB-month | None | 0.2800 |
| Log retention beyond the plan | per GB | None | 0.3000 |
Questions
What is the difference between shared and dedicated vCPU?
A shared vCPU can be contended by another instance on the same core, up to four to a core. A dedicated vCPU is pinned and nothing else runs on it. Shared is cheaper; dedicated is predictable.
Do I patch it, or do you?
You do. It is yours, with root, and we do not log in to it unless you ask us to.
Can a machine reach my services privately?
Yes. Every machine and every service in a project is on one private network and reaches the others by name, with nothing exposed publicly unless you say so.
Is there a snapshot facility?
Yes, charged by the gigabyte-month on the rate table, and restorable to a new instance of any size that is large enough.
Get started
Take a machine when you need one
Per-second billing means a machine you spin up to test something for an hour costs an hour.