Escríbeme un mensaje

Cambiar tu página web de un hosting compartido a Amazon Web Services

/ Blog

Nota Febrero 2021: Debido a las consultas generadas por este artículo, en breve publicaré una guía actualizada de este proceso. Recomiendo leer el artículo solo para obtener una idea aproximada del proceso final.

Posiblemente sigas pensando que los servicios en la nube son solo para los grandes. Pero esto ya no es así ni mucho menos. El rendimiento y los precios de estos servicios están permitiendo que proyectos pequeños puedan disponer de una infraestructura potente con mucha facilidad. Si no te da miedo meterte a administrar tus servicios y no temes a la línea de comandos, es relativamente fácil adentrarse en el mundo de la nube para tu propia página web.

Este artículo está dirigido a documentar el proceso que he seguido para migrar dos sitios web (incluyendo este) en WordPress alojados en un hosting compartido, a los servicios de Amazon Web Services (AWS). No pretender ser una guía de usuario, porque para eso está la documentación oficial. El proceso no es complicado pero tienes que ir por partes. A continuación detallo los pasos generales y luego los iré explicando.

  1. Creación de tu instancia el servicio Lightsail (VPS) de Amazon Web Services.
  2. Creación y configuración de una imagen LAMP. Acceso SSH.
  3. Asignación de una IP fija y servicios de DNS.
  4. Creación de bases de datos.
  5. Configuración del servidor y los hosts virtuales.
  6. Instalación SSL con Let’s Encrypt
  7. Instalación de los sitios web.

Aunque sean muchísimos los servicios que integran AWS, este sistema es uno más de los posibles para crear tus sitios web en esta plataforma. A partir de tus necesidades podrás crear soluciones más complejas, que involucren redundancia y disponibilidad. Pero para los usos sencillos como el que describo, te va a sobrar máquina.

Uno de los puntos débiles de AWS es que la mayoría de documentación está en inglés y no siempre en el mismo sitio. Es complicado seguirle la pista a algunos recursos y puesto que hay muchos y cambian tanto, no siempre das con la parte adecuada. Moraleja: sé paciente y busca los recursos más actualizados a tu situación.

1. Creación de tu instancia en Lightsail de AWS

Si no lo has hecho ya, lo primero es que creas tu cuenta en AWS. Puedes entrar directamente desde la web de Amazon Lightsail y desde ahí inscribirte. AWS te ofrece una capa gratuita de ciertos servicios durante un año, para que puedas probar su funcionamiento. Es muy útil para romper mano y hacer alguna cosa, aunque el servicio de VPS corre por separado. Por ahora te recomiendo empezar por la opción más económica, que en estos momentos está en 3.50 dólares al mes (primer mes gratuito).

El proceso es sencillo. Se trata de crear una instancia (tu servidor virtual) en una región geográfica, con un software instalado y un plan de recursos. En mi caso he creado una instancia en la región de Irlanda, en Linux con una imagen LAMP y el plan más económico.

AWS Lightsail

2. Creación y configuración de una imagen LAMP.

Lo apropiado es escoger una instancia en el país más cercano posible. En el caso de un WordPress aunque exista una imagen preparada de WordPress, estimo más interesante partir de una imagen de desarrollo en Linux / Apache / MySQL y PHP. ¿Ventaja? Aprendes a organizar un servidor web y no tenerlo como una simple caja negra que nunca tocas. Como veremos, esta imagen LAMP viene con todo lo necesario para crear aplicaciones web en entorno PHP, con versiones actualizadas del software. Además tienes acceso a la estructura de archivos y acceso SSH para poder administrar tu instancia.

Un detalle importante a tener en cuenta es que las imágenes que se crean en la instancia vienen proporcionadas por Bitnami. Son configuraciones diseñadas para arrancar los proyectos, según la tecnología. Bitnami proporciona la documentación de cada una de sus imágenes.

Una vez has configurado tu instancia, con un nombre personal que la identifique, la instancia está lista para arrancar con una IP estática. Desde el panel de control podrás parar o reiniciar la instancia, pero antes deberás configurar tu par de claves SSH para poder acceder en remoto y por línea de comandos. Adicionalmente AWS te ofrece acceso a través del navegador, simulando una sesión por terminal. Esta parte es la que más cambia con respecto al flujo de trabajo de un hosting compartido, donde tienes un panel de control (cPanel, por ejemplo) desde donde administrar los servicios. Aquí te valdrás básicamente de la línea de comandos.

Amazon Lightsail Bitnami acceso terminal

Configurar tu acceso SSH es fácil porque Bitnami ya te ha configurado el acceso desde el directorio raíz. Verás que el usuario es bitnami y la contraseña se encuentra en dos archivos, uno llamado bitnami_application_password y el otro bitnami_credentials. Ahí verás en texto plano la clave para acceder por SSH a tu instancia. Como encontrarás en la documentación de Bitnami esa contraseña también sirve para crear base de datos dentro de la instancia.

Lo más fácil para conectarse a la instancia desde línea de comandos es que utilices la clave que puedes descargar desde tu panel de control. Esto es un archivo .pem que descargas en tu equipo y que mediante línea de comandos puedes ejecutar. Asumiendo que estás en el directorio donde tienes la clave .pem, el comando es (Mac / Linux):


ssh -i LightsailDefaultPrivateKey-eu-west-1.pem bitnami@[tu-ip]

La ventaja es que no te hará falta introducir la contraseña en sucesivas conexiones. Este archivo .pem también puede ser utilizado por clientes SSH como Putty o Filezilla.

3. Asignación de una IP fija y servicios de DNS

