Guia

Failover multi-região com uma malha WireGuard

Avançado40 min de leituraAtualizado 8 de julho de 2026
Resposta curta

Três instâncias em três países, ligadas em malha via WireGuard, com a aplicação vinculada apenas à malha e um registo DNS com verificação de saúde à frente, proporciona tolerância a falhas genuína por menos de $110 por mês. A restrição de design é a replicação de base de dados: síncrona dentro de uma região, assíncrona entre elas.

01 Escolha três domínios de falha independentes

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 Construa a malha

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 Vincule os serviços apenas à malha

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 Replique a base de dados adequadamente

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 Verificação de estado na camada 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.

Perguntas frequentes

Porque não comprar simplesmente um servidor maior?

Um servidor maior tem o mesmo número de domínios de falha que um pequeno: um. A disponibilidade vem da independência, não da capacidade.

Qual a distância máxima entre réplicas síncronas do etcd ou Postgres?

Mantenha réplicas síncronas a cerca de 100 ms umas das outras. Além disso, a latência de escrita torna-se o custo dominante de cada transação.