Implementación de un sitio web de Drupal de alta disponibilidad con una RDS base de datos externa de Amazon en Elastic Beanstalk - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implementación de un sitio web de Drupal de alta disponibilidad con una RDS base de datos externa de Amazon en Elastic Beanstalk

Este tutorial explica el proceso de lanzamiento de una instancia de base de RDS datos externa a. AWS Elastic Beanstalk A continuación, se describe cómo configurar un entorno de alta disponibilidad con un sitio web de Drupal para que se conecte a esa instancia. El sitio web utiliza Amazon Elastic File System (AmazonEFS) como almacenamiento compartido para los archivos cargados. La ejecución de una instancia de base de datos externa a Elastic Beanstalk desacopla la base de datos del ciclo de vida de su entorno y le permite conectarse a la misma base de datos desde varios entornos, reemplazar una base de datos por otra o realizar una implementación blue/green sin que ello afecte a la base de datos.

Requisitos previos

Este tutorial asume que tiene conocimiento de las operaciones básicas de Elastic Beanstalk y de la consola de Elastic Beanstalk. Si aún no lo ha hecho, siga las instrucciones que se indican en Introducción a Elastic Beanstalk para lanzar su primer entorno de Elastic Beanstalk.

Para seguir los procedimientos de esta guía, necesitará un shell o un terminal de línea de comando donde pueda ejecutar los comandos. Los comandos aparecen en listas y van precedidos del símbolo del sistema ($) y del nombre del directorio actual, si es aplicable.

~/eb-project$ this is a command this is output

En Linux y macOS, puede utilizar el administrador de shell y paquetes preferido. En Windows, puede instalar el subsistema de Windows para Linux y obtener una versión de Ubuntu y Bash integrada en Windows.

Los procedimientos de este tutorial para las tareas de Amazon Relational Database Service (RDSAmazon) asumen que se están lanzando recursos en una Amazon Virtual Private Cloud (VPCAmazon) predeterminada. Todas las cuentas nuevas incluyen un valor predeterminado VPC en cada región. Si no tienes un valor predeterminadoVPC, los procedimientos variarán. Consulte las instrucciones Uso de Elastic Beanstalk con Amazon RDS para las VPC plataformas EC2 clásicas y personalizadas.

La aplicación de muestra usa AmazonEFS. Solo funciona en AWS las regiones compatibles con AmazonEFS. Para obtener más información sobre AWS las regiones compatibles, consulte los puntos de enlace y las cuotas de Amazon Elastic File System en la Referencia general de AWS.

Si la plataforma de su PHP entorno de Elastic Beanstalk usa 7.4 o una versión anterior, le recomendamos que utilice la versión 8.9.13 de Drupal para este tutorial. Para las plataformas instaladas con la PHP versión 8.0 o posterior, le recomendamos que utilice Drupal 9.1.5.

Para obtener más información sobre las versiones de Drupal y las PHP versiones que admiten, consulta PHPlos requisitos en el sitio web de Drupal. Las versiones principales que Drupal recomienda se enumeran en el sitio web https://www.drupal.org/project/drupal.

Lance una instancia de base de datos en Amazon RDS

Para usar una base de datos externa con una aplicación que se ejecute en Elastic Beanstalk, primero lance una instancia de base de datos con Amazon. RDS Cuando lanza una instancia con AmazonRDS, es completamente independiente de Elastic Beanstalk y de sus entornos de Elastic Beanstalk, y Elastic Beanstalk no la cancelará ni la supervisará.

Utilice la RDS consola de Amazon para lanzar una instancia de My SQL DB Multi-AZ. La elección de una implementación Multi-AZ garantiza que la base de datos realice una conmutación por error y siga estando disponible en caso de que la instancia de base de datos de origen quede fuera de servicio.

