aws lightsail wordpress

Cómo migrar un blog de WordPress a AWS

La semana pasada tuve que migrar este blog ya que donde lo tenía alojado era un servidor antiguo que se iba a dar de baja. Aprovechando la coyuntura decidí probar con AWS, y a continuación explico los pasos que tuve que dar.

Amazon Web Services, aka AWS, dispone de multitud de servicios y opciones para alojar tu aplicación o web. En mi caso, me decidí por Amazon Lightsail, ya que creo que era suficiente para satisfacer mis necesidades, y me encajaba en precio.

El primer paso es obvio, disponer de cuenta de Amazon. Una vez que tengas cuenta, date de alta en Amazon Lightsail.

Paso 1: Crear una nueva instancia en Lightsail

Una vez que haces login, entras a un panel donde tienes diferentes opciones. Lo primero es crear una nueva instancia:

Amazon Lightsail create instance

A continuación selecciona la opción que más te interese en los pasos que te aparecen:

Seleccionar Región

En mi caso seleccioné París (eu-west-3) por cercanía:

Select a Region

Seleccionar plataforma

En mi caso Linux.

Seleccionar plataforma

Seleccionar aplicación

En mi caso WordPress:

Seleccionar aplicación

Selecciona plan

selecciona plan

Da un nombre a tu instancia

Elige un nombre para tu instancia y pulsa el botón «crear instancia».

nombre instancia

Y tras unos minutos tendremos una instancia de WordPress creada.

Paso 2: Accede a WordPress

Una vez creada la instancia, puedes acceder a WordPress introduciendo en tu navegador una dirección IP que te ha sido asignada de forma dinámica. La podrás encontrar aquí:

aws ip dinamica

Y para acceder al backend lo único que tendrás que hacer es añadir wp-admin a la URL, es decir, algo tipo http://XXX.XXX.XXX.XXX/wp-admin.

El usuario administrador creado por defecto en esta instancia es user. Y para conocer la password deberás conectarte a la terminal, haciendo click en el icono naranja de terminal y ejecutar el siguiente comando:

cat bitnami_application_password

Ya tienes las credenciales y con ellas puedes acceder al backend de WordPress.

Paso 3: Migrar el blog

La instancia creada es una instancia «casi» limpia de WordPress. Digo casi limpia porque viene con varios plugins instalados que quizá no necesites. Y lo que hace falta ahora es llevar los plugins, temas y carpeta uploads del blog que queremos migrar.

Para este paso opciones hay muchas, incluso puedes utilizar algún plugin para realizar una copia de tu sitio y llevarla a la nueva instancia. En mi caso preferí hacerlo a través de sFTP y llevarme la BBDD manualmente ya que en esta instancia tenemos disponible wp-cli.

Paso 4: Crear una IP estática

La IP que tenemos es dinámica, lo que significa que cada vez que se crea o reinicia la instancia, te asigna una IP pública nueva. Vamos a crear una dirección IP estática pública para que sea fija, y de este modo podamos configurar los DNS y nuestro sFTP

En la pantalla principal de Lightsail, haz click en la pestaña Networking (redes) y pincha sobre el botón Create static IP. Simplemente configura la ubicación, selecciona la instancia a vincular y asigna un nombre y listo, ya tendremos una IP estática y podemos configurar los dos siguientes pasos.

Paso 5: Configura sFTP

Para configurar el sFTP necesitarás un cliente (FileZilla por ejemplo). Tenemos ya una IP estática y ahora necesitaremos unas claves SSH. Para obtenerlas sigue estos pasos:

  1. En el panel de Lightsail, arriba a la derecha despliega el menú Account (Cuenta) y selecciona Account.
  2. Haz click en la pestaña SSH Keys.
  3. Haz scroll hasta la sección Default Keys, y descarga la key correspondiente a la zona que elegiste para tu instancia.
  4. Guarda las claves en un lugar seguro.

Tenemos todo lo necesario para configurar FileZilla, simplemente sigue estos pasos:

  1. Abre FileZilla y crea un nuevo sitio.
  2. El el desplegable de protocolo, selecciona SFTP – SSH File Transfer Protocol.
  3. En la caja para el Host, introduce tu IP estática que hemos creado anteriormente.
  4. En el desplegable de Login Type o Modo de Acceso, selecciona Key File o Archivo de Claves, y selecciona el archivo que hemos descargado anteriormente.
  5. En la caja para el usuario, pon el que corresponda según tu instancia y sistema operativo escogidos:
    • Amazon Linux, Amazon Linux 2, FreeBSD, and openSUSE instances: ec2-user
    • CentOS instances: centos
    • Debian instances: admin
    • Ubuntu instances: ubuntu
    • Bitnami instances: bitnami
    • Plesk instances: ubuntu
    • cPanel & WHM instances: centos

