AWS
En stabil grund för moderna webbplatser
Att drifta webbplatser och webbapplikationer i molnet kan göras på många sätt. Vissa lösningar är snabba att komma igång med, andra är billiga på kort sikt – men i längden krävs erfarenhet och genomtänkta val för att få en plattform som är snabb, stabil, säker och kostnadseffektiv.
Vi väljer alltid driftlösning utifrån varje kunds individuella behov, men vi arbetar mycket med Amazon Web Services (AWS) eftersom det ger oss en välbeprövad teknisk grund och möjligheten att automatisera mycket av det som annars blir manuellt, sårbart och svårt att skala. För oss handlar det i slutändan om att tekniken ska kännas trygg: webbplatsen ska prestera bra, uppdateringar ska kunna göras utan oro och driften ska vara förutsägbar även när behoven förändras.
Våra byggstenar på AWS
Vi föredrar att använda ett fåtal stabila, hanterade AWS-tjänster som tillsammans ger en robust helhet. Det minskar komplexiteten och gör lösningen lättare att underhålla, vidareutveckla och felsöka.
I praktiken innebär det att vi delar upp plattformen i tydliga delar – beräkning, datalagring, filhantering och distribution – så att varje del kan optimeras för sitt syfte:
- AWS ECS Fargate används för att köra själva applikationen i containrar. Det gör miljön förutsägbar och lätt att skala vid behov.
- Amazon Aurora (MySQL) används som databas. Det är en hanterad databaslösning som är byggd för hög tillgänglighet och bra prestanda.
- Amazon S3 används för uppladdade filer och media. Lagringen är hållbar och passar bra för allt från bilder till dokument.
- Amazon CloudFront används som CDN (innehållsnätverk) för att leverera statiskt innehåll snabbt till användare oavsett var de befinner sig.
- AWS ElastiCache (Redis) används för cache, vilket avlastar databasen och kan ge markant snabbare svarstider.
- AWS Web Application Firewall (WAF) används som ett extra skyddslager mot skadlig trafik och automatiserade attacker.
Det här upplägget gör att vi kan fokusera på funktion och användarupplevelse – samtidigt som driften bygger på tjänster som är designade för att vara robusta från början.
Prestanda som märks
Snabba webbplatser är inte bara “nice to have”. De påverkar användarupplevelsen, konvertering och ofta även synlighet i sökmotorer. Därför bygger vi vår drift med prestanda som en grundprincip, inte som en eftertanke.
Vi arbetar med flera nivåer av optimering:
För det första ser vi till att innehåll levereras nära användaren. Genom CDN och smart cachelagring behöver inte allt laddas från ursprungsservern varje gång – vilket kortar ned laddtider och gör upplevelsen jämnare.
För det andra minskar vi belastningen på databasen och applikationen genom cache på rätt ställen. Många webbplatser blir långsamma när de måste göra samma beräkningar om och om igen; med cache kan vi undvika onödigt arbete och få snabbare svarstider vid både normal trafik och toppar.
För det tredje belastningstestar vi vid behov innan lanseringar och större förändringar. Det gör att vi kan se hur lösningen beter sig under realistiska förhållanden, hitta flaskhalsar tidigt och dimensionera på ett mer träffsäkert sätt.
Skalbarhet utan krångel
En stor fördel med AWS är att plattformen kan anpassa sig efter belastning. När trafiken ökar kan fler instanser startas automatiskt. När trafiken minskar skalar resurserna ned igen.
Det här gör stor skillnad i praktiken. I stället för att “gissa” en serverstorlek som ska klara allt året runt, kan vi bygga för en normalnivå och låta systemet hantera toppar när de faktiskt händer. Vid kampanjer, nyhetsflöden, biljettsläpp eller andra händelser som skapar tillfälliga trafikökningar innebär det att webbplatsen kan fortsätta vara snabb och stabil utan panikåtgärder.
Vid större behov går det också att skala databasen genom att separera läsning från skrivning, så att enklare förfrågningar inte belastar den del som hanterar uppdateringar och transaktioner.
Stabilitet och hög tillgänglighet
Stabil drift handlar sällan om att “aldrig få problem”. Det handlar om att bygga så att problemen inte får konsekvenser för användaren.
Därför designar vi lösningar med redundans och automatiserad återhämtning. Om en applikationsinstans slutar fungera ersätts den automatiskt av en ny. Om belastningen blir för hög finns tydliga skalningsregler som kan öka kapaciteten i tid. Om något oväntat händer ska systemet klara det med så lite handpåläggning som möjligt.
Även på databassidan arbetar vi med hög tillgänglighet. Databaser är ofta den mest kritiska komponenten, så här är det extra viktigt med robusthet, övervakning och tydliga återställningsmöjligheter.
Uppdateringar och driftsättningar med låg risk
En vanlig orsak till driftproblem är mänskliga misstag vid uppdateringar. Därför bygger vi mycket av vårt arbetssätt runt en trygg och repeterbar process.
Vår grundprincip är att förändringar ska vara:
- förberedda (utvecklas lokalt och granskas),
- testade (i en separat testmiljö),
- spårbara (det ska gå att se vad som ändrats och när),
- enkla att backa (om något inte beter sig som tänkt).
Vi använder automatiserade deployments där applikationen byggs och levereras på ett standardiserat sätt. Vid behov arbetar vi med “blå/grön”-liknande driftsättningar där en ny version måste visa att den är frisk innan den tar över trafiken. Om något ser fel ut kan vi snabbt rulla tillbaka till en tidigare, fungerande version.
Det här gör att uppdateringar blir mindre dramatiska – och att förbättringar kan levereras oftare utan att risknivån ökar.
Övervakning och proaktiv drift
Stabilitet skapas inte bara av en bra arkitektur, utan också av bra uppföljning. Därför övervakar vi våra miljöer kontinuerligt.
Vi följer bland annat:
- hälsa och belastning i applikationen,
- svarstider och felkoder,
- trender som kan tyda på prestandaproblem,
- avvikelser i trafikmönster.
När något avviker får vi larm, vilket gör att vi kan agera tidigt – ofta innan användare hinner påverkas. Det ger också bättre underlag för att optimera lösningen över tid, eftersom vi kan se vad som faktiskt händer i verkligheten, inte bara i teorin.
Säkerhet som standard
Säkerhet är inbyggt i hela plattformen. Vi arbetar med flera lager av skydd, så att en enskild åtgärd aldrig blir den enda barriären.
Några grundprinciper:
Isolering och tydliga gränser. Miljöer byggs så att resurser inte blandas mellan olika projekt. Nätverk, rättigheter och åtkomst hålls tydligt avgränsade.
Minimerad åtkomst. Åtkomst till AWS kräver multifaktorautentisering och behörigheter är begränsade utifrån roll och behov. Alla viktiga ändringar loggas så att det går att se vad som hänt och av vem.
Kryptering och säkra anslutningar. Data skyddas både när den lagras och när den skickas mellan systemets delar. Hemligheter och nycklar hanteras separat och lagras inte i källkod.
Skydd mot attacker. Vi använder brandväggar, säkerhetsregler och WAF för att filtrera skadlig trafik, bottar och vanliga angreppsmönster. Genom att applikationer körs i hanterade, låsta miljöer minskar också risken för sårbarheter som kommer från “klassiska serverupplägg”.
Dessutom arbetar vi proaktivt i utvecklingen med etablerade säkerhetsprinciper (som till exempel OWASP) i kodgranskning och tester.
Backup och återställning när det verkligen gäller
Förr eller senare händer det att något behöver återskapas: en felaktig uppdatering, ett misstag i innehåll, eller en oväntad incident. Då är återställning viktigare än fina ord om “backup”.
Vi bygger därför lösningar där återställning är en faktisk, planerad förmåga:
- databasen säkerhetskopieras kontinuerligt och kan återställas till en tidigare tidpunkt,
- filer och media lagras med versionshistorik så att man kan gå tillbaka om något skrivs över,
- processen är utformad för att vara praktiskt genomförbar – inte bara “möjlig i teorin”.
Det ger en extra trygghet i vardagen, särskilt för webbplatser som uppdateras ofta.
Kostnadseffektiv drift över tid
Kostnadseffektivitet handlar sällan om att välja den billigaste lösningen på pappret. Det handlar om att få rätt nivå av prestanda, stabilitet och säkerhet – utan att betala för överkapacitet eller lägga tid på onödig manuellt underhåll.
Genom autoskalning, cache och hanterade tjänster kan vi hålla resursförbrukningen på en rimlig nivå och samtidigt leverera en hög driftskvalitet. Dessutom gör standardiserade miljöer och automatiserade flöden att utveckling, vidareutveckling och uppdateringar går snabbare och med färre fel, vilket ofta är en minst lika stor kostnadsfaktor som själva infrastrukturen.
En plattform byggd för långsiktighet
Vår AWS-plattform är byggd för att fungera konsekvent över tid. Samma typ av miljö används i utveckling, test och produktion, vilket minskar risken för överraskningar och gör det enklare att arbeta i team.
Det ger också en praktisk fördel: nya utvecklare kan komma in snabbare, projekt blir lättare att ta över, och förbättringar kan levereras mer förutsägbart.
Kort sagt använder vi AWS för att kunna leverera webbplatser och applikationer som är snabba, stabila och säkra – och för att vi vill att drift ska kännas som en trygg grund, inte ett ständigt frågetecken.