Para lanzar una RDS instancia de base de datos de forma predeterminada VPC
  1. Abra la RDSconsola.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

  3. Elija Create database (Crear base de datos).

  4. Elija Standard Create (Creación estándar).

    importante

    No elija la opción Easy Create (Creación sencilla). Si lo elige, no podrá configurar los ajustes necesarios para iniciar esta RDS base de datos.

  5. En Additional configuration (Configuración adicional), escriba ebdb en Initial database name (Nombre de base de datos inicial).

  6. Revise la configuración predeterminada y ajústela de acuerdo con sus requisitos específicos. Preste atención a las siguientes opciones:

    • Clase de instancia de base de datos: elija un tamaño de instancia que tenga la cantidad de memoria y CPU potencia adecuadas para su carga de trabajo.

    • Multi-AZ deployment (Implementación Multi-AZ): para obtener alta disponibilidad, establezca esta opción en Create an Aurora Replica/Reader node in a different AZ (Crear una réplica de Aurora/nodo de lector en otra zona de disponibilidad).

    • Master username (Nombre de usuario maestro) y Master password (Contraseña maestra): nombre de usuario y contraseña de la base de datos. Anote esta configuración, ya que la necesitará posteriormente.

  7. Compruebe los valores predeterminados de las demás opciones y, a continuación, elija Create database (Crear base de datos).

A continuación, modifique el grupo de seguridad asociado a la instancia de base de datos para permitir el tráfico entrante en el puerto correspondiente. Este es el mismo grupo de seguridad que asociará a su entorno de Elastic Beanstalk más adelante, por lo que la regla que añada concederá permiso de entrada a otros recursos del mismo grupo de seguridad.

Para modificar las reglas de entrada del grupo de seguridad adjunto a la instancia RDS
  1. Abre la RDSconsola de Amazon.

  2. Seleccione Databases (Bases de datos).

  3. Elija el nombre de la instancia de base de datos para ver sus detalles.

  4. En la sección Connectivity (Conectividad), tome nota de los valores de Subnets (Subredes), Security groups (Grupos de seguridad) y Endpoint (Punto de conexión) que aparecen en esta página. Esto es para que pueda utilizar esta información más adelante.

  5. En Security (Seguridad) se muestra el grupo de seguridad que está asociado a la instancia de base de datos. Abre el enlace para ver el grupo de seguridad en la EC2 consola de Amazon.

  6. En los detalles del grupo de seguridad, elija la pestaña Inbound (Entrada).

  7. Elija Edit (Editar).

  8. Seleccione Add Rule (Agregar regla).

  9. En Type (Tipo), elija el motor de base de datos que utiliza la aplicación.

  10. En Source (Origen), escriba sg- para ver una lista de grupos de seguridad disponibles. Elija el grupo de seguridad que está asociado al grupo de Auto Scaling que se utiliza con su entorno de Elastic Beanstalk. Esto es para que EC2 las instancias de Amazon del entorno puedan tener acceso a la base de datos.

    Imagen de pantalla para editar las reglas de entrada de un grupo de seguridad en la EC2 consola de Amazon.
  11. Seleccione Guardar.

Se tarda alrededor de 10 minutos en crear una instancia de base de datos. Mientras tanto, inicie el entorno de Elastic Beanstalk.

Lance un entorno de Elastic Beanstalk

Utilice la consola de Elastic Beanstalk para crear un entorno de Elastic Beanstalk. Elige la PHPplataforma y acepta la configuración predeterminada y el código de muestra. Después de iniciar el entorno, puede configurar el entorno para que se conecte a la base de datos e implementar el código Drupal en el entorno.

Para lanzar un entorno (consola)
  1. Abra la consola de Elastic Beanstalk mediante este enlace preconfigurado: console.aws.amazon.com/elasticbeanstalk/home#/? newApplication applicationName=tutoriales& = environmentType LoadBalanced

  2. En Platform (Plataforma), seleccione la plataforma y la ramificación de plataforma que coincidan con el idioma utilizado por la aplicación.

  3. En Application code (Código de aplicación), seleccione Sample application (Aplicación de muestra).

  4. Elija Review and launch (Revisar y lanzar).

  5. Revise las opciones disponibles. Elija la opción disponible que quiera usar y, cuando esté listo, elija Create app (Crear aplicación).

