La mejor respuesta
Sugeriría dos alternativas de Opensource a S3, pero antes de irme, recuerde que S3 es muy avanzado y todas las demás alternativas están tratando de ponerse al día con S3 con API compatibles y lo que no, cuando se trata de vencer a S3, nadie está cerca.
- Openstack Swift: Swift es una tienda de objetos / blob altamente disponible, distribuida y eventualmente consistente. Las organizaciones pueden usar Swift para almacenar gran cantidad de datos de manera eficiente, segura y económica. Los objetos y archivos se escriben en varias unidades de disco distribuidas en los servidores del centro de datos, y el software OpenStack es responsable de garantizar la replicación e integridad de los datos en todo el clúster. Los clústeres de almacenamiento escalan horizontalmente simplemente agregando nuevos servidores. Si un servidor o un disco duro falla, OpenStack replica su contenido de otros nodos activos a nuevas ubicaciones en el clúster. Debido a que OpenStack utiliza la lógica del software para garantizar la replicación y distribución de datos en diferentes dispositivos, se pueden utilizar servidores y discos duros básicos y económicos
- Ceph : es una plataforma de almacenamiento de código abierto basada en almacenamiento de objetos que almacena datos en un solo clúster de computadoras distribuido y proporciona interfaces para almacenamiento a nivel de objetos, bloques y archivos Ceph tiene como objetivo principal distribuirse completamente sin un SPOF, escalable al nivel de exabytes, y disponible gratuitamente
Dado que ambos son de código abierto, puede implementarlo internamente, sin preocuparse por el robo de datos de Amazon (que nunca ocurre).
Contras:
Es una molestia configurar Swift y Ceph, y necesita ingenieros dedicados para hacerlo . Mantenerlos también es un gran lío y, a la larga, a menos que obtenga una buena experiencia, se encontrará luchando. No es aconsejable optar por ninguno de ellos, a menos que tenga muchos servidores redundantes o que esté configurando un gran almacenamiento en casa que se escala a unos 50-500 petabytes.
PD: Soy Openstack desarrollador, trabajé extensamente tanto en Swift como en Ceph, y mi trabajo diario consiste en corregir errores y mantener el clúster Openstack y Ceph.
Respuesta
Yo diría que no hay » «mejores» alternativas a S3.
Si todo lo que necesita es almacenamiento de objetos, entonces claro, hay muchas alternativas. Pero S3 ofrece funcionalidades (como notificaciones y la capacidad de ejecutar funciones Lambda en put / get / sobrescribir y otros eventos) que en este punto no son comunes con ninguna de las alternativas.
Por ejemplo, en En un proyecto reciente, implementamos un mecanismo que, al recibir un archivo almacenado en S3, activaría una función Lambda que extraería los metadatos del archivo y los almacenaría en DynamoDB. Mientras tanto, una transmisión de DynamoDB dispararía otra función Lambda. Esta última función leería los metadatos de DynamoDB y realizaría diferentes tareas, según el tipo de archivo del archivo original en S3. Por ejemplo, si el archivo de origen fuera un archivo de video, se invocaría Elastic Transcoder para transcodificar el archivo; si el archivo de origen era una imagen, se invocaba un script gm (GraphicsMagick para Node.js) para extraer los datos EXIF, crear miniaturas y actualizar los metadatos de DynamoDB. Esto permitió una infraestructura sin servidor para una administración de contenido simple.