Crear un sitio web de WordPress de carga balanceada

en Amazon Lightsail

Amazon Lightsail es la forma más fácil de comenzar a utilizar AWS. Ofrece servidores virtuales, almacenamiento, bases de datos y redes, además de un plan mensual rentable.

Este tutorial muestra cómo crear un sitio web de WordPress de carga balanceada en Amazon Lightsail. Un balanceador de carga es un servidor que distribuye el tráfico de red entre un conjunto de servidores. Con la distribución del tráfico de red a un grupo de servidores, puede mejorar drásticamente la cantidad de usuarios simultáneos que puede manejar su sitio web de WordPress. Los balanceadores de carga también agregan tolerancia a fallas. El balanceador de carga de Lightsail garantiza que solo las instancias de WordPress en buen estado asociadas al balanceador de carga reciban tráfico.

Puede escalar horizontalmente un sitio web de WordPress si aumenta la cantidad de instancias asociadas a un balanceador de carga. También puede escalar verticalmente un sitio web de WordPress si reemplaza las instancias asociadas a un balanceador de carga con instancias que usan un plan de Lightsail más grande (p. ej., use el plan de 5 USD al mes en su lugar o el plan de 3,50 USD al mes). El escenario del escalado vertical no se cubre en este tutorial, pero se puede lograr con pasos similares.

Complete los siguientes pasos de este tutorial:

  • Crear una base de datos administrada de MySQL en Lightsail
  • Crear un usuario de IAM para su instancia de WordPress
  • Conectarse a la instancia de WordPress a través de SSH para configurar la base de datos administrada y las credenciales de usuario de IAM
  • Iniciar sesión en el panel del sitio web de WordPress e instalar el complemento WP Offload Media
  • Duplicar la instancia de WordPress
  • Crear un balanceador de carga en Lightsail y asociar las instancias de WordPress

Comience a utilizar Amazon Lightsail de forma gratuita. 

Acerca de este tutorial
Duración 60 minutos                                           
Costo Se aplican costos
Caso de uso Informática
Productos Amazon Lightsail
Público Desarrollador
Nivel Intermedio 
Última actualización 16 de abril de 2020

¿Ya tiene una cuenta? Iniciar sesión

1. Crear una instancia de WordPress en Lightsail

Este tutorial requiere que cree una instancia de WordPress en Lightsail. Para hacerlo, siga los pasos del tutorial Iniciar y configurar una instancia de WordPress con Amazon Lightsail.

2. Crear una base de datos administrada de MySQL en Lightsail

Complete los siguientes pasos para crear una base de datos administrada de MySQL en Lightsail. La nueva base de datos administrada de MySQL servirá como la base de datos central para todas las instancias de WordPress que tendrán carga equilibrada.


a. Inicie sesión en la consola de Lightsail


b. En la pestaña Databases (Bases de datos) de la página de inicio de Lightsail, elija Create database (Crear base de datos).

lb1

c. Elija la región de AWS y la zona de disponibilidad para su base de datos.

Nota: La base de datos que cree debe estar en la misma región que su instancia de WordPress.

lb2

d. Elija la última versión de MySQL como motor de base de datos. PostgreSQL está disponible, pero no es compatible con WordPress.

lb3

e. Elija un plan de base de datos.

Un plan incluye una configuración de máquina de costo bajo y predecible (RAM, SSD, CPU virtual) y el límite de transferencia de datos. Puede probar el plan de base de datos estándar de 15 USD de Lightsail sin cargo durante un mes (hasta 750 horas).

lb4

f. Escriba un nombre para la base de datos.

Directrices de nombre de recurso:

  • Debe ser único dentro de cada región de AWS en su cuenta Lightsail.
  • Debe contener de 2 a 255 caracteres.
  • Debe comenzar y finalizar con un carácter o número alfanumérico.
  • Puede incluir caracteres alfanuméricos, números, puntos, guiones y guiones bajos.
lb5

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

Su base de datos tardará unos minutos en crearse.


h. Una vez que la base de datos se cree y esté disponible, elija su nombre en la pestaña Databases (Bases de datos) en la consola de Lightsail.