El entorno tarda unos cinco minutos en crearse e incluye los recursos siguientes:

  • EC2instancia: una máquina virtual de Amazon Elastic Compute Cloud (AmazonEC2) configurada para ejecutar aplicaciones web en la plataforma que elijas.

    Cada plataforma ejecuta un conjunto específico de software, archivos de configuración y scripts compatibles con una determinada versión de lenguaje, marco de trabajo y contenedor web (o una combinación de estos). La mayoría de las plataformas utilizan NGINX Apache o un proxy inverso que se coloca delante de la aplicación web, le reenvía las solicitudes, proporciona activos estáticos y genera registros de acceso y errores.

  • Grupo de seguridad de instancias: un grupo EC2 de seguridad de Amazon configurado para permitir el tráfico entrante en el puerto 80. Este recurso permite que el HTTP tráfico del balanceador de cargas llegue a la EC2 instancia que ejecuta tu aplicación web. De forma predeterminada, el tráfico no está permitido en otros puertos.

  • Balanceador de carga: balanceador de carga de Elastic Load Balancing configurado para distribuir solicitudes a las instancias que se ejecutan en la aplicación. Los balanceadores de carga también permiten que las instancias no estén expuestas directamente a Internet.

  • Grupo de seguridad del balanceador de carga: un grupo EC2 de seguridad de Amazon configurado para permitir el tráfico entrante en el puerto 80. Este recurso permite que HTTP el tráfico de Internet llegue al balanceador de carga. De forma predeterminada, el tráfico no está permitido en otros puertos.

  • Grupo de Auto Scaling: grupo de Auto Scaling configurado para reemplazar una instancia si termina o deja de estar disponible.

  • Bucket de Amazon S3: ubicación de almacenamiento para el código fuente, los registros y otros artefactos que se crean al utilizar Elastic Beanstalk.

  • CloudWatch Alarmas de Amazon: dos CloudWatch alarmas que monitorean la carga de las instancias de su entorno y que se activan si la carga es demasiado alta o demasiado baja. Cuando se activa una alarma, en respuesta, el grupo de Auto Scaling aumenta o reduce los recursos.

  • AWS CloudFormation pila: Elastic AWS CloudFormation Beanstalk se utiliza para lanzar los recursos de su entorno y propagar los cambios de configuración. Los recursos se definen en una plantilla que puede verse en la consola de AWS CloudFormation.

  • Nombre de dominio: un nombre de dominio que se dirige a su aplicación web en el formulario subdomain.region.elasticbeanstalk.com.

    nota

    Para aumentar la seguridad de las aplicaciones de Elastic Beanstalk, el dominio elasticbeanstalk.com está registrado en la lista de sufijos públicos (). PSL Para mayor seguridad, se recomienda que utilice cookies con un prefijo __Host- en caso de que necesite configurar cookies confidenciales en el nombre de dominio predeterminado de sus aplicaciones de Elastic Beanstalk. Esta práctica le ayudará a defender su dominio contra los intentos de falsificación de solicitudes entre sitios (). CSRF Para obtener más información, consulte la página de configuración de cookies en la red de desarrolladores de Mozilla.

Todos estos recursos los administra Elastic Beanstalk. Cuando termina su entorno, Elastic Beanstalk termina todos los recursos que este contiene. La RDS instancia de base de datos que lanzó está fuera de su entorno, por lo que es responsable de gestionar su ciclo de vida.

nota

El bucket de Amazon S3 que Elastic Beanstalk crea se comparte entre los entornos y no se elimina durante la terminación del entorno. Para obtener más información, consulte Usar Elastic Beanstalk con Amazon S3.

Configuración de ajustes de seguridad y propiedades de entorno

Agregue el grupo de seguridad de la instancia de base de datos al entorno en ejecución. Este procedimiento hace que Elastic Beanstalk vuelva a aprovisionar todas las instancias de su entorno con el grupo de seguridad adicional asociado.

Para agregar un grupo de seguridad al entorno
  • Realice una de las siguientes acciones siguientes:

    • Para añadir un grupo de seguridad mediante la consola de Elastic Beanstalk

      1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

      2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

        nota

        Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

      3. En el panel de navegación, elija Configuration (Configuración).

      4. En la categoría de configuración Instances (Instancias), elija Edit (Editar).

      5. En grupos EC2 de seguridad, elija el grupo de seguridad que desee adjuntar a las instancias, además del grupo de seguridad de instancias que cree Elastic Beanstalk.

      6. Para guardar los cambios, elija Aplicar en la parte inferior de la página.

      7. Lea la advertencia y, a continuación, elija Confirm (Confirmar).

    • Para agregar un grupo de seguridad con un archivo de configuración, utilice el archivo de ejemplo securitygroup-addexisting.config.

