¿Qué configuraciones de servidor utilizan en sus proyectos? ¿Deberían depender de Amazon Web Services para todo? ¿EC2, S3, RDS y Cloudfront? ¿O es mejor utilizar servicios separados, como Amazon solo para S3, mientras que Digital Ocean para Discourse y quizás Fastly como CDN?
Me gustaría saber cómo gestionan este foro, pero también otras comunidades existentes, para entender qué se debería hacer.
Realmente depende de tu objetivo y tus requisitos.
Ejecutar todo en un droplet de $5 es genial y suficiente para la mayoría de las comunidades de aficionados. Hay sitios de Discourse muy grandes que se ejecutan en una sola máquina, simplemente escalando verticalmente según sea necesario.
Los sitios empresariales y de negocios pueden optar por una configuración más compleja utilizando servicios de nube pública para lograr un SLA estricto, o externalizar el alojamiento a un proveedor profesional como Discourse pricing | Discourse - Civilized Discussion.
Estoy usando un droplet de $20 para mi sitio, Cloudflare delante de eso y almacenamiento S3 en la parte posterior. Mi sitio tiene alrededor de 400k publicaciones en total con aproximadamente 10k sesiones/día en promedio según Google Analytics.
Soy nuevo en esta comunidad pero tengo experiencia en desarrollo web. Sin embargo, soy una persona a la que le gusta hacer las cosas bien y gestionar todo de la mejor manera posible. ¡Pienso muy en grande! Y me parece que la idea de gestionar la base de datos y las cargas por separado es realmente buena. Pero me cuesta decidir si gestionar todo con AWS utilizando sus productos o no. Por ejemplo, el Vendor Lock-In. Obviamente, si se utiliza EC2 con una distribución estándar de Linux como Ubuntu y RDS para la base de datos PostgreSQL, no hay problema, pero con S3 o tal vez utilizando otros estándares y características de proveedores como Lambda, esto podría ser un problema cuando se quiera migrar a cualquier otro servidor de alojamiento.
Por lo que has dicho, te recomendaría que empieces con una sola EC2 para resolver las cosas. Si más adelante quieres pasar a RDS (y elasticache) y S3, puedes hacerlo según tus necesidades y presupuesto lo requieran y permitan.
Última pregunta. Para usar S3, ¿necesitas una CDN? ¿Pero la misma CDN que se usa para el sitio o se debe configurar otra CDN específicamente para los datos que se cargan en S3?
No dependo de Amazon para nada.
Nunca usaría una solución que no se considere estándar y, por lo tanto, no se pueda migrar fácilmente a otro lugar.
Un servidor virtual tradicional hace un gran trabajo. Puedo cambiar de proveedor fácilmente en el futuro si quiero.
¿Qué alternativas a EC2, S3, RDS y Elasticache recomendaría? Me refiero a soluciones estándar, para evitar, como usted dice, el problema del bloqueo del proveedor.
He administrado aplicaciones web en los tres (AWS, Linode y Digital Ocean). Prefiero Linode y DO. Los encontré baratos, sólidos como una roca y, lo más importante, más sencillos de administrar. Era la única persona de tecnología en una pequeña empresa, por lo que esos fueron factores realmente importantes para mí.
No es realmente difícil mover Discourse a una plataforma diferente, incluso si estás usando todas esas herramientas de AWS, puedes hacer una copia de seguridad y restaurarla en cualquier instalación de Discourse.
DO y Linode (junto con cientos de proveedores de servicios en la nube de precios similares) son mucho más rentables (aproximadamente el 10% del costo, en mi experiencia) que AWS o MS Azure para servicios equivalentes, y es mucho menos probable que requieran que construyas cosas usando sus API e interfaces propietarias, lo que dificulta la migración a otro proveedor de alojamiento genérico. Recomendaría encarecidamente mantenerse neutral en cuanto al proveedor y mantenerse alejado de AWS y MS Azure.