Inicio » Blog

Nuevo tutorial: WordPress en Alta Disponibilidad (Parte II)

 |  Deja un comentario

Seguimos en nuestra dinámica de actualización y refrescamos la alta disponibilidad en WordPress que vimos a priori. En la parte anterior de este tutorial os introdujimos en la Alta Disponibilidad comentando diferentes métodos y servicios de AWS para conseguirla. Ahora propondremos una solución en concreto basándonos en uno de ellos: usar GlusterFS para unificar el contenido de las instancias.

En esta parte del tutorial os explicaremos cómo hacer que nuestra plataforma con WordPress en una sola instancia EC2 y un RDS dé un paso adelante y se transforme en una plataforma en Alta Disponibilidad. Hasta ahora teníamos la siguiente infraestructura:

infraestructure
» Sigue leyendo: Nuevo tutorial: WordPress en Alta Disponibilidad (Parte II)

Nuevo tutorial: WordPress en Alta Disponibilidad (Parte I)

 |  Deja un comentario

Aunque nos gustaría que no fuera así, la realidad es que las cosas fallan de vez en cuando y eso incluye los servidores donde alojamos nuestras aplicaciones. Un problema de conectividad en el Datacenter, un desastre natural o un fallo de hardware en la máquina donde reside, pueden dejar inaccesible nuestro blog. Ya que no podemos predecir el futuro ni evitar los fallos que podrían producirse, vamos a aprovechar las posibilidades de la nube para evitar que nos afecten y seguir funcionando a pesar de ellos: vamos a diseñar nuestra infraestructura asumiendo que habrá fallos para que así nada pueda fallar.

Las ideas clave

Es importante que nuestra plataforma no dependa de ningún componente en concreto para poder funcionar o de lo contrario la caída de este componente conllevará la caída del servicio. Por lo tanto, deberemos identificar los componentes de nuestra plataforma y separarlos de forma que sean lo más independientes posible: si nuestro frontal depende de un servidor de base de datos en particular, entonces toda nuestra aplicación depende de ese servidor, que se convierte en un peligroso punto débil. En cambio, si no dependemos de máquinas específicas, podemos disponer de varias de ellas para cada una de las capas de nuestra aplicación de modo que la caída de una instancia no implicará la caída de la aplicación.

diagram
» Sigue leyendo: Nuevo tutorial: WordPress en Alta Disponibilidad (Parte I)

Arquitectura Cloud 101: La escalabilidad y lo que NO debes hacer

 |  Deja un comentario

Se habla mucho últimamente sobre la escalabilidad, la resistencia y la tolerancia de fallos de plataformas en la nube, pero planificar correctamente la plataforma no es suficiente si las aplicaciones dentro de ella no están diseñadas pensando en el fallo.

An example of scalability in AWS

Esta entrada detalla los errores más comunes cuando se planifica una aplicación a prueba de fallos y escalable y ofrece unos consejos sencillos para evitarlos.

» Sigue leyendo: Arquitectura Cloud 101: La escalabilidad y lo que NO debes hacer

Actualización de Tutorial: CDN con S3 y CloudFront en WordPress

 |  Deja un comentario

En tutoriales anteriores, mejoramos el rendimiento de nuestro WordPress utilizando Elasticache. Siguiendo con la dinámica de actualización de AWS, vamos a renovar nuestro antiguo tutorial de CDN con S3 y CloudFront en WordPress para mostrar qué hay de nuevo en la consola y qué ha cambiado.

Una red de distribución de contenidos (CDN, del inglés Content Delivery Network) consiste en un conjunto de servidores distribuidos por todo el mundo que contienen una copia de nuestro contenido. De este modo, cuando un usuario visita nuestra página recibe en contenido desde el servidor más cercano a su ubicación, reduciendo la distancia y los intermediarios, consiguiendo así una respuesta más rápida.

Para conseguirlo, realizaremos los siguientes cambios en nuestro WordPress de ejemplo:

  • Haremos que nuestras imágenes se almacenen fuera del servidor de WordPress, descargando así a nuestras instancias EC2 del trabajo relacionado con estas y permitiendo a los navegadores descargarlas en paralelo al texto. Para ello crearemos un bucket en Amazon S3.
  • Prepararemos una distribución de Cloudfront que se encargará de cachear nuestras imágenes desde S3 en las ubicaciones de borde (edge locations) que pone Amazon a nuestra disposición (ver infraestructura global).
  • Instalaremos un plugin que se encargará de subir las imágenes de nuestras entradas directamente a S3 y de enlazar a Cloudfront.

A la izquierda observamos un trayecto sin CDN, a la derecha con él
A la izquierda, un usuario estadounidense accediendo directamente a nuestro blog. A la derecha, el mismo usuario accediendo a nuestro contenido a través de CloudFront

» Sigue leyendo: Actualización de Tutorial: CDN con S3 y CloudFront en WordPress

Tutorial: CORS en S3 y CloudFront

 |  Deja un comentario

CORS, o Cross-Origin Resource Sharing, es un mecanismo que permite que un navegador muestre recursos de un dominio que son referenciados desde un dominio distinto. Esto aplica, por ejemplo, a scripts de Javascript enlazados a un servicio externo o, como veremos, a recursos que pertenecen a nuestra aplicación pero se sirven desde un otro dominio, que podría ser una Red de Distribución de Contenidos (CDN).

Por motivos de seguridad y en aplicación del principio de un solo origen, los navegadores pueden bloquear este tipo de referencias externas si se intentan llamar desde el lado del cliente (por ejemplo desde Javascript) y negarse a ejecutar Javascript o a incrustar imágenes de otros dominios. Gracias a CORS, podemos informar al navegador que la interacción entre los dominios es intencionada y segura.

graficocors

Las peticiones y cabeceras HTTP

La implementación de CORS se basa en el uso de peticiones y cabeceras HTTP. Típicamente, el cliente lanzará una petición OPTIONS para determinar las capacidades CORS del dominio secundario y a partir de ese momento incluirá en las peticiones GET, PUT y POST hacia este la cabecera Origin, indicando el dominio principal.

» Sigue leyendo: Tutorial: CORS en S3 y CloudFront