Tu aplicación sobre los Amazon Web Services (EC2, S3...)
Seguimos repasando las últimas tendencias en desarrollo de aplicaciones web y hoy le toca a la que en mi opinión es la alternativa más interesante aparecida en los últimos años, los Amazon Web Services. De ellos se ha escrito ya mucho y poco o nada voy a descubrir: los aparecidos después de su primera etapa (aquellos que atacaban a su base de datos de productos) son los que articulan un nuevo y revolucionario modo de plantearse la arquitectura de una aplicación online. Muchos los meten en el mismo saco que a desarrollar sobre APIs de terceros, pero en este caso no se accede a datos o funcionalidades ajenas, por lo que creo oportuno distinguirlos. Veamos.
La propuesta de S3 y EC2 son la de externalizar dos aspectos del hosting de nuestro proyecto web. S3 es un sistema de almacenamiento al que sólo se puede acceder a través del web service mientras que EC2 es algo más complicado de explicar, lo que ofrecen es capacidad de procesamiento. Con S2 "subes" una imagen de tu servidor y la ejecución queda delegada en las máquina de Amazon. En el primer caso se paga en función de la información almacenada y descargada, en el segundo del tiempo de ejecución consumido. Las ventajas de apostar por los Amazon Web Services son múltiples y variadas:
Costes: la palabra mágica. S3 y EC2 salen más baratos de un hosting comparable en calidad a lo que ofrece Amazon.
Escalabilidad: almacenamiento "infinito" según la necesidad, capacidad de proceso también bajo demanda. Lo bueno además es que se pagan según uso ¿qué sales el primer día, va a ser una bomba y vas a tener millones de visitas? Estarás preparado sin necesidad de pagar por un servidor que te sobre durante el resto del ciclo de vida del proyecto. Lo que nos lleva a otra ventaja: respuesta a picos de demanda.
Foco en tu servicio: externalizar significa - cuando se hace bien - que puede despreocuparte de lo que no es el foco de tu servicio porque de eso se encargará el especialista. Olvidarse de balanceo de carga, CPDs, mantenimiento de grandes servidores, contratación del hardware y de la adquisición del conocimiento para todo ello.
Disponibilidad y velocidad: es posible que seamos muy buenos administrando y montando servidos, es poco probable que en eso seamos mejores que Amazon. Algunas pruebas que he consultado no lo sitúan como la opción más eficiente en tiempo de respuesta, pero "casi" y a precios más competitivos que tener una supermáquina gestionada por nosotros.
Creo que resulta evidente de que la propuesta de los Amazon Web Services me parece realmente revolucionaria y que presenta muchas ventajas. En el "debe" podríamos anotar que de momento supone depender de un único proveedor por lo que la alternativa, si nos presentan problemas, sería encargarnos del hosting por nosotros mismos, algo para lo que, de la noche a la mañana, nadie está preparado. Otro problema es que no se firma por contrato el nivel de servicio que provee Amazon, por lo que de aparecer problemas de rendimiento, te los comes.
Y poco más, en realidad Amazon hizo una jugada genial con los Amazon Web Services. Ellos por su parte tenían un gran conocimiento para construir grandes sistemas de alto rendimiento (recuerdo la primera vez que entré hace años en la tienda y cuando volví, ¡se acordaba del carrito que había rellenado!, ¡lo guardaban en base de datos!) y por otro también están sobredimensionados para no pasar problemas. Juntas ambas cosas y lo comercializas en forma de estos web services que te permiten rentabilizar tu almacenamiento y capacidad de procesamiento sobrante. Sencillamente, genial.
Enlaces relacionados:
Amazon Flexible Payments disponible: el nuevo web service de Amazon, para habilitar pagos dentro de nuestra aplicación web.
Amazon S3 y el ahorro de costes: un caso de éxito por parte de Smugmug.
Meebo permite compartir ficheros tirando de Amazon S3 y EC2: otro caso de uso.
Albert Armengol analiza la apuesta de Amazon.
Uberbin: Mariano sobre "la nube" de Amazon.
Horaci y las pruebas de EC2. Hay que reconocer que la no persistencia de los datos es una limitación importante de este servicio.
blog oficial: toda la información y los enlaces a la documentación.