Despliegue del website en Amazon AWS

Estoy en el process de trasladar mi website a Amazon AWS, que planteó una pregunta esencial con respecto a la implementación.

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 repository 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 cargar el contenido estático y el código al mismo time para que quede completamente integrado. Digamos que quiero actualizar el logotipo y el layout 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 layout no se haya desplegado.

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

Espero que lo entiendas, ¡gracias!

Use un tercer paso para realizar sus deployments, como un Jenkins o un Springloops o tal vez un rake.

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

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

Esto es especialmente importante porque las personas almacenarán en caching los files antiguos en su memory caching del browser y obtendrán las versiones anteriores.

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

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

Abro mi herramienta de desarrollo aquí si estás 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.