Configurar CDN para WordPress con Amazon Web Service y W3 Total Cache

Últimamente siempre ando buscando un poco más de rapidez de carga en mis páginas para que Google me vea con buenos ojos y me posicione mejor. Configurar un servicio de CDN para WordPress con Amazon Web Service y W3 Total Cache era una de las soluciones que había pensado desde hace un tiempo, pero siempre utilizo el plugin WP Super Cache y me daba pena tener que quitarlo. Aun así al final me he decidido y te lo cuento con todo lujo de detalles.

Configuración CDN de Amazon Web Service

Imagino que si estás aquí es porque ya sabes lo que es una CDN (una red de distribución de contenido); pues hoy voy a contarte varios de los servicios que ofrece Amazon que van a permitir distribuir el contenido de mi página desde diversos lugares del mundo, con lo que cuando la visiten, Amazon la entregará desde sus servidores remotos más cercanos al solicitante. A lo mejor esto solo no es una gran ventaja, pero sumado a que ofreces los datos en paralelo, la alta velocidad de transferencia de los servidores de Amazon y una descarga en los recursos de tu servidor hacen que este servicio sea interesante.

La primera vez que te registras tienes un año gratis para probar, con algunas limitaciones en los servicios y no pasar de un tráfico mensual; pero los límites, a no ser que tu página reciba muchísimas visitas diarias, no creo que los sobrepases. Cuando pase el año vas a pagar según el trafico que tenga tu web y por almacenamiento, y no son precios caros. En esta página tienes toda la información de los precios y lo que te ofrece el servicio gratuito durante un año.

Hay gente que piensa que no sale rentable pagar por estos servicios, sobre todo para páginas con poco tráfico. Yo no estoy seguro de que salga rentable pero me apetecía probarlo y cuando pase el año, con todos los datos, me lo pensaré.




Una vez dicho esto y con una cuenta ya creada en Amazon, nos dirigimos a ella y lo primero que vamos a hacer es crear un bucket para el almacenamiento de los datos. En el menú de arriba a la izquierda en “Services” nos aparece la consola aws con todos los servicios que ofrece, entramos en S3. Este servicio es un almacenamiento seguro donde alojaremos el contenido de la página que ofreceremos desde sus servidores.

Instalar un bucket con S3 de Amazon

Pinchamos en crear bucket.

Botón crear Bucket

Ahora ponemos el nombre que queramos darle al bucket y seleccionamos la zona US Standard. Por tema de latencia y de costes, es la zona donde estarán alojados los archivos de la página. Según zonas, Amazon tiene unos precios y esta zona es la más barata. Imagino que luego estudiando la región desde donde llegan más solicitudes de petición de la página podremos optimizar al máximo los costes. Si te has leído la página que te pasé antes de los precios, está toda la información.

Pantalla crear un bucket en amazon

Ya tenemos un disco duro en la nube con amazon, ahora vamos a por CloudFront que es un servicio web de entrega de contenidos con muy baja latencia y alta velocidad en transferencia de datos. CloudFront cacheará los archivos de S3 y los pondrá a disposición de los servidores remotos oportunos y tener así una menor latencia.

Vamos otra vez a Services y pinchamos en CloudFront.

Menú Amazon Web Service

Le damos a Crear nueva distribución.

Opción crear distribución en Amazon Web Service

Y creamos una distribución web.

Instalar distribución web en amazon

Aquí pinchamos en la casilla “Origin Domain Name” y seleccionamos el bucket que acabamos de crear. Origin ID se rellena solo. Seleccionamos “Create a new identity” y “Yes, update bucket policy” para dar seguridad a la cosa y lo demás lo dejamos como está.

Rellenar datos de la distribución de CloudFront

Apartado de datos para distribución de CloudFront de amazon

Más abajo, en Distribution Settings, en el apartado “Price Class” nos da la opción de minimizar costes restringiendo la entrega de contenido en distintas regiones; yo de momento dejo la que viene por defecto, que da acceso a todas las regiones, pero iré estudiando datos y probando otras opciones, como es gratis…

En “Alternate Domain Names (CNAMEs)” tenemos que poner uno o varios subdominios nuestros que tendremos que crear en el cpanel de nuestro hosting. Estos tendrán que apuntar a la dirección web que nos dé Amazon cuando creemos la distribución, que tendrá la estructura xxxxxxxx.cloudfront.net. Como es una url un poco fea, creamos varios subdominios de la estructura cdn.midominio.com para que cuando aparezca la dirección en el navegador sea con una url de nuestro dominio.