i. Complete los siguientes pasos en la pestaña Connect (Conectar) de la página de administración de la base de datos:

  1. Tome nota del nombre DNS de la base de datos. Lo necesitará más adelante en este tutorial.
  2. Tome nota del nombre de usuario de la base de datos. Lo necesitará más adelante en este tutorial.
  3. Elija Show password (Mostrar contraseña) y, a continuación, Change password (Cambiar contraseña). Escriba una nueva contraseña segura que no contenga caracteres especiales. Debe cambiar la contraseña para eliminar los caracteres especiales, porque algunos de los comandos que aparecen más adelante en este tutorial no funcionarán como se espera si se utilizan caracteres especiales.
  4. Tome nota de la contraseña de la base de datos. Lo necesitará más adelante en este tutorial.
hawp2i

3. Crear un bucket de Amazon S3 para la instancia de WordPress

Complete los siguientes pasos para crear un bucket de Amazon S3 que se utilizará para almacenar los archivos multimedia del sitio web de WordPress.


a. Inicie sesión en la consola de Amazon S3.


b. Elija Block public access (Bloquear acceso público) en el menú de navegación de la izquierda.


c. Asegúrese de que ambas opciones para bloquear el acceso público a través de listas de control de acceso (ACL) estén desactivadas. Si están activadas, elija editar, desmarque esas opciones y elija Save changes (Guardar cambios). Estas opciones son necesarias para que WordPress acceda al bucket de Amazon S3 que cree.

Nota: Esta configuración se aplica a todos los buckets de S3, así que asegúrese de que también se pueda aplicar a los otros buckets de S3 existentes.

update1
update2

d. Elija Buckets en el panel de navegación de la izquierda y, a continuación, seleccione Create bucket (Crear bucket).

update3

e. Asigne un nombre al bucket. Todos los nombres del bucket de S3 son únicos a nivel global, por lo que no puede usar el mismo nombre que el de este tutorial.

Tome nota del nombre que elija, deberá ingresarlo en su configuración de WordPress más adelante en este tutorial.


f. Elija la región de AWS para el bucket de S3. Debe crear todos sus recursos para este tutorial en la misma región de AWS, así que cree el bucket de S3 en la misma región que la instancia de WordPress.

update4

g. Desmarque Block all public access (Bloquear todo el acceso público) y, a continuación, elija Block public access to buckets and objects granted through new public bucket or access point policies (Bloquear el acceso público a buckets y objetos otorgados mediante nuevas políticas de punto de acceso o bucket público) y Block public and cross-account access to buckets and objects through any public bucket or access point policies (Bloquear el acceso público y entre cuentas a buckets y objetos mediante cualquier política de punto de acceso o bucket público). Asegúrese de que ambas opciones para bloquear el acceso público a través de listas de control de acceso (ACL) no estén seleccionadas.


h. Elija reconocer la configuración que ha seleccionado.

update6

i. Elija Create bucket (Crear bucket).


3. Crear un usuario y una política de IAM para su instancia de WordPress

Complete los siguientes pasos para crear una política para el bucket de Amazon S3 que creó y luego cree un usuario de IAM con la política que pueda acceder al bucket de S3. Más adelante en este tutorial, configurará la instancia de WordPress con las credenciales del usuario de IAM.

a. Inicie sesión en la consola de IAM.


b. Elija Policies (Políticas) en el panel de navegación de la izquierda, luego elija Create policy (Crear política).

c. En la página Create policy (Crear política), elija la pestaña JSON y luego pegue la siguiente política en el cuadro de texto. Asegúrese de reemplazar el nombre de su bucket por el nombre del bucket de Amazon S3 que creó anteriormente en este tutorial.

El resultado debería verse como la siguiente imagen.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:PutBucketAcl",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::<your bucket name>",
                "arn:aws:s3:::<your bucket name>/*"
            ]
        }
    ]
}
update7

d. Elija Review Policy (Revisar la política).

e. Otorgue un nombre a la política, como wp-s3-policy, luego elija Create policy (Crear política).

Ahora tiene una política que puede aplicar a un nuevo usuario de IAM. En los siguientes pasos, creará un nuevo usuario de IAM

update8

f. Elija Users (Usuarios) en la navegación de la izquierda. Luego elija Add user (Agregar usuario).

lb7

g. Escriba un nombre de usuario.

P. ej.: wp-s3-user.


h. Elija Programmatic access (Acceso mediante programación).

i. Elija Next: Permissions (Siguiente: permisos).

lb8

j. Elija Attach existing policies directly (Asociar las políticas existentes directamente).


k. Busque el nombre de la política de IAM que creó anteriormente en estos pasos, como wp-s3-policy.

 


l. Elija la política que creó en los resultados de búsqueda.

m. Elija Next: Tags (Siguiente: etiquetas).

 

