O que você descreveu funcionaria.
No entanto, se a sua maioria é somente leitura, você estará lidando com a resposta mais fácil, muitas vezes é olhar para caches na memória ou distribuídos. Assim, por exemplo, quando seus servidores da web são ativados, eles carregam "x" quantidade de dados na memória de seu servidor da Web ou de um servidor de cache.
Todos os pedidos de usuários iriam para o cache na memória (muito rápido). Qualquer atualização pode então acionar o cache para voltar ao banco de dados e obter a cópia mais recente para solicitações futuras.
Dê uma olhada no sistema Windows Server App Fabric. Em você quer o verdadeiro HA, o mesmo conjunto de recursos está disponível com o Windows Azure e tornaria as coisas ainda mais redundantes.