Pregunta

Estoy empezando a investigar sobre la viabilidad de usar el servicio SimpleDB de Amazon como el almacén de datos para la aplicación RoR que estoy planeando construir. Usaremos EC2 para el servidor web y habíamos planeado usar también EC2 para los servidores MySQL. Pero ahora la pregunta es, ¿por qué no usar SimpleDB?

La aplicación (si tiene éxito) deberá ser muy escalable en términos de la cantidad de usuarios admitidos, deberá mantener una base de código simple y eficiente, y deberá ser confiable.

Tengo curiosidad por saber lo que piensan las comunidades de SO sobre esto.

¿Fue útil?

Solución

La biblioteca Ruby SimpleDB no está tan completa como ActiveRecord (el adaptador de base de datos de Rails por defecto), por lo que muchas de las características a las que está acostumbrado no estarán allí.

En el lado positivo, es esquemático, escalable y funciona bien con ec2.

Si vas a hacer cosas como la búsqueda de texto completo en tu aplicación, entonces SimpleDB podría no ser la mejor opción, apégate a la esfinge AR +.

Otros consejos

Bueno, considerando que DB simple no usa SQL, o incluso tiene tablas, significa que es una bestia completamente diferente a MySQL y otras cosas basadas en SQL ( http://aws.amazon.com/simpledb/ ). No hay restricciones, desencadenadores o uniones. Buena suerte.

Aquí hay una forma de ponerlo en funcionamiento: http://developer.amazonwebservices.com/connect/entry.jspa?externalID= 1242 (a través de http://rubyforge.org/projects/aws-sdb/ )

Supongo que si nunca va a necesitar consultar los datos fuera de los rieles, entonces SimpleDB puede demostrar que está bien. Pero como no es una base de datos compatible de primera clase, es probable que encuentre errores que son difíciles de solucionar. No me gustaría ejecutar una aplicación de rieles de producción en un backend semi-beta.

Para mí, esto simplemente se siente como, "Oye, hay herramientas limpias por ahí, debería ir a construir un proyecto usándolas", " en lugar de realmente necesitar usar estas herramientas específicas. Tal vez solo estoy de mal humor, pero se siente como un caso clásico de optimización prematura. Está intentando usar un servicio externo que cuesta dinero para una aplicación que aún no está escrita y no dice que tenga una audiencia garantizada o que necesariamente se escalará a un nivel que lo justifique.

" La aplicación (si tiene éxito) deberá ser muy escalable en términos de # de usuarios admitidos " ;, en serio, eso describe la mitad de Internet. Es el " si tiene éxito " En parte esa es realmente la pregunta. Solo concéntrate en construir la aplicación rápida y fácilmente. La forma más sencilla de hacerlo es simplemente usar ROR, ya que está fuera de la caja, por así decirlo. Combínalo con una base de datos, usa ActiveRecord y obtén algo creado para atraer usuarios.

De hecho, iré más lejos y diré que EC2 es bastante costoso para los servidores siempre. Desplázalo en Slicehost u otra solución alojada y luego muévelo a EC2 si es necesario para poder satisfacer la demanda.

Yo mismo estoy muy interesado en este tema. Ahora mismo estoy en una nube de computación alta, así que diría que vaya con SimpleDB, ya que probablemente se escalará mejor en el sentido de que tendrá una alta disponibilidad, pero esos son solo mis pensamientos en este momento. Aún no por experiencia.

Editar: es cierto que SimpleDB no tiene características normales a " normal " base de datos, pero debería hacer el truco si solo necesita una capa CRUD simple contra la que trabajar, como es mi caso

Hay una biblioteca llamada SimpleRecord que reemplaza a ActiveRecord, pero usa SimpleDB como su almacén de datos de fondo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top