¿Cómo puede un dominio dirigirse a un grupo de servidores en constante cambio?

¿Cómo puede un dominio dirigirse a un grupo de servidores en constante cambio?

Estoy seguro de que esta es una solución fácil, simplemente no estoy muy familiarizado con cómo funciona el DNS o si eso está relacionado con este problema.

Si estoy ejecutando un servicio web en Amazon ec2, distribuido en muchas instancias, ¿cómo puedo hacer que se pueda usar un único nombre de dominio para acceder a todo el grupo de servidores, que cambiará de vez en cuando?

Dado que las instancias pueden estar presentes un segundo pero desaparecer al siguiente (y viceversa), necesito una forma de elegir aleatoriamente un miembro activo del clúster al que enrutar. Las actualizaciones tendrían que ser instantáneas. ¿Es esto posible, con almacenamiento en caché DNS y todo?

Respuesta1

Existen varios enfoques para ello, algunos de los cuales están a su alcance.

En su caso, recomiendo simplemente tener varios registros DNS, con un TTL relativamente corto. La distribución no es óptima y es posible que los clientes no elijan el nodo de latencia más baja. Sin embargo, es extremadamente simple: todo lo que necesitas hacer es poder agregar registros DNS. Esta es una técnica ampliamente utilizada y probada.

Si necesita eliminar un servidor del grupo, simplemente elimine sus registros DNS y la mayoría de los clientes dejarán de usarlo después de que expire el TTL. Lo mismo ocurre con los servidores nuevos: agréguelos y, después del tiempo de vencimiento del TTL, los clientes comenzarán a usarlos.

Google, por ejemplo, utiliza esto como parte de sus técnicas de equilibrio:

$ dig A google.com

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             297     IN      A       74.125.77.99
google.com.             297     IN      A       74.125.77.104
google.com.             297     IN      A       74.125.77.147

Google amplía esto, una vez que haya llegado a su sitio web, redireccionándolo a una versión alojada cerca de usted (y en su idioma), según el país en el que suponen que se encuentra. Pero ese es un nivel que a menudo no necesita.

Respuesta2

Las actualizaciones tendrían que ser instantáneas. ¿Es esto posible, con almacenamiento en caché DNS y todo?

No, no es posible con DNS.Los registros DNS se entregan con un tiempo de vida (TTL), que especifica la cantidad de tiempo que los cachés pueden usar el registro.sinVuelva a consultar con el servidor DNS autorizado. Y por varias razones, los TTL de DNS no pueden durar menos de 10 minutos. El robo circular de DNS esnola solución para el equilibrio de carga, al menos no si necesita tiempo de actividad del servicio. Ver arreglar estopregunta anterior de Jeff Atwood.

poderusarServicios DNS de terceros que combinan DNS Round Robin con monitoreo proactivode los servidores y eliminar automáticamente los servidores inactivos del DNS. No es una buena solución, pero puede ser lo suficientemente buena para sitios menos importantes y es trivial configurarlo usando fx DNSMadeEasy o EdgeDirector.

La forma estándar de la industria de manejar la disponibilidad del servidor web esBalanceador de carga de capa 4 o capa 7frente a los servidores web.

servicio web en amazon ec2, distribuido en muchas instancias, ¿cómo puedo hacer que se pueda usar un solo nombre de dominio para acceder a todo el grupo de servidores?

Amazon ofrece un servicio plug'n'play para esto,llamado amazonasEquilibrio de carga elástico. Básicamente es un servicio administrado de Amazon, que configura un balanceador de carga de Capa 7 (HTTP) o Capa 4 (TCP) frente a sus servidores web EC2.

Otra opción común es configurar una instancia EC2 con un balanceador de carga L7 como nginx, HAProxy, Apsis Pound, Apache 2.2, Zeus Load Balancer o algo más (hay varios). Pero si sigue este camino, deberá administrar el software de equilibrio de carga OS + usted mismo y considerar cómo hacer que la instancia del equilibrador de carga EC2 tenga una disponibilidad suficientemente alta.

información relacionada