Beste antwoord
Ik zou twee Opensource-alternatieven voor S3 willen voorstellen, maar voordat ik ga, onthoud dat S3 ver gevorderd is, en alle andere alternatieven proberen S3 in te halen met compatibele APIs en wat niet, als het gaat om S3 verslaan, is er niemand in de buurt.
- Openstack Swift: Swift is een zeer beschikbare, gedistribueerde, uiteindelijk consistente object / blob-opslag. Organisaties kunnen Swift gebruiken om veel gegevens efficiënt, veilig en goedkoop op te slaan. Objecten en bestanden worden geschreven naar meerdere schijfstations verspreid over servers in het datacenter, waarbij de OpenStack-software verantwoordelijk is voor gegevensreplicatie en integriteit binnen het cluster. Opslagclusters kunnen horizontaal worden geschaald door eenvoudig nieuwe servers toe te voegen. Mocht een server of harde schijf uitvallen, dan repliceert OpenStack de inhoud van andere actieve knooppunten naar nieuwe locaties in het cluster. Omdat OpenStack softwarelogica gebruikt om gegevensreplicatie en -distributie over verschillende apparaten te garanderen, kunnen goedkope vaste schijven en servers worden gebruikt.
- Ceph : is een op objectopslag gebaseerd, open source-opslagplatform dat gegevens opslaat op een enkel gedistribueerd computercluster en interfaces biedt voor opslag op object-, blok- en bestandsniveau. Ceph streeft er voornamelijk naar volledig te worden gedistribueerd zonder een SPOF, schaalbaar tot het exabyte-niveau, en vrij beschikbaar
Omdat ze allebei open source zijn, kun je het intern inzetten, zonder dat je je zorgen hoeft te maken over gegevensdiefstal van Amazon (wat het nooit doet).
Nadelen:
Het is lastig om zowel Swift als Ceph in te stellen, en daarvoor heb je toegewijde technici nodig . Het onderhouden ervan is ook een enorme puinhoop, en op de lange termijn zul je het moeilijk krijgen, tenzij je goede ervaring opdoet. Het is niet aan te raden om voor een van beide te gaan, tenzij je veel overtollige servers hebt liggen of je een grote opslag in huis opzet die kan opschalen tot ongeveer 50-500 petabytes.
PS: ik ben Openstack ontwikkelaar, heb uitgebreid gewerkt aan zowel Swift als Ceph, en mijn dagelijkse taak omvat het oplossen van bugs en het onderhouden van Openstack cluster en Ceph.
Antwoord
Ik zou willen zeggen dat er geen ” beste “alternatieven voor S3.
Als u alleen objectopslag nodig hebt, dan zijn er natuurlijk veel alternatieven. Maar S3 biedt functionaliteit (zoals meldingen, en de mogelijkheid om Lambda-functies uit te voeren op put / get / overwrite en andere gebeurtenissen) die op dit moment niet gebruikelijk zijn bij de alternatieven.
Bijvoorbeeld in Bij een recent project hebben we een mechanisme geïmplementeerd dat, na ontvangst van een bestand dat is opgeslagen in S3, een Lambda-functie zou activeren die de metadata van het bestand zou extraheren en opslaan in DynamoDB. Ondertussen zou een DynamoDB-stream dan een andere Lambda-functie activeren. Deze laatste functie zou de metadata van DynamoDB lezen en verschillende taken uitvoeren, afhankelijk van het bestandstype van het originele bestand in S3. Als het oorspronkelijke bestand bijvoorbeeld een videobestand was, zou Elastic Transcoder worden aangeroepen om het bestand te transcoderen; als het oorspronkelijke bestand een afbeelding was, zou een gm-script (GraphicsMagick for Node.js) worden aangeroepen om de EXIF-gegevens te extraheren, miniaturen te maken en de DynamoDB-metagegevens bij te werken. Dit zorgde voor een serverloze infrastructuur voor eenvoudig contentbeheer.