Magento en Cloud: cómo implementarlo en la nube de AWS y Google Cloud

Magento cloud

Magento en Cloud: cómo implementarlo en la nube de AWS y Google Cloud

Magento 2 es la versión más reciente de la plataforma de comercio electrónico Magento. Se trata de una plataforma robusta y potente que puede ayudar a las empresas a construir y gestionar tiendas en línea exitosas y escalables. Pero, ¿qué mejoras ofrece y como implementar Magento cloud? 

Magento Cloud: funcionamiento y beneficios

La plataforma de Magento 2 en cloud se compone de diversos componentes principales y opcionales, que se detallan a continuación:

  • Un servidor web compatible con aplicaciones basadas en PHP, como Apache o nginx.
  • Un servidor de base de datos MySQL.

Además, tanto Magento Open Source como Magento Commerce ofrecen componentes opcionales, como:

  • Un sistema de almacenamiento en caché para las páginas, como Redis o Varnish.
  • Un sistema de almacenamiento de sesiones, como Redis o Memcached.

Por otro lado, solo Magento Commerce incluye componentes opcionales exclusivos, tales como:

  • Un motor de búsqueda, como Apache Solr o Elasticsearch.
  • Un sistema de colas de mensajes, como RabbitMQ.
  • Varios servidores de bases de datos para mejorar la escalabilidad.

En conjunto, estos componentes contribuyen a ofrecer una experiencia de comercio electrónico rápida, confiable y escalable para los clientes que utilizan Magento 2 en cloud.

La arquitectura de Magento 2 se basa en una comunicación entre un servidor web y un servidor de base de datos, además de incluir una caché para la información de la sesión y de la página. Esta cuenta con los mismos elementos que las implementaciones de código abierto (servidor web, caché de página y sesión, y servidor de base de datos), pero además incluye un servidor de búsqueda y una cola de mensajes.

Magento Cloud: Amazon Web Services (AWS)

Para aquellos clientes que tengan como proveedor en la nube a Amazon Web Services (AWS), se recomienda para implementar Magento en cloud el módulo de Terraform. Terraform es un sistema de gestión de contenido de comercio electrónico de código abierto en la nube AWS.

Este módulo implementa un clúster flexible, escalable y rentable de Magento 2 en cloud al automatizar las tareas de configuración e implementación. El módulo crea un clúster que ejecuta la versión 2.4.3 o posterior de Magento 2.

Este Partner Solution configura lo siguiente:

  • Una arquitectura altamente disponible que se extiende por dos Zonas de Disponibilidad.
  • Una Red Privada Virtual (VPC) configurada con subredes públicas y privadas, según las mejores prácticas de AWS, para proporcionarle su propia red virtual en AWS.

En las subredes públicas:

  • Puertas de enlace de traducción de direcciones de red (NAT) gestionadas para permitir el acceso a Internet saliente para los recursos en las subredes privadas.
  • Servidores bastión, ubicados en un grupo de Auto Scaling, para proporcionar acceso SSH seguro a los servidores web de Magento 2.

En las subredes privadas:

  • Instancias de caché de Varnish como proxy inverso HTTP para distribuir el tráfico en el grupo de Auto Scaling de instancias de Magento.
  • Instancias del servidor web de Magento para servir el contenido web de Magento 2.
  • Amazon OpenSearch para buscar en el catálogo de Magento 2.
  • Un clúster de Amazon ElastiCache con el motor de caché Redis.
  • Amazon Relational Database Service (Amazon RDS) para una instancia de MySQL o Aurora MySQL.
  • Elastic Load Balancing, ubicado en un grupo de Auto Scaling de AWS, para distribuir el tráfico entre las instancias de Varnish.
  • Amazon CloudFront para la entrega de contenido.
  • AWS Secrets Manager para reemplazar las credenciales codificadas en el código, incluidas las contraseñas, con una llamada de API.
  • Amazon Simple Email Service (Amazon SES), una plataforma de correo electrónico para enviar y recibir correos electrónicos utilizando sus propias direcciones y dominios de correo electrónico.
  • Amazon Simple Storage Service (Amazon S3) para almacenar archivos de medios compartidos.

