amazon-s3 amazon-web-services amazon-simpledb

amazon s3 - Amazon SimpleDB



amazon-s3 amazon-web-services (6)

¿Pero realmente necesitas SQL Server? ¿No puedes vivir con PostgreSQL o MySQL? Ambos han demostrado estar bien para la mayoría de las tareas.

Ahora, si necesita las características de SQL Server, no tiene suerte.

Otra opción es alquilar un servidor. ¿Qué tan caro es caro?

(He usado Amazon S3 para almacenar imágenes para una aplicación, está bien y funciona bien, al menos para eso)

¿Alguien ha considerado usar algo similar a la tienda de datos Amazon SimpleDB como su base de datos back-end?

El alojamiento de SQL Server (al menos en el Reino Unido) es costoso, por lo que podría utilizarse algo como esto junto con el almacenamiento de archivos en la nube (S3) para crear aplicaciones que podrían crecer con su aplicación.

Genial en teoría, pero ¿alguien consideraría usarlo? De hecho, alguien lo está usando ahora para un software de producción real, ya que me gustaría leer sus comentarios.


No he usado SimpleDB, pero he estado usando la combinación de S3, EC2 y MySQL para nuestra aplicación.

Mientras esté dispuesto a usar SimpleDB, entonces también podría considerar usar MySQL (que es muy escalable y no es tan caro).

En el lado S3 y EC2, también es genial en la práctica.


Acabo de terminar de escribir una biblioteca para hacer portar una aplicación a simpledb en Perl fácil, Net :: Amazon :: SimpleDB :: Simple porque las bibliotecas de clientes de Amazon me resultan dolorosas. La biblioteca aún no se encuentra en CPAN, pero está en http://rjurneyopen.s3.amazonaws.com/SimpleDB/Simple.pm. La idea era hacer que todo el hash de cosas dentro y fuera de SimpleDB fuera trivial.

Acabo de portar una aplicación para usarlo. En general, estoy impresionado con SimpleDB ... incluso las consultas ineficientes tardan solo 2-3 segundos en regresar. A SimpleDB no parece importarle el tamaño de su mesa, debido a su naturaleza Erlang / paralela. Tablescans son fáciles de usar.

El dolor viene del hecho de que no puedes contar, sumar ni agrupar. Si planeas hacer cualquiera de esas cosas ... entonces SimpleDB probablemente no sea para ti. Por el momento, en términos de funcionalidad, existe en algún lugar entre Memcached y MySQL. Puedes SELECCIONAR PEDIDO POR LÍMITE, lo cual es bueno. También es bueno que no tengas que escalarlo tú mismo, y es bueno que no le importe cuánto lo cargues. Pero las operaciones más avanzadas como las analíticas son dolorosas en el mejor de los casos. Tendrás que hacer tus propios cálculos del lado del servidor. También es una gran ventaja que en cualquier computadora pueda usar el CLI simplecodeb http://code.google.com/p/amazon-simpledb-cli/ para consultar mis datos.

Hay algunos "errores" confusos. Por ejemplo, los atributos pueden tener más de un valor, y usted tiene que establecer explícitamente ''reemplazar'' cuando almacena elementos. Además, el almacenamiento de cadena undef o nula da como resultado un error de biblioteca, en lugar de eliminar ese par de nombre / valor de atributo o establecerlo como cadena nula / vacía.

Aprender a pensar en términos de una forma poco normalizada también es un poco extraño, por lo que me gustaría secundar la sugerencia anterior que dice que es mejor para las nuevas aplicaciones. Transmitir desde una aplicación SQL a SimpleDB sería doloroso porque la lógica de la aplicación debería cambiar. La forma en que haces las cosas es un poco diferente. Los documentos de Amazon son bastante buenos para explicar esto.

Todo esto es extraíble en una biblioteca que se encuentra encima de SimpleDB, por lo que para usar SimpleDB querrá elegir una buena biblioteca ... probablemente no quiera tratar con ella directamente. Hay algo de trabajo en el lado de PHP para facilitar las cosas, y está mi biblioteca. Existe un recurso activo RAILS, pero no parece hacer mucho por usted.

En general, aún es temprano en el juego, pero en comparación con otras API (me viene a la mente el twitter), debo decir que la API REST de SimpleDB es bastante simple (especialmente considerando que es XML) y educada para trabajar con ella. Lo recomendaría ... dependiendo de los requisitos de su aplicación y la economía de su uso de la misma. Si está buscando escalar rápidamente un servicio que no tiene una gran carga en el DB y no quiere molestarse con un combo escalable de MySQL / Memcache ... entonces SimpleDB puede ofrecerle una solución ''simple''.

Espero que sus características continúen creciendo y será una buena opción para más y más aplicaciones que hacen cosas más complejas e interesantes. Pero ahora está dirigido y es apropiado para su servicio web 2.0 típico.


Este es un buen análisis de los servicios de Amazon de Dare .

S3 manejó lo que típicamente he oído describir como "almacenamiento de blobs". Una aplicación web típica normalmente tiene archivos multimedia y otros recursos (imágenes, hojas de estilo CSS, scripts, archivos de video, etc.) a los que se accede simplemente por nombre / ruta. Sin embargo, muchos de estos recursos también tienen metadatos (por ejemplo, un archivo de video en YouTube tiene metadatos sobre su calificación, quién lo subió, cantidad de visitas, etc.) que también deben almacenarse. Esta necesidad de almacenamiento esquemático y cuestionable es donde entra SimpleDB. EC2 proporciona un servidor virtual que se puede usar para el cálculo completo con una instancia del sistema de archivos local que no es persistente si el servidor virtual se cae por algún motivo. Con SimpleDB y S3 tiene los componentes básicos para construir una gran clase de aplicaciones de estilo "Web 2.0" cuando incorpora las capacidades computacionales proporcionadas por EC2. Sin embargo, ni S3 ni SimpleDB brindan una solución para un desarrollador que simplemente quiere la experiencia típica del desarrollador LAMP o WISC para crear una aplicación web basada en bases de datos o para aplicaciones que pueden tener necesidades de almacenamiento personalizadas que no encajan perfectamente en los depósitos de blob storage o almacenamiento esquematizado. Sin acceso a un sistema de archivos persistente, los desarrolladores en la plataforma de computación en la nube de Amazon han tenido que presentar soluciones sofisticadas que involucran el respaldo de datos manualmente desde EC2 a S3 para obtener la experiencia deseada.


Estamos utilizando SimpleDB casi exclusivamente para nuestros nuevos proyectos. Los aspectos de cero mantenimiento, alta disponibilidad y no instalación son simplemente demasiado buenos. Y para los desarrolladores de Ruby, echa un vistazo a SimpleRecord , una interfaz similar a ActiveRecord para SimpleDB que hace que sea muy fácil de usar.


SimpleDB funciona muy bien para muchas aplicaciones ... si su proyecto requerirá una gran cantidad de informes analíticos, de unión, etc., puede considerar MySQL o un modelo híbrido.

Si usa SimpleDB, desarrollamos Radquery.com para nuestro uso interno y lo abrimos al público.