Un aspecto importante de tu instancia es que si quieres crear un sitio web, necesitarás un IP estática (por defecto, la asigna dinámica y por tanto cambia cada reinicio). Para eso irás al panel de control -> Redes y desde ahí solicitarás una dirección IP estática. A partir de aquí ya podrás resolver tu DNS a la instancia para los diferentes servicios. Otra configuración en redes es la de Firewall y la de balanceo de carga. Por ahora los valores por defecto que trae nos serán suficiente.

Amazon Web Services Lightsail redes

Un aspecto crítico del servicio consiste en mantener tu zona DNS, con los registros que necesites. AWS te ofrecer su propios DNS, que tendrás que configurar en tu proveedor de dominio en el caso de que no tengas el servicio contratado con AWS Route 53. Importante. Una vez que hayas configurado los name servers en tu proveedor de dominio, todos los registros DNS se tienen que actualizar desde el panel de AWS en Redes -> Zona DNS. Cada dominio, tiene su configuración, como es lógico. Un registro habitual es que asignes un comodín por defecto y como verás en la imagen, tienes que asignarle un valor (fácil si es la instancia, como ves).

Configuración del DNS en AWS

Un apunte importante, es que pasa con tu correo electrónico. Yo he optado por contratar un sencillo plan de hosting correo (1 eur/mes) en mi proveedor de dominio actual (que no es AWS). Así que necesito crear un registro MX para resolver mi correo electrónico. Configuraciones similares se pueden hacer con Google Apps o Office 365.

Registro MX para configuración de correo electrónico

4. Creación de bases de datos

Bitnami viene con una instalación phpMyAdmin para gestionar las bases de datos que creas. Para acceder al phpMyAdmin tienes que «tunelar» con ssh desde tu máquina. En la documentación de Bitnami se explica cómo hacerlo, pero básicamente es usar tu certificado y conectar por localhost:888. Como verás en el panel de control de Lightsail puedes crear una base de datos adicional, pero cuidado, el MySQL que viene por defecto nos va a permitir crear nuestras bases de datos para los proyectos que alojemos.

Lo más sencillo es conectarse por SSH a nuestra instancia y acceder a MySQL.

>#mysql -u root -p
mysql> create database DATABASE_NAME;
mysql> GRANT ALL PRIVILEGES ON DATABASE_NAME.* TO 'DATABASE_USER'@'localhost' identified by 'PASSWORD';
mysql> flush privileges;

Instalar WordPress implica conocer las variables de conexión y con esto ya las tenemos. Por ahora no nos hará falta nada más. Tenemos nuestra base de datos para instalar nuestro sitio web WordPress.

5. Configuración del servidor web y los hosts virtuales

Ahora toca entretenerse con nuestro Apache. Si tuvieras que utilizar la instancia para una sola web te quitas la cuestión de modificar el archivo de virtual hosts (permite servir más de un sitio web desde servicio) que es lo más delicado. De cualquier forma, al conectarnos a nuestra instancia por SSH, tendremos que localizar los archivos de configuración, que en este caso se encuentran en el directorio stack. Ahí vamos a encontrar el directorio apache2 con los archivos más importantes de configuración del servicio (directorio conf/):

Amazon Web Services archivos configuración Apache

Una gran ventaja de estos servicios es que nos permiten personalizar la configuración. Los alojamientos compartidos son convenientes pero pierdes control. En Apache el principal archivo de configuración es httpd.conf. Merece la pena entretenerse en leer todo su contenido para comprender mejor como está operando nuestro servidor web. Como httpd.conf es un archivo de texto, lo podemos leer desde consola (comando vi httpd.conf, recuerda que con vi, para salir es teclear :q y para salir guardando :wq, para modo inserción pulsar la tecla i y salir con tecla esc).

Un vistazo a este archivo puede ser desalentador, pero muy revelador. Consiste en diferentes directivas, muchas de ellas «comentadas» con un # y por tanto no cargadas en Apache. Si vas leyendo entenderás como está operando el servicio. Lo que más nos interesa (la inmensa mayoría no se toca).

ServerRoot «/opt/bitnami/apache2» -> La raíz de nuestro servidor en el directorio.
Listen 80 -> Puerto TCP 80, el habitual para web.
LoadModule -> Son los módulos que se cargan en nuestro servicio (muchos comentados para no ser activados).Aquí se encuentran cosas muy interesantes.
DocumentRoot «/opt/bitnami/apache2/htdocs» -> Donde se localizan los archivos que servirá nuestro servicio web. Dentro de esta directiva es importante la de AllowOverride, ya que nos interesa mucho para que nuestro WordPress funcione correctamente (más luego).

Hacia el final encontramos la inclusión del archivo que interesa no perder de vista.


Include "/opt/bitnami/apache2/conf/bitnami/bitnami.conf"

5.1 Configuración de hosts virtuales

El archivo que debemos usar para nuestros hosts virtuales. Se encuentra en

~/stack/apache2/conf/extra/httpd-vhosts.conf

Este archivo contiene la configuración general de nuestros host virtuales. Es el archivo que nos va a permitir introducir todo lo relacionado con la forma en la que servimos los archivos desde nuestro directorios. Es importante acudir a la documentación para ver todos los valores disponibles y configuraciones personalizadas. En mi caso un ejemplo básico para esta web es:

ServerAdmin [mi correo electrónico]
DocumentRoot «/var/www/javierarcheni.com»
ServerName javierarcheni.com
ServerAlias www.javierarcheni.com
.– (sigue…)

Si queremos servir la web con SSL deberemos tener también una directiva para ese servicio, que incluya las claves de los certificados (más luego).

