Ejecuta wordpress sin Esfuerzo en Amazon AWS EC2
Iniciar un nuevo sitio nunca ha sido tan fácil, gracias a plataformas como WordPress. En esta guía, te guiaremos en el despliegue de WordPress en AWS utilizando EC2 y Docker. Al final, tendrás un sitio de WordPress funcionando sin problemas en una infraestructura AWS confiable.
Prerrequisito: Estoy usando Debian en mi máquina host.
1. Configurando Tu Instancia EC2:
- Iniciar: Dirígete al panel de EC2 y haz clic en “Launch Instance”.
- Nombrar Tu Instancia: Digamos, ‘wordpress’.
- Elegir Tipo de Instancia: Recomiendo
t3.small
después de algunas pruebas. ¡Es ideal para principiantes! - Par de Claves: Crea uno nuevo y guarda el archivo CSV. Lo necesitaremos para el acceso SSH más tarde.
- Configuración de Red: Elige tu VPC. Si tienes una subred privada configurada, selecciónala.
- Firewall: Permite el tráfico SSH y HTTP desde cualquier lugar. Para otros ajustes, los valores predeterminados deberían funcionar bien.
2. Instalando Docker y Docker Compose:
Primero, asegúrate de que los permisos de tu archivo PEM estén configurados correctamente:
$ chmod 400 <miArchivoPem>
Accede por SSH a tu nueva instancia EC2:
$ ssh -i "<miArchivoPem>.pem" ec2-user@<IPpublicaODNS>
Actualiza los paquetes, instala Docker y agrega al ec2-user al grupo Docker:
$ sudo yum update
$ sudo yum install docker
$ sudo usermod -a -G docker ec2-user
Para Docker Compose:
$ sudo yum install python3-pip
$ sudo pip3 install docker-compose
Habilita Docker al iniciar:
$ systemctl enable docker.service
$ systemctl start docker.service
Verifica las instalaciones:
$ docker version
$ docker-compose version
3. Desplegando WordPress:
Crea un directorio para el proyecto:
mkdir miSitioWordpress
Dentro del directorio, configura tu archivo docker-compose.
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:5.7
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:
Luego, inicia tus servicios:
docker-compose up -d
Visita http://tu-dns-ec2-o-ip-publica y sigue la configuración de WordPress.
4. Crea un ACM:
Para servir nuestro sitio correctamente en 443, necesitaremos crear un certificado, podemos hacerlo en AWS utilizando el servicio ACM
- Navega a ACM > Certificados.
- Haz clic en el botón “Solicitar”.
- Tipo de certificado: certificado público.
- Para el nombre de dominio completamente calificado, añade tu dominio, por ejemplo: misitio.com
- Puedes dejar otras opciones como predeterminadas.
- Haz clic en el botón de crear certificado.
- Luego, como siguiente paso, puedes seleccionar nuevamente tu certificado y hacer clic en “Crear registros en Route 53”. Esto creará automáticamente registros de validación en r53.
5. Crea un grupo objetivo:
Necesitamos crear un grupo objetivo que se dirija al nuevo servicio que se ejecuta en la instancia que creamos anteriormente. Para esto navegamos a la Consola EC2 > Grupos Objetivo:
- Haz clic en el botón “Crear grupo objetivo”.
- Selecciona como tipo de objetivo “instancias”.
- Añade un nombre al grupo objetivo, por ejemplo: MiSitioTG
- Deja el protocolo en HTTP por defecto: Puerto 80
- Haz clic en siguiente Aquí verás un panel donde seleccionarás la instancia de tu sitio. Incluye tu instancia en el puerto 80 y haz clic en el botón “Crear grupo objetivo”.
6. Crea un balanceador de carga:
Ahora podemos proceder a la creación de ALB, para esto ve a EC2 > balanceadores de Carga.
- Haz clic en el botón “Crear nuevo balanceador de carga”.
- Luego selecciona el tipo “Balanceador de Carga de Aplicaciones”.
- Selecciona un nombre para tu equilibrador de carga, por ejemplo, MiSitioLB
- Esquema: De cara a Internet
- Mapeo de red: asegúrate de seleccionar la ZA correcta donde está ejecutándose tu instancia.
- En el grupo de seguridad, asegúrate de seleccionar un grupo que esté abierto en el puerto HTTPS 443 y HTTP 80.
- Oyentes y enrutamiento: Selecciona Protocolo HTTP, PUERTO 80. Y reenvía a: MiSitioTG (El grupo objetivo que acabamos de crear en la sección anterior).
- Oyentes y enrutamiento: Selecciona Protocolo HTTPS, PUERTO 443. Y reenvía a: MiSitioTG (El grupo objetivo que acabamos de crear en la sección anterior). Selecciona el certificado que previamente creamos que cubre tu sitio.
- Haz clic en “Crear equilibrador de carga”.
7. Crea un registro A en Route 53:
Para esto, suponemos que ya tienes una zona alojada para tu sitio y tienes un dominio.
- Ve a Route 53 > Zonas Alojadas > tusitio.com
- Haz clic en crear nuevo registro, luego elige “Enrutamiento Simple”.
- Elige el tipo de registro A
- En el campo Valor/Ruta de tráfico: busca el equilibrador de carga que creamos anteriormente.
Ahora, al acceder a tu dominio deberías ver tu sitio de WordPress.
¿Necesitas una solución de comercio electrónico a medida? En la Agencia Innoquanta,