2. januar fikk jeg et uventet pling på telefonen min.
Uventet fordi jeg satt i sofaen og nøt en bedre episode av Mia og Meg på Netflix med barna på planleggingsdag, og hadde slått av notifikasjoner fra så og si alle apper. Bortsett fra én...
"Mobilbank: Du betalte kr 4.226 med ditt bankkort" sa iPhone.
"Hæ?" tenkte jeg.
Varselet fikk det til å knyte seg i magen min. Hva i huleste hadde jeg betalt over 4000 kroner for uten å vite det?
Ole (23) fikk AWS-regning på over 500.000 kroner
Hvor kommer dette fra?
Det første stedet jeg gikk for å lete etter spor var nettbanken. Og ganske riktig; 4226,66 kroner var trukket fra Mastercard-kortet mitt.
Den kryptiske mottakeren, "CLOUD K648BM", var det riktignok ikke mye hjelp i.
"Hvilke skytjenester legger jeg ut for på jobb egentlig?" var min første tanke. På kode24 bruker vi Heroku til julekalendere, Netlify til de fleste av frontend-tjenestene våre, og Vercel til kode24-dagen.no.
Så jeg sjekket alle. Ingen av dem hadde noen høye regninger tilknyttet seg.
Men jeg hadde glemt én.
Kronglete, kronglete, kronglete
Det var selvfølgelig Firebase som var den skyldige!
Nærmere bestemt Firestore-databasen som vi bruker til julekalenderen til kode24, og som står innstilt på modusen "blaze - pay as you go".
Med nesten 20.000 sidevisninger på julekalenderen og over 1.400 deltakere var det kanskje ikke rart regninga ble så høy?
Jørgen raser mot Firebase-dokumentasjonen: - De får anfall midt i artiklene!
Ikke at det var så lett å finne ut av.
De er alltid flinke til å fortelle om deres "free tiers" og hvor lett det er å komme i gang på, disse sky-tjenestene. Men når man setter i gang med "pay as you go", da blir det tyst. Det forbruket er det tydeligvis ikke meningen at jeg skal finne en oversikt over.
«Når man setter i gang med "pay as you go", da blir det tyst.»
Men det går altså an. I Firebase-konsollen måtte jeg trykke på et tannhjul til høyre for "Project Overview" og velge "Usage and Billing".
Og riktig nok, der stod det, svart på hvitt: 4.226 kroner i forbruk fra 1. til 31. desember.
Ikke med på statistikken
Men vi kjørte akkurat samme tjenesten i 2021, med samme Firebase oppsett, og forholdsvis like besøkstall. Hvorfor ble jeg ikke slått i trynet av en mega-regning i den gangen?
En kjapp titt i forbruksarkivet til Firebase viste at regninga i 2021 bare kom på 300 kroner. Hva i huleste hadde jeg gjort galt i 2022?
På kontoret morgenen etter slo det meg: Vi viser jo søren meg highscore-lista fra julekalenderen på forsiden av kode24, og i alle artikler. Uten cache.
Og vi hadde 310.000 sidevisninger i desember.
Det virket som en god idé for å få flere til å oppdage kalenderen i desember. Men om det var en idé til over 4.000 kr, det er jeg ikke sikker på.
Mine estimater var basert på trafikk til kode24.no/julekalender. Ikke trafikken til hele nettsida!
Derfor velger han Svelte og Firebase for stacken han skal bruke ut 2025
Budsjett og cache
Det er lett å være etterpåklok, for det er to åpenbare ting jeg burde ha gjort:
- For det første burde jeg ha cachet dataene. Hvem som var på toppen av higscore-lista endra seg bare så vidt i løpet av dagen. Jeg kunne i det minste ha cachet dataene i ti minutter av gangen.
- I tillegg burde jeg ha satt opp et varsel når jeg overskred en sum. I hvert fall lenge før 4.000 kroner. Men de varslene er så kronglete å sette opp i Google at jeg får fnatt av å tenke på det.
Dessuten synes jeg det er ganske idiotisk av Firebase å ikke ha et innebygget varsel når en bruker overskrider den neste høyeste månedssummen med 1.000 prosent!
Pengene får jeg igjen av jobben. Og helt ærlig er jeg glad regninga ikke var høyere. Jeg slapp med skrekken, men neste gang dumper jeg Firebase, og finner en tjeneste med fastpris.