Alojamiento estático en Amazon S3: configuración de DNS


117

Estoy trabajando en una pequeña aplicación web (toda del lado del cliente) y quiero alojarla en Amazon S3. Encontré varias guías sobre esto y logré crearme un depósito (con el mismo nombre que mi dominio), configurarlo como un sitio web y cargar contenido.

Donde estoy luchando, y donde toda la documentación comienza a volverse un poco vaga, es cómo configurar correctamente mi DNS.

Todo lo que mi registrador ( 123-reg ) pudo sugerir fue el reenvío web, lo que me da mydomain.com.s3.amazonaws.com

¿Qué tengo que configurar y dónde (es decir, 123-reg / Amazon) puedo obtener una URL limpia?


Desde que se hizo esta pregunta, las cosas han cambiado. Ahora es posible alojar su sitio en S # con un dominio raíz, ver por recorrido aquí: docs.aws.amazon.com/AmazonS3/latest/dev/...
Pors

Respuestas:


248

Parece que ya has hecho la mayor parte del trabajo. Para mayor claridad, repasaré esos pasos nuevamente solo para asegurarme de que esté configurado correctamente:

  1. Cree un depósito s3 utilizando su nombre de dominio como el nombre del depósito (el nombre del depósito debe ser www.example.com si desea que su sitio sea example.com o www.example.com)

  2. Sube tu contenido al depósito s3. Elija un nombre coherente para los archivos de índice de su sitio web (generalmente index.html). También puede cargar una página personalizada para los errores 404 No encontrado. Llame a este 404.html. Otorgue permisos de lectura a todos los archivos de su sitio web para que el público pueda verlos. No otorgue ningún permiso adicional al depósito, solo los archivos que contiene.

  3. Configure su depósito como un sitio web. Con la consola de AWS ( https://console.aws.amazon.com/s3/ ) puede seleccionar su depósito, hacer clic en propiedades y luego seleccionar la pestaña "Sitio web". Haga clic en habilitado y configure su documento de índice en "index.html" y su documento de error en "404.html". También deberá configurar su depósito con permisos de acceso para permitir el acceso a través de la web ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html )

  4. Tome nota de la URL "Endpoint" en la pestaña de configuración del sitio web. Aquí es donde vive su sitio web. Puede abrir el enlace en una nueva ventana y debería ver su sitio web tal como se verá. Haga clic y asegúrese de que todo funcione como se esperaba.

DEBE usar la dirección del punto final en todos los pasos a continuación. El www.example.com.s3.amazonaws.com normal no funcionará; debe usar la versión regional ( http://www.example.com.s3-website-us-east-1.amazonaws.com/ )

Ahora, podemos configurar el DNS para brindarle una URL personalizada y limpia.

Primero, asignaremos www.example.com a su sitio.

Con las herramientas de su proveedor de DNS (123-reg en su caso), debe crear un registro CNAME para asignar www.example.com a www.example.com.s3-website-us-east-1.amazonaws.com

El CNAME es lo único que necesita si solo quiere www.example.com. La mayoría de la gente también quiere que "example.com" funcione, así que necesitamos otro paso.

example.com a menudo se denomina dominio simple o el registro vértice del dominio. La razón por la que es un problema es que no puede ser un CNAME. Los CNAME solo funcionan en subdominios como "www". Esto hace que sea más difícil apuntar a s3.

El enfoque habitual es utilizar un servicio para redirigir automáticamente cualquier solicitud que vaya a example.com para que apunte a www.example.com. Esto luego recogerá su registro CNAME y su sitio será servido desde s3.

El redireccionamiento automático no es posible con un DNS antiguo simple, por lo que debe usar otro servicio. Algunos proveedores de DNS ofrecen este servicio junto con su DNS (godaddy lo hace, amazon route53 no. No estoy seguro acerca de 123-reg).

Si su proveedor de DNS no lo hace, existen algunos servicios gratuitos. Uno que he usado es http://wwwizer.com/naked-domain-redirect ; no requiere ningún registro ni pago.

Para utilizar este tipo de servicio, debe crear un registro "A" de DNS para su dominio simple. Para el servicio wwwizer.com, necesitaría crear un registro A para señalar example.com a 174.129.25.170. ¡Eso es todo!

Entonces, con esta configuración, si un usuario escribe example.com en su navegador, sucedería lo siguiente:

  1. Consulta de DNS: example.com -> 174.129.25.170 (servicio de wwwizer.com)
  2. Solicitud HTTP a 174.129.25.170 para example.com
  3. 174.129.25.170 redirecciona example.com -> www.example.com
  4. Consulta de DNS: www.example.com -> CNAME a www.example.com.s3-website-us-east-1.amazonaws.com
  5. Consulta de DNS: www.example.com.s3-website-us-east-1.amazonaws.com -> apunta a Amazon S3
  6. Amazon S3 ahora atiende la solicitud HTTP para www.example.com

¡Disfrutar!


2
¡Muchas gracias por la claridad de todo eso! Hice los cambios, solo espero a que se abra la puerta adecuada, los dedos cruzados todo funcionará.
Merlin Mason

hmmm, parece que todavía no funciona. Aquí hay una captura de pantalla de la configuración de DNS: cl.ly/CP6U El punto al final parece sospechoso, no lo agregué allí, y poner esa URL en un navegador con el punto al final me da un error no encontrado. Intenté eliminarlo, pero vuelve una vez que lo guardo, e intenté reemplazarlo con un / pero luego obtengo un error no válido. ¿Crees que esto podría ser un problema al final de 123-regs?
Merlin Mason

Hola Merlín, intenté buscar en tu nombre de dominio (wpfill.me) y no veo ninguno de los registros en tu captura de pantalla. ¿123-reg tiene un paso de "publicación" o "confirmación" por separado? No parece que su configuración haya surtido efecto.
secretmike

Hmmm, creo que debe haber un problema con 123-reg, intenté restablecer los registros DNS y esperar 48 horas para que se propague y todavía no me alegro. Luego cambié el alojamiento de DNS a Cloudflare y puse todo en funcionamiento en 20 minutos :) Gracias por tu ayuda, ¡realmente lo agradezco!
Merlin Mason


1

Creo que debe seleccionar todos los documentos en su depósito, hacer clic con el botón derecho y elegir "Hacer público". También debe hacer esto cada vez que algo cambie en el cubo. Luego, por lo general, hago clic con el botón derecho en el depósito, elijo propiedades, selecciono permisos en el panel de la derecha, luego agrego "Todos como" beneficiarios "y luego les doy solo permisos de" lista ". El resto de su artículo es excelente. La parte sobre el dominio simple ayudó resolver mis problemas. También puede hacer que el dominio simple sea redirigido al dominio www dentro de S3 en "Alojamiento de sitios web estáticos". Probablemente sea la forma más fácil. Gracias nuevamente por toda su ayuda.

Tim


3
Este paso manual no es necesario si aplica una política de depósito como se describe anteriormente.
tooluser

1

Actualización 2019

A partir de hoy, la siguiente configuración de DNS me funcionó para que el sitio web estático de AWS S3 funcione:

Configuración de DNS para el mapeo de depósitos


0

Desde la pantalla DNS avanzado en su panel de control 123-reg

  • Comencé haciendo clic en el botón "Restablecer DNS" a la configuración predeterminada de 123-reg.

Esto me dio lo siguiente;

DNS EntryType       PriorityTTLDestination/Target
*                 A                                 81.xx.xx.xx              
@               A                                 81.xx.xx.xx              
@               MX          10               xx0.123-reg.co.uk
@               MX          20               xx1.123-reg.co.uk

  • Luego agregué esta entrada

www          CNAME                    www.example.com.s3-website-us-east-1.amazonaws.com

De su guía de administración de DNS en pdf , dice que el "@ registro" se refiere a "su dominio en su forma más pura sin subdominio", es decir, el dominio simple stackoverflow.com

Pero no menciona qué es el "* registro", asumí que sería para capturar todos los subdominios y pensé que podría anular el registro CNAME, pero este no parece ser el caso.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.