tipos services precios precio cuesta cuanto costo aws amazon-s3 couchdb amazon hadoop distributed-system

services - Arquitectura de Amazon S3



precio de amazon s3 (3)

Si bien la publicación @ http://highscalability.com/amazon-architecture explica la arquitectura de Amazon en general, me interesa saber cómo se implementa Amazon S3.

Algunas de mis conjeturas son

  1. Un sistema de archivos distribuidos como HDFS http://hadoop.apache.org/core/docs/current/hdfs_design.html
  2. Un DB persistente no relacional como CouchDB http://couchdb.apache.org/

¿Es posible implementar algo similar a esto en una escala mucho más pequeña utilizando lenguajes de scripting como Python o PHP?


Está más cerca de 2, aunque con contenido almacenado como "BLOB" sin que el sistema se preocupe por los contenidos, mientras que CouchDB sí lo hace. El almacenamiento de fondo utiliza una base de datos local (BDB?) Para los nodos de clústeres utilizados para almacenar copias múltiples. Las lecturas pueden ir a cualquier nodo que tenga una copia, al igual que las escrituras, pero las escrituras deben resolverse para eliminar conflictos. Como Kevin menciona, esto garantiza "consistencia eventual", pero no ofrece garantías estrictas sobre cuándo, ni qué escritura gana (desde un punto de vista externo, internamente definido).

Leer documentos de Dynamo es útil para comprender muchos de los conceptos, pero la implementación de AFAIK es diferente. Dynamo es utilizado internamente por Amazon para otros usos. También hay implementaciones de código abierto de ambos; uno interesante es el Proyecto Voldemort . CouchDB es obviamente muy interesante también.


Amazon S3 se implementa utilizando la arquitectura descrita en Dynamo Paper:

http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

El documento explica hash consistente, y cómo y por qué la garantía es "consistencia eventual".

La resolución de conflictos de la que hablan para Dynamo no está expuesta a los usuarios de S3. Se usa internamente en las aplicaciones de Amazon, pero para S3, la única resolución de conflicto es la última escritura gana.

Editar: Werner Vogels ha dicho que "Dynamo no está directamente expuesto externamente como un servicio web, sin embargo, Dynamo y otras tecnologías similares de Amazon se utilizan para impulsar partes de nuestros servicios web de Amazon, como S3". http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

Yo enfatizaría que él no está diciendo que S3 y Dynamo compartan componentes, explícitamente dice que Dynamo es una de las tecnologías que impulsa a S3. Todo lo que he visto de S3, incluidas las advertencias, se explica al suponer que S3 es un sofisticado envoltorio de servicios web alrededor de Dynamo con autenticación, contabilidad y resolución de conflictos de última escritura que es invisible para el usuario.

La pregunta original era sobre el mecanismo de almacenamiento subyacente para S3. No es explícitamente un sistema de archivos distribuidos como HDFS o una base de datos no relacional como CouchDB. Dynamo cumple esta función.


Ni la arquitectura de Amazon S3 ni su implementación se han hecho públicas. Como tal, no está disponible para extensión con el fin de desarrollar la capacidad de crear nubes privadas de cualquier tamaño.

Hay algunos artículos sobre temas de arquitectura de almacenamiento en la nube. Puede encontrarlos útiles. Aquí hay uno: CACSS: hacia un servicio genérico de almacenamiento en la nube

También se detalla el método mediante el cual se pueden combinar diferentes tecnologías para proporcionar un único rendimiento excelente, un sistema de almacenamiento en la nube altamente escalable y confiable. Esta investigación sirve como fuente de conocimiento para proveedores de la nube sin experiencia, dándoles la capacidad de configurar rápidamente sus propios servicios de almacenamiento en la nube