update10

n. No es necesario que agregue etiquetas al usuario de IAM. Elija Next: Review (Siguiente: revisión).


o. Revise los detalles del usuario y luego elija Create user (Crear usuario).

lb10

p. Copie el ID de clave de acceso del usuario y péguelo en el archivo de texto de las credenciales que creó anteriormente en este tutorial.

lb11

q. Elija Show (Mostrar) en la columna Secret access key (Clave de acceso secreta).


r. Copie la clave de acceso secreta y péguela en el archivo de texto de las credenciales.


s. Guarde el archivo de texto de las credenciales en una ubicación segura. Necesitará estas credenciales más adelante en este tutorial.


t. Seleccione Close (Cerrar).

Ahora ha terminado con la consola de IAM y puede cerrarla.

4. Conectarse a la instancia de WordPress a través de SSH para configurar la base de datos administrada y las credenciales de usuario de IAM

Complete los siguientes pasos para exportar los datos de la base de datos de MySQL en la instancia de WordPress e impórtelos a su nueva base de datos administrada de MySQL en Lightsail. También configurará la instancia de WordPress para conectarse a la base de datos administrada de MySQL y configurará las credenciales de usuario de IAM en la instancia de WordPress.


a. Inicie sesión en la consola de Lightsail.


b. En la pestaña Instances (Instancias) de la página de inicio de Lightsail, elija el icono de cliente SSH basado en navegador para la instancia de WordPress.

lb12

c. Después de que se abra la ventana del cliente SSH basado en navegador, ingrese el siguiente comando a fin de recuperar la contraseña predeterminada de Bitnami para las aplicaciones en la instancia de WordPress:

cat $HOME/bitnami_application_password

        d. Copie la contraseña que se muestra y péguela en el archivo de texto donde está         almacenando sus credenciales.

lb13

e. Escriba los siguientes comandos uno por uno para establecer variables de entorno con la información que copió y pegó en el archivo de texto de las credenciales.

LSDB_USERNAME=<DatabaseUserName>
LSDB_ENDPOINT=<DatabaseEndpoint>
LSDB_PASSWORD='<DatabasePassword>'
ACCESS_KEY=<AccessKeyID>
SECRET_KEY=<SecretAccessKey>

Nota: Asegúrese de poner una comilla simple antes y después del parámetro LSDB_PASSWORD.

Por ejemplo:

LSDB_USERNAME=dbmasteruser
LSDB_ENDPOINT=ls-24e932a56656a5b471398ea052a04bc32ea0703d.czowadgeezqi.us-west-2.rds.amazonaws.com
LSDB_PASSWORD='3stTVwnfJh9CnKR6'
ACCESS_KEY=AKIAIOSFODNN7EXAMPLE
SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

f. Escriba el siguiente comando para crear una copia de la base de datos de MySQL que se encuentra en la instancia de WordPress. Este comando crea un archivo dump.sql en el directorio actual.

mysqldump -u root --databases bitnami_wordpress --single-transaction --order-by-primary -p > dump.sql

g. Escriba la contraseña predeterminada de Bitnami cuando se le solicite una contraseña. Esta es la contraseña predeterminada de Bitnami para las aplicaciones en la instancia de WordPress, que obtuvo anteriormente en estos pasos.


h. Escriba el siguiente comando para importar el archivo dump.sql a su base de datos administrada de MySQL en Lightsail.

cat dump.sql | mysql --user $LSDB_USERNAME --host $LSDB_ENDPOINT -p

i. Escriba la contraseña de la base de datos administrada de MySQL cuando se le solicite. Esta es la contraseña para su base de datos administrada de MySQL que obtuvo de la consola de Lightsail anteriormente en este tutorial.


j. En los siguientes pasos, modificaremos el archivo wp-config.php. Antes de continuar, escriba el siguiente comando para crear una copia de seguridad del archivo wp-config.php por si algo sale mal.

cp /home/bitnami/apps/wordpress/htdocs/wp-config.php /home/bitnami/apps/wordpress/htdocs/wp-config.php.bak

k. Escriba el siguiente comando para obtener la contraseña para la base de datos de MySQL en la instancia del archivo wp-config.php y configúrelo como una variable de entorno WPDB_PASSWORD.

WPDB_PASSWORD=`cat /home/bitnami/apps/wordpress/htdocs/wp-config.php | grep DB_PASSWORD | cut -d \' -f 4`

