Despliegue Drupal CMS en Oracle Linux con MySQL Database Service

Drupal es uno de los sistemas de gestión de contenido (CMS) más conocidos disponibles. Es gratis y de código abierto, liberado bajo la Licencia Pública de GNU.

Drupal se basa en la pila LAMP y proporciona a los usuarios y empresas una arquitectura ampliable y sólida, esfuerzos de implantación y mantenimiento bajos, así como una gran base de conocimientos dirigida por la comunidad. Su configuración y uso no requieren conocimientos técnicos avanzados. Proporciona la infraestructura para sitios web de todo el mundo, desde blogs personales hasta sitios corporativos, políticos y gubernamentales. Es muy extensible y modular, lo que la hace útil en una gran variedad de escenarios.

Arquitectura

Puede desplegar Drupal en un solo nodo o como parte de una configuración de varios nodos de alta disponibilidad. Esta arquitectura de referencia incluye la automatización de Terraform, que es compatible con ambas configuraciones.

Para obtener una arquitectura de alto nivel de producción, consulte el siguiente diagrama, que ilustra un escenario de varios nodos.

Descripción de drupal-mds-multi.png a continuación
Descripción de la ilustración drupal-mds-multi.png

drupal-mds-multi-oracle.zip

El diagrama anterior ilustra un entorno de aplicación simplificado de alta disponibilidad en OCI, con un enfoque en dos instancias de máquina virtual detrás de un equilibrador de carga. Estas instancias existen en dos dominios de errores distintos de un dominio de disponibilidad. Esta arquitectura utiliza el servicio OCI File Storage; Drupal está instalado en un sistema de archivos de red compartido (NFS). El sistema de archivos existe en una subred privada dedicada con un grupo de seguridad de red (NSG), que permite el acceso al destino de montaje desde todas las instancias.

El siguiente diagrama ilustra una arquitectura de nodo único simple. Consiste en un despliegue ligero, que podría ser adecuado para fines de aprendizaje o servir como prueba de concepto.

Descripción de drupal-mds-single.png a continuación
Descripción de la ilustración drupal-mds-single.png

drupal-mds-single-oracle.zip

Esta arquitectura de nodo único incluye una única instancia de VM y un sistema de base de datos MySQL (MDS) independiente. La instancia se coloca en una subred pública y se puede acceder a ella desde Internet, mientras que MDS se coloca en una subred privada. Las listas de seguridad y las tablas de rutas se utilizan para restringir y enrutar el tráfico.