En tu cpanel buscas la opción “Editor de zona DNS avanzado” y vas a crear un registro CNAME en un dominio tuyo; le pones el nombre que quieras, tipo cdn.midominio.com, si te aparece TTL seleccions 14400 y en la casilla CNAME pones la url que te ha dado amazon. Así yo he creado tres.

Pantalla final para crear una distribución en amazon

Le das a crear distribución y tarda en hacerse efectivo un cuarto de hora, y no hay otra que esperar.

Mientras, podemos ir a Servicios otra vez y pinchar en IAM. Aquí creamos un usuario con unas credenciales para dar acceso de forma segura a nuestra consola aws.

Imagen de la consola de amazon indicando pinchar en IAM

Ahora pincha en Usuarios.

Crear un usuario en IAM de amazon

Si ya tienes un usuario de cuando has creado la cuenta, pincha sobre él, y si no, pincha en Crear nuevo usuario.

Pantalla para crear nuevo usuario o seleccionar el nuestro en IAM de amazon

Crear un usuario nuevo es muy sencillo, pon el nombre que quieras y le das a Crear, abajo a la derecha.

Pantalla añadir nombre de usuario en IAM de amazon

En la siguiente pantalla, pincha en “Show User Security Credentials” y te aparecerá el ID y la clave, apúntalas para utilizarlas luego en la configuración de W3 Total Cache. Ahora abajo a la derecha cierra la ventana.

Pantalla para ver las credenciales del nuevo usuario de IAM de amazon

 

Y ahora sí, pincha sobre el usuario que has creado y un poquito más abajo tienes los permisos; pincha en “Attach User Policy”. Aparece un desplegable donde hay que seleccionar CloudFront Full Access y casi abajo del todo Amazon S3 Full Access. Estas reglas dan permiso al usuario para tener acceso solo al S3 y al CloudFront, restringiendo el acceso a cualquier otro servicio de nuestra consola aws.

Seleccionar CloudFront full access en amazon

Hasta aquí la configuración del CDN, ahora vamos a WordPress.

Configuración W3 Total Cache y CDN para WordPress

Este plugin va a hacer que puedas sincronizar WordPress con el CDN de Amazon, mediante el usuario que acabas de crear. Entra en el menú de la izquierda “Performance” y “General Settings”.

Opciones generales en W3 Total Cache

En la siguiente pantalla están todos los servicios que nos ofrece W3 Total Cache, yo he probado el Minify y no me ha funcionado, es posible que el método de caché en mi servidor no sea ese y sea memcached, pero no se puede seleccionar y lo he desactivado y he activado el Better WordPress Minify, que me funciona de maravilla.

En CDN hay que seleccionar Amazon CloudFront y salvar ajustes. Las demás opciones las dejas como están y pinchas en CDN en el menú de la izquierda.

Opciones generales de w3 total cache parte 1

 

Opciones generales de w3 total cache parte 2

 

Opciones generales de w3 total cache parte 3

Aquí lo dejas todo como está en las imágenes, y en “Configuration” hay que rellenar el recuadro rojo. Pon las claves que te ha dado al crear el usuario en IAM, después el nombre del Bucket que has creado con S3 y, a continuación, pide la url que te ha dado CloudFront al crear la distribución. Si no la tienes puedes ir a la consola aws de Amazon, pinchar en Servicios > CloudFront, y en Domain Name lo tienes. Por último, pon los subdominios que has creado en el panel de nuestro hosting.

Pincha para que realice un test S3 y, si todo ha ido bien, saldrá un aprobado en verde; si algo ha fallado, saldrá un mensaje en rojo. Si es así, revisa la información de nuevo por si se te ha escapado algo.

Pincha para salvar los ajustes.

Opciones del cdn de w3 total cache

Opciones configuración cdn w3 total cache parte 2

Opciones configuración CDN W3 Total Cache parte 3

Te comento que este plugin tiene muchas más posibilidades mediante una buena configuración que yo no he explicado aquí. Además, si a ti te puede funcionar el Minify de W3 Total Cache, no vale la pena instalar otro plugin para lo mismo y gastar recursos. Si quieres puedes buscar más información sobre su configuración, yo en breve igual me pongo y lo explico en otro post 😉

Si te puedo ayudar en algo, no tienes más que decírmelo.

Comparte si te ha gustadoShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Sobre Juanjo

Después de la electrónica, mi segunda pasión es la web 2.0 así que me verás y me leerás por aquí a menudo. Si tú quieres.