l. Escriba el siguiente comando para agregar el puerto a la variable de entorno del punto de enlace de la base de datos de Lightsail.

LSDB_ENDPOINT=$LSDB_ENDPOINT:3306

m. Escriba el siguiente comando para usar la línea de comandos de WordPress a fin de agregar el nombre de usuario, la contraseña y el punto de enlace de la base de datos administrada de MySQL al archivo wp-config.php.

wp config set DB_USER $LSDB_USERNAME && wp config set DB_PASSWORD $LSDB_PASSWORD && wp config set DB_HOST $LSDB_ENDPOINT

n. Escriba el siguiente comando para crear un archivo credfile.txt que contenga las credenciales del usuario de IAM que creó anteriormente en este tutorial.

cat <<EOT >> credfile.txt
define( 'AS3CF_SETTINGS', serialize( array (
    'provider' => 'aws', 
    'access-key-id' => '$ACCESS_KEY', 
    'secret-access-key' => '$SECRET_KEY',
) ) );
EOT

o. Ingrese el siguiente comando para insertar el contenido del archivo credfile.txt en el archivo wp-config.php.

sed -i "/define( 'WP_DEBUG', false );/r credfile.txt" /home/bitnami/apps/wordpress/htdocs/wp-config.php

p. Escriba el siguiente comando para eliminar el archivo credfile.txt, porque ya no lo necesita. En este punto, también puede eliminar el archivo de credenciales que contiene todas las credenciales que copió y pegó anteriormente en este tutorial.

sudo rm –r credfile.txt

q. El conjunto de comandos anterior restableció los permisos para el archivo wp-config.php. Escriba el siguiente comando para corregir los permisos para el archivo wp-config.php y la copia de seguridad que creó.

sudo chown bitnami:daemon /home/bitnami/apps/wordpress/htdocs/wp-config.php && sudo chown bitnami:daemon /home/bitnami/apps/wordpress/htdocs/wp-config.php.bak

r. Escriba el siguiente comando para reiniciar los servicios en la instancia.

sudo /opt/bitnami/ctlscript.sh restart

Puede cerrar la ventana del cliente SSH basado en navegador. Ahora, la instancia de WordPress está configurada para conectarse a su nueva base de datos administrada de MySQL en Lightsail. Cuando crea nuevas publicaciones en el sitio web de WordPress, los datos de esas publicaciones se escriben en la base de datos administrada de MySQL en Lightsail, en lugar de en la base de datos administrada de MySQL que se encuentra en la instancia.

5. Iniciar sesión en el panel del sitio web de WordPress e instalar el complemento WP Offload Media

Complete los siguientes pasos para instalar el complemento WP Offload Media en el sitio web de WordPress. El complemento WP Offload Media crea un bucket de Amazon S3 en su cuenta de AWS con las credenciales de IAM configuradas en la sección anterior de este tutorial. También conecta su WordPress al nuevo bucket de S3 para que los archivos multimedia cargados en su sitio web se guarden en el nuevo bucket de S3. El nuevo bucket de S3 servirá como la ubicación central de los archivos multimedia para todas las instancias de WordPress a las que se les equilibrará la carga.


a. Diríjase a su instancia. Por ejemplo: http://192.0.2.0.

Puede obtener la dirección IP pública de su instancia en la consola de Lightsail como se muestra en la siguiente imagen:

lb14

b. Elija el icono de administración de Bitnami en la esquina inferior derecha de la página

lb15

c. Elija Login (Iniciar sesión).

lb16

d. Escriba el usuario en el cuadro de texto del nombre de usuario e ingrese la contraseña predeterminada de Bitnami en el cuadro de texto de la contraseña. Luego, elija Log in (Iniciar sesión).

lb17

e. Coloque el cursor sobre Plugins (Complementos) en el panel de navegación de la izquierda y luego elija Add new (Agregar uno nuevo).

lb18

f. Escriba WP Offload Media en el cuadro de texto de búsqueda y presione Enter (Intro).

lb19

g. En los resultados de la búsqueda, elija Install Now (Instalar ahora) junto al complemento WP Offload Media Lite.

lb29

h. Elija Activate (Activar) después de instalar el complemento.

lb21

i. Una vez que se active el complemento, coloque el cursor sobre Settings (Configuración) en la navegación izquierda y elija Offload Media Lite.

lb22

j. En la página de configuración de Offload Media Lite, escriba el nombre del bucket de S3 que creó anteriormente en este tutorial en el cuadro de texto Bucket.