Magento Cloud: Google Cloud

Existen varias opciones de configuración de implementación disponibles para Magento 2 en cloud a través de Google Cloud. Dependiendo de tus necesidades de implementación y administración, puedes optar por implementar la plataforma principal de Magento 2 en el entorno flexible de App Engine, GKE o Compute Engine.

Si estás buscando una implementación estándar de Magento 2 en cloud sin complementos o extensiones de Magento Marketplace, el entorno flexible de App Engine es una buena opción.

Por otro lado, para implementaciones con complementos o extensiones de Magento Marketplace, es recomendable utilizar GKE o Compute Engine.

Magento Cloud: Google Cloud usando App Engine 

Para implementar Magento 2 en Google Cloud, se puede optar por la arquitectura que se muestra a continuación:

La aplicación web se despliega en el entorno flexible de App Engine, mientras que Cloud Load Balancing dirige las solicitudes entrantes a la aplicación de App Engine. Los componentes de caché, búsqueda y mensajería se implementan en Compute Engine, mientras que la base de datos se aloja en una instancia de Compute Engine.

Para implementar en el entorno flexible de App Engine en Magento cloud, es necesario empaquetar la aplicación web principal de Magento 2 en un contenedor de Docker y configurar el entorno de ejecución personalizado. Al usar el entorno flexible de App Engine, se deben crear dos subredes de nube privada virtual (VPC) en el proyecto, una para la aplicación web y otra para los componentes de caché, búsqueda y mensajería.

Es posible configurar la implementación de Magento 2 en cloud para una alta disponibilidad, desplegando los componentes de caché, búsqueda y mensajería en varias zonas en la misma región que la aplicación web y configurando una réplica de conmutación por error en otra zona dentro de la misma región.

Magento Cloud: Google Cloud usando GKE

En esta arquitectura de implementación de Magento 2 en Google Cloud, se utilizan diferentes servicios para alojar y ejecutar los componentes de la aplicación. La aplicación web y los componentes de caché se alojan en Google Kubernetes Engine (GKE) y se utiliza Cloud Load Balancing para dirigir las solicitudes entrantes. Los componentes de búsqueda y mensajería se implementan en Compute Engine y la base de datos se aloja en una instancia de Compute Engine.

Para implementar Magento cloud en GKE, es necesario empaquetar los componentes en contenedores de Docker individuales y crear manifiestos de Kubernetes para describir los pods y servicios a implementar. Puedes utilizar Cloud Build para automatizar la compilación y empaquetado de los contenedores.

Es necesario crear dos subredes de VPC en el proyecto: la primera para la aplicación web y los componentes de caché en GKE, y la segunda para los componentes de búsqueda y mensajería en Compute Engine con reglas de firewall y direcciones IP internas para mayor seguridad.

Para lograr alta disponibilidad, se puede implementar el clúster de GKE en varias zonas dentro de la misma región y utilizar el escalador automático de clústeres de GKE para cambiar el tamaño según los recursos disponibles.

Además, se pueden implementar los componentes de búsqueda y mensajería en varias zonas y configurar la instancia de Compute Engine para usar una réplica de conmutación por error en otra zona de la misma región.

Magento Cloud: Compute Engine

En este enfoque de implementación de Magento 2 en cloud, los componentes se despliegan de la siguiente manera:

  • Los componentes de caché, búsqueda y mensajería se ejecutan en VM de Compute Engine.
  • Las solicitudes entrantes a la aplicación web se dirigen a las VM de Compute Engine mediante Cloud Load Balancing.
  • La base de datos reside en una instancia de Compute Engine.

Para implementar Magento 2 a través de Compute Engine, se puede seguir la Guía de instalación de Magento. Al utilizar este enfoque, se deben crear dos subredes de VPC:

La primera subred contiene la aplicación web y los componentes de caché. La segunda subred aloja los componentes de búsqueda y mensajería. Los componentes de búsqueda y mensajería se pueden implementar mediante VM de Compute Engine con reglas de firewall y direcciones IP internas, que permiten el acceso solo desde la implementación de la aplicación web de Compute Engine. Esta configuración agrega una capa adicional de seguridad entre la aplicación y los componentes de backend.