pricing - Configurar el reenvío de URL basado en DNS en Amazon Route53
cuales son los dns de amazon (5)
Estoy intentando configurar el reenvío en Amazon Route53. Mi último servicio DNS (Nettica) me permitió enrutar las solicitudes a "aws.example.com" a "https://myaccount.signin.aws.amazon.com/console/".
¿Esta funcionalidad es compatible con Route53?
¿Cómo logra Nettica esto? ¿Inserta un registro especial A, CNAME, PTR o TXT?
Actualizar
Si bien mi respuesta original a continuación sigue siendo válida y podría ser útil para comprender la causa de que el reenvío de URL basado en DNS no esté disponible a través de Amazon Route 53 , le recomiendo que revise la solución indirecta totalmente inteligente de Vivek M. Chawla mientras tanto Amazon S3 admite redireccionamientos de sitios web y logra un servidor autónomo menos y, por lo tanto, una solución gratuita dentro de AWS solo así.
- Implementar una solución automatizada para generar dichos redireccionamientos se deja como un ejercicio para el lector, pero por favor rinda homenaje a la respuesta épica de Vivek al publicar su solución;)
Respuesta original
Nettica debe ejecutar una solución de redireccionamiento personalizada para esto, aquí está el problema:
Puede crear un alias CNAME como aws.example.com
para myaccount.signin.aws.amazon.com
, sin embargo, DNS no proporciona soporte oficial para aliasar un subdirectorio como la console
en este ejemplo.
- Es una lástima que AWS no parezca simplemente hacer esto de forma predeterminada al presionar
https://myaccount.signin.aws.amazon.com/
(lo intenté), porque resolvería su problema de inmediato y generaría una gran cantidad de sentido en primer lugar; además, debería ser bastante fácil de configurar en su extremo.
Por esa razón, algunos proveedores de DNS aparentemente implementaron una solución personalizada para permitir redirecciones a subdirectorios; Me arriesgo a suponer que básicamente están facilitando un alias de CNAME para un dominio propio y están redireccionando nuevamente desde allí al destino final a través de una redirección HTTP 3xx inmediata.
Por lo tanto, para lograr el mismo resultado, debe tener un servicio HTTP en ejecución realizando estos redireccionamientos, que no es la solución simple que uno esperaría, por supuesto. Tal vez / Afortunadamente, alguien puede llegar a un enfoque más inteligente.
El soporte de AWS señaló una solución más simple. Básicamente es la misma idea propuesta por @Vivek M. Chawla, con una implementación más simple.
AWS S3:
- Cree un Cubo nombrado con su dominio completo, como
aws.example.com
- En las propiedades del depósito, seleccione
Redirect all requests to another host name
e ingrese su URL:https://myaccount.signin.aws.amazon.com/console/
AWS Route53:
- Cree un conjunto de registros tipo A. Cambie el alias a
Yes
. Haga clic en el campoAlias Target
y seleccione el depósito S3 que creó en el paso anterior.
Referencia: Cómo redirigir dominios usando Amazon Web Services
Documentación oficial de AWS: ¿hay alguna manera de redirigir un dominio a otro dominio utilizando Amazon Route 53?
Me encontré con exactamente el mismo problema que Saurav describió, pero realmente necesitaba encontrar una solución que no requiriera más que Route 53 y S3. Creé una guía práctica para mi blog que detalla lo que hice.
Esto es lo que se me ocurrió.
Objetivo
Con solo las herramientas disponibles en Amazon S3 y Amazon Route 53, cree un redireccionamiento de URL que reenvíe automáticamente http://url-redirect-example.vivekmchawla.com a la página de inicio de sesión de AWS Console con alias de "Mi cuenta", ubicado en https://myaccount.signin.aws.amazon.com/console/ .
Esta guía le enseñará a configurar el reenvío de URL a cualquier URL, no solo a las de Amazon. Aprenderá cómo configurar el reenvío a carpetas específicas (como "/ console" en mi ejemplo) y cómo cambiar el protocolo de la redirección de HTTP a HTTPS (o viceversa).
Primer paso: crea tu cubo S3
Abra la consola de administración de S3 y haga clic en "Crear cesta".
Paso dos: nombra tu cubo S3
Elige un nombre de cubo. ¡Este paso es realmente importante! Debe nombrar el depósito EXACTAMENTE igual que la URL que desea configurar para el reenvío. Para esta guía, usaré el nombre "url-redirect-example.vivekmchawla.com".
Seleccione la región que funcione mejor para usted. Si no lo sabe, mantenga el valor predeterminado.
No se preocupe por configurar el registro. Simplemente haga clic en el botón "Crear" cuando esté listo.
Paso 3: habilite el alojamiento del sitio web estático y especifique reglas de enrutamiento
- En la ventana de propiedades, abra la configuración para "Alojamiento web estático".
- Seleccione la opción para "Habilitar el alojamiento de sitios web".
- Ingrese un valor para el "Documento de índice". Este objeto (documento) nunca será servido por S3, y nunca tendrá que cargarlo. Solo usa el nombre que quieras.
- Abra la configuración para "Editar reglas de redirección".
Pegue el siguiente fragmento XML en su totalidad.
<RoutingRules> <RoutingRule> <Redirect> <Protocol>https</Protocol> <HostName>myaccount.signin.aws.amazon.com</HostName> <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith> <HttpRedirectCode>301</HttpRedirectCode> </Redirect> </RoutingRule> </RoutingRules>
Si tiene curiosidad acerca de lo que está haciendo el XML anterior, visite la documentación de AWM sobre "Sintaxis para especificar reglas de enrutamiento" . Una técnica de bonificación (no tratada aquí) se reenvía a páginas específicas en el host de destino, por ejemplo, http://redirect-destination.com/console/special-page.html
. Lea sobre el elemento <ReplaceKeyWith>
si necesita esta funcionalidad.
Paso 4: tome nota del "punto final" de su redireccionamiento
Anote el "punto final" de Hosting de sitio web estático que Amazon creó automáticamente para este segmento. Lo necesitará para más adelante, así que resalte la URL completa, luego cópiela y péguelo en el bloc de notas.
¡PRECAUCIÓN! En este punto, puede hacer clic en este enlace para verificar si sus Reglas de Redirección fueron ingresadas correctamente, ¡pero tenga cuidado! Este es el por qué...
Digamos que ingresó el valor incorrecto dentro de las etiquetas <Hostname>
en sus Reglas de redirección. Quizás ha escrito accidentalmente myaccount.amazon.com
, en lugar de myaccount.signin.aws.amazon.com
. Si hace clic en el enlace para probar la URL de Endpoint, ¡AWS redirigirá felizmente su navegador a la dirección incorrecta!
Después de notar su error, probablemente edite el <Hostname>
en sus Reglas de redireccionamiento para corregir el error. Desafortunadamente, cuando intentas hacer clic en el enlace otra vez, lo más probable es que termines siendo redirigido a la dirección incorrecta. Aunque corrigió la entrada <Hostname>
, su navegador está almacenando en caché la entrada anterior (¡incorrecta!). Esto sucede porque estamos utilizando un redireccionamiento HTTP 301 (permanente), que los navegadores como Chrome y Firefox almacenarán en caché de forma predeterminada.
Si copia y pega la URL de Endpoint a un navegador diferente (o borra la caché en su navegador actual), tendrá otra oportunidad de ver si su entrada actualizada de <Hostname>
es finalmente la correcta.
Para estar seguro, si desea probar su Endpoint URL y las reglas de redirección, debe abrir una sesión de navegación privada, como "Modo de incógnito" en Chrome. Copie, pegue y pruebe la URL de punto final en modo de incógnito y todo lo almacenado en la memoria caché desaparecerá una vez que cierre la sesión.
Paso 5: abra la consola de administración de Route53 y vaya a los conjuntos de registros para su zona alojada (nombre de dominio)
- Seleccione la Zona alojada (nombre de dominio) que utilizó cuando creó su cubo. Desde que denominé mi cubo "url-redirect-example.vivekmchawla.com", voy a seleccionar la zona hospedada vivekmchawla.com.
- Haga clic en el botón "Ir a conjuntos de registros".
Paso 6: haz clic en el botón "Crear conjunto de registros"
Al hacer clic en "Crear conjunto de registros" se abrirá la ventana Crear conjunto de registros en el lado derecho de la consola de administración de Route53.
Paso 7: crea un conjunto de registros CNAME
En el campo Nombre, ingrese la parte de nombre de host de la URL que utilizó al nombrar su segmento S3. La "porción de nombre de host" de la URL lo es todo a la IZQUIERDA del nombre de su Zona de alojamiento. Llamé a mi cubo S3 "url-redirect-example.vivekmchawla.com", y mi Zona de alojamiento es "vivekmchawla.com", por lo que la parte de nombre de host que necesito ingresar es "url-redirect-example".
Seleccione "CNAME - Nombre canónico" para el tipo de este conjunto de registros.
Para el valor, pegue en la URL del punto final del segmento S3 que creamos en el paso 3.
Haga clic en el botón "Crear conjunto de registros". Suponiendo que no hay errores, ahora podrá ver un nuevo registro CNAME en la lista de conjuntos de registros de su zona de alojamiento.
Paso 8: prueba tu nueva redirección URL
Abra una nueva pestaña del navegador y escriba la URL que acabamos de configurar. Para mí, eso es http://url-redirect-example.vivekmchawla.com . Si todo funcionó bien, debe enviarlo directamente a la página de inicio de sesión de AWS.
Debido a que usamos el alias de myaccount.signin.aws.amazon.com
como la URL de destino de nuestro redireccionamiento, Amazon sabe exactamente a qué cuenta estamos tratando de acceder y nos lleva directamente allí. Esto puede ser muy útil si desea proporcionar un enlace de inicio de sesión de AWS corto, limpio y de marca a empleados o contratistas.
Conclusiones
Personalmente, me encantan los diversos servicios de AWS, pero si ha decidido migrar la administración de DNS a Amazon Route 53, la falta de un sencillo reenvío de URL puede ser frustrante. Espero que esta guía ayude a facilitar un poco más la configuración del reenvío de URL para sus Zonas de alojamiento.
Si desea obtener más información, consulte las siguientes páginas del sitio de documentación de AWS.
- Ejemplo: configurar un sitio web estático usando un dominio personalizado
- Configurar un segmento para el alojamiento de sitios web
- Crear un dominio que usa la ruta 53
- Crear, cambiar y eliminar registros de recursos
¡Aclamaciones!
Pude usar nginx para manejar la redirección 301 a la página de inicio de sesión de Aws.
Vaya a su carpeta nginx conf (en mi caso es /etc/nginx/sites-available
en la que creo un enlace simbólico a /etc/nginx/sites-enabled
para los archivos conf habilitados).
A continuación, agregue una ruta de redirección
server {
listen 80;
server_name aws.example.com;
return 301 https://myaccount.signin.aws.amazon.com/console;
}
Si está usando nginx, lo más probable es que tenga bloques de servidores adicionales (hosts virtuales en terminología de apache) para manejar su apex de zona (example.com) o como lo haya configurado. Asegúrese de tener uno de ellos configurado para ser su servidor predeterminado.
server {
listen 80 default_server;
server_name example.com;
# rest of config ...
}
En la Ruta 53, agregue un A record
para aws.example.com
y establezca el valor en la misma IP utilizada para su ápex de zona.
Si todavía tiene problemas con el enfoque simple, cree un depósito vacío y luego Redirect all requests to another host name
en Alojamiento web estático en propiedades a través de la consola. Asegúrese de haber establecido 2 registros A en la ruta 53, uno para final-destination.com
y otro para redirect-to.final-destination.com
. La configuración de cada uno de estos será idéntica, pero el nombre será diferente, por lo que coincidirá con los nombres que establezca para sus cubos / URL.