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

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

Este tutorial describe cómo lanzar una instancia de base de datos de Amazon RDS que es externa a AWS Elastic Beanstalk y, a continuación, cómo configurar un entorno de alta disponibilidad ejecutando un sitio web de WordPress para conectarse a él. El sitio web utiliza Amazon Elastic File System (Amazon EFS) como almacenamiento compartido para los archivos cargados.

Si se ejecuta una instancia de base de datos externa en Elastic Beanstalk, la base de datos se desvincula del ciclo de vida del entorno. Esto le permite conectarse a la misma base de datos desde diferentes entornos, intercambiar una base de datos por otra o realizar una implementación blue/green sin que ello afecte a la base de datos.

nota

Para obtener información actualizada sobre la compatibilidad de versiones de PHP con versiones de WordPress, consulte Compatibilidad de PHP y Versiones de WordPress en el sitio web de WordPress. Debe consultar esta información antes de actualizar a una nueva versión de PHP para las implementaciones de WordPress.

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 Windows Subsystem para Linux para obtener una versión de Ubuntu y Bash integrada con Windows.

VPC predeterminada

Los procedimientos de este tutorial de Amazon Relational Database Service (Amazon RDS) suponen que está iniciando recursos en una Amazon Virtual Private Cloud (Amazon VPC) predeterminada. Todas las nuevas cuentas contienen una VPC predeterminada en cada región de AWS. Si no dispone de una VPC predeterminada, los procedimientos serán diferentes. Consulte Uso de Elastic Beanstalk con Amazon RDS para obtener instrucciones sobre la plataforma de EC2 y de una VPC personalizada.

Regiones de AWS

La aplicación de ejemplo utiliza Amazon EFS, que solo funciona en regiones de AWS compatibles con Amazon EFS. Para obtener más información sobre las regiones compatibles de AWS, consulte Puntos de enlace y cuotas de Amazon Elastic File System en la Referencia general de AWS.

Inicie una instancia de base de datos en Amazon RDS

Cuando inicia una instancia con Amazon RDS, es completamente independiente de Elastic Beanstalk y sus entornos Elastic Beanstalk, y Elastic Beanstalk no la finalizará ni supervisará.

En los siguientes pasos, utilizará la consola de Amazon RDS para:

  • Lanzar una base de datos con el motor de MySQL.

  • Habilitar una Multi-AZ deployment (Implementación Multi-AZ). Con esto se crea una instancia en espera en una zona de disponibilidad (AZ) diferente para proporcionar redundancia de datos, eliminar los bloqueos de E/S y minimizar los picos de latencia durante las copias de seguridad del sistema.

Para lanzar una instancia de base de datos de RDS en una VPC predeterminada
  1. Abra la consola de RDS.

  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 elije, no puede configurar los ajustes necesarios para lanzar esta base de datos de RDS.

  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:

    • DB instance class (Clase de instancia de base de datos): elija un tamaño de instancia que cuente con la memoria y la potencia de CPU apropiadas 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).

Una vez creada la instancia de base de datos, modifique el grupo de seguridad asociado para permitir el tráfico entrante en el puerto apropiado.

nota

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 ahora concederá permiso de entrada a otros recursos del mismo grupo de seguridad.

Para modificar las reglas de entrada del grupo de seguridad adjuntas a la instancia de RDS
  1. Abra la consola de Amazon RDS.

  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. Abra el enlace para ver el grupo de seguridad en la consola de Amazon EC2.

  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 las instancias de Amazon EC2 en el entorno puedan acceder a la base de datos.

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

Se tarda alrededor de 10 minutos en crear una instancia de base de datos. Mientras tanto, descargue WordPress y cree su entorno de Elastic Beanstalk.

Descarga de WordPress

Para prepararse para implementar WordPress con AWS Elastic Beanstalk, copie los archivos de WordPress en su equipo y proporcione la información de configuración correcta.

Para crear un proyecto de WordPress
  1. Descarga de WordPress en wordpress.org.

    ~$curl https://wordpress.org/wordpress-6.2.tar.gz -o wordpress.tar.gz
  2. Descargue los archivos de configuración del repositorio de muestra.

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

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

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

Lance un entorno de Elastic Beanstalk

Utilice la consola de Elastic Beanstalk para crear un entorno de Elastic Beanstalk. Después de iniciar el entorno, puede configurarlo para que se conecte a la base de datos e implementar el código WordPress en el entorno.

En los siguientes pasos, utilizará la consola de Elastic Beanstalk para:

  • Crear una aplicación de Elastic Beanstalk mediante la plataforma PHP administrada.

  • Aceptar la configuración predeterminada y el código de muestra.

