Route 53
Resumen General
Servicio de DNS altamente disponible, gestionado y autoritativo que ofrece un SLA
Links de Contenido
Anotaciones:
Introducción a DNS
DNS es un sistema de nombres de dominio que traduce los nombres host a nombres amigables.
- Recordar que el . final es la raíz
- TLD: .com
- SLD: example.com
- Subdominio: www.example.com
- Dominio: api.www.example.com
- Protocolo: http://
Terminología de DNS
- Registrador de dominios: Route 53
- Registro DNS, A, AAAA, CNAME
- Archivo de zona: Contiene los registros DNS
- Servidores de nombres: resuelve consultas DNS
- Dominios de primer nivel TLD: .com
- Dominio de segundo nivel SLD: amazon.com
Route 53
Un DNS altamente disponible, gestionado y autoritativo que ofrece un SLA. Tenemos toda la autoridad de cambiar los registros. También es un registrador de dominios. Es una referencia al puerto DNS tradicional (puerto 53).
- Comprueba la salud de los recursos.
- Es el único servicio de AWS que ofrece un SLA.
- Cuesta $0.50 al mes por zona alojada.
Registro R53
Direccionar el tráfico a un dominio. Cada registro contiene:;Nombre;Tipo;Valor;Política de enrutamiento;TTL: la cantidad de tiempo de registros en caché
- Soporta:
- AAAA: IPv6
- A: IPv4
- CNAME: Asignar un nombre de host a otro nombre de host (solo para www.example.com)
- NS: Servidores de nombres para la zona alojada
Zona de alojamiento
Un contenedor de los registros que definen cómo dirigir el tráfico. Zonas públicas, contiene recurso que especifica cómo enrutar el tráfico en internet. Zonas de alojamiento privada, contiene registro que especifica cómo enrutar el tráfico dentro de una o más VPC.
- Público es todo público.
- Privado permite tener URLs internas, las cuales solo se acceden por VPC.
- Están siempre por fuera de la VPC, no se pueden acceder a endpoints privados.
Cómo registrar dominios
- Luego de comprar un dominio o transferir un dominio a AWS.
- Debemos registrar el dominio, el cual nos va a devolver un NS y SOA de nuestro registro de dominio.
Creamos un subdominio, el cual le indicamos a donde debe ir el tráfico (ejemplo test.portafoliotobias.com.ar). Podemos probarlo con nslookup (instalado con 'sudo yum install -y bind-utils') o dig que proporciona más información como el TTL.
Demostraciones
- Generamos instancias en distintas regiones, especificando la zona de disponibilidad en los datos de usuario.
- Lanzamos un Application Load Balancer con Internet Facing, usando el mismo Security Group que el EC2.
- Creamos un Target Group por instancias (HTTP:80).
- Añadimos las instancias al Target Group y luego al Load Balancer.
Explicaciones
Registros TTL (tiempo de vida): cuando un cliente accede a nuestro DNS, Amazon Route 53 devuelve el registro (ej. A 1.32.12.35) con el TTL - un valor numérico que indica cuánto tiempo se guarda en caché antes de actualizarse.
- TTL alto (ej. 24h): Menos tráfico en Route 53, pero registros posiblemente obsoletos.
- TTL bajo (ej. 60s): Más tráfico en Route 53, pero registros se actualizan más rápido.
- Excepto para registros Alias, el TTL es obligatorio para cada registro DNS.
Registros con CNAME vs Alias
CNAME: Apunta un nombre de host a cualquier otro nombre de host. ¡Solo para dominios no root!
Alias: Apunta un nombre host a un recurso de AWS (ELB, CloudFront, API Gateway, etc.). Beneficios:
- Funciona para dominio raíz y no raíz.
- Gratis.
- Comprobación de salud nativa.
- Reconoce automáticamente cambios en las direcciones IP.
- No se puede especificar TTL.
- No se puede usar para nombres DNS de EC2.
Políticas de enrutamiento
- Simple: Dirige el tráfico a un solo recurso (valor único).
- Ponderada: Controla % de solicitudes a cada recurso (ej. 70%, 20%, 10%).
- Conmutación por error: Primaria + secundaria (failover) con health checks.
- Basada en latencia: Redirige al recurso con menor latencia.
- Geolocalización: Basada en ubicación del usuario (continente, país, estado).
- Respuesta Multivalor: Hasta 8 registros sanos (no reemplaza ELB).
- Geoproximidad: Usando Traffic Flow, con sesgos (-99 a +99).
Controles de salud
HTTP/HTTPS/TCP solo para recursos públicos. Permiten failover automático. Se pueden crear controles de salud calculados (padres/hijos) para monitorear múltiples endpoints.
- 15 verificadores de salud globales.
- Considera sano si >18% de verificadores reportan salud.
- Solo pasa con respuestas 2xx/3xx.
- Se puede configurar para analizar primeros 5120 bytes.
- Para recursos privados, usar alarmas CloudWatch.
Registrar dominio vs Servicio DNS
Podemos registrar el dominio en GoDaddy o AWS, pero esto solo reserva el nombre. Para gestionar DNS:
- Crear zona de alojamiento en Route 53.
- Actualizar registros NS en el registrador (ej. GoDaddy) para usar los nameservers de Route 53.
Preguntas Frecuentes
¿Es posible monitorear cualquier URL con health checks?
- Sí, Route 53 puede verificar cualquier URL/IP pública.
- Costo desde $0.50 USD/mes por check.
- Se integra con SNS para alertas.
- También se puede usar UptimeRobot (gratis hasta 50 URLs).
Políticas de enrutamiento
Route 53 ofrece múltiples políticas de enrutamiento para controlar cómo se dirige el tráfico a tus recursos:
1. Enrutamiento Simple
- Dirige el tráfico a un solo recurso (valor único).
- Permite especificar múltiples valores en el mismo registro.
- Con alias habilitado, solo puede apuntar a un recurso de AWS.
- Ejemplo: foo.example.com → A 11.22.33.44 o múltiples IPs (A 11.22.33.44, A 55.66.77.88, A 99.11.22.33).
- No se puede asociar con controles de salud.
2. Enrutamiento Ponderado
- Controla el porcentaje de solicitudes a cada recurso (ej. 70%, 20%, 10%).
- Cada instancia recibe un peso que determina el tráfico recibido.
- Los registros DNS deben tener el mismo nombre y tipo.
- Puede asociarse con comprobaciones de salud.
- Caso de uso: Balanceo entre regiones, pruebas de nuevas versiones.
- Peso 0: Detiene el tráfico a ese recurso.
- Si todos los pesos son 0, se distribuye equitativamente.
- Requiere identificador único por registro.
3. Conmutación por Error (Failover)
- Configuración primaria-secundaria con health checks.
- La instancia primaria tiene el control de salud principal.
- Si falla, el tráfico se redirige a la secundaria.
- Obligatorio asociar comprobación de salud al registro primario.
- Ideal para alta disponibilidad y recuperación ante desastres.
4. Basada en Latencia
- Redirige al recurso con menor latencia para el usuario.
- La latencia se calcula entre usuarios y regiones AWS.
- Puede asociarse con controles de salud (failover).
- Requiere especificar la región AWS.
- Recomendación: Elegir región más cercana al recurso.
- Prioriza la experiencia del usuario sobre otros factores.
5. Geolocalización
- Basada en la ubicación geográfica del usuario.
- Puede especificarse por continente, país o estado.
- Debe crearse un registro 'por defecto' para ubicaciones no especificadas.
- Soporta controles de salud.
- Permite contenido localizado (ej. diferentes versiones por país).
- Más precisa que la latencia para distribución geográfica.
6. Respuesta Multivalor
- Devuelve hasta 8 registros sanos aleatoriamente.
- Puede asociarse con controles de salud.
- No reemplaza un Elastic Load Balancer.
- Al usar 'dig' se ven todas las instancias saludables.
- Si una falla, desaparece de las respuestas.
- Útil para distribuir carga sin complejidad de ELB.
7. Geoproximidad (Traffic Flow)
- Usa la función de flujo de tráfico de Route 53.
- Permite sesgos (-99 a +99) para ajustar el tráfico.
- 1 a 99: Más tráfico al recurso.
- -1 a -99: Menos tráfico al recurso.
- Considera ubicación geográfica de usuarios y recursos.
- Más flexible que geolocalización pura.
- Permite definir tendencias de tráfico complejas.
Comparación de Políticas
Característica | Simple | Ponderada | Failover | Latencia | Geo | Multivalor | Geoproximidad |
---|---|---|---|---|---|---|---|
Asociación Health Checks | No | Sí | Obligatorio | Opcional | Opcional | Sí | Depende |
Múltiples valores | Sí | Sí (con pesos) | No | Sí | Sí | Sí (hasta 8) | Sí |
Uso con alias | Sí (1 recurso) | Sí | Sí | Sí | Sí | No | Sí |
Casos de uso:
- Usar Simple para configuraciones básicas
- Ponderada para testing A/B o despliegues graduales
- Failover para alta disponibilidad crítica
- Latencia para aplicaciones sensibles a retardos
- Geolocalización para contenido regionalizado
- Multivalor para redundancia simple
- Geoproximidad para configuraciones avanzadas con Traffic Flow