FinOps

AWS S3-kosten ontrafeld voor kosteneffectieve oplossingen

AWS S3-kosten ontrafeld voor kosteneffectieve oplossingen

HB
Hamza Benjelloun
02-02-2024
11 minute read

Inleiding

Amazon S3 staat bekend als een voordelige en flexibele opslagdienst binnen het AWS-ecosysteem. Toch is de gelaagde prijsstructuur behoorlijk complex. In dit artikel nemen we de prijsopbouw van S3 grondig door, zodat je je opslagkosten kunt optimaliseren. We bekijken elke opslagklasse afzonderlijk, leggen de prijsmodellen uit en laten zien hoe de verschillende kostenfactoren op elkaar inwerken. Zo kies je de meest kostenefficiënte opslagoplossing voor je cloudworkloads.

De opslagklassen van AWS S3

Laten we de opslagklassen van AWS S3 stuk voor stuk bekijken: wat maakt ze uniek, en waar moet je op letten?

1. S3 Standard: S3 Standard is de standaardkeuze voor data die je vaak nodig hebt. De klasse biedt lage latency en hoge duurzaamheid, waardoor je data altijd direct beschikbaar is. Daar staat een hogere opslagprijs tegenover dan bij de andere klassen. Dit is de beste keuze als:

  • Je data snel en vaak moet kunnen benaderen.

  • Je hoge duurzaamheid en beschikbaarheid nodig hebt.

  • Kosten niet je grootste zorg zijn en prestaties voorop staan.

2. S3 Standard Infrequent Access: Deze klasse is een variant van S3 Standard, bedoeld voor data die je minder vaak gebruikt maar die wel snel beschikbaar moet zijn als het nodig is. De opslagkosten liggen lager dan bij Standard, maar de kosten per request zijn iets hoger. Dit is de beste keuze als:

  • Je data zelden benadert, maar deze wel direct toegankelijk moet blijven.

  • Je wilt besparen op opslagkosten ten opzichte van S3 Standard.

3. Glacier Instant Retrieval/Access: Glacier Instant Access werkt als een kluis voor data die je archiveert maar vrijwel direct wilt kunnen ophalen. Je krijgt snelle toegang tot gearchiveerde data, vergelijkbaar met S3 Standard, tegen lagere opslagkosten. Deze klasse past het best als:

  • Je data moet archiveren voor compliance of langdurige opslag.

  • Je verwacht dat je specifieke data zelden, maar dan wel dringend, moet ophalen.

  • Je opslagkosten wilt beperken en toch snelle toegang wilt tot bepaalde gearchiveerde bestanden.

4. Glacier Flexible Retrieval: Glacier Flexible Retrieval is een goedkopere optie voor gearchiveerde data met flexibele ophaaltijden. Het ophalen duurt enkele minuten tot uren, afhankelijk van je keuze. Deze klasse is geschikt als:

  • Je gearchiveerde data hebt die je met een flexibele doorlooptijd kunt ophalen.

  • Kostenbesparing vooropstaat en je iets langere ophaaltijden accepteert.

5. Glacier Deep Archive: Glacier Deep Archive is de diepste, best beveiligde kluis voor langdurige opslag. De opslagkosten zijn het laagst, maar het ophalen duurt het langst — vaak meerdere uren. Deze klasse is ideaal voor:

  • Data die je langdurig archiveert en naar verwachting zelden ophaalt.

  • Compliancedata die je lang moet bewaren tegen minimale kosten.

  • Situaties waarin je lange ophaaltijden accepteert in ruil voor een flinke besparing.

Kies de opslagklasse die past bij je toegangspatronen, budget en prestatie-eisen. Een verkeerde inschatting leidt tot onverwachte kosten of vertraging wanneer je je data nodig hebt.

In de volgende secties bekijken we de verschillende kostenposten van AWS S3, met aandacht voor de prijsmodellen en aandachtspunten. Met die kennis vind je de juiste balans tussen kostenefficiëntie en beschikbaarheid van je data.

De vele kostenposten van AWS S3

Wie de prijsstructuur van AWS S3 induikt, ontdekt dat meerdere kostenposten meespelen, elk met eigen kenmerken. Samen bepalen ze je maandelijkse uitgaven. We lopen ze een voor een langs:

1. Opslagkosten (per GB): Zie je data als spullen in een magazijn. Hoe meer spullen, hoe meer ruimte je nodig hebt en hoe meer je betaalt. AWS S3 rekent af op basis van de hoeveelheid data in de gekozen opslagklasse.

