Instances
Instances are the runtime units that execute your project's code. When your application is deployed, the code is built and packaged into a container image and run as an Instance.
Under the hood, Instances are Firecracker microVMs (opens in a new tab) which serve as a thin, isolated, high performance wrapper around your code. Each Instance is associated with a single Deployment of a Service and runs in one of Koyeb's regions.
Instance types
The Instance type determines the resources (CPU, Memory, Disk) allocated to your application. You can select your Instance type in your Service's Deployment configuration. You can customize the Instance type running in each region when deploying to multiple regions.
The Standard Instance types include:
Instance type | vCPU | RAM | Disk | Price/second | Price/hour | Price/month |
---|---|---|---|---|---|---|
nano | 0.25 | 256MB | 2.5GB SSD | $0.000001 | $0.0036 | $2.68 |
micro | 0.5 | 512MB | 5GB SSD | $0.000002 | $0.0072 | $5.36 |
small | 1 | 1GB | 10GB SSD | $0.000004 | $0.0144 | $10.71 |
medium | 2 | 2GB | 20GB SSD | $0.000008 | $0.0288 | $21.43 |
large | 4 | 4GB | 40GB SSD | $0.000016 | $0.0576 | $42.85 |
xlarge | 8 | 8GB | 80GB SSD | $0.000032 | $0.1152 | $85.71 |
2xlarge | 16 | 16GB | 160GB SSD | $0.000064 | $0.2304 | $172 |
3xlarge | 24 | 32GB | 240GB SSD | $0.000128 | $0.4608 | $343 |
4xlarge | 32 | 64GB | 320GB SSD | $0.000256 | $0.9216 | $686 |
5xlarge | 40 | 128GB | 400GB SSD | $0.000512 | $1.8432 | $1371 |
The Eco Instance types (available in Washington, D.C., Frankfurt, and Singapore) include:
All plans can deploy 1 Instance of the free
type. This lets you to deploy a web Service to the Frankfurt
or Washington, D.C. regions with 512MB of RAM, 0.1 vCPU, and 2GB of SSD.
We are currently rolling out a change that will make free
Instances sleep when no inbound traffic is detected for
two minutes. They will automatically wake up within 500ms of receiving new traffic.
Instance type | vCPU | RAM | Disk | Price/second | Price/hour | Price/month |
---|---|---|---|---|---|---|
free | 0.1 | 512MB | 2GB SSD | $0.000000 | $0.00 | $0.00 |
eco-nano | 0.1 | 256MB | 2GB SSD | $0.0000006 | $0.0022 | $1.61 |
eco-micro | 0.25 | 512MB | 4GB SSD | $0.000001 | $0.0036 | $2.68 |
eco-small | 0.5 | 1GB | 8GB SSD | $0.000002 | $0.0072 | $5.36 |
eco-medium | 1 | 2GB | 16GB SSD | $0.000004 | $0.0144 | $10.71 |
eco-large | 2 | 4GB | 20GB SSD | $0.000008 | $0.0288 | $21.43 |
eco-xlarge | 4 | 8GB | 20GB SSD | $0.000016 | $0.0576 | $42.85 |
eco-2xlarge | 8 | 16GB | 20GB SSD | $0.000032 | $0.1152 | $85.71 |
GPU Instance types (available in select regions) include:
GPU Instances are currently in public preview. Everyone can deploy and run GPU-accelerated workloads.
Instance Type | VRAM | vCPU | RAM | Price/second | Price/hour | Price/month |
---|---|---|---|---|---|---|
gpu-nvidia-rtx-4000-sff-ada | 20 GB | 6 | 44 GB | $0.00014 | $0.5 | $375 |
gpu-nvidia-rtx-a6000 | 48 GB | 6 | 44 GB | $0.000202 | $0.73 | $543 |
gpu-nvidia-v100-sxm2-16gb | 16 GB | 8 | 44 GB | $0.000236 | $0.85 | $632 |
gpu-nvidia-l4 | 24 GB | 15 | 44 GB | $0.000277 | $1 | $744 |
gpu-nvidia-l40s | 48 GB | 30 | 92 GB | $0.000430 | $1.55 | $1153 |
gpu-nvidia-a100 | 80 GB | 15 | 180 GB | $0.000555 | $2 | $1488 |
gpu-nvidia-h100 | 80 GB | 15 | 180 GB | $0.000916 | $3.30 | $2454 |
Instance life cycle
Each Instance's life cycle is closely related to that of the Deployment it belongs to. Instance health statuses affect Deployment health statuses and that health status bubbles up to the Service and App levels. Likewise, changes in Service configuration affect how Instances start and stop and whether they receive traffic routed to the application.
When deploying from a git repository, Instances will be provisioned once the build succeeded. When deploying from a container registry, Instances will be provisioned when the image is downloaded and other requirements are met.
When an Instance responds to health checks as expected, Koyeb will mark the Instance as healthy and add it to the group of Instances that are targets for load balancing. If an Instance stops responding to health checks or fails to reach a healthy state during initial provisioning, it will be marked as unhealthy.
If an Instance is not working correctly, a new Deployment is promoted, or the Instance's Service is deleted, the Instance will be stopped. This will remove the Instance from the Service load balancer's list of targets and then stop and delete the Instance.
Instance statuses
Instances can have several statuses during their life cycle:
- Allocating: A start request has been received and the Instance is about to start.
- Starting: The Instance is running but health checks have not yet succeed.
- Healthy: The Instance is running and health checks are succeeding.
- Unhealthy: The Instance is running but health checks are failing.
- Sleeping: The Instance is healthy but sleeping due to inactivity. New requests will wake the Instance within 500ms.
- Stopping: The Instance is being stopped. This happens when a Service change is requested and the Deployment that the Instance is associated with is stopping.
- Stopped: The Instance is stopped.
- Error: The Instance failed to start.
In addition to the Instance status, messages are provided with additional information. These messages can be helpful when troubleshooting problems with a specific Instance or a Deployment.
Check out the troubleshooting page to learn more about how to troubleshoot your Services, Deployments, and Instances.
You can learn more about MicroVMs and Firecracker reading the following articles:
- What is a MicroVM? (opens in a new tab)
- Lightweight Virtualization: the Container Ecosystem and Firecracker MicroVMs for Serverless (opens in a new tab).
- 10 Reasons Why We Love Firecracker MicroVMs (opens in a new tab)
- Firecracker MicroVMs: Lightweight Virtualization for Containers and Serverless Workloads (opens in a new tab)