2012-04-05 13 views
5

Me di cuenta de que podía alojar un sitio completo en S3 (html, js, css, etc.) y aún así tenerlo dinámico al comunicarme de forma asíncrona con una base de datos (en EC2 para mí) en la carga de la página. Aunque el archivo index.html está en S3, puedo permitir que las solicitudes de origen cruzado tengan un sitio "dinámico".Alojando un sitio dinámico en S3 mediante solicitud de origen cruzado asincrónico

Me pregunto si la gente ha hecho esto y si hay algunas advertencias de seguridad que debo tener en cuenta?

Para mí, esta es una arquitectura del lado del servidor extremadamente escalable (¡y barata!). Mi servidor nunca tiene que enviar una sola línea de html. La única carga en él es enviar y recibir fragmentos de JSON. También hace que sea muy sencillo alternar un indicador "estático" si mi servidor está bajo mucha carga y simplemente sirve todo desde S3.

+0

Aparentemente algunas personas (desde esta semana, yo mismo incluido :) han venido con esta idea. http://www.allthingsdistributed.com/2011/08/Jekyll-amazon-s3.html http://davidvaldman.com/post/20588533081/s3dynamiccors El único problema que puedo pensar es si necesita cambie la plantilla que se utiliza para representar su contenido (por ejemplo, si el dominio bajo el cual se sirven sus archivos estáticos cambia). Uno necesitaría alguna herramienta de actualización masiva para esto, y su sitio no tendría un diseño consistente hasta que la actualización esté completa. Todavía me pregunto más inconvenientes de este enfoque. – primroot

Respuesta

1

Los sitios estáticos en S3 son fáciles y la adición del soporte CloudFront CDN es muy fácil.

Porque las calificaciones entre dominios se basan en la tupla {dominio, protocolo, puerto} por lo que las consideraciones de dominio cruzado entran en juego.

Sin embargo, se aplican las soluciones estándar de dominio cruzado.

técnicas Ejemplo I han utilizado para comunicarse entre dominios a través de marco flotante o de otra manera:

0) jsonp

1) Access-Control-Allow-Origin:

2) el establecimiento de document.domain para permitir la comunicación

3) window.postMessage

Para alojar recursos estáticos en S3, JSONP es genial, pero probablemente entre en juego cuando se trata de su sitio web fuera de S3 y no de los activos (mientras que aquí, su sitio web es S3 y su comunicación a otro servidor).

Access-Control-Allow-Origin le ofrece todos los navegadores modernos y le permite hablar de forma segura o no de forma segura entre dominios. IE propuso y admite un estándar diferente (y más seguro), pero se espera que admita CORS en IE10.

Esta es mi opinión, pero vaya a la ruta CORS si está codificando para navegadores modernos.

+0

una nota importante, jsonp no coincide con el mismo dominio ajax en términos de rendimiento (fuente: http: //jsperf.com/ajax-jsonp-vs-ajax-json) –

Cuestiones relacionadas