1. Put servers where bandwidth is cheap (not Sydney, for example)
2. Constrain throughput per server
3. Buy from cheap transit providers like Cogent
Hetzner does all three. Bandwidth in the US/EU is very cheap. They meter total throughput on their services. And they use cheap providers. None of these are bad choices, just different than ours.
Our product has multiple layers, too. When you connect to a Fly app, you hit our edge, then traffic goes to a VM that's probably in another region. When you hit a hetzner server, there are no intermediate hops.
We usually pay that three times as data moves from customer VMs to our edges to end users (out from our edge to worker vm, out from worker vm to our edge, out from our edge to end user). Or 10x, in some cases, if data moves from Virginia to Chennai to an end user.
We pay $0.005/GB in the US and $0.9/GB in Chennai. You can see how this might add up. :)