Você não precisa de certificados TLS pagos para sua própria comunicação privada. Você pode configurar sua própria autoridade de certificação (com certificações de longa duração, em caso de comprometimento, apenas descartar a autoridade de certificação inteira) e fazer com que seus servidores confiem nela. Em seguida, você pode emitir quantos certificados quiser para diferentes serviços. Os certificados pagos são necessários apenas quando você não pode fazer com que os hosts remotos confiem em sua CA, como os visitantes do seu site, por exemplo.
Se você só precisa usar um único serviço e ele suporta TLS (como o MySQL), use isso e adicione uma camada adicional de segurança, permitindo apenas conexões dos IPs do seu servidor no nível do firewall.
Se você precisar de mais de um serviço, é melhor ter uma solução de VPN. Não perca tempo com o OpenVPN, o seu kernel tem suporte integrado a IPSec e você pode usá-lo. Além disso, é compatível com o Windows 2000, portanto, se você implantar esses servidores, será fácil configurá-los.
Essa foi a parte fácil. A parte difícil é manter os arquivos do seu aplicativo em sincronia, é fácil se o aplicativo usa apenas um banco de dados, mas se for um CMS de uso geral, há uma boa chance de ele também modificar seus próprios arquivos por qualquer razão (atualizações de plugins para exemplo) ou cria novos (conteúdo enviado pelo usuário, etc) e não sei de nenhuma maneira confiável de mantê-los em sincronia. A única solução que vem à mente é o NFS (e ter apenas um único servidor que hospeda os arquivos, mas isso é contra o seu requisito de HA) ou o GlusterFS, ambos com um desempenho muito ruim com esse tipo de latência.