Há duas partes principais nisso,
- balanceamento de carga e failover em vários datacenters
- balanceamento de carga e failover em vários servidores dentro de um datacenter
Existem três maneiras principais de fazer vários datacenters: BGP / "anycast", GSLB / DNS ou usando um mecanismo de failover de origem dentro de um CDN. none são simples, fáceis ou baratas.
Quando o tráfego dos usuários chegar em um datacenter específico, você precisará de um componente do balanceador de carga. Há várias opções aqui que podem ser categorizadas como appliance-vs-software e layer4-vs-layer7. A julgar pelos detalhes que você deu eu vou apostar que suas necessidades são bem simples e seu orçamento bem pequeno, então vamos apenas pular direto para o nginx nessa parte. Dentro do nginx você pode configurá-lo para servir o seu conteúdo estático e para balancear o seu conteúdo dinâmico em tantos servidores de back-end quanto você quiser rodando seu aplicativo python.
Boa sorte, é uma longa estrada que você começou.