SSLEngine on
SSLCertificateFile «/etc/lego/certificates/javierarcheni.com.crt»
SSLCertificateKeyFile «/etc/lego/certificates/javierarcheni.com.key»
.– (sigue…)

El archivo que comentaba antes no perder de vista /apache2/conf/bitnami/bitnami.conf, lo indicaba porque he comprobado que necesito introducir ahí los valores que normalmente coloco en el .htaccess de la raíz de cada web. Por ejemplo directivas de caché de recursos. Es posible que exista otra manera, pero es la que a mí me ha funcionado.

Cada vez que modificamos archivos de configuración de nuestro Apache es requisito fundamental reiniciar el servicio, lo hacemos con un sencillo comando:


sudo /opt/bitnami/ctlscript.sh restart

Instalación SSL con Let’s Encrypt

Existen servicios que ayudan a instalar un certificado con Let’s Encrypt en tu servidor. En mi he seguido los pasos que indican en esta guía de Bitnami. El proceso, si lo sigues paso a paso y con tranquilidad no es complicado, ya que deja el grueso de la operación a Lego, un cliente hecho para generar certificados en tu servidor con Let’s Encrypt.

Como comento el proceso está bien documentado en la guía de Bitnami y es redundante ponerlo aquí. Lo principal es generar las claves y colocarlas en las configuración de los hosts virtuales, ya que como es lógico, hay que generar claves para cada dominio por separado (como aparece más arriba)


SSLEngine on
SSLCertificateFile "/etc/lego/certificates/javierarcheni.com.crt"
SSLCertificateKeyFile "/etc/lego/certificates/javierarcheni.com.key"

Si sigues la guía, verás que Let’s Encrypt genera una caducidad de 90 días por las claves, pero la solución es crear una tarea programada que ejecute un script para generar de nuevo las claves. En la guía vienen los detalles. De verdad, si sigues los pasos, es muy fácil.

6. Instalación de los sitios web

En estos momentos tenemos nuestra instancia de AWS lista para poder instalar en las mismas condiciones de un host compartido. Si tenemos acceso sFTP/SCP podremos hacer un copia de los archivos a cada raíz de la web. Crea una carpeta en htdocs (DocumentRoot) de tu Apache por cada sitio. Si usas un Duplicator o similar, tendrás que cambiar temporalmente los permisos de las carpetas para que pueda escribir los scripts en las carpetas destino (recuerda cambiarlos).

Otro cambio importante para nuestro sitio web WordPress es modificar la directiva AllowOverride a All, ya que de lo contrario no dejará que WordPress haga cambios en las direcciones y por tanto no nos funcionará. En el archivo httpd.conf, asegúrate de cambiar a All esta directiva:


AllowOverride All

Conclusión

El proceso de cambiar tu sitio web a AWS supone un cambio de mentalidad. Esta guía no pretender ser la única que consultes, tan solo pretende dar una visión rápida de como hacerlo. No dejes de consultar la documentación oficial y los ejemplos que muestran. Con un poco de trabajo podrás tener un sitio web funcionando con módulos interesantes como PageSpeed, mod_security y con un servidor en HTTP/2. El rendimiento es excepcional y verás como la experiencia de los visitantes mejora muchísimo.