La arquitectura de varios nodos contiene los siguientes componentes de OCI:
  • Arrendamiento

    Un arrendamiento es una partición segura y aislada que Oracle configura en Oracle Cloud al registrarse para utilizar Oracle Cloud Infrastructure. Puede crear, organizar y administrar sus recursos en Oracle Cloud en su arrendamiento. Un arrendamiento es sinónimo de una compañía u organización.

  • Políticas

    Una política de Oracle Cloud Infrastructure Identity and Access Management especifica quién puede acceder a qué recursos y cómo. El acceso se otorga en el nivel de grupo y compartimento, lo que significa que puede escribir una política que proporcione a un grupo un tipo específico de acceso dentro de un compartimento específico o al arrendamiento.

  • Compartimentos

    Los compartimentos son particiones lógicas entre regiones dentro de un arrendamiento de Oracle Cloud Infrastructure. Utilice compartimentos para organizar los recursos en Oracle Cloud, controlar el acceso a los recursos y definir las cuotas de uso. Para controlar el acceso a los recursos de un compartimento determinado, debe definir políticas que especifiquen quién puede acceder a los recursos y qué acciones pueden realizar.

  • Red virtual en la nube (VCN)

    Uno de sus primeros pasos en OCI es configurar una red virtual en la nube para sus recursos en la nube. Una VCN es una red definida por software que se configura en una región de OCI. Las VCN se pueden segmentar en subredes, que pueden ser específicas de una región o de un dominio de disponibilidad. Tanto las subredes específicas de la región como las específicas del dominio de disponibilidad pueden coexistir en la misma VCN. Una subred puede ser pública o privada.

  • Dominios de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, que ofrecen tolerancia a los fallos. Los dominios de disponibilidad no comparten una infraestructura como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, es poco probable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.

  • equilibrador de carga

    El servicio Oracle Cloud Infrastructure Load Balancing proporciona una distribución automatizada de tráfico desde un único punto de entrada a varios servidores del backend.

  • Instancia informática

    Oracle Cloud Infrastructure Compute permite aprovisionar y gestionar hosts de recursos informáticos. Puede iniciar instancias informáticas con unidades que cumplan los requisitos de recursos (CPU, memoria, ancho de banda de red y almacenamiento). Después de crear una instancia informática, puede accederla de forma segura, reiniciarla, asociar y desasociar volúmenes y terminarla cuando no lo necesite.

  • Gateway de internet

    El gateway de Internet permite el tráfico entre las subredes públicas de una VCN y la red pública de Internet.

  • Gateway de enrutamiento dinámico (DRG)

    El DRG es un enrutador virtual que proporciona una ruta para el tráfico de red privada entre las redes locales y las VCN, y también se puede utilizar para enrutar el tráfico entre las VCN de la misma región o entre regiones.

  • Grupo de seguridad de red (NSG)

    Los NSG actúan como firewalls virtuales para los recursos en la nube. Con el modelo de seguridad de confianza cero de Oracle Cloud Infrastructure, se deniega todo el tráfico y puede controlar el tráfico de red dentro de una VCN. Un NSG está formado por un conjunto de reglas de seguridad de entrada y salida que se aplican solo a un conjunto especificado de VNIC en una única VCN.

  • Almacenamiento de archivos

    El servicio Oracle Cloud Infrastructure File Storage proporciona un sistema de archivos de red duradero, escalable, seguro y empresarial. Puede conectarse a un sistema de archivos del servicio de almacenamiento de archivos desde cualquier instancia con hardware dedicado, de máquina virtual o de contenedor en una VCN. También puede acceder a un sistema de archivos desde fuera de la VCN mediante Oracle Cloud Infrastructure FastConnect y VPN con IPSec.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida al desplegar Drupal CMS en Oracle Linux con MySQL Database Service. Sus requisitos pueden diferir de la arquitectura descrita aquí.
  • VCN

    Al crear la VCN, determine cuántas direcciones IP necesitan sus recursos en la nube en cada subred. Mediante la notación Classless Inter-Domain Routing (CIDR), especifique una máscara de subred y un rango de direcciones de red lo suficientemente grande para las direcciones IP necesarias. Utilice un rango de direcciones que esté dentro del espacio de direcciones IP privadas estándar.

    Seleccione un rango de direcciones que no se solape con su red local o con cualquier otra red, para que pueda configurar una conexión entre la VCN y la red local, si es necesario.

    Al diseñar las subredes, tenga en cuenta el flujo de tráfico y los requisitos de seguridad. Conecte todas las instancias informáticas del mismo nivel o rol a la misma subred, que puede servir como límite de seguridad.

  • Seguridad

    Utilice políticas para restringir quién puede acceder a los recursos de OCI que tiene su compañía y cómo puede acceder a ellos. Utilice Vault para obtener protección adicional de sus claves, certificados y secretos.

    El servicio de red ofrece dos funciones de firewall virtual que utilizan reglas de seguridad para controlar el tráfico en el nivel de paquete: listas de seguridad y grupos de seguridad de red (NSG). Un NSG está formado por un conjunto de reglas de seguridad de entrada y salida que se aplican solo a un conjunto de VNIC que se pueden elegir en una única VCN. Por ejemplo, puede seleccionar todas las instancias informáticas que actúan como servidores web en el nivel web de una aplicación de varios niveles en la VCN.

    Las reglas de seguridad NSG son las mismas que las reglas de listas de seguridad. Sin embargo, para el origen o el destino de una regla de seguridad de un NSG, puede especificar un NSG en lugar de un bloque de CIDR. Por lo tanto, puede escribir con facilidad reglas de seguridad para controlar el tráfico entre dos grupos de seguridad de red en la misma VCN o el tráfico dentro de un solo grupo de seguridad de red. Al crear un sistema de base de datos, puede especificar uno o más NSG. También puede actualizar un sistema de base de datos existente para usar uno o más grupos de servicios de red.

  • Recursos informáticos

    Seleccione unidades con la combinación adecuada de OCPU y memoria y aprovisione el almacenamiento local de bloques y/o NVMe según sea necesario para cada instancia. Considere el uso de las unidades flexibles disponibles, lo que proporciona más flexibilidad a la hora de combinar las OCPU y la memoria.

  • Base de Datos

    Seleccione la unidad de Oracle MySQL Database Service en función de la carga de trabajo planificada. Active la alta disponibilidad de MySQL para tres nodos redundantes.

Consideraciones

