Actualmente tenemos un servidor en Amazon EC2 t2.large en donde almacenamos los sitios web de múltiples clientes a los cuales les hemos desarrollado principalmente WordPress los cuales tienen una cantidad considerable de visitas mensuales.

El problema está en que actualmente van 2 meses que nos llega la factura por $150 USD y por el problema actual del coronavirus, tenemos que recortar presupuesto si o si lo más posible.

Platicando con nuestros colegas de BWE Marketing les propuse migrar a un servidor nuevo optimizado y corriendo con Docker para reducir costes de procesamiento y automatizar el proceso de despliegue de nuestros desarrollos.

¿Cómo lo logramos?

A continuación te comparto los procedimientos que hicimos para reducir costes y optimizar el rendimiento de nuestro servidor en Amazon EC2.

Instalamos Docker

No había tenido experiencia previa instalando entornos de producción con Docker pero mi experiencia rompiendo cosas y testeando en entornos de prueba me ayudo demasiado a desplegar un servidor. Nota: si no tienes experiencia en algo y te gustaría aprender más sobre esa cosa, práctica, lee la documentación y adéntrate tanto en ese tema y pronto te volverás un experto.

¿Cuál fueron las tecnologías que instalamos?

    • Docker
    • Nginx (como proxy)
    • Apache2 (como backend)
    • PHP 7.2, 7.3 y 7.4 (por varios sistemas que tenemos)
    • VestaCP (para administrar mejor el servidor)
    • MariaDB
    • Node
    • Exim4 (servidor de correo, aunque lo cambiaremos en unos días)

¿Qué imagen utilizamos para Docker?

En el Hub de Docker encontramos una imagen completa para VestaCP la cual nos ayudó a ahorrar mucho tiempo y tener una instalación limpia y segura. Puedes ver la imagen dando clic aquí.

¿Qué tipo de instancia utilizamos?

Anteriormente estábamos utilizando t3.medium y el objetivo es utilizar t2.medium para reducir significamente costes.

El objetivo de utilizar t3.medium era debido a que teníamos procesos que teníamos que correr y consumían algo de CPU pero ahora esos procesos los hemos migrado a NodeJS y hemos notado un bajón de recursos increible.

Utilizamos CloudFlare

Con fines de reducir el consumo de la banda ancha y aumentar el rendimiento del servidor decidimos integrar CloudFlare por los siguientes motivos:

    • Minificación de assets (reduce la carga del sitio web)
    • CDN de calidad (con el objetivo de ahorrar tiempo y dinero y por
    • Seguridad (esto lo tenemos también en el servidor pero con esto delegamos parte de la seguridad a CloudFlare)
    • Caché

Eliminamos almacenamiento no necesario

Un problema que identificamos fue que estábamos almacenando assets innecesarios, dimos una revisión manual para los sitios que teníamos alojados en el antiguo servidor y eliminamos css, imágenes, vídeos, archivos php, html, etc.

Esto también englobo desinstalar plugins que no eran necesarios para los sitios web, en realidad realizamos una revisión minuciosa.

Optimizamos nginx y apache

Después de limpiar el servidor de archivos innecesarios tenemos que optimizar lo que más demanda recursos en el servidor y es por eso que reducimos la memoria que utilizaban estos ambos gigantes.

Hasta aquí creemos que realmente esto bajará los costes demasiado y estaremos monitoreando los primeros meses para ver como llega la factura y vamos a actualizar este post con la información para avalar lo que realizamos.