Respuestas DNS basadas en la hora del día con un servidor de aplicaciones en la nube de Azure
Puede usar este tema para aprender a distribuir el tráfico de la aplicación entre diferentes instancias distribuidas geográficamente de una aplicación mediante directivas DNS basadas en la hora del día.
Este escenario es útil en situaciones en las que desea dirigir el tráfico en una zona horaria a servidores de aplicaciones alternativos, como servidores web hospedados en Microsoft Azure, que se encuentran en otra zona horaria. Esto le permite equilibrar la carga del tráfico entre instancias de aplicación durante períodos de tiempo máximo cuando los servidores principales se sobrecargan con el tráfico.
Nota
Para obtener información sobre cómo usar la directiva DNS para respuestas DNS inteligentes sin usar Azure, consulte Uso de la directiva de DNS para las respuestas DNS inteligentes basadas en la hora del día.
Ejemplo de respuestas DNS inteligentes basadas en la hora del día con un servidor de aplicaciones en la nube de Azure
A continuación se muestra un ejemplo de cómo puede usar la directiva DNS para equilibrar el tráfico de la aplicación en función de la hora del día.
En este ejemplo se usa una empresa ficticia, Contoso Gift Services, que proporciona soluciones de regalos en línea en todo el mundo a través de su sitio web, contosogiftservices.com.
El sitio web de contosogiftservices.com solo se hospeda en un único centro de datos local en Seattle (cuya dirección IP pública es 192.68.30.2).
El servidor DNS también se encuentra en el centro de datos local.
Con un aumento reciente en el negocio, contosogiftservices.com tiene un mayor número de visitantes cada día y algunos de los clientes han notificado incidencias de disponibilidad del servicio.
Contoso Gift Services realiza un análisis del sitio y detecta que cada noche entre las 6 p. m. y las 9 p. m., hora local, hay un aumento en el tráfico al servidor web de Seattle. El servidor web no puede escalar para controlar el aumento del tráfico en estas horas punta, lo que da lugar a la denegación de servicio a los clientes.
Para asegurarse de que los clientes de contosogiftservices.com obtienen una experiencia de respuesta desde el sitio web, Contoso Gift Services decide que durante estas horas alquilará una máquina virtual (VM) en Microsoft Azure para hospedar una copia de su servidor web.
Contoso Gift Services obtiene una dirección IP pública de Azure para la VM (192.68.31.44) y desarrolla la automatización para implementar el servidor web todos los días en Azure entre las 5 y las 10 p. m., lo que permite un período de contingencia de una hora.
Nota
Para más información sobre VM de Azure, consulte la documentación Máquinas virtuales en Azure.
Los servidores DNS se configuran con ámbitos de zona y directivas DNS para que entre las 5 y las 9 p. m. todos los días, el 30 % de las consultas se envíen a la instancia del servidor web que se ejecuta en Azure.
En la ilustración siguiente se muestra este escenario.
Funcionamiento de las respuestas DNS inteligentes basadas en la hora del día con un servidor de aplicaciones de Azure
En este artículo se muestra cómo configurar el servidor DNS para responder a consultas de DNS con dos direcciones IP de servidor de aplicaciones diferentes: un servidor web está en Seattle y el otro se encuentra en un centro de datos de Azure.
Después de la configuración de una nueva directiva DNS basada en las horas punta de 6 p. m. a 9 p. m. en Seattle, el servidor DNS envía el setenta por ciento de las respuestas DNS a los clientes que contienen la dirección IP del servidor web de Seattle y el treinta por ciento de las respuestas DNS a los clientes que contienen la dirección IP del servidor web de Azure. De este modo, el tráfico de los clientes se dirige al nuevo servidor web de Azure y se impide que el servidor web de Seattle se sobrecargue.
En el resto de horas del día, tiene lugar el procesamiento de consultas normal y las respuestas se envían desde el ámbito de zona predeterminado, que contiene un registro para el servidor web en el centro de datos local.
El TTL de 10 minutos en el registro de Azure garantiza que el registro ha expirado de la memoria caché LDNS antes de quitar la VM de Azure. Una de las ventajas de este escalado es que puede mantener los datos DNS en el entorno local y seguir escalando horizontalmente a Azure en función de la demanda.
Configuración de la directiva DNS para respuestas DNS inteligentes basadas en la hora del día con el servidor de aplicaciones de Azure
Para configurar la directiva DNS para las respuestas de consulta basadas en el equilibrio de carga de la aplicación a la hora del día, debe realizar los pasos siguientes.
- Creación de los ámbitos de zona
- Incorporación de registros a los ámbitos de zona
- Creación de las directivas DNS
Nota
Debe realizar estos pasos en el servidor DNS que sea autoritativo para la zona que desea configurar. Se requiere pertenencia a DnsAdmins, o una categoría equivalente, para realizar los siguientes procedimientos.
En las secciones siguientes se proporcionan instrucciones de configuración detalladas.
Importante
En las secciones siguientes se incluyen comandos de ejemplo Windows PowerShell que contienen valores de ejemplo para muchos parámetros. Asegúrese de reemplazar los valores de ejemplo de estos comandos por los valores adecuados para la implementación antes de ejecutar estos comandos.
Creación de los ámbitos de zona
Un ámbito de zona es una instancia única de la zona. Una zona DNS puede tener varios ámbitos de zona, cada uno de los cuales con su propio conjunto de registros DNS. El mismo registro puede estar presente en varios ámbitos, con diferentes direcciones IP o las mismas direcciones IP.
Nota
De forma predeterminada, existe un ámbito de zona en las zonas DNS. Este ámbito de zona tiene el mismo nombre que la zona y las operaciones DNS heredadas funcionan en este ámbito.
Puede usar el siguiente comando de ejemplo para crear un ámbito de zona para hospedar los registros de Azure.
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "AzureZoneScope"
Para más información, consulte Add-DnsServerZoneScope.
Incorporación de registros a los ámbitos de zona
El siguiente paso consiste en agregar los registros que representan el host del servidor web en los ámbitos de zona.
En AzureZoneScope, el registro www.contosogiftservices.com se agrega con la dirección IP 192.68.31.44, que se encuentra en la nube pública de Azure.
Del mismo modo, en el ámbito de zona predeterminado (contosogiftservices.com), se agrega un registro (www.contosogiftservices.com) con la dirección IP 192.68.30.2 del servidor web que se ejecuta en el centro de datos local de Seattle.
En el segundo cmdlet que figura a continuación, no se incluye el parámetro –ZoneScope. Por este motivo, los registros se agregan en el parámetro ZoneScope predeterminado.
Además, el TTL del registro de las VM de Azure se mantiene en 600 s (10 minutos) para que el LDNS no lo almacene en caché durante más tiempo, lo que interferiría con el equilibrio de carga. Por otra parte, las VM de Azure están disponibles durante 1 hora adicional como medida de contingencia para asegurarse de que, incluso los clientes con registros almacenados en caché, pueden resolverse.
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.68.31.44" -ZoneScope "AzureZoneScope" –TimeToLive 600
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.68.30.2"
Para más información, consulte Add-DnsServerResourceRecord.
Creación de las directivas DNS
Una vez creados los ámbitos de zona, puede crear directivas DNS que distribuyan las consultas entrantes en estos ámbitos para que se produzca lo siguiente.
- De 6 p. m. a 9 p. m. diariamente, el 30 % de los clientes reciben la dirección IP del servidor web en el centro de datos de Azure en la respuesta DNS, mientras que el 70 % de los clientes reciben la dirección IP del servidor web local de Seattle.
- En todo momento, todos los clientes reciben la dirección IP del servidor web local de Seattle.
La hora del día debe expresarse en la hora local del servidor DNS.
Puede usar el siguiente comando de ejemplo para crear la directiva DNS.
Add-DnsServerQueryResolutionPolicy -Name "Contoso6To9Policy" -Action ALLOW -ZoneScope "contosogiftservices.com,7;AzureZoneScope,3" –TimeOfDay “EQ,18:00-21:00” -ZoneName "contosogiftservices.com" –ProcessingOrder 1
Para más información, consulte Add-DnsServerQueryResolutionPolicy.
Ahora el servidor DNS está configurado con las directivas DNS necesarias para redirigir el tráfico al servidor web de Azure en función de la hora del día.
Anote la expresión:
-ZoneScope "contosogiftservices.com,7;AzureZoneScope,3" –TimeOfDay “EQ,18:00-21:00”
Esta expresión configura el servidor DNS con una combinación de ZoneScope y peso que indica al servidor DNS que envíe la dirección IP del servidor web de Seattle el setenta por ciento del tiempo, mientras que envía la dirección IP del servidor web de Azure el treinta por ciento del tiempo.
Puede crear miles de directivas DNS según los requisitos de administración del tráfico y todas las directivas nuevas se aplican dinámicamente, sin reiniciar el servidor DNS, en las consultas entrantes.