Hoppa till innehåll

Migrationsguide · Från AWS S3

Migrera från AWS S3 till SIAX Objektlagring

S3-API:t har blivit branschstandard, och det är goda nyheter för alla som vill flytta därifrån. Vår objektlagring talar samma protokoll med signatur v4, vilket betyder att era SDK:er, verktyg och bibliotek fungerar oförändrat — ni byter endpoint och nycklar, inte kod.

Skälet att flytta är oftast trafiken. Lagring är billigt överallt; det är utgående data som kostar hos AWS, och för allt som serverar filer till slutanvändare blir egressposten snabbt större än lagringsposten. Vår objektlagring kostar 25 kr per 100 GB och månad, med all data i EU.

Själva kopieringen är ett löst problem — rclone gör jobbet och det finns inget att uppfinna. Arbetet ligger någon annanstans: IAM-roller har ingen motsvarighet och måste ersättas av nyckelpar och bucketpolicyer, och varje ställe i koden som genererar presigned URL:er måste skrivas om eftersom signaturen är bunden till endpoint och region. Planerar ni för det blir migreringen odramatisk. Gör ni det inte upptäcks det på cutover-dagen.

Tidsåtgång

En eftermiddag för en bucket på några hundra GB med normalt antal objekt. Kopieringen är sällan problemet — det är omskrivningen av åtkomst och presigned-flöden som tar tid, typiskt en till tre dagars utvecklingsarbete beroende på hur många ställen i koden som pratar med S3. Arkiverade objekt i Glacier lägger till dygn i väntetid.

Stillestånd

Ingen om ni kör dubbelskrivning under överlappet: skriv till båda målen, läs från S3, och växla läsningen när delta-synken är ikapp. Utan dubbelskrivning behöver ni ett skrivfönster i skrivskyddat läge under sista synken — från några minuter till en timme beroende på hur mycket som ändrats sedan bulkkopian. CDN-omställningen har en egen svans styrd av TTL.

01

Så gör du

  1. 1

    Inventera buckets på objektantal, inte bara volym

    Läs av storlek, antal objekt, lagringsklass och versionering per bucket med aws s3 ls --summarize eller Storage Lens. Antalet objekt styr tidsåtgången mer än terabytesen: tio miljoner små filer tar längre tid än fem terabyte i stora block. Notera också vad som skriver till varje bucket — den listan avgör hur cutovern måste se ut.

  2. 2

    Skapa buckets och nycklar hos oss och sätt upp rclone

    Lägg upp motsvarande buckets och ett nyckelpar per applikation, inte ett gemensamt för allt. Konfigurera en rclone-remote av typen s3 mot vår endpoint och sätt region och adresseringsstil enligt vad vi anger. Testa med en handfull filer och verifiera att content-type och övrig metadata följer med innan ni släpper lös hela kopian.

  3. 3

    Kör bulkkopian

    rclone copy s3:bucket siax:bucket --transfers 32 --checkers 64 --fast-list är ett rimligt utgångsläge; skruva upp parallelliteten tills genomströmningen planar ut. Kör gärna från en instans i samma AWS-region som bucketen för att korta tiden — egress-kostnaden ut ur AWS betalar ni ändå. Objekt i Glacier eller Deep Archive måste återställas först, och det tar timmar till dygn.

  4. 4

    Verifiera innan ni tror på kopian

    rclone check --one-way jämför storlek och kontrollsumma per objekt. Jämför också totalt objektantal mellan källa och mål, och gör stickprov på content-type, cache-control och andra headers som applikationen faktiskt läser. En kopia som ser rätt ut i byte men tappat metadata ger fel som dyker upp först i webbläsaren.

  5. 5

    Skriv om åtkomsten — det här är det riktiga arbetet

    IAM finns inte hos oss: roller, instansprofiler, AssumeRole och villkorsbaserade policyer ersätts av nyckelpar och bucketpolicyer. Gå igenom varje ställe som genererar presigned URL:er och peka om endpoint, region och signaturkonfiguration, eftersom signaturen är bunden till alla tre. Uppdatera CORS-reglerna och testa uppladdning från webbläsaren, inte bara från servern.

  6. 6

    Skifta med dubbelskrivning och behåll ett återvändssteg

    Låt applikationen skriva till båda målen under överlappet och fortsätt läsa från S3 tills delta-synken är ikapp. Växla sedan läsningen, kör en sista rclone sync och peka om CDN eller CloudFront-distributionen. Lägg upp en oberoende backup av bucketen (19 kr/100 GB) — replikering mellan två system är inte samma sak som backup — och behåll S3-bucketen skrivskyddad i minst 30 dagar innan ni sätter en lifecycle-regel som raderar.

02

