No confíes en Oracle Free Tier
Hace unos días descubrí que Oracle ofrecía servidores gratis para siempre, así que decidí probarlo. Todo iba bien, de hecho, pasé a alojar esta web en uno de esos servidores, e incluso escribí un post sobre como hacerlo paso a paso.
Sin embargo, ayer me llegó un correo de que mi instancia había sido eliminada. No dieron ningún previo aviso, simplemente cancelaron mi cuenta de forma repentina. Intenté contactar con soporte técnico, pero no me dijeron nada, que lo sentían pero mi cuenta había sido cancelada. Cuando pregunto que cual es el motivo se limitan a cerrar el chat.
Buscando en internet he visto que esto le ha ocurrido a muchísima gente.
Hago este post para decir que no recomiendo usar Oracle Cloud. De todas formas, y para no tirar a la basura el trabajo que hice escribiendo, dejaré aquí abajo el post borrado que hice sobre como pasé a alojar mi web estática en Oracle Cloud Always Free-elegible servers. Sólo por si a alguien le apetece probar los servidores, teniendo siempre en cuenta que en cualquier momento Oracle puede (y probablemente lo haga) eliminar tus máquinas virtuales en cualquier momento. Quizás en una semana, un mes o un año. No te avisarán y no te darán motivos.
1. Oracle Cloud Free Tier
Registrate aqui. Te pedirán un método de pago válido y sólo cargarán alrededor de 1€ por verificación.
Cuando tengas tu cuenta, ve a instances.
![instances](/posts/dont-trust-oci/media/instances.png)
Ahora, selecciona tu compartment, y después pulsa create instance.
![create-instance](/posts/dont-trust-oci/media/create-instance.png)
Vayamos paso a paso:
Escribe el nombre de tu máquina virtual, y deja como está placement y security.
![creating-instance-1](/posts/dont-trust-oci/media/creating-instance-1.png)
En shape, elige lo que quieras, siempre mirando que sea Always Free-eligible.
Ahora mismo, con la serie Ampere ARM, puedes coger hasta 4 núcleos y 24 gigas de RAM, pero para mi web tan sencilla con un núcleo me basta (no hay que ser egoístas).
En cuanto al sistema operativo, a mi me gusta Ubuntu, pero de nuevo, podéis coger cualquiera que sea Always Free-eligible. Si habéis cogido procesadores ARM vuestro SO debe ser compatible.
![creating-instance-2](/posts/dont-trust-oci/media/creating-instance-2.png)
En Networking, crear una nueva virtual cloud network y una subnet.
![creating-instance-3](/posts/dont-trust-oci/media/creating-instance-3.png)
Muy importante, descargar vuestras llaves SSH para acceder al servidor.
![creating-instance-4](/posts/dont-trust-oci/media/creating-instance-4.png)
Por último, escoger el almacenamiento según os convenga. Yo lo dejaré por defecto, tened cuidado porque si os pasáis quizás os empiece a restar saldo, y cuando pase un mes os pueden cobrar.
![creating-instance-5](/posts/dont-trust-oci/media/creating-instance-5.png)
Sólo queda darle al botón create! Es posible que os de un error porque estén llenos de capacidad, si os ocurre, sólo podéis esperar a que se libere algún hueco.
2. Accediendo al servidor
En mi caso accederé al servidor desde windows con Putty.
Primero, hay que convertir la llave privada que hemos descargado para que sea compatible. Para ello, una vez instalado Putty, abrimos Puttygen y realizamos los pasos de la siguiente imagen: (Seleccionar la llave privada, la pública no nos es útil)
![puttygen.png](/posts/dont-trust-oci/media/puttygen.png)
Le ponemos el nombre que queramos y guardamos.
Una vez tengamos nuestra nueva llave privada, ya podemos abrir Putty. Introducimos la ip del servidor, y elegimos el archivo en Connection -> SSH -> Auth -> Credentials.
![putty.png](/posts/dont-trust-oci/media/putty.png)
Ya podemos conectarnos! Si habéis escogido un sistema operativo ubuntu, el nombre de usuario sera ubuntu. Una vez dentro, lo primero que recomiendo es actualizar el servidor. Ejecuta sudo apt update && sudo apt upgrade -y && sudo reboot
. Esto actualizará todos los paquetes y luego reiniciará el servidor.
Espera un minuto y vuelve a acceder. Ahora, hay que instalar el servidor web. En mi caso, utilizo apache2. Aquí hay una guía de oracle en más profundidad sobre cómo hacerlo. Básicamente, para instalarlo ejecuta sudo apt install apache2
.
Una vez con nuestro servidor, hay que abrir el puerto 80 (http). Para ello ejecuta sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
y después sudo netfilter-persistent save
. Luego desde el panel de Oracle Cloud, dirigete a tu instancia. Luego, pincha en tu subnet.
![opening-ports-1.png](/posts/dont-trust-oci/media/opening-ports-1.png)
Ahora ve hacia Default Security List.
![opening-ports-2.png](/posts/dont-trust-oci/media/opening-ports-2.png)
Add Ingress Rules.
![opening-ports-3.png](/posts/dont-trust-oci/media/opening-ports-3.png)
Rellenalo como en la siguiente imagen:
![opening-ports-4.png](/posts/dont-trust-oci/media/opening-ports-4.png)
Listo, si todo va bien, ya tienes instalado apache y abierto el puerto. Si escribes en un navegador http://123.123.123.123 (la ip pública de tu máquina virtual) deberías ver lo siguiente:
![success.png](/posts/dont-trust-oci/media/success.png)
3. Dominio
No sólo he cancelado mi contrato de hosting, si no también el de dominio. El que tenía antes era demasiado largo, y el actual lo he comprado en Google Domains.
4. Cloudflare
Una vez con mi dominio nuevo, lo he agregado a mi cuenta de cloudflare. Ellos se ocupan del SSL, de forzar el HTTPS, entre otras muchas cosas.
Para ello debes registrarte y luego cambiar los servidores DNS de tu dominio a los de cloudflare. Dependiendo de dónde hayas comprado el dominio se hará de una forma u otra. Como esto es un proceso que depende mucho de tu proveedor, te recomiendo buscar información detallada sobre tu caso.
Cuando tengas tu dominio en cloudflare, ahora toca redirigir el tráfico del dominio al servidor. Para ello, ve al apartado DNS -> Records. Añade un registro DNS de tipo A que apunte a la dirección IP de tu máquina.
![cloudflare-1.png](/posts/dont-trust-oci/media/cloudflare-1.png)
Si todo ha ido bien, ya está todo listo! Máquina virtual, servidor web, dominio, SSL, DNS… 😀 Sólo falta enviar los archivos de tu página al servidor, por ejemplo con SFTP, con git…
Hasta pronto!