Para lanzar un entorno (consola)
  1. Abra la consola de Elastic Beanstalk con este enlace preconfigurado: console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&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 siguientes recursos.

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

    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 Apache o nginx como un proxy inverso que se sitúa delante de la aplicación web, reenvía las solicitudes a esta, administra los recursos estáticos y genera registros de acceso y errores.

  • Instance security group (Grupo de seguridad de la instancia): grupo de seguridad de Amazon EC2 configurado para permitir el tráfico entrante en el puerto 80. Este recurso permite que el tráfico HTTP procedente del balanceador de carga llegue a la instancia EC2 en la que se ejecuta la 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: grupo de seguridad de Amazon EC2 configurado para permitir el tráfico entrante en el puerto 80. Este recurso permite que el tráfico HTTP procedente 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.

  • Alarmas de Amazon CloudWatch: dos alarmas de CloudWatch que supervisan la carga de las instancias del 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.

  • Pila de AWS CloudFormation. Elastic Beanstalk utiliza AWS CloudFormation para lanzar los recursos en 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: nombre de dominio que direcciona el tráfico a la aplicación web con el formato subdominio.región.elasticbeanstalk.com.

    Seguridad de dominios

    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 ayuda a proteger su dominio de los intentos de falsificación de solicitudes entre sitios (CSRF). Para más información, consulte la página Set-Cookie 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.

