En nuestro blog post de hoy te contamos cómo hemos conseguido mover con éxito instancias de Drupal a Amazon Web Services para lograr una mayor seguridad y escalabilidad en un ecommerce de un importante cliente retail.
Nuestro cliente
Nuestro cliente es una multinacional, minorista de moda de lujo, con miles de empleados ubicados en diferentes países.
Sus necesidades
En la colección de requisitos iniales se nos indicaron las siguientes necesidades:
- Construcción de su portal interno con Drupal 8.7
- Contar con un «staging environment»
- Tener un «live environment»
- Acceder a los servidores del front (servidores web) a través de ssh
- Ganar estabilidad y escalabilidad
- Hacer que el entorno sea seguro y protegido
- Enfoque en la plataforma
Además también se especificaron requerimientos PHP / Drupal tales como:
- PHP common (meta-package name: php7.2-common)
- MySQL (package name: php7.2-mysql)
- XML (php7.2-xml)
- GD image library (php7.2-gd)
- JSON (php7.2-json)
- cURL (php7.2-curl)
- Mbstring (php7.2-mbstring)
- Zip (php7.2-zip)
- FPM (php7.2-fpm)
- Composer
- Drush
- Nodejs
- GIT (just for Staging)
Nuestra propuesta basada en Drupal
Nuestra propuesta se ha basado en la idea de proporcionar Drupal como PaaS- Plataforma como un servicio, para que el cliente se centre sólo en el verdadero negocio principal: el portal interno. El resultado de este approach es que nuestro cliente se olvide de las limitaciones y problemas de infraestructura y se centre en Drupal.
La forma más efectiva de tener Drupal como una PaaS es AWS Elastic Beanstalk.
Configuración de Beanstalk
Nuestra propuesta ha sido considerar el siguiente setup de Beanstalk:
Servicio | Cantidad | Descripción |
AWS Elastic Beanstalk | 2 | Elastic Bean PHP for live Elastic Bean PHP for staging |
Amazon EC2 | 3 | 2 web servers on T2.Medium instances for live 1 web server on T2.Medium instance for staging |
Amazon RDS | 2 | Multi A-Z configuration, RDS db.T3.Medium MySQL with 20 GBs for live Multi A-Z configuration, RDS db.T3.Medium MySQL with 20 GBs for staging |
Elastic Load Balancer | 1 | High availability for production (estimating 50 GBs per month) |
Amazon Elastic File System | 2 | 50 Gbs for live 50 Gbs for staging |
Autoscaling | 1 | Autoscaling service |
Actividades
A continuación os mostramos una lista de las principales macroactividades que llevamos a cabo para tener una adecuada puesta en escena de Drupal / live environment en AWS.
- Lanzamiento de un instancia DB en Amazon RDS
- Lanzamiento de un Elastic Beanstalk Environment
- Configuración de Ajustes de Seguridad y Environment Properties
- Configuración y Deploy the Application
- Instalación Drupal
- Actualización configuración Drupal y eliminación de Accesos Restringidos
- Cleanup
- Habilitar el Elastic Beanstalk Command Line Interface (EB CLI)
- Instalación de los módulos PHP necesarios
- Configuración del custom domain name
- Habilitar https
Drupal en Beanstalk
Tener una aplicación que funciona como un PaaS en Elastic Beans necesita un pequeño cambio en los procedimientos habituales de mantenimiento. De hecho, con los Elastic Beans cada vez que se necesita actualizar la aplicación – en este caso Drupal – tenemos dos opciones
- crear y subir a la consola de Elastic Beanstalk un archivo zip con las correcciones necesarias.
- usar la línea de comando (EB CLI) para crear, configurar y desplegar.
Teniendo en cuenta el conjunto de habilidades de nuestro equipo, decidimos apostar por la última opción.
Los resultados
Aplicación
El portal de Drupal está funcionando sin problemas desde que se ha proporcionado como PaaS.
Escalabilidad y estabilidad
El cliente ya no se enfrenta al problema que solía tener con el pico de acceso, ya que el servicio es auto-escalable. El portal es estable y las limitaciones de infraestructura ya no son un problema.
Seguridad
Toda la infraestructura es totalmente segura gracias a las normas de seguridad del AWS. Los roles de acceso están bien definidos y las políticas son restrictivas pero flexibles. Por supuesto, como mejores prácticas, Drupal debe ser actualizado constantemente de acuerdo a sus correcciones de seguridad.
Foco en Drupal
Ahora el cliente es libre de centrarse en el desarrollo de nuevas características para su portal interno olvidándose de las limitaciones de infraestructura.

CEO at Orienteed.