2. Requestkosten (per 1000 requests): Requests zijn de handelingen waarmee je je opgeslagen data benadert of beheert. Er zijn verschillende soorten:

  • Put-, Copy-, Post- en List-requests: Vergelijkbaar met spullen opbergen, kopiëren of een lijst maken van wat er ligt. Elke handeling kost geld per 1000 requests.

  • Get-, Select- en overige requests: Dit zijn handelingen zoals het ophalen van specifieke bestanden. Ook hiervoor betaal je per 1000 requests.

Deze twee soorten requests hebben verschillende tarieven; Put, Copy, Post en List zijn duurder dan de overige API-requests.

3. Kosten voor lifecycle-transities (per 1000 requests): In S3 kunnen objecten na verloop van tijd verhuizen van de ene opslagklasse naar de andere. Deze transities tellen als requests en hebben hun eigen tarief.

4. Kosten voor data-retrieval-requests (per 1000 requests — alleen voor archiefklassen): Werk je met archiefklassen, waar data voor de lange termijn staat, dan betaal je per 1000 requests voor elke ophaalactie.

5. Data-retrievals (per GB — alleen voor archiefklassen): Zie dit als de kosten om spullen uit langdurige opslag te halen. Data ophalen uit archiefklassen kost apart geld per gigabyte.

6. Monitoringkosten (voor S3 Intelligent-Tiering): S3 Intelligent-Tiering verplaatst objecten automatisch tussen opslagklassen op basis van toegangspatronen. Handig, maar aan die monitoring hangt een prijskaartje.

7. Datatransferkosten (gelijk voor alle opslagklassen): Datatransfer is het verplaatsen van data uit AWS S3. Deze kosten zijn voor alle opslagklassen gelijk en staan los van de gekozen klasse. Ze vallen daarom buiten dit artikel.

8. Overige mogelijke monitoring- en beheerkosten (buiten de scope van dit artikel): AWS biedt diverse tools en diensten om je S3-resources te beheren en te monitoren. Daar kunnen extra kosten aan verbonden zijn die we hier niet behandelen.

Hoe de kostenposten op elkaar inwerken

Wat AWS S3-prijzen extra complex maakt, is dat deze kostenposten elkaar vaak raken. Een voorbeeld:

  • S3 Standard: In deze opslagklasse zijn de opslagkosten relatief hoog, omdat de klasse is gemaakt voor veelgebruikte data. De requestkosten zijn juist laag, wat gunstig is voor applicaties die veel data ophalen.

  • Glacier-klassen: Hier zijn de opslagkosten juist uitzonderlijk laag, ideaal voor langdurige archivering. Maar haal je data op uit Glacier, dan betaal je meer voor retrieval en API-requests.

Hieronder zie je een uittreksel van de S3-prijslijst:

Tabel met S3-opslagtarieven
Opslagkosten

Tabel met S3-tarieven voor requests
Tarieven voor requests, lifecycle-transities en data-retrieval

De actuele prijzen van AWS S3 vind je op de officiële prijspagina van AWS.

De juiste balans voor kostenefficiëntie

Kostenefficiëntie in AWS S3 draait om de juiste balans tussen deze kostenposten. Het gaat erom de opslagklasse te kiezen die past bij je toegangspatronen, ophaalbehoeften en budget.

S3 Intelligent-Tiering: de slimme opslagkeuze

S3 Intelligent-Tiering is als een slimme assistent voor je databeheer. De dienst volgt automatisch je toegangspatronen en verplaatst objecten tussen opslagklassen om kosten te besparen. Ideaal bij onvoorspelbaar gebruik.

Hoe werkt het?

Schema van S3 Intelligent-Tiering

De dienst observeert continu de toegang tot je data en verplaatst objecten naadloos tussen klassen (S3 Standard, S3 Standard-IA, Glacier, Glacier Deep Archive) om kosten te optimaliseren. Objecten starten in de Frequent Access-laag. Blijft data 30 dagen achtereen onaangeroerd, dan verhuist deze naar de Infrequent Access-laag. Na 90 dagen zonder activiteit gaat de data door naar de Archive Instant Access-laag.

Ideaal bij onvoorspelbare patronen: S3 Intelligent-Tiering komt het best tot zijn recht wanneer je toegangspatronen onzeker of onvoorspelbaar zijn. Handmatig schuiven tussen opslagklassen is niet nodig; AWS regelt alles op basis van je daadwerkelijke gebruik.

