Por que não usar o Route53 com verificações de saúde para isso?
Primeiro, você cria uma verificação de integridade baseada em IP para cada um dos seus servidores. Essas verificações podem ser simples e apenas monitorar o status HTTP 200 para uma determinada solicitação; ou você pode criar verificações mais avançadas que pesquisam uma string específica no resultado da solicitação.
Em seguida, se ainda não o fez, crie uma zona hospedada para o domínio que você está usando no Route53; e forneça ao registrador do seu domínio os servidores DNS atribuídos ao Route53.
Uma vez feito isso, para cada servidor que você deseja balancear os pedidos, crie um Conjunto de Registros (dentro da Zona Hospedada que acabou de criar) usando por exemplo o tipo 'Ponderado', um TTL curto (60 ou inferior) e selecione 'Associado com Health Check: YES 'e escolha a Health Check que você criou acima correspondente ao servidor / IP específico para o qual você está criando o registro. Novamente, repita isso para cada servidor / IP.
Você acaba com vários conjuntos de registros, cada um com 1 IP e todos associados ao mesmo domínio no Route53. Em solicitações de DNS, o Route53 retornará um deles com base no peso atribuído a eles E com base no status atual de cada verificação de integridade. Se alguma verificação de integridade falhar, esse IP específico será omitido.
Você também pode fazer isso usando outros tipos de conjuntos de registros Route53; por exemplo, com 'Failover' você tem 1 ou vários IPs primários e 1 ou vários IPs secundários. O Route53 sempre retornará um dos IPs principais, a menos que as verificações de integridade para eles falhem e, em seguida, ele mude para um dos secundários.
E há tipos de registro mais complexos no Route53 que também podem ser combinados com verificações de integridade: Latência, Geolocalização, Multivalor. Tudo muito bem explicado nos documentos da AWS.