Después, utilice las propiedades de entorno para pasar la información de la conexión al entorno. La aplicación de ejemplo utiliza un conjunto predeterminado de propiedades que coinciden con las que Elastic Beanstalk configura al aprovisionar una base de datos en su entorno.

Para configurar las propiedades del entorno de una instancia de Amazon RDS DB
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.

  5. En la sección Environment properties (Propiedades del entorno), defina las variables que lee la aplicación para crear una cadena de conexión. Para garantizar la compatibilidad con los entornos que tienen una RDS instancia de base de datos integrada, utilice los siguientes nombres y valores. Puede encontrar todos los valores, excepto la contraseña, en la RDSconsola.

    Nombre de la propiedad Descripción Valor de la propiedad

    RDS_HOSTNAME

    El nombre de host de la instancia de base de datos.

    En la pestaña Conectividad y seguridad de la RDS consola de Amazon: Endpoint.

    RDS_PORT

    El puerto en donde la instancia de base de datos acepta las conexiones. El valor predeterminado varía dependiendo del motor de base de datos.

    En la pestaña Conectividad y seguridad de la RDS consola de Amazon: Puerto.

    RDS_DB_NAME

    El nombre de la base de dato, ebdb.

    En la pestaña Configuración de la RDS consola de Amazon: Nombre de base de datos.

    RDS_USERNAME

    El nombre de usuario que ha configurado para la base de datos.

    En la pestaña Configuración de la RDS consola de Amazon: nombre de usuario principal.

    RDS_PASSWORD

    La contraseña que ha configurado para la base de datos.

    No está disponible como referencia en la RDS consola de Amazon.

    Sección de configuración de propiedades del entorno con RDS propiedades añadidas
  6. Para guardar los cambios, elija Aplicar en la parte inferior de la página.

Después de instalar Drupal, debes conectarte a la instancia SSH para recuperar algunos detalles de configuración. Asigna una SSH clave a las instancias de tu entorno.

Para configurar SSH
  1. Si no has creado un par de claves anteriormente, abre la página de pares de claves de la EC2 consola de Amazon y sigue las instrucciones para crear uno.

  2. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  3. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  4. En el panel de navegación, elija Configuration (Configuración).

  5. En Security (Seguridad), seleccione Edit (Editar).

  6. Para el par de EC2 claves, elige tu par de claves.

  7. Para guardar los cambios, elija Aplicar en la parte inferior de la página.

Configuración e implementación de la aplicación

Para crear un proyecto de Drupal para Elastic Beanstalk, descargue el código fuente de Drupal y combínelo con los archivos del repositorio aws-samples/ de. eb-php-drupal GitHub