37 respuestas a “Cambiar tu página web de un hosting compartido a Amazon Web Services

  1. Te cuento que yo solo uso windows y monte un servidor casero con XAMPP, entiendo parte de tu post pero tengo una gran duda, claro segui tu recomendacion y como ahora tengo tiempo de sobra por el COVID19, me he comprado un dominio: camilatech.com ahora por recomendacion tuya me registre en AWS y al momento de elegir mi tipo de instancia veo que linux cuesta menos y da mas beneficios….entonces surge mi duda: yo solo se usar windows aunque hace años lleve linux en el instituto, dime hermano: tengo que tener linux instalado en mi pc para interaactuar con AWS y asi poder continuar con el resto de tu tutorial que por cierto esta bien explicado.?

    1. Hola Elvis, la situación que describes no es tampoco nada extraña. Mucha gente trabaja con Windows, con algún entorno LAMP (que a fin de cuentas es lo que intenta hacer XAMPP sobre Windows). Para administrar mínimamente una instancia en un servicio como AWS con Linux, te será muy útil tener un mínimo conocimiento con la consola y los comandos de administración linux (permisos, usuarios, etc). Piensa que al crear una instancia es como instalar una imagen de un software, que puede ser una del estilo de Bitnami (preparada con una configuración optimizada) que tienes en AWS Lightsail o también incluso un Ubuntu o CentOS (un OS en crudo). Mi recomendación es que uses tu proyecto para romper mano en el cloud y que te sirva para aprender. El coste es muy asequible y ya verás como las desventajas de ir más lento o cometer errores, la suples con aprendizaje. Recuerda que serás tu el administrador del sistema y que te deberás encargar de backups y actualizaciones. Aunque el artículo este lo hice con AWS, hay alternativas muy buenas como Scaleway o clouding.io con planes de precios muy ventajosos, además con tiempos de prueba muy correctos. Suerte con el proyecto.

  2. Hola Javier!
    Felicidades por el artículo, muy claro, y para gente que acaba de aterrizar en esto, desde luego es un salvavidas. Quería pedirte consejo, tengo la web de la empresa en un hosting (Raiola) y estamos muy contentos, pero el año pasado tuvimos un corte de servicio de una mañana, si contamos todas las horas del año, no es nada, ya lo sé, pero siempre ocurren los cortes en el peor momento. Había pensado en documentarme para dar el paso y saltar de un hosting pequeño, dicho desde el cariño, a AWS, que se supone que tiene suficiente garantía de que no se caerá nunca.

    Lo que no encuentro por ningún sitio es una guía que me diga qué es lo que tendría que contratar equivalente a un plan típico de hosting, actualmente tengo estos servicios contratados:

    1024 MB de RAM
    100% de 1 CPU
    Dominios ilimitados
    Subdominios ilimitados
    SSL GRATIS Let´s Encrypt
    50 GB almacenamiento
    Discos SSD
    Transferencia No medida
    Bases de datos ilimitadas
    Cuentas de correo ilimitadas
    Cuentas FTP ilimitados
    Copias de seguridad diarias
    Antivirus y Antimalware
    Reglas Anti-hack
    Panel cPanel

    Tengo claro que tendría que contratar RDS para poder alojar la base de datos. Pero la web tiene más cosas, necesito poder guardar los archivos .php, imágenes, pdf’s. Necesito (no sé si se puede, yo pregunto) acceso FTP para poder editar fácil los archivos php según voy programando. Necesito poder migrar el dominio, y migrar las cuentas de correo, pero la primera impresión tras ver todos los servicios que ofrecen, sin conocer nada, me sobrepasa. ¿Podrías echarme una mano para saber por dónde tirar?

    Muchas gracias!

    1. Hola Juan, me alegro de que el artículo te haya servido de ayuda. Como comentas hay que sopesar ciertas cuestiones y tener en cuenta que el salto no está exento de otras preocupaciones. Para empezar decirte que mi experiencia con Lightsail de AWS es positiva. Alojo varios sitios (este incluido) en el plan más económico (3.50 al mes) y no he tenido problemas. Ahora mismo lo veo una buena alternativa para proyectos que tengan unas necesidades especiales o para personas que como tú, quieren probar y de paso aprender a manejarse con un VPS. Lightsail te da la ventaja de que vas a tener lo más básico (dns, redes, imágenes) desde su panel de control. Las imágenes no obstante que cargas son de bitnami y tienes que ir a su documentación para encontrar dónde han puesto las cosas (aunque con un poco de indagación se encuentran).

      Para ir a tu pregunta. Cuando contratas un plan ya llevas un espacio en disco, así que mucho tienes que gastar para acabarlo. Si necesitas compras aparte o contratas algo como S3 donde meter, pero yo por ejemplo con varios sitios web en un plan básico de aws, estoy por debajo. Para acceder a tu instancia por FTP, no hay mayor problema. Lo puedes hacer con un cliente tipo Filezilla, pero tienes que configurar un llave para acceder porque realmente accedes por ssh. Por aquí dar detalles es complicado pero AWS (y cualquier proveedor cloud) te da una clave .pem que puedes convertir con alguna herramienta en un .ppk que es lo que admite filezilla o cualquier cliente FTP.

      Si estás acostumbrado a trabajar con algo como phpmyadmin también puedes haciendo un tunel ssh. Hay instrucciones de bitnami que lo explican. Se trata de generar un comando por terminal y navegar a un dirección tipo http://localhost:8888/phpmyadmin

      Más cosas. Cuando contratas un VPS, tienes ciertas limitaciones a nivel de administración / configuración en especial en tema red y demás, pero básicamente eres tú el responsable de gestionar actualizaciones y backup de tu instalación y sistema operativo. Lo digo porque es algo que tienes que tener en cuenta. En cuanto a la base de datos, tampoco es problema, ya que si instalas en el vps un entorno LAMP / LEMP creas las bases de datos que necesitas (a no ser que tengas unas necesidades muy grandes y necesites contratar algo dedicado). Por el tema de seguridad, las reglas de firewall y demás las puedes configurar desde el panel de control de AWS. La limitación más importante la vas a encontrar en SMTP, ya que es un puerto muy sensible y habitualmente capado. Por eso si usas un WordPress vas a tener que instalar algún plugin que administre SMTP o utilizar algo como Mailgun para enviar correo desde tu servidor. Los planes hosting ya llevan correo, pero un VPS no. Así que lo que yo hago es contratar correo en otro proveedor (Raiola los tiene desde 1eur al mes, pero hay más similares). El tema correo es recomendable por lo general que lo administre otro. El tema de https con let’s encrypt también lo puedes hacer desde línea de comandos con algo como certbot.

      En cuanto tema dominio eso es importante. Tener un registrador y administrador DNS. Yo uso bastante Route53 de AWS (te permite registrar dominios, pero las zonas cuestan 0.50 al mes adicional por dominio) . Lo bueno de LightSail es que te permite gestionar la zona de hasta 3 dominios, incluido en el precio. Vamos que con lightsail tienes disco, red y configuración. Te falta contratar plan de correo, en pocas palabras.

      En la práctica no hay muchas diferencias si trabajas con algo como WordPress. Lo único es tener algo de soltura con la línea de comandos, alguna noción de administración básica linux (permisos, usuarios, etc). También te digo que para VPS funciono con Scaleway y va muy bien con unos precios super competitivos y opciones similares a AWS. He probado también clouding.io que son de Barcelona y también son muy recomendables. No sé si con esto te he resuelto dudas, pero si te puedo ayudar con algo más me lo dices.

      Saludos.

      1. Madre mía cuánta información! He tardado un par de días porque me ha tocado ver algunos videos para entender algunas cosas, todos los nombres que usas me suenan a chino jejeje.

        Uso un hosting, pero ahora que lo pienso, si quiero realmente dejar la oficina «en la nube» es cierto que necesito un servidor, ya que tengo algunos programas de escritorio (escritos en C# .Net) que conectan con el hosting y hacen modificaciones sobre la base de datos. Lo interesante entonces sería tener un servidor virtual (en mi caso en windows), poder abrir ahí los programas que tengo ejecutándose 24h en el servidor «viejo» de la oficina (¿puedo ejecutar en ese servidor mis programas?), instalar además Lamp para poder meter la web (cómo pasa el tiempo, yo conocía Wampserver) y sí que tendría que ver algo para el correo, porque si fuera sólo por los usuarios, lo podría llegar a tener externo como bien dices, pero las propias aplicaciones, incluso la propia web tiene opciones para enviar informes por correo, así que estoy obligado a buscar una solución a eso.

        El tema de SSL ya me has explicado por dónde buscar, así como lo de migrar el dominio, es cosa de enredar. Para trastear con la base de datos, más que phpmyadmin uso Mysqljog, tendría que ver cómo conectarlo, y los ficheros por filezilla como bien has dicho.

        Dudas:
        – Ampliaciones menores. Pongamos que me falta espacio en disco, si contrato por S3 algo, ¿se «conecta» al servidor y ese espacio se suma al disco del servidor?

        – Ampliaciones de servidor. Pongamos que elijo un server de 1 cpu y 1 giga, y pasados dos años, quiero 2 gigas, o subo a 2 cpu’s. Habría que mover todo o simplemente se elige la nueva máquina y se aplica automáticamente?

        Supongo que todo esto irá con la tarjeta de crédito por delante, no habra prueba gratuita de todo no? Me refiero a que la capa gratis, será para la cuenta de amazon que me haga, pero no incluirá todos los servicios (el que corresponda con la capa gratis), ya que he visto en algún vídeo que según lo que hagas si aplicas la ip-elástica (ya no me acuerdo dónde lo he visto ni para qué) o si la dejas sin asignar, eso genera coste.

        Bueno, una vez más, muchísimas gracias por todo. Soy un negado con el inglés y me cuesta mucho, y parece que hay muy poca documentación en castellano fuera de la web de amazon. Una cosa es su documentación y otra que alguien real cuente su experiencia jeje. Un saludo!!

        1. Hola de nuevo, Juan. ¡Sí, es mucha información y no es fácil digerirla! Con lo del servidor también puedes crear una instancia de entorno Microsoft (Azure) o sobre AWS o similar. Son más caras, pero ahí tienes tu servidor Windows en la nube. A ver si te puedo responder:

          1. Disco. Puedes añadir disco (bloques) también a la instancia. S3 es almacenamiento estático. Los archivos que metes los referencias por una URL. Scaleway tiene unos precios de derribo en materia de disco y almacenamiento.

          2. Extensión. Esa es precisamente la clave del cloud, subir recursos según necesidades sin que te exiga un cambio de infraestructura.

          3. Capa gratuita. Lightsail es la capa gestionada básica de AWS. Si abres cuenta en AWS tienes una capa gratuita bastante generosa. Si te pasas de recursos te cobran el exceso, pero tienes un año para probar y tener margen. Es más que generoso. Por cierto aquí una lista de recursos con capa gratuita para desarrolladores.

          Es muy cierto que los recursos están en inglés. Una pena, pero al mismo tiempo una realidad que nos toca vivir. A ver si nos vamos animando entre todos subiendo material. ¡Ya me cuentas!

          1. hola javier excelente información, tengo varias dudas dices que en una instancia de amazon lightsail sólo se pueden alojar 3 dominios pero comentas que tiene 4 sitios cuantos dominios puedo alojar o como puedo alojar mas de 5 dominios es porque no entiendo si puedo alojar 3 o mas dominios?

            Tengo otra duda que diferencia hay entre desplegar una instancia del sistema operativo digamos ubuntu o centos e instalar tu mismo un LAMP o desplegar la instancia de bitnami que ya te instala el LAMP.

          2. Hola Humberto encantado de saludarte. En la instancia de Lightsail puedes gestionar a través de la opción Redes los registros DNS de hasta 3 dominios. Por supuesto podrías meter más sitios web en el lightsail si desde los registros DNS apuntas un registro A a la IP que te han asignado a esa instancia. Eso lo comento porque por ejemplo, si registras un dominio en AWS Route 53 te cobran por mantener los registros de la zona DNS. En cambio hasta 3 zonas DNS puedes gestionar desde Lightsail sin que te cuesten nada más allá de registrar el dominio claro está.

            En cuanto a desplegar la instancia de SO o LAMP con una imagen de Bitnami, es que la imagen de LAMP de Bitnami viene con una configuración predeterminada de versiones de software, con una estructura propia. En cambio con un SO tienes una base desde la que instalar lo que quieras y luego podrás por ejemplo, subir de versión PHP actualizando tú mismo los paquetes. Creo que es mejor partir de un SO.

            Saludos y gracias por comentar.

          3. Javier excelente eso suponía pero quería certeza si me permites mas preguntas y no abuso? es que soy nuevo.
            1.- OK quiere decir que puedo alojar todos los sitios que quiera según vi en video pero pagando en rote 53 cierto? cual es el costo? porque es que allí ingreso y me dicen 1000 parámetros hay un monto que dice 0.5 mensual eso que incluye? te hablo de un sitio normal que pueda tener unas 4000 visitas al mes unas 200000 paginas visitas.
            2.- Tengo otra duda si instalo el so con bitnami es otra capa ? osea yo no tendria que preocuparme por actualizacione y seguridad o igual debo preocuparme?

          4. 1. El precio que yo veo inicial es de 3,50 USD/Mes y es la instancia más básica. Ahí puedes meter bastantes sitios web básicos (4 ó 5 seguros), pero por supuesto depende también de la carga CPU y la transferencia. Ahora veo que puedes empezar con planes gratuitos de 3 meses.

            2. En VPS te encargas del mantenimiento y actualizaciones. Eres el amo, para lo bueno y para lo malo.

          5. Entiendo que amazon lightsail te ofrece por un monto limitado de servicios gratis con el plan que tomas? ejemplo un CDN, DNS ZONE y bucket gratis? pero pudiera solo usarlo de hosting osea que solo ejecute las app y entonces la parte de CDN manejarlo con cloud front, dns con rote 53 y bucket con s3? y no usar nada de lo que me da el lightsail es asi ? o estoy en un error?

          6. Hola, el Route 53 cobra 0.50USD/mes por gestionar la zona DNS más la renovación anual de dominio. La verdad es que muchos registradores DNS no cobran por la gestión DNS, así que pagas por un servicio más enfocado a necesidades más robustas y globales.

  3. Hola Javier, disculpa me puedes recomendar si me conviene contratar aws para una tienda online con poco trafico y pocos productos aproximandamente 10. Me llamo la atención el valor de $3,50 que dicen. Pero me estaba dando cuenta que no es así pues toca contratar y configurar más servicios y creo que el precio sube.

    1. Hola Juan, en el tutorial que tengo puesto, hago uso de lightsail que es una opción de vps de AWS. El caso es que también puedes probar durante un año la capa gratuita de AWS y alojar un proyecto de tienda online, casi gratis durante 1 año. Yo tengo uno instalado así. Sobre pedir cosas adicionales, puede ser el dominio, que no hace falta tenerlo con ellos y entiendo que alguna opción de correo electrónico, que en mi caso tengo en otros proveedores. Con lightsail tengo una instancia donde pago 3.5 dólares al mes por el hosting web con una imagen de bitnami LAMP y ahí tengo cuatro páginas webs, funcionando sin problemas. Si necesitaras servicios adicionales tendrías que tenerlo en cuenta, pero no creo que para arrancar un tienda online de pocos productos necesites más memoria o almacenamiento extra. En definitiva, es lo que te digo. No he tenido costes inesperados de la ejecución de esta instancia ya que todo lo que necesitan los proyectos web alojados (almacenamiento, base de datos, etc) lo incluye. Un saludo y gracias por tu comentario Juan.

  4. Buen día Javier, estoy entre un vps Linode (de paga mensual) vs AWS de capa gratuita, pero necesito instalar paquetes para montar un LEMP (Nginx, Mysql, PHP).
    ¿Me recomiendas seguir con Linode o probar ésta opción gratuita?
    ¡Gracias!

    1. Hola Paco, por desgracia no tengo experiencia con Linode, aunque tiene referencias muy buenas. Mi recomendación es que saques provecho al máximo de la capa gratuita de AWS y que de paso pruebes y experimentes con los otros servicios que traen. Lo que sí que pasa es que empiezas poco a poco a usarlos y algo siempre cae además de la capa gratuita. Gracias por tu comentario.

  5. Hola Javier,

    Deseo pasar mi tienda online que está hecha con wordpress y supongo que Windows por el cpanel que me brinda el proveedor de hosting. Mi página ha estado un poco lenta y esto me perjudica mucho, porque los clientes duran poco tiempo navegando en ella y a veces no pasan de la homePage. Si paso a AWS bajo Linux y por ejemplo Lamp, todo los plugins y demás debo reinstalarlos por consola(comandos linux)? o eso sería trasparente?. Por otro lado, para una tienda online la cual deseo pasar a MarketPlace (por ahora tiene unos 100 productos, pero al pasarla a MarketPlace podría tener miles), estaría mejor si la trabajo con AWS? Gracias! esta es mi página por si puede ayudarte a dar una idea, mil gracias! http://www.vadalusa.com

    1. Hola Valentín, si tuviera que llevarse la web a AWS tendría que hacer lo que pasaría con cualquier alojamiento, esto es, duplicar su instalación y probarla en el nuevo hosting. Tenga en cuenta que AWS le ofrece un entorno de computación donde correr sus aplicaciones. Tendría que instalar su entorno LAMP (Por Linux, nada de Windows) para instalar el WordPress, y verificar que las versiones de su software funcionan sobre lo que monte en AWS (si es un LAMP similar, debería funcionar). Lo de los plugins, irían metidos en ese duplicado que instalaría en el nuevo hosting. Tenga presente que si no se instala, no tendrá el equivalente a un cPanel, con lo que la administración de su hosting correrá por su cuenta, con sus habilidades de sysadmin. Las prestaciones de un hosting con AWS suelen ser muy buenas, pero tampoco le exime de optimizar bien su instalación de WordPress (recursos, consultas a base de datos, caché, tema, plugins…) Creo que debería hacer el esfuerzo de optimizar al máximo su WordPress/WooCommerce, y luego pensar en una infraestructura adicional que ofrezca mejor soporte. También piense en que AWS tiene una región en Brasil y que su servicio de CDN CloudFront está en Colombia. Estoy convencido de que una configuración adecuada de su web en AWS supondría un rendimiento muy positivo con respecto a su actual configuración. Eso sí, concéntrese en mejorar lo que pueda actualmente antes de pensar en mejoras futuras. Saludos.

  6. Hola, estoy pensando en cambiar un ecommerce de WordPress a AWS con el plan de 3.5 pero me hago un lío con la documentación porque parece que por las bbdd en mysql se paga aparte. ¿Cuánto tamaño tienen las bbdd para webs en Lghtsail? entonces saldría más caro que 3.5$ al mes?

    gracias!

    1. Hola Paloma, no hace falta que adquieras una base de datos adicional, ya que en Lightsail puedes instalar una imagen LAMP que ya viene instalado todo el entorno de ejecución. La imagen de WordPress ya viene preparado con el MySQL y la imagen LAMP también. También es posible instalar sólo sistema operativo, con lo que eres libre de instalar el software que necesites. La confusión puede que venga del servicio adicional de base de datos, donde puedes contratar un servicio gestionado por Lightsail y orientado a un mayor rendimiento. No obstante para un uso normal de una base de datos para WordPress, es suficiente lo que puedes tener con el plan más económico. Saludos.

  7. Buenas Javier.

    A pesar de leer todo.. Aún me queda la duda de sobre si puedo instalar 1 wordpress y 1 foro basado en PHP dentro de una misma instancia contratada. O tengo que contratar una base de datos extra, en ese caso; sería mucha diferencia en el precio?

    1. Hola Pablo, no tienes ningún problema porque lo que necesitas es instalar una instancia con un sistema operativo tipo Ubuntu o directamente la opción LAMP que te ofrecen de Bitnami (ojo, con unas versiones del software determinadas, por ejemplo PHP). Piensa que tendrás un sistema propio con recursos suficientes (un VPS). En el caso de la imagen LAMP correrás un MariaDB o similar (no te hará falta contratar base de datos por otro lado), donde podrás crear las bases de datos que necesites. También considera siempre que en esto de los VPS necesitas tener en cuenta los puertos disponibles. Por ejemplo, suele haber limitaciones con respecto al envío de correo por SMTP, y hay que buscarse opciones tipo Mailgun o Amazon SES. También es verdad que hay más cosas además de Amazon y que dependiendo de lo que necesitas es importante valorar las distintas opciones. Muchas de ellas te dejan probar. ¡Saludos!

  8. Hola Javier- Una pregunta. Para alojar varios sitios por el mismo precio, usas solo una instancia? Necesito instalar 4 WP de dominios distintos, por el mismo precio y estoy medio perdido. Gracias.

    1. Hola Cristian, en efecto con una instancia puedes alojar varios sitios. Como cuento en la publicación, es cuestión de crear una imagen LAMP o incluso sólo el sistema operativo. A partir de ahí crear la configuración de virtual hosts con Apache o Nginx (según quieras, aunque apache es más común para WP). Otro detalle es que con Lightsail puedes crear las zonas dns para un máximo de 3 dominios. Si excedes esa cantidad tendrás que gestionar el DNS de los dominios restantes, con el gestor de zonas que tengas con ese dominio (Route 53 en el caso de Amazon o el gestor de zonas de tu proveedor DNS). Espero haber resuelto tu duda. Saludos.

  9. Hola Javier. Excelente información. Estuve rebuscando en Google varias soluciones y leyendo varias documentaciones. Estoy golpeándome contra la pared varias veces porque tengo que migrar 20 sitios WP a AWS probablemente para antes de mayo. Te hago una consulta. ¿Si tengo una instancia EC2 instalando WP es necesario tener RDS para migrar un sitio web que ya tiene su base de datos e información vital? Mi miedo reside en que no sé que pasa después de la capa gratuita y veo en la calculadora que RDS MySql cuesta 53 USD al mes + 1.90 del espacio que le asigno. No quiero verme en cuadritos cuando acabe la capa gratuita ya que tengo 20 cuentas que manejar y no quiero subirle a las nubes el precio a los clientes que tengo ya que están bajo contrato por un monto mucho menor que el que tendrían que asumir para que no tenga pérdidas.

    1. Hola Jaime, el caso es que va a depender de las necesidades que exijan esas 20 web a nivel de base de datos. Si son WP con un contenido más bien estático y no tiras mucho de datos, no hay problema. El problema te puede venir de la falta de memoria en la capa gratuita, ya que piensa que son recursos más bien limitados (0.5gb de ram), así que puedes entrar en falta de memoria virtual con bastante facilidad debido precisamente a las necesidades de las base de datos. Yo tuve un problema con una web alojada con un tienda online en Woocommerce. Me tocó meter más recursos de disco para evitar que se quedara sin memoria, pero ya ves que necesitarás algo con 1gb como poco (t2.small casi mejor) , pero depende del tipo de web / tráfico y recursos. En AWS una opción para ahorrar es contratar instancias reservadas, que se atan a una región y a las que te comprometes por un tiempo mínimo. Espero que te sirva de ayuda esto que te cuento. Saludos.

  10. Hola Javier estuve leyendo la información sobre amazon me pareció de lo más precisa y clara, gracias por el tiempo para brindarla, tengo una pregunta sobre lo que estado buscando información en todos lados incluso en la documentación de amazon aws y comunicándome con ellos a través del chat (no me respondieron).
    Si accedo a una instancia básica de la capa gratuita de aws, para levantar una web (wordpress) que se utiliza para eventos, y donde va a a ser necesario elevar los recursos de la instancia pero solo por días específicos al mes, (hacer un upgrade d ram y cpu) luego se puede retornar a la capa gratuita? sucede que actualmente estamos usando digital ocean, y ellos permiten subida de ram y cpu y luego retornar al básico.

    1. Hola Javier, sin ánimo de dar una respuesta definitiva, entiendo que tu instancia tiene asignados unos recursos. Si tienes un pico que supera esa capacidad en la capa gratuita, quiero pensar que tu WP se quedará sin los recursos necesarios y tendrías que añadir capacidad o un plan que asuma esa demanda (lo que entiendo que se queda fuera de tus planes). Los límites de AWS son generosos, pero está claro que limitados. Desde AWS recomiendan que actives un control de costes desde el panel de control https://aws.amazon.com/es/getting-started/hands-on/control-your-costs-free-tier-budgets/ Tengo entendido que es una pregunta bastante común en soporte y que no deben responder de manera definitiva. Gracias por contactar.

      1. Gracias por la ayuda, y si, es mi duda, lo que también quería es si en amazon los planes son fijos hoy existe la posibilidad o servicio, donde pueda pagar un plana mensual base, pero que de forma automatica cuando se genere un pico de usuarios que sobrepase el plan, amazon agregue mas recursos para sostener la web, y que luego una vez normalizado el trafico, retorne la plana basico y a fin de mes cobre mas + excedente, es decir no preocuparme x estar monitoreando si la web llega a limite y tenga que mover el plan de forma manual, y que tampoco tenga que pagar siempre por un plan muy alto que no se utilice todos los dias del mes

        1. Hola Javier, el caso es que la flexibilidad está en agregar más capacidad de computación según necesidades, no tanto en adaptarte a un plan. Piensa que se cobra a por segundos o minutos según el uso. Para controlar el gasto se trabaja con alertas que evitan eso que comentas. La capa gratuita de AWS está pensada para usar desde cero sus servicios y experimentar con la plataforma. Yo he usado la capa gratuita para un sitio web durante un año, pero tuve que meter algo de disco porque en algunos momentos caía porque la base de datos se quedaba sin memoria. En ese caso, se pago por el almacenamiento extra pero no por la computación. Otra opción en AWS es contratar con sus servicios con compromisos mínimos de uso, pero entiendo que eso está fuera de cuestión en tu caso. Espero haberte sido útil.

        2. Hola Javier,

          te comento el «Free Tier» de AWS son recursos varios que puedes utilizar por 1 año gratis. Si tu aplicación consume más recursos de los que tiene la maquina el servicio va a dar problemas.

          Si logras adelantarte a sus «peaks» de necesidades de recursos y haces un auto scalling (para esto están los Auto Scalling Groups) y redimensionas tu máquina, digamos por unas 4 horas, pagaras por la maquina más grande solo esas 4 horas, siempre y cunado tu máquina vuelva a la medida del free tier.

          Un ejemplo práctico de mi experiencia, tengo un cliente que todos los días a partir de las 19:00 Horas el trafico aumenta en un 3000 a 4000%, este mismo trafico vuelve a bajar la misma cantidad después de las 22:00 Horas aproximadamente. La solución tenemos un ASG que a las 18:00 Horas redimensiona los servicios y a las 22:00 Horas hace el «down scalling». El cliente solo paga por las maquinas más grande las 6 horas de usos, las otras pequeñas no cuentan mucho, asi logramos abaratar costos en un 60%.

          Los puntos más importantes para esto son:
          – Stateless, las maquinas tienen que ser desechables y la data en si en un disco (permanent storage)
          – Ready to go, la configuración tiene que estar lista para empezar a funcionar
          – Automatizar todo, a mano no podrás tener esa eficiencia.

          Espero que mi respuesta y ejemplo sea de ayuda. Te dejo el enlace a los recursos gratis de AWS, ellos también tienen un buen par de ejemplos.

          https://aws.amazon.com/es/free/?nc1=h_ls&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all

  11. Hola Javier
    Primero, gracias por la información, me ayudo a tener andando un servicio en AWS Lightsail.
    Pero, donde no logro avanzar es en la creación de subdominios. La web en el hosting actual tiene su dirección «ejemplo.com» en el directorio raíz y otra para los trabajadores que es «usuarios.ejemplo.com» en un directorio «usuarios» dentro del directorio raíz
    No logro que el acceso sea mediante usuarios.ejemplo.com, pero si a través de ejemplo.com/usuarios
    He intentado varias cosas que he leído en internet, modificando archivos vhost.conf, creandolos, y nada.
    Espero puedas ayudarme.
    Saludos

    1. Hola Miguel, entiendo que la zona DNS está correcta (añadiendo un registro tipo A apuntando el subdominio usuarios.ejemplo.com a la IP de ejemplo.com) y como dices, has creado el virtual host para que apunte a esa carpeta el subdominio. Si todo está bien en eso, a partir de ahí habría que ver el tema de reescritura de rutas en el servidor web a través de la configuración o revisar si es un apache el .htaccess También podrías usar algo como Curl para ver qué devuelve el servidor web y así saber más detalles. Suerte.

  12. Buenas, antes que nada comentar que me parece excelente el articulo, explicas muy claro y es realmente de gran ayuda, especialmente para los que estamos comenzando con esto de AWS. Queria, consultarte acerca del correo electrónico, si hay algun servicio de AWS que permita manejar cuentas de email de manera similar a como se hace en el hosting compartido actual, con su nombre de dominio, crear cuentas nuevas, aumentar cuota en disco, en fin, toda la gestion de las cuentas coorporativas. Muchas gracias

    1. Hola Exequiel gracias por tu comentario. AWS dispone de una solución propia de correo administrador que se llama WorkMail y que está enfocado a un entorno empresarial. Particularmente prefiero acudir a soluciones independientes para gestionar el correo electrónico. Migadu es un buen servicio con una capa de precios y calidad bastante justa. También Fastmail es otra de las más conocidas. Para soluciones muy básicas, prefiero optar por un correo hosting económico. Depende de las necesidades del cliente, pero lo que está fuera de duda des que es mejor buscar soluciones específicas de correo, antes de liarse con personalizar algo por ti mismo. Espero haberte ayudado.

Responder a Valentín Ceballos J. Cancelar la respuesta

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