Hoppa till innehåll

Migreringsguide · Fra AWS S3

Migrer fra AWS S3 til SIAX Objektlagring

S3-API-et har blitt bransjestandard, og det er gode nyheter for alle som vil flytte derfra. Vår objektlagring snakker samme protokoll med signatur v4, noe som betyr at SDK-ene, verktøyene og bibliotekene deres fungerer uendret — dere bytter endpoint og nøkler, ikke kode.

Grunnen til å flytte er som regel trafikken. Lagring er billig overalt; det er utgående data som koster hos AWS, og for alt som serverer filer til sluttbrukere, blir egress-posten raskt større enn lagringsposten. Vår objektlagring koster 25 kr per 100 GB per måned, med all data i EU.

Selve kopieringen er et løst problem — rclone gjør jobben, og det finnes ikke noe å finne opp på nytt. Arbeidet ligger et annet sted: IAM-roller har ingen erstatning og må erstattes av nøkkelpar og bucket-policyer, og hvert sted i koden som genererer presigned URL-er, må skrives om siden signaturen er bundet til endpoint og region. Planlegger dere for det, blir migreringen udramatisk. Gjør dere ikke det, oppdages det på cutover-dagen.

Tidsbruk

En ettermiddag for en bucket på noen hundre GB med normalt antall objekter. Kopieringen er sjelden problemet — det er omskrivingen av tilgang og presigned-flyter som tar tid, typisk ett til tre dagers utviklingsarbeid avhengig av hvor mange steder i koden som snakker med S3. Arkiverte objekter i Glacier legger til døgn i ventetid.

Nedetid

Ingen hvis dere kjører dobbeltskriving under overlappet: skriv til begge målene, les fra S3, og bytt lesingen når delta-synken har tatt igjen. Uten dobbeltskriving trenger dere et skrivevindu i skrivebeskyttet modus under siste synk — fra noen minutter til en time avhengig av hvor mye som er endret siden bulkkopien. CDN-omstillingen har sin egen hale styrt av TTL.

01

Slik gjør du det

  1. 1

    Kartlegg buckets etter objektantall, ikke bare volum

    Les av størrelse, antall objekter, lagringsklasse og versjonering per bucket med aws s3 ls --summarize eller Storage Lens. Antall objekter styrer tidsbruken mer enn terabyte-tallet: ti millioner små filer tar lengre tid enn fem terabyte i store blokker. Noter også hva som skriver til hver bucket — den listen avgjør hvordan cutoveren må se ut.

  2. 2

    Opprett buckets og nøkler hos oss og sett opp rclone

    Legg opp tilsvarende buckets og ett nøkkelpar per applikasjon, ikke ett felles for alt. Konfigurer en rclone-remote av typen s3 mot vår endpoint, og sett region og adresseringsstil i henhold til det vi oppgir. Test med en håndfull filer og verifiser at content-type og øvrig metadata følger med, før dere slipper løs hele kopien.

  3. 3

    Kjør bulkkopien

    rclone copy s3:bucket siax:bucket --transfers 32 --checkers 64 --fast-list er et rimelig utgangspunkt; skru opp parallelliteten til gjennomstrømningen flater ut. Kjør gjerne fra en instans i samme AWS-region som bucketen for å korte ned tiden — egress-kostnaden ut av AWS betaler dere uansett. Objekter i Glacier eller Deep Archive må gjenopprettes først, og det tar fra timer til døgn.

  4. 4

    Verifiser før dere stoler på kopien

    rclone check --one-way sammenligner størrelse og sjekksum per objekt. Sammenlign også totalt objektantall mellom kilde og mål, og ta stikkprøver av content-type, cache-control og andre headere som applikasjonen faktisk leser. En kopi som ser riktig ut i byte, men har mistet metadata, gir feil som først dukker opp i nettleseren.

  5. 5

    Skriv om tilgangen — dette er det egentlige arbeidet

    IAM finnes ikke hos oss: roller, instansprofiler, AssumeRole og betingelsesbaserte policyer erstattes av nøkkelpar og bucket-policyer. Gå gjennom hvert sted som genererer presigned URL-er, og pek om endpoint, region og signaturkonfigurasjon, siden signaturen er bundet til alle tre. Oppdater CORS-reglene og test opplasting fra nettleseren, ikke bare fra serveren.

  6. 6

    Bytt med dobbeltskriving og behold et reserveringssteg

    La applikasjonen skrive til begge målene under overlappet og fortsett å lese fra S3 til delta-synken har tatt igjen. Bytt deretter lesingen, kjør en siste rclone sync og pek om CDN- eller CloudFront-distribusjonen. Sett opp en uavhengig backup av bucketen (19 kr/100 GB) — replikering mellom to systemer er ikke det samme som backup — og behold S3-bucketen skrivebeskyttet i minst 30 dager før dere setter en lifecycle-regel som sletter.

02