Para crear un proyecto de Drupal
  1. Ejecute el siguiente comando para descargar Drupal desde www.drupal.org/download. Para obtener más información sobre las descargas, consulte el sitio web de Drupal.

    Si la plataforma de su PHP entorno de Elastic Beanstalk usa 7.4 o una versión anterior, le recomendamos que descargue la versión 8.9.13 de Drupal para este tutorial. Puede ejecutar el siguiente comando para descargarlo.

    ~$ curl https://ftp.drupal.org/files/projects/drupal-8.9.13.tar.gz -o drupal.tar.gz

    Si su plataforma utiliza la PHP versión 8.0 o posterior, le recomendamos que descargue Drupal 9.1.5. Puede usar este comando para descargarlo.

    ~$ curl https://ftp.drupal.org/files/projects/drupal-9.1.5.tar.gz -o drupal.tar.gz

    Para obtener más información sobre las versiones de Drupal y las PHP versiones que admiten, consulta PHPlos requisitos en la documentación oficial de Drupal. Las versiones principales que Drupal recomienda se enumeran en el sitio web de Drupal.

  2. Utilice el siguiente comando para descargar los archivos de configuración del repositorio de ejemplo:

    ~$ wget https://github.com/aws-samples/eb-php-drupal/releases/download/v1.1/eb-php-drupal-v1.zip
  3. Extraiga Drupal y cambie el nombre de la carpeta.

    Si descargó Drupal 8.9.13:

    ~$ tar -xvf drupal.tar.gz ~$ mv drupal-8.9.13 drupal-beanstalk ~$ cd drupal-beanstalk

    Si descargó Drupal 9.1.5:

    ~$ tar -xvf drupal.tar.gz ~$ mv drupal-9.1.5 drupal-beanstalk ~$ cd drupal-beanstalk
  4. Extraiga los archivos de configuración a través de la instalación de Drupal.

    ~/drupal-beanstalk$ unzip ../eb-php-drupal-v1.zip creating: .ebextensions/ inflating: .ebextensions/dev.config inflating: .ebextensions/drupal.config inflating: .ebextensions/efs-create.config inflating: .ebextensions/efs-filesystem.template inflating: .ebextensions/efs-mount.config inflating: .ebextensions/loadbalancer-sg.config inflating: LICENSE inflating: README.md inflating: beanstalk-settings.php

Compruebe que la estructura de la carpeta drupal-beanstalk es correcta, según se indica.

drupal-beanstalk$ tree -aL 1 . ├── autoload.php ├── beanstalk-settings.php ├── composer.json ├── composer.lock ├── core ├── .csslintrc ├── .ebextensions ├── .ebextensions ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── example.gitignore ├── .gitattributes ├── .htaccess ├── .ht.router.php ├── index.php ├── LICENSE ├── LICENSE.txt ├── modules ├── profiles ├── README.md ├── README.txt ├── robots.txt ├── sites ├── themes ├── update.php ├── vendor └── web.config

El archivo beanstalk-settings.php del repositorio del proyecto utiliza las variables de entorno definidas en el paso anterior para configurar la conexión a la base de datos. La carpeta .ebextensions contiene archivos de configuración que crean recursos adicionales en el entorno de Elastic Beanstalk.

Los archivos de configuración requieren modificaciones para que funcionen con su cuenta. Sustituya los valores de los marcadores de posición de los archivos por los correspondientes IDs y cree un paquete de código fuente.

Para actualizar los archivos de configuración y crear un paquete de código fuente.
  1. Modifique los archivos de configuración como se indica a continuación.

    • .ebextensions/dev.config: limita a su dirección IP el acceso a su entorno con el fin de protegerlo durante el proceso de instalación de Drupal. Cambie la dirección IP del marcador de posición situada cerca de la parte superior del archivo por la dirección IP pública.

    • .ebextensions/efs-create.config— crea un sistema de EFS archivos y monta puntos en cada zona o subred de disponibilidad de su. VPC Identifica tu red predeterminada VPC y tu subred IDs en la VPCconsola de Amazon.

  2. Cree un paquete de código fuente que contenga los archivos de la carpeta del proyecto. El comando siguiente crea un paquete de código fuente denominado drupal-beanstalk.zip. Excluye los archivos de la carpeta vendor, que ocupan mucho espacio y no se requieren para implementar la aplicación en Elastic Beanstalk.

    ~/eb-drupal$ zip ../drupal-beanstalk.zip -r * .[^.]* -x "vendor/*"

Cargue el paquete de origen en Elastic Beanstalk para implementar Drupal en su entorno.

Para implementar un paquete de código fuente
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En la página de información general del entorno, elija Upload and deploy (Cargar e implementar).

  4. Utilice el cuadro de diálogo en pantalla para cargar el paquete de código fuente.

  5. Elija Deploy (Implementar).

  6. Cuando se complete la implementación, puede elegir el sitio URL para abrir su sitio web en una pestaña nueva.

Instalación de Drupal