Al desplegar Drupal CMS en Oracle Linux con MySQL Database Service, tenga en cuenta estos factores:

  • Disponibilidad y escalabilidad de las aplicaciones

    En este ejemplo, en la arquitectura de alta disponibilidad, se muestran dos instancias en distintos dominios de errores dentro del mismo dominio de disponibilidad. Podría optar por colocar las instancias en diferentes dominios de disponibilidad (en regiones donde estén disponibles), para lograr una tolerancia ante fallos aún mayor.

    Un enfoque alternativo, que representa una adaptación más dinámica a necesidades de rendimiento más exigentes y diversas, es utilizar un pool de instancias y la ampliación automática. Los pools de instancias permiten aprovisionar y crear varias instancias de Compute basadas en la misma configuración en la misma región.

    La escala automática le permite ajustar automáticamente el número de instancias informáticas en un grupo de instancias en función de las métricas de rendimiento, como la utilización de la CPU. La ampliación automática le ayuda a proporcionar un rendimiento constante para los usuarios durante los períodos de alta demanda y le ayuda a reducir sus costos durante los períodos de baja demanda.

  • Disponibilidad y escalabilidad de la base de datos

    El sistema MySQL Database que se muestra en la arquitectura de alta disponibilidad utiliza la opción incorporada MySQL High Availability, que crea tres instancias y las coloca en diferentes dominios de errores.

  • copias de seguridad de bases de datos
    MySQL Database Service soporta dos tipos de copia de seguridad: copia de seguridad completa de todos los datos incluidos en el sistema de base de datos y copia de seguridad incremental de solo los datos que se han agregado o cambiado desde la última copia de seguridad completa. Las copias de seguridad se ejecutan de las siguientes formas:
    • Manual: una acción en la consola o una solicitud realizada a través de la API inicia la copia de seguridad. Las copias de seguridad manuales se pueden conservar durante un mínimo de un día y un máximo de 365 días.
    • Automático: las copias de seguridad programadas automáticamente se ejecutan sin ninguna interacción necesaria a la hora de elegir el usuario. Las copias de seguridad automáticas se conservan entre uno y 35 días. El valor de retención por defecto es siete días. Cuando se define, no puede editar el período de retención de una copia de seguridad automática
  • Copias de seguridad de recursos informáticos

    El servicio Oracle Cloud Infrastructure Block Volumes permite realizar copias de seguridad puntuales de los datos en un volumen en bloque. A continuación, puede restaurar estas copias de seguridad en volúmenes nuevos de forma inmediata o posterior. También puede utilizar el servicio para realizar una copia de seguridad puntual y coherente frente a bloqueos de un volumen de inicio sin interrupción ni tiempo de inactividad de la aplicación. Las mismas funciones que las funciones de copia de seguridad de volúmenes en bloque son las mismas.

  • Políticas de Seguridad

    Utilice políticas para restringir quién puede acceder a los recursos OCI de su compañía y cómo puede acceder a ellos.

  • Seguridad de red

    El servicio de red ofrece dos funciones de firewall virtual que utilizan reglas de seguridad para controlar el tráfico en el nivel de paquete: listas de seguridad y grupos de seguridad de red (NSG). Un NSG está formado por un conjunto de reglas de seguridad de entrada y salida que se aplican solo a un conjunto de VNIC que se pueden elegir en una única VCN. Por ejemplo, puede seleccionar todas las instancias informáticas que actúan como servidores web en el nivel web de una aplicación de varios niveles en la VCN.

    Las reglas de seguridad NSG son las mismas que las reglas de listas de seguridad. Sin embargo, para el origen o el destino de una regla de seguridad de un NSG, puede especificar un NSG en lugar de un bloque de CIDR. Por lo tanto, puede escribir con facilidad reglas de seguridad para controlar el tráfico entre dos grupos de seguridad de red en la misma VCN o el tráfico dentro de un solo grupo de seguridad de red. Al crear un sistema de base de datos, puede especificar uno o más NSG. También puede actualizar un sistema de base de datos existente para usar uno o más grupos de servicios de red.

    En estos ejemplos, las instancias se muestran como existentes en una subred pública. Considere colocarlos en una subred privada para mayor seguridad. En ese caso, se necesita un bastión para acceder a las instancias.

Desplegar

El código de Terraform para esta arquitectura de referencia está disponible como pila de ejemplo en Oracle Cloud Infrastructure Resource Manager. También puede descargar el código de GitHub y personalizarlo para que se ajuste a sus requisitos específicos.

  • Realice el despliegue con la pila de ejemplo en Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en Despliegue en Oracle Cloud.

      Si aún no ha iniciado sesión, introduzca las credenciales de usuario y arrendamiento.

    2. Seleccione la región en la que desea desplegar la pila.
    3. Siga las indicaciones e instrucciones en pantalla para crear la pila.
    4. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    5. Espere a que finalice el trabajo y revise el plan.

      Para realizar cambios, vuelva a la página Detalles de pila, haga clic en Editar pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.

    6. Si no es necesario realizar más cambios, vuelva a la página Detalles de pila, haga clic en Acciones de Terraform y seleccione Aplicar.
  • Realice el despliegue con el código de Terraform en GitHub:
    1. Vaya a GitHub.
    2. Clone o descargue el repositorio en su computadora local.
    3. Siga las instrucciones del documento README.

Agradecimientos

  • Autor: Nuno Gonçalves