Guía

Failover multi-región con una malla WireGuard

Avanzado40 min de lecturaActualizado 8 de julio de 2026
Respuesta corta

Tres instancias en tres países, unidas en malla mediante WireGuard, con la aplicación vinculada solo a la malla y un registro DNS con comprobación de salud al frente, proporciona una tolerancia a fallos genuina por menos de 110 dólares al mes. La restricción de diseño es la replicación de la base de datos: síncrona dentro de una región, asíncrona entre ellas.

01 Elige tres dominios de fallo independientes

Different countries, ideally different transit mixes. Amsterdam, Ashburn and Singapore is the classic triangle. Three is the minimum for quorum — two gives you a split-brain problem rather than redundancy.

02 Construye la malla

Each node gets a stable private address. Every node peers with every other node; with three nodes that is three tunnels.

# node A — /etc/wireguard/mesh.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51821
PrivateKey = <A private>

[Peer]                       # node B
PublicKey = <B public>
Endpoint = b.example.net:51821
AllowedIPs = 10.10.0.2/32
PersistentKeepalive = 25

[Peer]                       # node C
PublicKey = <C public>
Endpoint = c.example.net:51821
AllowedIPs = 10.10.0.3/32
PersistentKeepalive = 25

03 Vincula los servicios solo a la malla

The database, the cache and the internal API should listen on 10.10.0.x, never on the public address. This removes an entire class of exposure without a single firewall rule.

04 Replica la base de datos adecuadamente

Synchronous replication across regions is impractical — a 160 ms round trip becomes the floor for every write. Use asynchronous replication across regions and know your recovery point objective.

05 Comprueba la salud en la capa DNS

Short TTLs plus health-checked failover records, or anycast if your regions support it. Then run a failure drill: kill a region deliberately, on a weekday, while you are watching.

Preguntas frecuentes

¿Por qué no comprar simplemente un servidor más grande?

Un servidor más grande tiene el mismo número de dominios de fallo que uno pequeño: uno. La disponibilidad proviene de la independencia, no de la capacidad.

¿Qué tan separadas pueden estar las réplicas síncronas de etcd o Postgres?

Mantén las réplicas síncronas a unos 100 ms de distancia entre sí. Más allá de eso, la latencia de escritura se convierte en el costo dominante de cada transacción.