Para completar la instalación de Drupal
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. Elija el entorno URL para abrir su sitio en un navegador. Se abrirá un asistente de instalación de Drupal, ya que aún no se ha configurado el sitio.

  4. Realice una instalación estándar de la base de datos con la siguiente configuración:

    • Nombre de la base de datos: el nombre de la base de datos que se muestra en la RDS consola de Amazon.

    • Database username and password: valores de Master Username (Nombre de usuario maestro) y Master Password (Contraseña maestra) que especificó al crear la base de datos.

    • Opciones avanzadas > Host: el punto final de la instancia de base de datos que se muestra en la RDS consola de Amazon.

La instalación tarda alrededor de un minuto en completarse.

Actualización de la configuración de Drupal y supresión de las restricciones de acceso

Durante el proceso de instalación de Drupal, se crea un archivo denominado settings.php en la carpeta sites/default de la instancia. Este archivo se necesita en el código fuente para evitar restablecer el sitio en las implementaciones subsiguientes; sin embargo, el archivo contiene secretos que no es conveniente incorporar al código fuente. Conéctese a la instancia de aplicación para recuperar la información del archivo de configuración.

Para conectarse a la instancia de su aplicación con SSH
  1. Abre la página de instancias de la EC2 consola de Amazon.

  2. Elija la instancia de aplicación. Es la que tiene el nombre de su entorno de Elastic Beanstalk.

  3. Elija Conectar.

  4. Sigue las instrucciones para conectar la instancia conSSH. El comando tiene un aspecto similar al siguiente.

    $ ssh -i ~/.ssh/mykey ec2-user@ec2-00-55-33-222.us-west-2.compute.amazonaws.com

Obtenga el ID del directorio de sincronización, que aparece en la última línea del archivo de configuración.

[ec2-user ~]$ tail -n 1 /var/app/current/sites/default/settings.php $config_directories['sync'] = 'sites/default/files/config_4ccfX2sPQm79p1mk5IbUq9S_FokcENO4mxyC-L18-4g_xKj_7j9ydn31kDOYOgnzMu071Tvc4Q/sync';

El archivo también contiene la clave de hash actual de los sitios, pero puede hacer caso omiso del valor actual y utilizar el suyo propio.

Asigne la ruta del directorio de sincronización y la clave de hash a las propiedades de entorno. El archivo de configuración personalizado del repositorio del proyecto leerá estas propiedades para configurar el sitio durante la implementación, además de las propiedades de conexión de la base de datos establecidas anteriormente.

Propiedades de configuración de Drupal
Para configurar las propiedades del entorno en la consola de Elastic Beanstalk
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.

  5. Desplácese hacia abajo hasta Propiedades del entorno.

  6. Seleccione Agregar propiedad de entorno.

  7. Introduzca los pares Nombre y Valor de la propiedad.

  8. Si necesita agregar más variables, repita Paso 6 y Paso 7.

  9. Para guardar los cambios, elija Aplicar en la parte inferior de la página.

Por último, el proyecto de muestra incluye un archivo de configuración (loadbalancer-sg.config) que crea un grupo de seguridad y lo asigna al balanceador de cargas del entorno, utilizando la dirección IP que configuró dev.config para restringir el HTTP acceso al puerto 80 a las conexiones de la red. De no ser así, una entidad externa podría conectarse al sitio antes de que se instalase Drupal y se hubiese configurado la cuenta de administrador.

Para actualizar la configuración de Drupal y suprimir las restricciones de acceso
  1. Elimine el archivo .ebextensions/loadbalancer-sg.config del directorio del proyecto.

    ~/drupal-beanstalk$ rm .ebextensions/loadbalancer-sg.config
  2. Copie el archivo settings.php personalizado en la carpeta de sitios.

    ~/drupal-beanstalk$ cp beanstalk-settings.php sites/default/settings.php
  3. Cree un paquete de código fuente.

    ~/eb-drupal$ zip ../drupal-beanstalk-v2.zip -r * .[^.]* -x "vendor/*"

Cargue el paquete de origen en Elastic Beanstalk para implementar Drupal en su entorno.

Para implementar un paquete de código fuente
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En la página de información general del entorno, elija Upload and deploy (Cargar e implementar).

  4. Utilice el cuadro de diálogo en pantalla para cargar el paquete de código fuente.

  5. Elija Deploy (Implementar).

  6. Cuando se complete la implementación, puede elegir el sitio URL para abrir su sitio web en una pestaña nueva.