Con esto ya podrías conectar y acceder por sFTP a tu instancia. Si elegiste hacer la migración manualmente, ahora podrás subir tus temas, plugins y uploads a tu instancia. En mi caso también subí la BBDD y la importé con wp-cli.

Tienes información más detallada sobre esto en este enlace.

Paso 6: Crear zona DNS y configurar DNS

Como último paso crearemos una zona DNS y apuntaremos nuestro dominio hacia la instancia de Amazon Lightsail. Para ello accede al panel y haz click sobre la pestaña Domains & DNS y pincha en el botón Create DNS.

A continuación establece tu dominio y pincha en el botón Create DNS zone.

dns name servers

Copia los Name servers, al final apuntaremos nuestro dominio a estas DNS. Por último deberemos añadir los registros DNS. Para ello haz click en la pestaña DNS records y añade los registros que necesites. (admite los tipos: A, CNAME, MX, NS, SRV y TXT. Más info sobre los diferentes tipos).

En mi caso añadí un par de registros A (@.desarrollowp.com y www.desarrollowp.com) e indiqué que ambos se resuelvan en la IP pública estática que creamos anteriormente. Puedes encontrar información más detallada en este enlace.

Teniendo todo configurado, iremos donde tengamos nuestro dominio registrado y configuraremos las DNS para que apunten a los Name servers que hemos apuntado anteriormente. Ahora, sólo tenemos que esperar a que se propaguen las DNS, cuestión que puede demorarse unas horas.

Paso 7: Certificado de seguridad

Por último vamos a configurar el certificado de seguridad para acceder a nuestro sitio por https. Accede a la terminal y lanza el siguiente comando para el asistente de Bitnami para crear un certificado de Let’s Encrypt:

sudo /opt/bitnami/bncert-tool

Te aparecerá un Wizard donde tendrás que ir contestando a varias preguntas para configurar el correo como: lista de dominios, redirección de http a https, de www a non-www o viceversa, etc… Una vez finalizado, ya estará creado el certificado y podrás acceder a tu web por https.

También me gustaría matizar una cosa, un problema que me surgió y que me tuvo varias horas quebrándome la cabeza. La primera vez que creé el certificado, en la lista de dominios puse únicamente desarrollowp.com. Quise añadir también www.desarrollowp.com, y en principio es tan fácil como lanzar de nuevo la tool y volver a configurar el certificado añadiendo los dos dominios.

De hecho la tool detecta que ya existe un certificado y te pide confirmación de si quieres revocarlo para crear uno nuevo. Pero por muchas veces que lo intenté, no me aceptaba el dominio con www. Después de mucho investigar y muchas pruebas, al final la solución fue a las bravas. Eliminar físicamente el certificado, que de hecho tenía fecha del día que lo creé por primera vez, y volver a lanzar la tool. De este modo, se generó un nuevo certificado que ya estaba correctamente configurado tanto para www como non-www.

Conclusiones

Tras una semana en AWS Lightsail, mis primeras impresiones son buenas en líneas generales. Resumiendo mucho: es fácil de crear/configurar, tienes acceso a todo y viene con cosas preinstaladas que son muy útiles, y afortunadamente hay mucha documentación.

Por contra, es evidente que necesitas algunos conocimientos técnicos, también tuve que configurar permisos para determinadas carpetas, tuve que crear un servicio SMTP (Amazon SES), etc…

Además, el problema que tuve con el certificado de seguridad casi me hizo desistir y buscar otras alternativas. No daba con la tecla y no hay soporte, estás solo.

En cuanto al precio, aunque los 3 primeros meses son gratis, de momento me he decidido por un plan intermedio, veremos si es suficiente.

¿Te ha resultado útil esta información? 🍺

Si este post te ha resuelto un problema, invítame a un café o a una cerveza. Con este pequeño gesto me animas a seguir escribiendo.

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *:

  • El fin del tratamiento es únicamente la moderación de comentarios para evitar spam
  • La legitimación es tu consentimiento al comentar
  • No se comunicará ningún dato a terceros salvo por obligación legal
  • Tienes derecho al acceso, rectificación y eliminación de los comentarios