Hva som faktisk er vrient

  • IAM følger ikke med, og det er mer arbeid enn det høres ut som. Roller på EC2- og ECS-instanser, AssumeRole mellom kontoer, tag-baserte betingelser og OIDC-føderasjon fra CI erstattes av statiske nøkkelpar. Applikasjoner som aldri har trengt å håndtere en hemmelighet, må begynne å gjøre det, noe som påvirker deployflyten og ikke bare koden.
  • Presigned URL-er må genereres på nytt overalt. Signaturen bindes til endpoint, region og nøkkel, så backend, batchjobber og eventuelle mobilklienter må alle pekes om og testes. Lenker som allerede er sendt ut med lang gyldighetstid, slutter å fungere ved byttet — planlegg for det hvis dere sender nedlastingslenker på e-post.
  • Objekter i Glacier og Deep Archive kan ikke kopieres direkte. De må gjenopprettes først, noe som koster penger og tar fra noen timer til flere døgn avhengig av hentingsnivå. For arkivtunge kontoer er det ofte dette steget som styrer hele tidsplanen.
  • Å forlate AWS koster egress: rundt 0,09 USD per GB over den frie potten på omtrent 100 GB per måned, altså i størrelsesorden 450 USD for 5 TB som engangskostnad. AWS har siden 2024 tilbudt avgiftsfri utflytting for kunder som forlater plattformen helt, men det krever søknad via support og gjelder ikke delvise flyttinger. Kontroller vilkårene før dere budsjetterer.
  • Standardverktøyene kopierer gjeldende versjon av hvert objekt — ikke versjonshistorikk, ikke objekt-ACL-er, ikke lifecycle-regler og ikke replikering. S3 event notifications som utløser Lambda, har ingen direkte erstatning og må bygges om på applikasjonssiden. Har dere Object Lock i compliance-modus av regulatoriske grunner: avklar det med oss før dere planlegger flyttingen, ikke etterpå.
03

Kostnadseksempel

500 GB lagret og 200 GB utgående trafikk per måned på S3 Standard: rundt 0,023 USD/GB for lagringen og rundt 0,09 USD/GB for trafikken over den frie potten, pluss forespørselskostnader — grovt 300–350 kr/mnd. AWS-priser varierer mellom regioner og endres fortløpende, så regn på deres egen faktura. De samme 500 GB hos oss koster 125 kr/mnd (25 kr per 100 GB). I tillegg kommer engangskostnaden for å lese data ut av S3, rundt 45 USD for 500 GB hvis dere ikke får utflyttingen avgiftsfritt. Ved denne profilen er flyttingen nedbetalt på et par måneder. Ligger dere på mye lagring og nesten ingen trafikk, tar det lenger tid og gevinsten er mindre — det er verdt å regne på det før dere bestemmer dere.

04

Ofte stilte spørsmål

Må vi bytte SDK eller skrive om koden?
Nei. API-et er S3-kompatibelt med signatur v4, så samme SDK fungerer — dere bytter endpoint, region og eventuelt adresseringsstil. Test multipart-opplastinger og CORS separat, det er der forskjeller pleier å vise seg.
Følger versjonshistorikken med?
Nei. rclone og aws s3 sync kopierer gjeldende versjon av hvert objekt. Trenger dere historikken bevart, er det et eget prosjekt: enten kopiere hver versjon eksplisitt som separate objekter, eller beholde S3-bucketen skrivebeskyttet som arkiv.
Hva koster det å flytte data ut av AWS?
Rundt 0,09 USD per GB over den frie potten, altså i størrelsesorden 90 USD per terabyte. AWS har siden 2024 tilbudt avgiftsfri utflytting for kunder som forlater plattformen helt, i tråd med EUs dataforordning, men det krever søknad via support og godkjenning. Budsjetter for kostnaden, og se den avgiftsfrie veien som en bonus hvis den innvilges.
Kan vi bli værende på S3 for enkelte buckets?
Ja. Mange starter med de trafikktunge bucketene der egress-kostnaden gjør mest forskjell, og lar arkivdata bli værende i Glacier til det uansett skal slettes. Hybrid er ofte riktig svar det første året.
Hva gjør vi med S3 event notifications og Lambda-triggere?
De må bygges om. Det vanlige mønsteret er at applikasjonen som skriver objektet, også legger jobben i en kø, i stedet for å stole på at lagringen genererer hendelsen. Det blir mer eksplisitt og lettere å feilsøke, men det er omskriving og skal inn i tidsplanen.
Har dere ISO 27001 eller SOC 2?
Nei, vi har verken ISO 27001, SOC 2 eller PCI-DSS. Vi kan vise GDPR-etterlevelse, databehandleravtale og at all data lagres innenfor EU, og vi kjører åpen kildekode hele veien slik at dere kan inspisere implementasjonen. Har dere et hardt sertifiseringskrav i en anskaffelse, er AWS et bedre svar enn oss på nettopp det punktet, og det er mer ærlig å si det rett ut.