Vad som faktiskt är krångligt

  • IAM följer inte med, och det är mer arbete än det låter. Roller på EC2- och ECS-instanser, AssumeRole mellan konton, tag-baserade villkor och OIDC-federation från CI ersätts av statiska nyckelpar. Applikationer som aldrig behövt hantera en hemlighet måste börja göra det, vilket påverkar deployflödet och inte bara koden.
  • Presigned URL:er måste genereras om överallt. Signaturen binds till endpoint, region och nyckel, så backend, batchjobb och eventuella mobilklienter måste alla peka om och testas. Länkar som redan skickats ut med lång giltighetstid slutar fungera vid skiftet — planera för det om ni mejlar nedladdningslänkar.
  • Objekt i Glacier och Deep Archive kan inte kopieras direkt. De måste återställas först, vilket kostar pengar och tar från några timmar till flera dygn beroende på hämtningsnivå. För arkivtunga konton är det ofta det här steget som styr hela tidplanen.
  • Att lämna AWS kostar egress: cirka 0,09 USD per GB över den fria potten på ungefär 100 GB per månad, alltså i storleksordningen 450 USD för 5 TB som engångskostnad. AWS erbjuder sedan 2024 avgiftsfri utflytt för kunder som lämnar plattformen helt, men det kräver ansökan via supporten och gäller inte partiella flyttar. Kontrollera villkoren innan ni budgeterar.
  • Standardverktygen kopierar aktuell version av varje objekt — inte versionshistorik, inte objekt-ACL:er, inte lifecycle-regler och inte replikering. S3 event notifications som triggar Lambda har ingen direkt motsvarighet och måste byggas om på applikationssidan. Har ni Object Lock i compliance-läge av regulatoriska skäl: stäm av det med oss innan ni planerar flytten, inte efter.
03

Kostnadsexempel

500 GB lagrat och 200 GB utgående trafik per månad på S3 Standard: cirka 0,023 USD/GB för lagringen och cirka 0,09 USD/GB för trafiken över den fria potten, plus begärandekostnader — grovt 300-350 kr/mån. AWS priser skiljer sig mellan regioner och ändras löpande, så räkna på er egen faktura. Samma 500 GB hos oss kostar 125 kr/mån (25 kr per 100 GB). Till det kommer engångskostnaden för att läsa ut data ur S3, cirka 45 USD för 500 GB om ni inte får utflytten avgiftsfri. Vid den här profilen är flytten återbetald på ett par månader. Ligger ni på mycket lagring och nästan ingen trafik tar det längre och vinsten är mindre — det är värt att räkna innan ni bestämmer er.

04

Vanliga frågor

Måste vi byta SDK eller skriva om koden?
Nej. API:t är S3-kompatibelt med signatur v4, så samma SDK fungerar — ni byter endpoint, region och eventuellt adresseringsstil. Testa multipart-uppladdningar och CORS separat, det är där skillnader brukar visa sig.
Följer versionshistoriken med?
Nej. rclone och aws s3 sync kopierar aktuell version av varje objekt. Behöver ni historiken bevarad är det ett eget projekt: antingen kopiera varje version explicit som separata objekt, eller behålla S3-bucketen skrivskyddad som arkiv.
Vad kostar det att flytta ut data ur AWS?
Cirka 0,09 USD per GB över den fria potten, alltså i storleksordningen 90 USD per terabyte. AWS erbjuder sedan 2024 avgiftsfri utflytt för kunder som lämnar plattformen helt, i linje med EU:s dataförordning, men det kräver ansökan via supporten och godkännande. Budgetera för kostnaden och se den avgiftsfria vägen som en bonus om den beviljas.
Kan vi ligga kvar på S3 för vissa buckets?
Ja. Många börjar med de trafiktunga bucketarna där egress-kostnaden gör mest skillnad, och låter arkivdata ligga kvar i Glacier tills det ändå ska gallras. Hybrid är ofta rätt svar första året.
Vad gör vi med S3 event notifications och Lambda-triggers?
De måste byggas om. Det vanliga mönstret är att applikationen som skriver objektet också lägger jobbet i en kö, i stället för att förlita sig på att lagringen genererar händelsen. Det blir mer explicit och lättare att felsöka, men det är omskrivning och ska in i tidplanen.
Har ni ISO 27001 eller SOC 2?
Nej, vi har varken ISO 27001, SOC 2 eller PCI-DSS. Vi kan visa GDPR-efterlevnad, personuppgiftsbiträdesavtal och att all data lagras inom EU, och vi kör öppen källkod hela vägen så att ni kan granska implementationen. Har ni ett hårt certifieringskrav i en upphandling är AWS ett bättre svar än vi på just den punkten, och det är ärligare att säga det direkt.