Luego, elija Save Bucket Setting (Guardar configuración de bucket).

update11

La página de Offload Media Lite confirmará que se guardaron sus configuraciones.

Su sitio web de WordPress ahora está configurado para cargar archivos multimedia en su bucket de Amazon S3. Ahora, con el nuevo bucket central de S3 para los archivos multimedia de WordPress, junto con la nueva base de datos administrada de MySQL central en Lightsail, puede duplicar la instancia de WordPress y cada versión duplicada de su instancia se referirá al bucket de S3 y a la base de datos administrada de MySQL. Continúe con el siguiente paso para duplicar la instancia de WordPress en Lightsail.

Picture1

6. Duplicar la instancia de WordPress

Complete los siguientes pasos para crear una instantánea de la instancia de WordPress y luego use la instantánea para crear un duplicado de su instancia.


a. Inicie sesión en la consola de Lightsail.


b. En la pestaña Instances (Instancias) de la página de inicio de Lightsail, elija el nombre de la instancia de WordPress.

lb26

c. En la página de administración de instancias, elija la pestaña Snapshots (Instantáneas). 

d. Elija Create snapshot (Crear instantánea) y, a continuación, seleccione Create (Crear).

lb28

e. Cuando se haya terminado de crear la instantánea, elija el icono de elipsis (⋮) y seleccione Create new instance (Crear instancia nueva).

lb29real

f. En la página Create an instance from a snapshot page (Crear una instancia a partir de una instantánea), no cambie las selecciones predeterminadas. Desplácese hasta la parte inferior de la página y elija Create instance (Crear instancia).

Esto crea un duplicado exacto de la instancia original de WordPress, que ya está configurada para conectarse a la base de datos administrada de MySQL y al bucket de Amazon S3 creados anteriormente en este tutorial.

Repita los pasos de esta sección del tutorial para crear tantas instancias a las que se les necesite equilibrar la carga como sea necesario. Continúe con la siguiente sección de este tutorial para crear un balanceador de carga en Lightsail y adjunte sus instancias.

lb30
lb31

7. Crear un balanceador de carga en Lightsail y asociar las instancias de WordPress

Complete los siguientes pasos para crear un balanceador de carga en Lightsail y asocie las instancias de WordPress.


a. Inicie sesión en la consola de Lightsail.


b. En la página de inicio de Lightsail, elija la pestaña Networking (Redes).


c. Elija Create load balancer (Crear balanceador de carga).

lb32

d. En la página Create a load balancer page (Crear un balanceador de carga), asigne un nombre a su balanceador de carga y elija Create load balancer (Crear balanceador de carga).


e. Elija el nombre de su balanceador de carga.

lb33

f. En la pestaña Target instances (Instancias de destino), en la sección de la página Target instances (Instancias de destino), elija el menú desplegable y seleccione una de las instancias de WordPress. Elija Attach (Asociar) para asociar la instancia.

lb34

g. Elija Attach another (Asociar otra) para asociar otra instancia al balanceador de carga.

Asocie todas las instancias duplicadas de WordPress al balanceador de carga.

lb35

h. En la parte superior de la página de Load balancer management (Administración del balanceador de carga), copie el nombre DNS del balanceador de carga.

lb36

i. Abra una nueva ventana del navegador, pegue el nombre DNS en el cuadro de texto de la dirección y presione enter (Intro).

Su solicitud se enruta a través del balanceador de carga y se carga al sitio web de WordPress. El sitio web que se carga es de una de las instancias de WordPress asociadas a su balanceador de carga. En este punto, el balanceador de carga está configurado para enrutar a una de sus instancias duplicadas de WordPress. Para completar el proceso, agregue el nombre DNS de su balanceador de carga como un registro de dirección (A) al DNS de su dominio registrado.

Felicitaciones

Ha creado un sitio web de WordPress de carga balanceada en Lightsail.

Amazon Lightsail es ideal para desarrolladores, profesionales web y cualquier persona que quiera comenzar a utilizar AWS de manera rápida y económica. Puede lanzar instancias, bases de datos y almacenamiento en SSD, transferir datos, monitorizar sus recursos y mucho más de manera administrada.

¿Le resultó útil este tutorial?

Gracias
Indíquenos lo que le gustó.
Cerrar
Lamentamos haberlo decepcionado
¿Hay información desactualizada, confusa o inexacta? Ayúdenos a mejorar este tutorial con sus comentarios.
Cerrar