IAW - Práctica 12
IAW - Implantación de Aplicaciones Web
IES Celia Viñas (Almería) - 2022/2023
1 Implantación de Wordpress en Amazon Web Services (AWS) sobre la pila LEMP
En esta práctica vamos a instalar la última versión disponible de WordPress sobre una pila LEMP. Revise la práctica 6 para conocer los detalles de instalación y configuración que hay que realizar sobre el servidor Nginx. También le puede resultar de utilidad consultar la práctica 8 donde se detallan los pasos necesarios para realizar una instalación de WordPress.
1.1 Arquitectura
1.2 Descripción de la arquitectura
La arquitectura estará formada por 3 capas:
- La primera capa tendrá un balanceador de carga, implementado con Nginx configurado como proxy inverso.
- La segunda capa tendrá dos servidores web Nginx, un servidor NFS y dos servidores con PHP FPM.
- La tercera capa tendrá una instancia de MySQL Server.
Necesitará crear 7 máquinas virtuales:
- Balanceador de carga
- Servidor web Nginx 1
- Servidor web Nginx 2
- NFS Server
- PHP FPM 1
- PHP FPM 2
- Servidor de MySQL Server.
1.3 Grupos de seguridad en AWS
Tendrá que crear los siguientes grupos de seguridad y asignarlos a las máquinas que corresponda con los puertos abiertos que se indican:
sg_load_balancer
. Puertos:22
,80
y443
.sg_nginx_servers
. Puertos:22
y80
.sg_nfs_server
. Puertos:22
y2049
.sg_php_fpm
. Puertos:22
y9000
.sg_mysql
. Puertos:22
y3306
.
1.4 Creación de las instancias EC2
- Deberá utilizar la AMI:
ami-0472eef47f816e45d
. - Durante la creación de la instancia EC2 debe ejecutar un script de bash que ejecute tres instrucciones:
- Eliminar todos los paquetes que comiencen por
mssql
ymsodbc
. - Eliminar el directorio
/var/opt/mssql
. - Actualizar la lista de paquetes de
apt
.
- Eliminar todos los paquetes que comiencen por
1.5 Importante
Los servicios de Nginx y PHP FPM se ejecutarán en diferentes máquinas y se comunicarán a través de un socket TCP por el puerto 9000
. Deberá buscar una solución para compartir el código fuente de la aplicación web entre los servidores Nginx y las máquinas PHP FPM.
Recuerde que su infraestructura cuenta con una máquina con NFS Server y que compartir un directorio por NFS entre todas estas máquinas le puede ser de utilidad.
1.6 Entregables
- Deberá crear un repositorio privado en GitHub y compartirlo con el profesor.
El repositorio debe incluir dos directorios:
infraestructure
: Contiene los scripts de bash que se han utilizado para crear la infraestructura en AWS con la utilidad AWS CLI.software
: Contiene los scripts de bash que se han utilizado para la configuración y el despliegue del sitio web. Deberá automatizar el proceso de instalación de WordPress haciendo uso de los scripts de bash que necesite.
El repositorio debe tener un documento técnico con la descripción de los pasos que se han llevado a cabo durante todo el proceso. El documento debe incluir como mínimo lo siguientes contenidos:
URL el sitio web con HTTPS habilitado.
URL del repositorio de GitHub donde se ha alojado el documento técnico escrito en Markdown.
Scripts de bash utilizados para realizar el aprovisionamiento de las máquinas virtuales.
Tenga en cuenta que el aprovisionamiento de las máquinas virtuales se realizará mediante un script de bash. Cada máquina usará su propio script. El contenido de cada uno de los scripts deberá ser incluido en el documento y deberá describir qué acciones se han ido realizando en cada uno de ellos.
2 Referencias
3 Licencia
Esta página forma parte del curso Implantación de Aplicaciones Web de José Juan Sánchez y su contenido se distribuye bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.