2011-09-10 15 views
5

Estoy en el proceso de mover mi sitio web a Amazon AWS, lo que plantea una pregunta esencial con respecto a la implementación.Despliegue del sitio web en Amazon AWS

Estoy ejecutando una instancia de S3 y EC2. La instancia de S3 sirve todo el contenido estático como imágenes, JavaScript y CSS. En la instancia de EC2, sin embargo, he iniciado un repositorio de Git en/var/www/para poder hacer un "git pull" cuando quiero actualizar mi base de código.

Parece que no puedo encontrar una solución en cuanto a cómo me aseguro de que cargue el contenido estático y el código al mismo tiempo para que quede completamente integrado. Digamos que quiero actualizar el logotipo y el diseño de la página principal. Cuando subo logo.png a S3, mi base de código actual en EC2 apuntará automáticamente al nuevo logotipo aunque el nuevo diseño no se haya desplegado.

¿Debo subir logo.png con un nuevo nombre (por ejemplo, logo-2.png) en S3, actualizar todas las referencias a logo.png en mi HTML a logo-2.png y luego implementarlo?

Espero que lo entiendas, ¡gracias!

Respuesta

1

Utiliza un tercer paso para realizar tus despliegues, como un Jenkins o un Springloops o tal vez un rastrillo.

De esta forma, ambos pasos de creación se pueden activar simultáneamente desde una confirmación.

1

Sí, definitivamente debe nombrar sus archivos S3 de alguna manera, por ejemplo, mis archivos tienen el hash actual de cometer git: minified..css. Independientemente de la herramienta que esté utilizando para construir, haga primero el paso S3 y luego el código de la aplicación.

Esto es especialmente importante porque las personas almacenarán en caché los archivos antiguos en la memoria caché de su navegador y obtendrán las versiones anteriores.

No espacio de nombres de todos mis archivos como logo.gif. Ese archivo nunca cambia y si alguna vez lo hizo, agregaría manualmente logo.gif? V = 1

Para hacer las cosas anteriores, acabo de configurar un script de nodo simple que usa Rsync y Knox.

Aquí abro mi dev tool si está interesado. Es bastante específico para mi caso de uso, pero puedes distinguirlo.

También recomiendo usar cloudfront para extraer de su S3. Cloudfront es rápido y solo demora quince minutos en configurarse. Por último, no te olvides de gzip y el uso de encabezados caducados en estos activos.

Cuestiones relacionadas