Configure el grupo de Auto Scaling

Por último, configure el grupo de Auto Scaling de su entorno con un número mínimo de instancias mayor. Ejecute al menos dos instancias en todo momento para evitar que los servidores web de su entorno se conviertan en un único punto de error y para poder implementar cambios sin que el sitio se quede fuera de servicio.

Si desea configurar el grupo de Auto Scaling del entorno para disponer de una alta disponibilidad
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Capacity (Capacidad), elija Edit (Editar).

  5. En la sección Auto Scaling group (grupo de Auto Scaling) defina Min instances (Instancias mínimas) en 2.

  6. Para guardar los cambios, elija Aplicar en la parte inferior de la página.

Con el fin de admitir la carga de contenido en varias instancias, el proyecto de muestra utiliza Amazon Elastic File System para crear un sistema de archivos compartidos. Cree una publicación en el sitio y cargue contenido para almacenarlo en el sistema de archivos compartidos. Consulte la publicación y actualice la página varias veces para utilizar ambas instancias y comprobar que el sistema de archivos compartidos funciona.

Limpieza

Cuando termine de trabajar con Elastic Beanstalk, puede terminar su entorno. Elastic Beanstalk AWS cancela todos los recursos asociados al entorno, como las instancias de EC2 Amazon, las instancias de bases de datos, los balanceadores de carga,los grupos de seguridad y las alarmas.

Para cerrar el entorno de Elastic Beanstalk desde la consola
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. Elija Actions (Acciones) y, a continuación, Terminate Environment (Terminar el entorno).

  4. Utilice el cuadro de diálogo en pantalla para confirmar la terminación del entorno.

Con Elastic Beanstalk, puede crear fácilmente un nuevo entorno para su aplicación en cualquier momento.

Además, puede terminar los recursos de base de datos creados fuera del entorno de Elastic Beanstalk. Al cerrar una instancia de Amazon RDS DB, puede tomar una instantánea y restaurar los datos en otra instancia más adelante.

Para finalizar su instancia de RDS base de datos
  1. Abre la RDSconsola de Amazon.

  2. Seleccione Databases (Bases de datos).

  3. Seleccione la instancia de base de datos.

  4. Elija Acciones y, a continuación, elija Eliminar.

  5. Decida si desea crear una instantánea y seleccione Delete (Eliminar).

Siguientes pasos

A medida que siga desarrollando la aplicación, es probable que desee contar con un mecanismo que le permita administrar los entornos e implementar la aplicación sin tener que crear manualmente un archivo .zip y cargarlo en la consola de Elastic Beanstalk. La interfaz de línea de comandos CLI (EB easy-to-use ) de Elastic Beanstalk proporciona comandos para crear, configurar e implementar aplicaciones en los entornos de Elastic Beanstalk desde la línea de comandos.

La aplicación de ejemplo utiliza archivos de configuración para configurar los PHP ajustes y crear una tabla en la base de datos si aún no existe. También puede utilizar un archivo de configuración para configurar el grupo de seguridad de las instancias durante la creación del entorno y evitar así las laboriosas tareas de actualización de la configuración. Para obtener más información, consulte Personalización avanzada de entornos con archivos de configuración (.ebextensions).

En las tareas de desarrollo y pruebas, es posible que desee utilizar la funcionalidad de Elastic Beanstalk para agregar una instancia de base de datos administrada directamente al entorno. Para obtener instrucciones acerca de cómo configurar una base de datos dentro del entorno, consulte Añadir una base de datos al entorno de Elastic Beanstalk.

Si necesita una base de datos de alto desempeño, considere la posibilidad de usar Amazon Aurora. Amazon Aurora es un motor de base SQL de datos compatible con My que ofrece funciones de bases de datos comerciales a bajo costo. Para conectar la aplicación a una base de datos diferente, repita los pasos de configuración del grupo de seguridad y actualice las propiedades del entorno RDS relacionadas.

Por último, si planea usar su aplicación en un entorno de producción, querrá configurar un nombre de dominio personalizado para su entorno y habilitar HTTPS conexiones seguras.