Kostenopbouw: Zo zitten de kosten in elkaar:

  • Opslagkosten: Afhankelijk van de laag waarin je data staat.

  • Monitoringkosten: Je betaalt een bescheiden maandelijks bedrag voor monitoring.

  • Requestkosten: De requestkosten van S3 Intelligent-Tiering zijn gelijk aan die van S3 Standard. Een aantrekkelijke keuze dus als je op requestkosten let.

Kortom: S3 Intelligent-Tiering maakt kostenoptimalisatie eenvoudig en past uitstekend bij onvoorspelbare gebruikspatronen. De dienst kiest automatisch de juiste laag, zodat je het maximale uit je AWS-opslag haalt.

S3 Lifecycle Policies: databeheer op maat

Waar S3 Intelligent-Tiering kostenoptimalisatie automatiseert, wil je soms liever zelf aan de knoppen zitten. Daar zijn S3 Lifecycle Policies voor: je stemt je databeheer af op je eigen behoeften.

Je databeheer zelf inrichten: Ken je je datagebruik en requestpatronen goed, dan stel je met S3 Lifecycle Policies je eigen lifecycle-configuraties op. Zo bepaal je zelf volledig hoe je data tussen opslagklassen beweegt.

Minimale bewaartermijn: Let bij het opstellen van je lifecycle policies goed op de minimale bewaartermijn per opslagklasse, vooral bij transities naar Glacier. Deze termijnen bepalen hoelang data in elke klasse blijft voordat deze wordt verplaatst of gearchiveerd — plan daar dus zorgvuldig op.

Omgaan met transitiekosten

Transitiekosten in AWS S3 begrijpen

Transitiekosten zijn een belangrijk onderdeel van efficiënt en voordelig databeheer. Data verplaatsen tussen opslagklassen is een gangbare manier om opslagkosten af te stemmen op je gebruikspatronen. Maar je moet de details van de transitiekosten goed begrijpen om weloverwogen keuzes te maken.

Factoren die de transitiekosten bepalen:

De transitiekosten in AWS S3 hangen af van een paar belangrijke factoren:

  1. Aantal objecten: Het aantal objecten dat je verplaatst bepaalt de kosten. Veel kleine objecten pakken anders uit dan een klein aantal grote objecten.

  2. Doelklasse: Ook de opslagklasse waar je data naartoe gaat telt mee. AWS biedt verschillende opslagklassen, elk met een eigen prijsstructuur (zie de kostenposten van S3 hierboven).

Voorbeeld uit de praktijk:

Bij een van onze klanten werkten we aan een efficiëntere inzet van S3. We adviseerden een overstap van S3 Standard naar S3 Glacier Instant Retrieval, goed voor een kostenbesparing van 75%. Wat ons verraste, waren de kosten van de migratie zelf. De S3-kosten vielen die maand juist hoger uit door de lifecycle-transities naar S3 Glacier Instant Retrieval, in de grafiek hieronder zichtbaar als Requests-Tier4. De opslagkosten waren zoals verwacht laag, maar we gingen er aanvankelijk van uit dat de overstap geen noemenswaardige investering zou vragen. Gelukkig was de investering na anderhalve maand terugverdiend.

Grafiek met S3-kosten uit een praktijkvoorbeeld

Aantal objecten en objectgrootte doen ertoe:

Bij het verplaatsen van data tussen opslagklassen kan de bestandsgrootte de kosten en terugverdientijd sterk beïnvloeden. De vergelijking hieronder laat zien hoe het verplaatsen van grote of kleine objecten van Amazon S3 Standard naar S3 Glacier Instant Retrieval uitpakt voor de opslagkosten en de tijd die nodig is om de investering terug te verdienen.

In de volgende voorbeelden verplaatsen we een S3-bucket van 50 TB van S3 Standard naar S3 Glacier Instant Retrieval. Om de berekening eenvoudig te houden, gaan we ervan uit dat de request- (API-)kosten verwaarloosbaar zijn.

Scenario met grote objecten:

Stel dat je een verzameling flinke databestanden hebt, zoals hd-video’s of grote datasets. We nemen aan dat een object gemiddeld 500 MB groot is. Deze grotere objecten overzetten naar een goedkopere opslagklasse, zoals S3 Glacier Instant Retrieval, levert een flinke besparing op. Omdat transitiekosten afhangen van het aantal verplaatste objecten, blijven ze bij weinig grote objecten laag.

