
En este tutorial, te mostramos cómo desplegar tu propio sitio web de WordPress en la nube de Amazon Web Services (AWS). En secciones anteriores de este curso de WordPress, hemos visto cómo instalar WordPress en local con el método tradicional y cómo instalar WordPress en local con Docker. Veamos ahora cómo puedes instalar WordPress en la nube beneficiándote de una infraestructura como AWS.
1. Instalación de WordPress en AWS
En este artículo, instalaremos WordPress en una instancia EC2 de AWS utilizando Docker. Como hemos visto en tutoriales anteriores, Docker es una tecnología que nos permite empaquetar, distribuir y ejecutar aplicaciones en contenedores, lo que hace que la instalación y gestión de aplicaciones sea mucho más sencilla y eficiente.
Durante el proceso de instalación, aprenderemos a crear y configurar un archivo YAML para Docker Compose, que describirá los servicios necesarios para ejecutar WordPress y su base de datos. Además, utilizaremos este archivo junto con una instancia EC2 de AWS para desplegar y poner en marcha nuestra instancia de WordPress en la nube.
Antes de comenzar con la instalación de WordPress, vamos a ver ciertos conceptos y funcionalidades que hay que comprender sobre AWS, instancias EC2, Docker y Docker Compose. Entender todos estos conceptos es fundamental antes de embarcarse en la instalación de WordPress en la nube. Estos elementos son pilares en el desarrollo y despliegue de aplicaciones modernas, y comprenderlos te ofrece una base sólida para aprovechar al máximo estas tecnologías punteras.
1.1. ¿Cómo funciona AWS?
AWS es un conjunto de servicios en la nube ofrecidos por Amazon que permiten a las empresas y desarrolladores ejecutar aplicaciones y almacenar datos de manera segura y escalable. AWS ofrece una amplia gama de servicios, desde almacenamiento y computación hasta inteligencia artificial y análisis de datos.
El funcionamiento de AWS se basa en la infraestructura global de centros de datos de Amazon, distribuidos en diferentes regiones geográficas de todo el mundo. Estos centros de datos están interconectados mediante una red de alta velocidad y están diseñados para garantizar la redundancia, la disponibilidad y la durabilidad de los datos.
Los clientes de AWS pueden utilizar estos servicios a través de una interfaz de línea de comandos, una consola web o mediante API (Application Programming Interface). AWS utiliza un modelo de pago por uso, lo que significa que los clientes solo pagan por los recursos que utilizan. También existen cuentas para profesorado y alumnado para poder hacer uso de los servicios AWS con un crédito inicial de forma gratuita.
1.2. ¿Qué es AWS Academy y para qué lo voy a usar?
AWS Academy es un programa de formación y certificación desarrollado por Amazon Web Services (AWS) para el profesorado y alumnado que quiere adquirir habilidades en la nube. Utiliza un LMS (Learning Management System) para ofrecer cursos especializados y recursos educativos centrados en la tecnología de la nube de AWS.
Cuando recibes una invitación de tu profesorado para unirse al laboratorio de AWS Academy, obtienes acceso a una plataforma de aprendizaje en la nube que te permite participar en actividades prácticas, laboratorios guiados y proyectos relacionados con AWS.
Como estudiante con acceso a un laboratorio de AWS Academy, tendrás la capacidad de crear instancias EC2, que son servidores virtuales escalables en la nube de AWS. Además, tendrás acceso a una variedad de recursos y herramientas proporcionadas por AWS Academy para aprender y practicar con los servicios de AWS.
1.3. ¿Qué es una instancia de AWS y qué es una instancia EC2?
Una instancia en AWS se refiere a un servidor virtual que puedes lanzar y ejecutar en la nube de Amazon Web Services (AWS). Estas instancias, conocidas como Amazon EC2 (Elastic Compute Cloud), ofrecen una amplia gama de capacidades de cómputo, desde opciones de procesamiento básicas hasta configuraciones de alto rendimiento con memoria, almacenamiento y capacidad de red personalizables.
Cada instancia EC2 funciona como un servidor independiente, con su propio sistema operativo, recursos dedicados y direcciones IP. Puedes elegir y modificar el tipo de instancia que mejor se adapte a tus necesidades, seleccionando factores como la cantidad de CPU, la memoria RAM, el almacenamiento y el rendimiento de la red.
1.4. ¿Qué es Docker?
Docker es una plataforma de código abierto que permite a los desarrolladores empaquetar, distribuir y ejecutar aplicaciones en contenedores. Estos contenedores son entornos ligeros y portátiles que contienen todo lo necesario para que una aplicación se ejecute, incluidas las bibliotecas y dependencias. Esto hace que las aplicaciones sean fácilmente transferibles entre diferentes entornos, lo que facilita su despliegue en la nube de AWS.
1.5. ¿Qué es Docker Compose?
Por otro lado, Docker Compose es una herramienta que permite definir y gestionar aplicaciones Docker multi-contenedor de manera sencilla utilizando archivos YAML. Con Docker Compose, puedes describir los servicios necesarios para tu aplicación, como servidores web, bases de datos y otros componentes, en un solo archivo, lo que simplifica la configuración y el despliegue de tu aplicación en instancias de AWS.
1.6. Tutorial en vídeo para instalar WordPress en AWS con Docker
Además de los pasos detallados en este artículo, adjunto un recurso complementario por si prefieres seguir un tutorial visual. En este vídeo, de Sonia Tovar, se detallan los pasos a seguir de manera clara y concisa.
2. Configuración inicial en AWS Academy
En primer lugar necesitamos iniciar sesión en AWS Academy. Si eres estudiante y tienes acceso a AWS Academy, tienes la oportunidad de participar en laboratorios prácticos de AWS, donde puedes aprender y experimentar con los servicios de la nube de Amazon.
Como estudiante del curso en el que estás inscrito, habrás recibido una invitación por parte del profesorado para participar en los laboratorios con un crédito de 100 dólares para utilizar los servicios de AWS durante un determinado tiempo.
Pasos iniciales para acceder a AWS Academy y crear un laboratorio
- Accede a tu correo electrónico y visualiza la invitación que te ha llegado a tu bandeja de entrada para acceder a tu cuenta de estudiante de AWS. Si no has recibido una invitación, puedes acceder desde la siguiente página: https://www.awsacademy.com/vforcesite/LMS_Login
- En el panel inicial, pincha en la sección «contenido y busca la opción para iniciar el laboratorio “Lanzamiento del Laboratorio para el alumnado de AWS Academy”.
- Una vez cargado el laboratorio, haz clic en «Start Lab» en la parte derecha del menú superior.
3. Creación de la instancia o servidor virtual en AWS
Para crear una instancia o servidor virtual en AWS debes acceder a la página inicial de la consola de AWS y seguir estos pasos:
Pasos a seguir para crear la instancia en AWS
- Accede a la opción AWS en el lado izquierdo del menú superior que puedes encontrar en tu laboratorio. De esta forma, entrarás a la página inicial de la consola de AWS, lugar que te permite crear instancias.
- Selecciona el servicio EC2.
- Lanza una nueva instancia en la opción «Lanzar instancia«.
- Indica un nombre para tu instancia en el apartado «Nombre».
- Selecciona el Sistema Operativo Amazon Linux AWS, utilizando las opciones por defecto.
- En el apartado «Par de claves«, establece en el desplegable del nombre de par de claves la clave «vockey«.
- En el apartado «Configuración de red» permite el tráfico HTTP desde Internet seleccionando el check correspondiente.
- Lanza la instancia en el botón situado en el lateral derecho con el nombre «Lanzar instancia«.
- Una vez lanzada la instancia, pulsa el botón «Conectarse a la instancia» (botón derecho del ratón sobre la instancia).
- Después, en el menú lateral izquierdo selecciona la opción «Instancias«. En este momento podrás ver que tu instancia se encuentra en ejecución y que tiene asignada una IP pública dinámica.
Recuerda que cada sesión tiene una duración de 4 horas. Por tanto, NO OLVIDES parar el laboratorio (pulsando el botón «END Lab») para que el tiempo no discurra y no agotes tus créditos.
4. Asignar una IP fija
Asignar una IP fija en AWS es necesario para garantizar la estabilidad y accesibilidad de tu aplicación, especialmente cuando se trata de plataformas como WordPress (cada vez que se ejecuta la instancia se obtiene una IP diferente a la utilizada en la configuración de WordPress). En AWS, este tipo de direcciones se conocen como Elastic IP.
Pasos a seguir para asignar una IP fija
- Accede al panel de EC2 desde el menú lateral izquierdo del panel de AWS.
- Selecciona la opción «Direcciones IP elásticas».
- Haz clic en el botón «Asignar dirección IP elástica».
- Localiza la dirección IP elástica disponible y elige la instancia a la que quieras asignarla.
- Presiona el botón «Asociar».
Con este proceso, tu instancia EC2 siempre tendrá la misma dirección IP pública, lo que evita que esta cambie cada vez que se inicie la máquina. Esto es esencial para mantener la continuidad de la aplicación y asegurar que los servicios sean fácilmente accesibles para los usuarios.
Es importante recordar que si no realizas estos pasos antes de que transcurran las 4 horas del laboratorio, la dirección IP cambiará y será necesario modificar los archivos de configuración correspondientes. Además, si no asignas una IP fija antes de instalar WordPress, la aplicación podría dejar de ser accesible cuando la instancia reciba una dirección IP pública diferente.
5. Conectar la instancia EC2
En este punto, nos aseguraremos de establecer una conexión con la instancia EC2 para acceder a la consola de administración de AWS. Esta consola, conocida como «AWS Management Console» o «Consola de Administración de AWS», es una interfaz basada en web que facilita la gestión centralizada de todos los servicios y recursos de AWS.
Pasos a seguir para conectar la instancia EC2:
- En el panel de AWS, navega al menú lateral izquierdo y selecciona «Instancias».
- Dentro de la lista de instancias, ubícate en la instancia con la que te quieres conectar y haz clic con el botón derecho del ratón sobre ella.
- En el menú desplegable que aparece, selecciona la opción «Conectar». Esto abrirá una nueva ventana o pantalla emergente.
- Dentro de la ventana emergente, confirma la opción «Conectar» nuevamente para establecer la conexión con la instancia EC2.
6. Instalar Docker en una máquina Linux AWS
A continuación, veremos los pasos necesarios para instalar Docker en una máquina Linux en AWS.
Pasos a seguir para instalar Docker
- Actualiza la caché de paquetes: Utiliza el siguiente comando para asegurarte de que la caché de paquetes esté actualizada.
sudo yum update -y
- Instala la versión más reciente de Docker Community: Instala Docker Community Edition con el siguiente comando.
sudo yum install -y docker
- Inicia el servicio Docker: Ejecuta el siguiente comando para iniciar el servicio de Docker.
sudo service docker start
- Agrega al usuario ec2-user al grupo Docker: Asegúrate de que el usuario ec2-user tenga permisos para ejecutar comandos de Docker con el siguiente comando.
sudo usermod -a -G docker ec2-user
- Actualiza los permisos y reinicia la instancia: Cierra la sesión actual con el usuario ec2-user y vuelve a conectarte para actualizar los permisos. Detén e inicia la instancia desde el panel de «Instancias» en la consola de AWS para aplicar los cambios. En este caso, nos vamos al apartado “Instancias”, visualizaremos que el estado de nuestra instancia está “en ejecución”. Nos ubicamos con el puntero encima del texto “en ejecución” y pulsamos botón derecho del ratón y “Detener instancia”. Una vez esté detenida haremos la misma operación para “Iniciar instancia” y después “Conectar”.
- Configura Docker para que se inicie automáticamente: Para que Docker se inicie automáticamente cada vez que la máquina se inicie, ejecuta el siguiente comando.
sudo chkconfig docker on
- Verificar que Docker esté funcionando: Finalmente, verifica que Docker esté correctamente instalado y funcionando con el siguiente comando.
docker ps
7. Instalar Docker Compose
Para simplificar aún más la gestión de contenedores en tu máquina Linux AWS, vamos a instalar Docker Compose. Docker Compose es una herramienta que te permite definir y ejecutar aplicaciones Docker de manera fácil y eficiente mediante archivos YAML.
Pasos para la instalación de Docker Compose
- Descarga la última versión: Utiliza el siguiente comando para descargar la última versión de Docker Compose.
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
- Corrige los permisos: Una vez completada la descarga, asegúrate de que Docker Compose tenga permisos de ejecución con el siguiente comando.
sudo chmod +x /usr/local/bin/docker-compose
- Verifica la Instalación: Finalmente, confirma que Docker Compose se haya instalado correctamente ejecutando.
docker-compose version
Con estos pasos, deberías tener Docker y Docker Compose instalados y listos para su uso en tu máquina Linux AWS.
8. Crear el fichero YAML en consola
En este punto, veremos cómo crear l archivo YAML necesario para configurar WordPress en una máquina virtual en AWS utilizando Docker Compose. El archivo YAML, llamado docker-compose.yml, nos ayuda a definir los servicios requeridos para ejecutar WordPress y su base de datos de manera eficiente y escalable.
YAML, es el acrónimo de “yet another markup language” (otro lenguaje de marcado más) o de “YAML ain’t markup language” (YAML no es un lenguaje de marcado); este último es un acrónimo que se utiliza para dejar claro que YAML es para los datos y no para los documentos. A menudo se utiliza para configurar aplicaciones, almacenar datos estructurados, y comunicar información entre sistemas. Lo que hace a YAML particularmente popular es su sintaxis simple y legible, que utiliza sangrías para denotar estructuras de datos jerárquicas, como listas y diccionarios.
Pasos para la creación del fichero YAML
1. Preparación del entorno: Crea un nuevo directorio para tu instalación de WordPress y navega a él con los siguientes comandos.
mkdir wordpress cd wordpress
2. Creación del Archivo YAML: Utiliza el editor de texto nano para crear un nuevo archivo YAML llamado docker-compose.yml, donde definiremos los servicios necesarios para ejecutar WordPress y su base de datos.
nano docker-compose.yml
3. Copia y pega el contenido del archivo YAML proporcionado a continuación.
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
4. Configuración del archivo YAML: Dentro del archivo YAML, asegúrate de actualizar las contraseñas para la base de datos de WordPress y MySQL con valores seguros. Esto se hace modificando las variables WORDPRESS_DB_PASSWORD y MYSQL_PASSWORD.
5. Guardar y Salir: Una vez hayas realizado los cambios, guarda el archivo presionando Ctrl + S y luego sal de nano presionando Ctrl + X.
9. Ejecutar el contenedor de WordPress
Ahora que tienes tu archivo docker-compose.yml configurado, puedes ejecutar el contenedor de WordPress y la base de datos MySQL utilizando Docker Compose. Ejecuta el siguiente comando:
docker-compose up -d
Esto iniciará los contenedores en segundo plano (-d). Ahora deberías tener WordPress y MySQL ejecutándose en tu instancia de AWS utilizando Docker Compose. Puedes acceder a WordPress a través de tu navegador web yendo a la dirección IP pública de tu instancia. Por ejemplo, si tu IP pública es 23.23.35.135, escribe en la barra de direcciones del navegador http://23.23.35.135.
La IP está disponible en la pantalla “Instancias”, pulsando sobre la instancia que estamos utilizando. En los detalles aparece la información de la IP y DNS público.
Una vez hecho esto, puedes dirigirte a la página de inicio de sesión de WordPress, donde puedes iniciar sesión con las credenciales configuradas durante la instalación (fichero yaml).
10. Reanudar una Instancia en AWS Después de Detenerla
Una vez finalizado tu trabajo, es recomendable detener la instancia en AWS (botón derecho sobre la instancia/Opción Detener instancia). Pero, ¿cómo la reinicias posteriormente?
- Inicia sesión en AWS y accede a la consola. En nuestro caso, iniciamos sesión en AWS con nuestra cuenta, accedemos al LMS (Learning Management System) y seleccionamos la asignatura correspondiente. Desde allí, iniciamos el laboratorio y navegamos hasta la sección de AWS para acceder a la página de inicio de la consola. Recuerda que, en cualquier momento, puedes dirigirte a tu correo electrónico y a través de la invitación «Invitación a la asignatura» que recibiste de AWS Academy, puedes acceder directamente a tu laboratorio.
- Enciende y conecta la instancia desde a página de inicio de la consola. Desde la página de inicio de la consola, nos dirigimos a EC2, donde seleccionamos «Instancias». Aquí, iniciamos y nos conectamos a la instancia específica que necesitamos. En este punto ya podemos acceder a WordPress con nuestra IP pública.