Running Your Own Edge Nodes in Five Cities
Serving a large file to a European audience from one machine in one city works, and then it does not. The first symptom is usually that downloads are fine for you and slow for a customer three countries away. Renting five small machines and caching the file near people is a surprisingly effective answer, and with unmetered traffic on every plan it is a fixed cost rather than a bill that grows with success.
This is how to build a small distribution layer across our five virtual machine cities, when it beats a commercial network and when it plainly does not.
When this is a good idea
- A few large objects, served a lot. Installers, game assets, firmware, video files, dataset downloads. Cache hit rates are high and the file count is manageable.
- Regional audiences you can name. You know your users are in Germany, Poland, Austria, Romania and the Benelux, rather than everywhere.
- Traffic bills that hurt. Distribution priced per gigabyte gets expensive exactly when things go well. Here the traffic is unmetered and the cost is the machines.
- You want to see the cache. Your own nodes mean your own logs, your own headers and your own purge, with no support ticket to understand a miss.
When it is the wrong tool, plainly
- A global audience. Five European cities do nothing for a user in São Paulo or Singapore.
- Millions of small files. The win in caching comes from bytes saved on the long path. Tiny assets are dominated by connection setup, which a commercial network with hundreds of sites handles better.
- You want anycast. We route by name, not by anycast address, so steering happens in DNS. That means failover takes as long as your record's time to live rather than being instant.
- Nobody will maintain it. Five nodes is five sets of certificates, packages and disks. If that will not get done, a managed network is the better engineering decision.
The layout
- One origin. Your existing server, or a dedicated machine if the library is large. It needs to be reachable by the nodes and nothing else, so restrict it to their addresses.
- Five caching nodes. A reverse proxy with an on disk cache in each city, fetching from the origin on a miss and serving from disk thereafter. Our guide to running a reverse proxy is the configuration half of this.
- DNS that steers. A provider with latency or geographic routing plus health checks, pointing each region at its nearest node and away from a node that stops answering. Keep the time to live short, around 60 seconds, from the day you start.
- Certificates per node. Each one terminates TLS for the same hostname, so each needs a certificate and an automated renewal. Renewal failures are the most common outage in this design.
- A purge you trust. Either content addressed file names that never need purging, which is the approach that causes the least grief, or a script that clears the same path on all five.
The cities and what they cover
| City | From Frankfurt | Covers |
|---|---|---|
| Frankfurt | 1 ms | Germany, Switzerland, Czechia, and the shortest general path across Europe |
| Amsterdam | 3 ms | The Benelux, the United Kingdom, Ireland, the Nordics, transatlantic routes |
| Vienna | 4 ms | Austria, Hungary, Slovakia, Slovenia, the northern Balkans |
| Warsaw | 7 ms | Poland and the Baltics, which Western European sites reach poorly |
| Bucharest | 10 ms | Romania, Bulgaria, Moldova, Serbia and the wider Balkans |
Three nodes cover most of the continent. Frankfurt, Warsaw and Bucharest reach west, north east and south east respectively, and Amsterdam and Vienna are the refinements you add when the logs tell you to.
What five nodes cost
The smallest plan is enough for a cache node when the working set fits on its disk, because caching is disk and network work rather than processor work.
| Nodes | Plan | Cities | Monthly |
|---|---|---|---|
| Three | Ion, 2 GB, 20 GB disk | Frankfurt, Warsaw, Bucharest | €16.00 |
| Five | Ion, 2 GB, 20 GB disk | All five | €27.50 |
| Five | Pulse, 4 GB, 40 GB disk | All five | €42.50 |
Those are live prices including each city's location fee, before VAT where it applies. Disk is what limits your cache, so extra storage in 50 GB units at €4 per unit per month is often the right upgrade rather than a bigger plan. Every plan includes unmetered traffic, which is the entire economic argument for doing this. Per plan and per city figures are in the price by location breakdown.
Try one node for a weekend first
Do not build five nodes on a theory. Build one in the city furthest from your origin and measure what it changes for users there. Every plan is available by the hour at the monthly price divided by 720 plus the location fee divided by 720, so an Ion in Warsaw is €0.0077 an hour and a 48 hour trial is 37 cents.
Point a test hostname at it, compare download times from a machine in that region against the origin path, and only then decide how many nodes the numbers justify. Delete the trial node afterwards, since a powered off machine still holds its disk and its address, and put the nodes you keep on a monthly cycle because 720 hourly units cost exactly one month.
Details that decide whether it works
- Cache headers are the whole game. If the origin does not send a sensible maximum age, nothing caches and you have built five proxies. Long lifetimes with content addressed names beat short lifetimes with purges.
- Protect the origin. Allow only the node addresses, and give each node one IPv4 address, with more available at €1.50 each per month if you want to separate them further.
- Log to somewhere central. Five separate access logs are five separate investigations. Ship them to one place, and watch hit ratio per node, which is the number that tells you whether a node is earning its rent.
- Watch each node from elsewhere. A node that fails while DNS still points at it is the failure mode of this design. Alerting belongs on a machine in a different city, as described in monitoring from another city.
- Keep the pair rules in mind. If one node is critical for a region, know which other city takes over. That is the same exercise as pairing two locations.
Where to start
One origin, one node in your worst served region, short DNS time to live, and a week of measurements. Plans and cities are on the VPS page, the higher bandwidth range for origin duty is on the CDN origin page, and the workload summary is on the edge node page.
Deploy what you just read about
Deploy your first server now.
No contracts, no minimums. Start on an Ion KVM VPS at €0.0063 an hour and move to a monthly bare-metal server the day you outgrow it.
KVM VPS billed hourly, capped monthly · Dedicated billed monthly · No setup fee
- Free IPv4 + IPv6
- Every VPS
- Unmetered traffic
- 1–10 Gbps
- DDoS mitigation
- 2.5 Tbps
- Root / IPMI access
- Included
- Setup fee
- €0.00
- Minimum term
- None