De bucket bevat 100.000 objecten (50.000.000 MB/500 = 100.000).

Berekening:

  • S3 Standard:

    • Opslagkosten:

      • 50.000 (grootte van de bucket in GB) * 0,023 (kosten per GB per maand in S3 Standard) = $ 1.150/maand
  • S3 Glacier Instant Retrieval:

    • Opslagkosten:

      • 50.000 (grootte van de bucket in GB) * 0,004 (kosten per GB per maand in S3 Glacier Instant Retrieval) = $ 200/maand
    • Eenmalige transitiekosten:

      • 100.000 (aantal objecten) * 0,02 (lifecycle-transitiekosten per 1000 requests/objecten in S3 Glacier Instant Retrieval) / 1.000 = $ 2

Scenario met kleine objecten:

Heb je juist heel veel kleine objecten, zoals thumbnails of logbestanden, dan levert een overstap naar een andere opslagklasse mogelijk weinig op. We nemen aan dat een object gemiddeld 0,5 MB groot is. Deze kleine objecten overzetten naar een goedkopere opslagklasse, zoals S3 Glacier Instant Retrieval, geeft dezelfde besparing op opslagkosten. Maar omdat transitiekosten afhangen van het aantal verplaatste objecten, vallen die hier veel hoger uit.

De bucket bevat 100.000.000 objecten (50.000.000 MB/0,5 = 100.000.000).

Berekening:

  • S3 Standard:

    • Opslagkosten:

      • 50.000 (grootte van de bucket in GB) * 0,023 (kosten per GB per maand in S3 Standard) = $ 1.150/maand
  • S3 Glacier Instant Retrieval:

    • Opslagkosten:

      • 50.000 (grootte van de bucket in GB) * 0,004 (kosten per GB per maand in S3 Glacier Instant Retrieval) = $ 200/maand
    • Eenmalige transitiekosten:

      • 100.000.000 (aantal objecten) * 0,02 (lifecycle-transitiekosten per 1000 requests/objecten in S3 Glacier Instant Retrieval) / 1.000 = $ 2.000

Samenvatting

Hieronder staan beide scenario’s samengevat. De terugverdientijd (ROI) laat zien hoelang het duurt voordat de besparing op opslagkosten de eenmalige transitiekosten dekt.

Grote objecten (500 MB) Kleine objecten (0,5 MB)
Grootte van de bucket 50 TB 50 TB
Aantal objecten 100.000 100.000.000
Maandkosten: S3 Standard $1.150 $1.150
Maandkosten: Glacier Instant $200 $200
Eenmalige transitiekosten $2 $2.000
Maandelijkse besparing $950 $950
ROI (maanden tot terugverdiend) ~0 ~2,1

De kern:

  • Grote objecten verplaatsen levert een flinke besparing op, met een vrijwel directe terugverdientijd.

  • Bij kleine objecten bespaar je maandelijks evenveel, maar duurt het ruim twee maanden voordat de eenmalige transitiekosten zijn terugverdiend.

Conclusie: de juiste S3-opslag voor jouw situatie

Voor AWS S3-opslag bestaat geen pasklare oplossing. Je datatype en toegangspatronen bepalen grotendeels welke opslagklasse de kosten in de hand houdt. Het kan overweldigend lijken, maar met deze punten maak je een weloverwogen keuze:

  • Keuzes op maat: Verschillende data en toegangspatronen vragen om specifieke opslagklassen om de totale kosten laag te houden. Werk je bijvoorbeeld met publieke data met onvoorspelbaar gebruik, dan is S3 Intelligent-Tiering een slimme keuze.

  • Aanbevelingen: Een paar praktische aanbevelingen om het kiezen makkelijker te maken:

    • Voor de meeste toepassingen: overweeg S3 Intelligent-Tiering voor minder beheerwerk. Het past uitstekend bij onvoorspelbare datapatronen.

    • Voor voorspelbare en strak gecontroleerde gebruikspatronen: kies een eigen S3-lifecycleconfiguratie. Zo houd je meer controle over je databeheer.

Met deze afwegingen vind je de juiste balans tussen kostenefficiëntie en beschikbaarheid van je data in je AWS S3-opslagstrategie.

Related blogs

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.

No related posts found.

Join our mailinglist and get a montly update

Get blogupdates in your inbox