Moet u een S3-alternatief gebruiken voor objectopslag?

0
212
Shutterstock/Gorodenkoff

Amazon's Simple Storage Service (S3) biedt een zeer handige interface voor het opslaan van objecten in redundante cloudopslag, waar u zich geen zorgen hoeft te maken over de onderliggende hardware. Behalve dat het een service is die wordt aangeboden door Amazon, is het ook een industriestandaard API, en er zijn veel services die ermee compatibel zijn.

Wat Is S3 compatibel?

Als je overstapt naar een andere cloudprovider, zul je in veel gevallen veel van je applicatie moeten herwerken. Maar als u S3 gebruikt als uw objectopslag-backend, kunt u naadloos overstappen op vele andere services.

Dit komt omdat S3 een open API-standaard is. De Simple Storage Service van AWS is slechts een implementatie van deze standaard; het is native en zal uiteraard de beste ondersteuning hebben, maar er zijn andere diensten die acceptabele prestaties en stabiliteit bieden, vaak tegen lagere kosten.

Overschakelen naar deze services is eenvoudig – u hoeft alleen maar het URL-eindpunt te wijzigen dat uw toepassing gebruikt, en het is meestal goed om enkele kleine aanpassingen aan de sleutelafhandeling te doen. U zult uw gegevens met rclone moeten migreren, maar het is geen moeilijk proces, in sommige gevallen slechts een lang proces.

Het is geen geheim dat AWS duur is. S3 is niet anders, en hoewel het opslaan van bestanden erg goedkoop is, is de toegang tot die bestanden dat niet. In een typische lees-/schrijfbelasting die gebruikers live-bestanden levert, is het opslaan van de bestanden meestal goedkoop; de hoogste kosten zijn eigenlijk AWS-kosten voor gegevensoverdracht en S3-verzoekkosten:

Advertentie

Als je zo'n uitsplitsing van Cost Explorer ziet, kom je misschien in de verleiding om te overwegen een service van een derde partij die goedkoper is op de kosten voor gegevensoverdracht voor uw werklast.

De twee belangrijkste concurrenten van AWS S3 zijn van Google en Microsoft. Google heeft hun oncreatieve naam “Cloud Storage,” en Microsoft Azure heeft Azure Blob Storage. De opslag van Google is compatibel met S3 en is ook relatief eenvoudig te migreren. Azure daarentegen is niet S3-compatibel, hoewel er tools zoals S3Proxy zijn die ze aan elkaar kunnen patchen.

Alle opslagservices van de grote drie cloudproviders brengen u echter hoge kosten in rekening voor gegevens. Ze zijn ontworpen voor zakelijke klanten, en als u een klein bedrijf bent dat probeert uw kosten te minimaliseren, moet u ergens anders kijken. Er zijn andere alternatieve cloudproviders zoals Digital Ocean en Vultr die meer gestroomlijnde prijsmodellen bieden met vergelijkbare kwaliteitsservice.

Digital Ocean

< /p>

Digital Ocean is een cloudprovider die is ontworpen om eenvoudig te zijn. Hoewel het niet zoveel functies biedt als grote providers zoals AWS, doet het het meestal goed met de services die het biedt. Een van deze services is objectopslag, waarbij buckets Spaces worden genoemd, en dit is wat we zullen aanbevelen als u AWS wilt verlaten.

Spaties zijn vrij eenvoudig. Het basistarief is $ 5 per maand en omvat 250 GB opslagruimte en een hele TB aan uitgaande gegevensoverdracht. Dit is een waanzinnig goede deal – hetzelfde gebruik zou meer dan $ 90 kosten op AWS S3.

Extra gegevensopslag is $ 0,02 per GB, redelijk standaard vergeleken met S3 (hoewel hoger als je van plan bent om goedkoper archief te gebruiken opslag) en extra data is redelijk geprijsd op $ 0,01 per overgedragen GB, wat 90% goedkoper is dan de AWS-prijzen.

Advertentie

Dit komt natuurlijk met een paar limieten, en helaas zijn er nog veel meer nadelen en voorwaarden verbonden aan deze geweldige deal.

  • 750 verzoeken, per IP-adres, aan al je Spaces.< /li>
  • 150 gecombineerde bewerkingen per seconde naar elke Space, exclusief GET-verzoeken.
  • 240 totale bewerkingen inclusief GET-verzoeken.
  • 5 PUT- of COPY-verzoeken per 5 minuten naar elk individueel object in een Ruimte

Hoewel deze snelheidslimieten niet geweldig zijn om te hebben, zijn de limieten vrij genereus, en je zult ze waarschijnlijk niet halen. Als je er bijna overheen gaat, kun je het effect ervan minimaliseren door meerdere Spaces te hebben. Als u het niet zeker weet, kunt u bucketstatistieken in S3 inschakelen om uw huidige gebruik te controleren.

GERELATEERD: Verzoekstatistieken inschakelen en bekijken voor een AWS S3-bucket in CloudWatch