Dado que la instancia de base de datos de Amazon RDS que lanzó se encuentra fuera de su entorno, usted es responsable de administrar 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 grupos 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 Regions (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 EC2 security groups (Grupos de seguridad de EC2), elija el grupo de seguridad que desea asignar a las instancias, además del grupo de seguridad de instancia que crea 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 WordPress 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 de entorno de una instancia de base de datos de Amazon RDS
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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 conseguir compatibilidad con los entornos que tienen una instancia de base de datos de RDS, utilice los siguientes nombres y valores. Encontrará todos los valores, excepto la contraseña, en la consola de RDS.

    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 Connectivity & security (Conectividad y seguridad) de la consola de Amazon RDS: Endpoint (Punto de enlace).

    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 Connectivity & security (Conectividad y seguridad) de la consola de Amazon RDS: Port (Puerto).

    RDS_DB_NAME

    El nombre de la base de dato, ebdb.

    En la pestaña Configuration (Configuración) de la consola de Amazon RDS: DB Name (Nombre de la base de datos).

    RDS_USERNAME

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

    En la pestaña Configuration (Configuración) de la consola de Amazon RDS: Master username (Nombre de usuario maestro).

    RDS_PASSWORD

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

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

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

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

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

wordpress-beanstalk$ tree -aL 1 . ├── .ebextensions ├── index.php ├── LICENSE ├── license.txt ├── readme.html ├── README.md ├── wp-activate.php ├── wp-admin ├── wp-blog-header.php ├── wp-comments-post.php ├── wp-config.php ├── wp-config-sample.php ├── wp-content ├── wp-cron.php ├── wp-includes ├── wp-links-opml.php ├── wp-load.php ├── wp-login.php ├── wp-mail.php ├── wp-settings.php ├── wp-signup.php ├── wp-trackback.php └── xmlrpc.php

El archivo wp-config.php personalizado 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. Reemplace los valores de los marcadores de posición de los archivos por los ID apropiados 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 el acceso a su entorno con el fin de protegerlo durante el proceso de instalación de WordPress. Cambie la dirección IP del marcador de posición cerca de la parte superior del archivo por la dirección IP pública del equipo que utilizará para acceder al sitio web del entorno con el fin de completar la instalación de WordPress.

      nota

      En función de su red, es posible que tenga que utilizar un bloque de direcciones IP.

    • .ebextensions/efs-create.config: crea un sistema de archivos EFS y puntos de montaje en cada zona de disponibilidad/subred de la VPC. Identifique los ID de la VPC y subred predeterminadas en la consola de Amazon VPC.

  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 wordpress-beanstalk.zip.

    ~/eb-wordpress$ zip ../wordpress-beanstalk.zip -r * .[^.]*

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

Para implementar un paquete de código fuente
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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, seleccione la URL del para abrir el sitio web en una nueva pestaña.

Instalación de WordPress

Para completar la instalación de WordPress
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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 la URL del entorno para abrir su sitio en un navegador. Se abrirá un asistente de instalación de WordPress, porque aún no ha configurado el sitio.

  4. Realice una instalación estándar. El archivo wp-config.php ya está presente en el código fuente y configurado para leer la información de conexión a la base de datos del entorno. No se le pedirá que configure la conexión.

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

Actualización de claves y sales

El archivo de configuración de WordPress wp-config.php también lee valores de claves y sales de las propiedades de entorno. En la actualidad, estas propiedades están establecidas en test a través del archivo wordpress.config de la carpeta .ebextensions.

La sal hash puede ser cualquier valor que cumpla los requisitos de las propiedades de entorno, pero no debe almacenarla en el control de código fuente. Utilice la consola de Elastic Beanstalk para establecer estas propiedades directamente en el entorno.

Para actualizar propiedades de entorno
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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, seleccione Configuration (Configuración).

  4. En Software, seleccione Edit (Editar).

  5. En Environment properties, modifique las propiedades siguientes:

    • AUTH_KEY: el valor elegido para AUTH_KEY.

    • SECURE_AUTH_KEY: el valor elegido para SECURE_AUTH_KEY.

    • LOGGED_IN_KEY: el valor elegido para LOGGED_IN_KEY.

    • NONCE_KEY: el valor elegido para NONCE_KEY.

    • AUTH_SALT: el valor elegido para AUTH_SALT.

    • SECURE_AUTH_SALT: el valor elegido para SECURE_AUTH_SALT.

    • LOGGED_IN_SALT: el valor elegido para LOGGED_IN_SALT.

    • NONCE_SALT: el valor elegido para NONCE_SALT.

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

nota

El establecimiento de las propiedades directamente en el entorno invalida los valores de wordpress.config.

Eliminación de las restricciones de acceso

El proyecto de muestra incluye el archivo de configuración loadbalancer-sg.config. Crea un grupo de seguridad y lo asigna al balanceador de carga del entorno, utilizando la dirección IP que configuró en dev.config. y restringe el acceso HTTP en el puerto 80 a las conexiones procedentes de su red. De no ser así, una entidad externa podría conectarse al sitio antes de que se instalase WordPress y se hubiese configurado la cuenta de administrador.

Ahora que ha instalado WordPress, elimine el archivo de configuración para que el sitio esté disponible de forma pública.

Para eliminar la restricción y actualizar el entorno
  1. Elimine el archivo .ebextensions/loadbalancer-sg.config del directorio del proyecto.

    ~/wordpress-beanstalk$ rm .ebextensions/loadbalancer-sg.config
  2. Cree un paquete de código fuente.

    ~/eb-wordpress$ zip ../wordpress-beanstalk-v2.zip -r * .[^.]*

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

Para implementar un paquete de código fuente
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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, seleccione la URL del para abrir el sitio web en una nueva pestaña.

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 del entorno se conviertan en un único punto de error. Esto también le permite implementar cambios sin que el sitio 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 Regions (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 EFS 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.

Actualización de WordPress

Para actualizar a una nueva versión de WordPress, realice una copia de seguridad del sitio e impleméntelo en un nuevo entorno.

importante

No utilice la funcionalidad de actualización dentro de WordPress ni actualice los archivos de código fuente para que utilicen la nueva versión. Estas dos acciones puede hacer que las direcciones URL de publicación devuelvan un error 404 aunque sigan presentes en la base de datos y en el sistema de archivos.

Para actualizar WordPress
  1. En la consola de administración de WordPress, use la herramienta de exportación para exportar las publicaciones a un archivo XML.

  2. Implemente e instale la nueva versión de WordPress en Elastic Beanstalk siguiendo los mismos pasos que utilizó para instalar la versión anterior. Para evitar el tiempo de inactividad, puede crear un entorno con la nueva versión.

  3. En la nueva versión, instale la herramienta WordPress Importer en la consola de administración y utilícela para importar el archivo XML que contiene las publicaciones. Si el usuario administrador creó las publicaciones en la versión antigua, asígneselas al usuario administrador en el nuevo sitio, en lugar de intentar importar el usuario administrador.

  4. Si ha implementado la nueva versión en un entorno distinto, lleve a cabo un intercambio de CNAME para redirigir a los usuarios del sitio anterior al nuevo.

Eliminar recursos

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

Cómo terminar su entorno de Elastic Beanstalk desde la consola
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (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. Cuando termine una instancia de base de datos de Amazon RDS, puede hacer una instantánea para restaurar los datos posteriormente en otra instancia.

Para terminar la instancia de base de datos de RDS
  1. Abra la consola de Amazon RDS.

  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 de Elastic Beanstalk (CLI de EB) proporciona comandos fáciles de usar para crear, configurar e implementar aplicaciones en entornos de Elastic Beanstalk desde la línea de comandos.

La aplicación de ejemplo utiliza archivos de configuración para configurar las opciones de PHP y crear una tabla en la base de datos si no existe todavía. 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í la laboriosa tarea de actualizar 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 de datos compatible con MySQL 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 la configuración del grupo de seguridad y actualice las propiedades de entorno relacionadas con RDS.

Por último, si pretende utilizar la aplicación en un entorno de producción, querrá configurar un nombre de dominio personalizado para el entorno y habilitar HTTPS para las conexiones seguras.