Choose a cloud provider for the fleet

Money first. Every provider below bills a machine until it is destroyed, whether it does work or not. The fleet's spend limits are checked before every purchase, in one currency: Hetzner prices in euros and AWS in dollars, so set the limits in the currency of the provider you rent from. A fleet whose limits are in another currency refuses every purchase and says why. Start with a limit that admits one small machine.

The fleet rents from two providers today. They were chosen as opposites — one simple, one with everything — so that the fleet works with both and a third is a small step. This page says what each offers, what it asks for, and what it costs. For the workflow, see Rent machines to run the work; for every setting and task, the Fleet reference.

At a glance

Hetzner Cloud Amazon EC2
Token in Fleet settings The project's API token <access key id>:<secret access key>
Region names fsn1, nbg1, hel1, … eu-north-1, us-east-1, …
Prices in EUR USD
Billing Every started hour By the second, at least one minute
Spot machines No Yes, and the provider can take one back
arm64 machines Yes, when the catalog shows them available Yes (Graviton)
Bootstrap payload Up to 32 KiB Up to 16 KiB
Managed image registry None: the fleet runs its own ECR, with a credential that lasts 12 hours
A retried purchase Recognised by the machine's name Recognised by EC2's client token
SSH keys per machine Several One

Hetzner Cloud

The simple end: plain REST, one token, cheap arm64. Make a dedicated project for the fleet and a token with read and write access to it. Hetzner bills the started hour, so a machine destroyed after a minute costs an hour, and the fleet's own count rounds the same way.

Availability moves by the minute. A type can be sold in one location and not another, and the fleet's catalog lists a type only where Hetzner says it is available right now. Read the catalog — Test on the settings screen, or the type list beside Scale up — before you buy.

Hetzner runs no image registry, so the fleet runs one beside the machines.

Amazon EC2

The hard end: every request is signed with AWS Signature Version 4, spot machines can be reclaimed, and the vocabulary differs everywhere.

  • The key. Make an IAM user for the fleet with permission for EC2 (RunInstances, DescribeInstances, TerminateInstances, DescribeInstanceTypes, DescribeInstanceTypeOfferings, DescribeSpotPriceHistory, CreateTags), the price list (pricing:GetProducts) and, for images, ECR (ecr:GetAuthorizationToken). Enter it as access key id:secret — the hub seals it to itself like any other token.
  • The OS image is an AMI id in the chosen region, such as ami-0123456789abcdef0, not a name.
  • Spot. A spot machine costs a fraction of the on-demand price and can be taken back at any moment. When EC2 reclaims one, the fleet marks it Reclaimed, and the work it held returns to the queue. Tick on spot beside Scale up only where losing a machine mid-job is acceptable.
  • The price list comes from AWS's price list service, and the spot price from the latest spot history, cheapest zone first.
  • Images go to ECR. Its password is minted by an API call and lasts 12 hours; the fleet mints a new one before it runs out, and at once if the registry refuses it in the middle of a push.

Not yet: the AWS adapter is built and tested against a stand-in for the AWS API, not against a real account. The first real run is still owed.

In this section
Topics
howto development fleet cloud hetzner aws cost