Ook kunnen ruimten met meer dan 3 miljoen objecten, of 1,5 miljoen met versiebeheer ingeschakeld, “intermitterende onderhoudsperioden” om consistente prestaties te garanderen. Persoonlijk heb ik echter een bucket met meer dan 2 miljoen geversioneerde objecten die gedurende 6 maanden geen noemenswaardige uitvaltijd hebben gehad, dus dit komt misschien niet vaak voor.

Een groot nadeel van Spaces ten opzichte van S3 is de interface. Spaces is eenvoudig en als u alleen de inhoud van uw website wilt uploaden of enkele basisbestanden wilt opslaan, kunt u met de webinterface de meeste instellingen uploaden, downloaden en bewerken. Als je echter veel bestanden opslaat of een geavanceerde configuratie nodig hebt, is dat eerlijk gezegd behoorlijk slecht en zul je er voornamelijk mee moeten werken via de S3 API.

Spaces heeft bijvoorbeeld niet eens een webeditor om uw Lifecycle-configuratie te selecteren, die zorgt voor het opslaan van oude versies van objecten die worden gebruikt als back-ups in het geval van verwijdering door de gebruiker. Dat betekent ook dat er geen manier is om objecten met versiebeheer te openen of te verwijderen zonder de versies op te sommen via de API en ze rechtstreeks te openen op versie-ID.

Ze hebben ook niet veel documentatie. Om versiebeheer in te schakelen, moesten we bijvoorbeeld de eigen documentatie van S3 raadplegen om het meestal genegeerde PutBucketVersioning-eindpunt te gebruiken, dat gelukkig wordt ondersteund op Spaces ondanks dat het wordt genegeerd in de documenten van DO. U moet het inschakelen via dit eindpunt:

PUT ?versioning <VersioningConfiguration xmlns=”http://s3.amazonaws.com/doc/2006-03-01/”> <Status>Ingeschakeld</Status> </Versieconfiguratie>

En schakel vervolgens het verlopen van de versie in:

PUT ?lifecycle <LifecycleConfiguration xmlns=”http://s3.amazonaws.com/doc/2006-03-01/”> <Regel> <ID>Emmer</ID> <Voorvoegsel>*</Voorvoegsel> <Status>Ingeschakeld</Status> <Niet-huidige versieVervaldatum> <NoncurrentDays>90</NoncurrentDays> </NoncurrentVersionExpiration> </Regel> </LifecycleConfiguration> Advertentie

API-sleutels zijn ook erg eenvoudig. U heeft geen gedetailleerde controle over afzonderlijke buckets, objecten of iets anders dat bij AWS IAM wordt geleverd. Dit kan een probleem zijn als u van plan bent sleutels aan derden te geven.

Over het algemeen komt de Digital Ocean-ervaring absoluut niet in de buurt van hoe goed AWS's S3 is. Maar als je de limieten goed vindt en het niet erg vindt om de API voor bepaalde taken te gebruiken, kan het je zeker een hoop geld besparen op bandbreedtekosten.

Zelf host

Aangezien S3 een open standaard is, is het ook iets dat u zelf kunt hosten , wat voor veel mensen de voorkeur zal hebben. Er zijn veel tools om dit te doen, maar een van de beste is MinIO, dat draait op Kubernetes (K8s).

Als je op K8s zit, kun je het op elke openbare cloud draaien, inclusief serverloos. K8s-services zoals AWS EKS. Maar in dit geval zou u nog steeds onderhevig zijn aan bandbreedtekosten.

Waar MinIO echt uitblinkt, is met dedicated servers, hybride cloudoplossingen en draaiende op on-premises datacenters. Als u betaalt voor een speciale netwerkverbinding met een server, bent u niet van de partij als u die verbinding verzadigt. Dit kan self-hosted storage erg goedkoop maken als je van plan bent veel data aan eindgebruikers te leveren.

Ook is het draaien op uw eigen hardware niet onderhevig aan dezelfde limieten als services zoals S3. U kunt MinIO hosten op razendsnelle servers en betere prestaties krijgen bij zware lees-/schrijftaken (en er worden geen kosten in rekening gebracht voor verzoeken). Natuurlijk moet u de hardwarekosten voor deze prestatie betalen.

Advertentie

Waar het misgaat is op redundantie—omdat S3 uw gegevens op zoveel verschillende plaatsen opslaat, is het 8217;s werkt in principe altijd en verliest nooit uw gegevens, afgezien van een gigantische meteoor. MinIO kan daarentegen worden gehost op een enkele server of via een gedistribueerde implementatie. Als u op een enkele server host, wordt u genaaid als uw instantie uitvalt. Het is de goedkoopste optie, maar we raden ten zeerste aan om meerdere servers in een cluster te plaatsen of op zijn minst een soort back-up te maken naar S3.

MinIO is gratis te hosten onder de GNU AGPL-licentie, maar u wint& #8217; krijg geen ondersteuning. Zakelijke licenties beginnen bij $ 1000/maand en bieden 24/7 ondersteuning en een “Panic Button,” die hun data recovery-engineers klaar zullen hebben om u te helpen bij het oplossen van ernstige serverstoringen.