¿Los servicios en la nube, como Amazon, resuelven problemas de escala para las empresas de arranque?

AWS y otros proveedores de la nube ciertamente resuelven problemas de escala, pero todavía hay algo de trabajo para aprender la plataforma. También puede acoplar servicios de varios proveedores según su necesidad y qué partes de su aplicación se pueden segmentar.

Por ejemplo, si tiene contenido, imágenes, videos, etc., puede almacenarlos en una tienda de objetos como S3 y tiene una capacidad básicamente infinita. No tiene que preocuparse por garantizar que sus datos sean consistentes, ya que tendrán replicación, ni tampoco tiene que preocuparse por la estructura de directorios y el hash porque básicamente puede escribir archivos en un depósito sin fin.

Del mismo modo, si depende del correo electrónico, puede enviarlo a Sendgrid para que pueda entregar millones de correos electrónicos al día.

El área donde la escala se vuelve un poco complicada es en la implementación de su base de datos. Ciertamente puede confiar en un servicio de base de datos administrado desde una de las nubes, pero si está ejecutando en una base de datos patentada, que no es Postgres, MySQL / MariaDB, MongoDB, etc., entonces la exportación de datos será un desafío.

Sin embargo, Postgres y MySQL han recorrido un largo camino en la última década de desarrollo, por lo que para la mayoría de los casos de uso puede escalarlos de manera bastante efectiva durante mucho tiempo.

Ciertamente, aprovechar los proveedores de la nube para la escala es una buena idea, porque la escala viene con el crecimiento y debe centrarse en hacer crecer su producto, no en escalar su infraestructura, ya que rara vez es una ventaja competitiva. Solo cuando revende esa infraestructura, realmente tiene sentido preocuparse por ella. Caso y punto es Dropbox. Revenden esa infraestructura, por lo que preocuparse y mejorarla puede traducirse en el resultado final, mientras que una empresa como Instagram no debería preocuparse por eso, y solo pensar en ello desde la perspectiva de minimizar los costos.

Si no desea dedicar tiempo a crear una infraestructura de aplicaciones en términos de servidores, Amazon EC2 no es la herramienta adecuada. Como dijo Eran, tendrá que preocuparse por todo tipo de detalles.

Hay otras soluciones que pueden ayudar, como Heroku. En realidad, querrías Google App Engine, porque Heroku aún presenta conceptos relacionados con componentes de infraestructura.

Una alternativa, si tiene un poco de paciencia, es Elastic Beanstalk de Amazon AWS. Sospecho que saldrán con una versión de Ruby, la actual es Tomcat. Estamos escribiendo sobre Beanstalk, y una de las cosas que queremos descubrir (y mostrar) es si podemos ejecutar Rails en JRuby, en Beanstalk.

Esto no es exactamente lo que desea, si está buscando una escala 100% elástica, sin preocuparse por la implementación.

No es correcto.
Servicios como Amazon EC2 le permite escalar la cantidad de servidores que está utilizando según la demanda. Por lo tanto, puede comenzar un pequeño servicio con una inversión inicial mínima (no necesita comprar servidores, bastidores, manejar centros de datos) y crecer a medida que avanza.
Por lo tanto, definitivamente minimiza los costos y el riesgo, lo cual es esencial para un negocio de arranque.

Sin embargo, si no crea su servicio para escalar en primer lugar, tener más servidores no resolverá sus problemas.

Amazon le brinda herramientas de infraestructura para escribir software escalable.
Pero debe diseñar su sistema y escribir su código de una manera que le permita aprovechar estas herramientas (use múltiples servidores frontend, etc.)