Instalar Discourse en AWS

Introducción

He creado este tema para contarte mi experiencia alojando mi propio foro en la nube de AWS.
Hace algunos años, los servicios de Cloud Hosting han revolucionado las aplicaciones y los servicios disponibles en internet. Los servicios de hosting están al alcance de todos. Solo basta con crear una cuenta en un proveedor de nube, ingresar una tarjeta de crédito y saber dónde hacer algunos clics.
También es cierto que, así como es relativamente sencillo crear un servicio en la nube, es fácil cometer errores y caer en costos altos innecesarios, vulnerabilidades de seguridad o dolores de cabeza por configuraciones que no funcionan. Esta es mi opinión como ingeniero electrónico que desde hace varios años trabaja como Cloud Engineer.

Tu Foro en AWS

Sin más preámbulos, paso a contarte qué servicios hacen falta para tener un foro de Discourse funcionando y una idea de cuáles son los costos, tomando como ejemplo la nube de AWS.

Antes de contarte el detalle, te muestro un escenario de costos y servicios de un foro simple de Discourse alojado 100% en AWS

Servicio Nombre en AWS Costo mensual (aprox)
Servidor Instancia EC2 12 Dólares
Almacenamiento y CDN S3 & CloudFront 3 Dólares
Emails Transaccionales AWS SES 1 Dólar
Dominio DNS Route 53 2 Dólares
Total 18 Dólares/mes

Servidor EC2

Lo primero que vamos a necesitar es un servidor, o instancia EC2, que tenga como mínimo 2 GB de RAM, por ejemplo, una t4g.small.

En la captura de imagen, podemos ver que el costo por hora del servicio da un total de aproximadamente 12.26 dólares al mes.

Una vez elegida la instancia, tendremos que asociarle una dirección IP elástica pública para que el servicio tenga conexión a internet. La IP pública no tendrá costos a menos que apaguemos el servidor. No te olvides de configurar el par de llaves para acceder vía SSH al servidor y poder instalar Discourse.

Almacenamiento en S3 y CDN

Si bien no es obligatorio, es recomendable el uso de un almacenamiento externo a la instancia de tipo Object Storage para todo lo relacionado con el contenido de imágenes o videos que tendrá nuestro foro. Discourse tiene una integración nativa con el servicio Amazon S3 de AWS. Esto es recomendable por varios motivos, entre ellos:

  • Almacenamiento ilimitado, sin tener que preocuparnos por el tamaño del disco.
  • Costo mucho más barato que utilizar un disco asociado a la instancia EC2.
  • Redundancia y disponibilidad muy alta, gestionada por AWS.

Para darte una idea del costo de S3, supongamos que nuestro foro almacena 100 GB; al mes, esto representará un costo de aproximadamente 2.30 dólares:


Adicionalmente, Discourse nos recomienda configurar una CDN, que en AWS este servicio se llama CloudFront.

Servicio de Emails Transaccionales

Para proveer el servicio mandatorio de envio de email transaccionales, como ya hemos desarrollado en otro tema de este foro, AWS nos ofrece el servicio de AWS SES (Simple Email Service).
Una vez configuradas las identidades, deberemos configurar y validar correctamente los registros en el DNS en el que tenemos nuestro dominio.
SES no es un servicio costoso tampoco:

DNS para registrar el dominio

Por último, también podemos utilizar el servicio de DNS que nos ofrece AWS, llamado Route 53. Cabe aclarar que deberás comprar y registrar un dominio nuevo para que tenga alcance público. El costo de un dominio .com, por ejemplo, es de aproximadamente 10 dólares al año.
Una vez que tengas el dominio, deberás también adquirir los certificados HTTPS para configurarlos en tu servidor de Discourse.

Conclusiones

Si llegaste hasta aquí, ya tendrás una idea general de cuáles servicios son necesarios para instalar un foro de Discourse en la nube. Los proveedores de nube ofrecen prácticamente todos los servicios necesarios para lanzar tu propio foro. Como hemos analizado, en total puedes tener un foro por menos de 20 USD/mes, prorrateando los costos anuales de DNS, y con valores estimativos de almacenamiento. Puede observarse que el servidor es el más caro de los servicios.

Como mencionaba al principio, las configuraciones pueden resultarte difíciles, y es preferible contar con experiencia en la nube o contratar algún servicio especializado.
Si te interesa contar con nuestros servicios, puedes ver nuestros planes en el sitio Foronauta.
¡Puedes comenzar con un foro de prueba muy fácilmente, sin tener que preocuparte por nada de lo que vimos en este post!

Me gustaría que me dejes tu comentario, y si quieres, cuéntame ahora tu experiencia con el hosting de tu propio foro, ya sea en AWS o en otra solución.

Saludos Foronáutico!!

1 me gusta

Gracias por el post @molimolinari!

Una pregunta: ¿Qué alternativas hay a los servidores de AWS si prefiero no utilizar Amazon como alojamiento? ¿Se puede instalar Discourse en otro hosting?

Por supuesto!
Puedes utilizar cualquier proveedor de Nube, e incluso puedes tener un servidor local desde tu casa (para este caso necesitarás tener control sobre tu red hogareña para el tráfico de entrada a tu servidor).

Para el servicio de Emails Transaccionales existen muchas soluciones distintas ademas de la de AWS, como Mailgun, Brevo, Zoho, etc, tal como mencionamos en el tema Creaa tu Foro Discourse en la Nube.

De todos los servicios requeridos en la instalación, el único que Discourse soporta oficialmente sobre AWS y que deberás adaptar es el de Almacenamiento. Dependiendo de la opción que decidas utilizar, esto puede ser mas sencillo o más complicado.
Para más información, te dejo un enlace con el detalle de distintas configuraciones de Almacenamiento en Discourse, donde podrás encontrar tu opción preferida.

Si quieres saber de alguna en específico, quedo atento a tus respuestas, o también puedes contactarme por el chat.

1 me gusta