skytjenester
Virker nettskyen uoversiktlig? Dette er det grunnleggende i AWS
Johan Broman i Amazon Web Services leder oss gjennom jungelen av tjenester.
Stadig flere velger å ta i bruk offentlige skytjenester fra de store teknologiselskapene. Men i alle fall for nybegynnere kan det etter hvert så enorme utvalget av tjenester som tilbys av hver leverandør, være en utfordring. Hvor starter man?
For å ta et skritt tilbake og for å få svar på dette, har vi snakket med svenske Johan Broman i Amazon Web Services (AWS). Han er sjef for et team med løsningsarkitekter som hjelper kunder i EMEA-området med å designe og optimalisere kundenes løsninger i AWS med hensyn til i tilgjengelighet, sikkerhet, skalerbarhet og kostnader. Teamet til Broman fokuserer på selskapets gamingkunder.
Ønsket vårt i dette tilfellet har vært å ta utgangspunkt i en tenkt eier av et nettsted som har hørt at skyen kan være et bra sted å kjøre nettstedet fra, men som ikke helt vet hva som skal til for å komme dit.
Valget av AWS i denne sammenheng skyldes først og fremst at muligheten bød seg. Samtidig er det den mest brukte nettskyplattformen globalt. Den ble lansert flere å før Google App Engine og Microsoft Windows Azure, som de største konkurrentene het fra starten av.
AWS leverer IT-tjenester, og de leveres over internett.
Mye av det grunnleggende er likevel felles for alle de store, offentlige nettskytjenestene.
Så hva er egentlig Amazon Web Services? Det korte svaret til Broman er at AWS leverer IT-tjenester, og de leveres over internett.
Historien bak
Men han har et mye lengre svar også:
– AWS ble grunnlagt i 2006, mye på grunn av den lærdommen man hadde gjort innen Amazon Retail, der man bygde en ny infrastruktur for Amazon.com, som var blitt så stort og komplekst at man hadde behov for å tenke på nytt om hvordan man leverte IT-tjenester. Da man gjorde dette, innså man at disse tjenestene som vi har bygget opp, de kan sikkert også være til nytte for andre foretak. Det var grunnideen bak fødselen til AWS, forteller Broman.
– Amazon.com er i dag en kunde hos AWS, på samme måte som mange andre som bruker tjenestene våre, legger han til.
De grunnleggende komponentene
Grunnfjellet i tjenestetilbudet til AWS kalles for «foundational services». Dette omfatter «compute service», altså regnekraft i form av blant annet virtuelle servere i tjenesteområdet EC2 (Elastic Compute Cloud). I tillegg hører databasetjenester, nettverkstjenester og lagringstjenester med i disse grunnleggende tjenestene.
– De siste årene har det skjedd en stor utvikling, ved at vi har lagt til en rekke ulike tjenester. Vi har mer enn 175 forskjellige i vårt tilbud i dag, forteller Broman.
Eksempler på dette finnes innen områder som kunstig intelligens og maskinlæring, tingenes internett, datavarehus, utviklerverktøy, blokkjede og sikkerhet.
– Alle disse tjenestene bygger på de grunnleggende komponentene, sier Broman.
Mest mulig med «copy and paste»
Han forteller videre at mer enn 90 prosent av AWS' funksjoner og tjenester, og utviklingen av disse, er direkte drevet av feedback selskapet får fra kundene.
– Slik er det også med veikartene. Det er ganske enkelt kundene som forteller oss hva de ønsker seg av våre produkter. Kundene vil ha tjenester som gjør det enkelt for dem å bygge løsninger, forteller Broman.
– For eksempel vil man kanskje raskt kunne bygge en chatbot som forstår språk eller som kan hjelpe deg med å oversette et dokument, men man vil ikke være en maskinlæringsekspert som skaper en algoritme eller maskinlæringsmodell for dette. I stedet vil man ha gjort mest mulig med «copy and paste».
Derfor tilbyr AWS en rekke høynivåtjenester som skal gjøre det enklere for kundene å ta i bruk slik teknologi, framfor å bygge den selv i skyen.
Det er nesten som å bygge med Lego, men klossene har litt flere aspekter
– Hvis du utvikler alt fra begynnelsen av, tar det veldig lang tid fra man har en virtuell maskin til man har en ferdig maskinlæringstjeneste. Men bygger du på høynivåtjenester, går det lynraskt. Disse tjenestene kan dessuten kombineres på en mengde finurlige måter. Det er nesten som å bygge med Lego, men klossene har litt flere aspekter, sier Broman.
Data låses til regionen
Tjenestene til AWS leveres fra selskapets 24 globale regioner, som er lokalisert på ulike steder i verden.
– Den nærmeste ble åpnet for noen få år siden og ligger i Stockholm. I regionene lagres brukerne sine data, og der finnes også tjenestene de bruker. Det er ikke nødvendig å bruke flere regioner. For de fleste går det utmerket å benytte bare én region, forteller Broman.
– Data som legges i én region, kommer aldri noensinne til å flyttes utenfor denne regionen, om man ikke selv velger å kopiere dem. Det er viktig tanke på regulatoriske aspekter som GDPR, at man har kontroll på dataene sine.
Han innrømmer at nettskyen for mange kan oppleves som noe veldig abstrakt. Når mobilen din laster opp bildene dine til skyen, vet du da egentlig hvor de befinner seg hen?
– Slik er det ikke med AWS. Der velger du hvilken eller hvilke regioner dataene dine skal være. Kunden har 100 prosent kontroll på dataene sine og hvor de ligger, hevder Broman.
Utilsiktet tilgang
Det har tidligere kommet en del rapporter i mediene om AWS-kunder som har hatt data lagret i lagringstjenesten S3 (Simple Storage Service) og utilsiktet delt disse offentlig over internett. På spørsmål om AWS har gjort noe i det siste for å redusere dette problemet, svarer Broman at S3 er sikkert «by default».
– Ingen har tilgang til noe som helst. Du må spesifikt gå inn og be om at disse objektene skal være tilgjengelige. Så det er en aktiv handling. Vi har likevel gjort det tydeligere og enklere for kundene å få oversikt over hvordan de har konfigurert S3. I tillegg har vi lansert og tatt i bruk nye tjenester som forteller kundene hva de har lagret i S3, sier han.
– Vi har en tjeneste som heter Macie som bruker maskinlæring som blant annet kan detektere forandringer i hvordan det som er lagret, aksesseres. Begynner du helt plutselig å få forespørsler fra klient du ikke gjenkjenner, kan dette oppdages av Macie. Det er også mulig å identifisere det som er personlig identifiserbar informasjon. Kundene kan kryptere alt som lagres i S3, og de har selv kontroll på nøkkelen, forklarer Boman.
Flere datasentre på hvert sted
Han er nøye med å påpeke at én region ikke består av kun ett datasenter. For eksempel består regionen «AWS Europe (Stockholm)» av tre tilgjengelighetssoner som er såpass geografisk atskilt at ikke alle skal bli påvirket selv om det skje en stor katastrofe, for eksempel et fly som styrter i nærheten eller en oversvømmelse.
En tilgjengelig-hetssone behøver heller ikke bare være ett datasenter
– En tilgjengelighetssone behøver heller ikke bare være ett datasenter. Det kan være flere datasentre i en slik sone. Hvert datasenter som vi bygger har typisk 50 til 80 tusen servere, forteller Broman.
– Når du bruker IT-tjenester og lagring innen en region, så bruker du flere tilgjengelighetssoner. Og i tilfelle en katastrofe, så vil dataene dine fortsatt kunne være tilgjengelige. Dette er designet på denne måten for å kunne gi høy tilgjengelighet selv om du vil ha dataene dine bare i én region, forklarer han.
Broman tallfester dette ved å opplyse at lagringstjenesten S3 tilbyr 99,999999999 (11 niere) prosents «durability».
– Det vil si at det er utrolig usannsynlig at du skulle miste data, sier Broman.
Kunder med global utbredelse
Han legger til at det selvfølgelig er AWS-kunder som bruker mer enn bare én region.
– Netflix, for eksempel, med mer enn 100 millioner brukere, kjøres helt i AWS. Vi har spillkunder som finske Supercell, som også har mer enn 100 millioner brukere. De drar nytte av at vi finnes i 24 regioner spredt geografisk i hele verden fordi kundene deres er globale, sier Broman.
I tillegg til de 24 regionene, har AWS mer enn 200 «points of presence» eller «edge»-lokasjoner som kan levere innhold, for eksempel videostrømmer eller statiske filer.
– Dette er et «content delivery network» som er knyttet til regionene våre, og som bruker vårt eget globale nettverk. Våre regioner henger altså sammen, ikke via internett, men vårt eget stamnett, forklarer Broman.
Hvorfor bruke AWS?
Som spørsmål om hvem som bør bruke nettskyen generelt, og AWS spesielt, sier Broman:
– Litt enkelt forklart handler det først og fremst om agilitet. Det vil si at man raskt kan få tilgang til nye IT-ressurser. Å starte en ny, virtuell maskin tar bare noen sekunder. Uansett som du laster opp en fil eller starter opp en konteinerklynge, så har du tilgang til dette innen noen sekunder eller kanskje et minutt.
– Innen tradisjonell IT kan det til sammenligning ta uker å få på plass ny maskinvare. Denne agiliteten er naturligvis viktig for å fremme innovasjon. Dersom jeg som utvikler vil teste en idé, og jeg vet at det vil ta åtte uker innen jeg får tilgang til den IT-kapasiteten som kreves, så er det ikke engang sannsynlig at jeg kommer til å forsøke teste denne ideen, mener Broman.
Han trekker fram nevnte Supercell som eksempel på dette.
– De har hatt noen kjempesuksesser med spill som «Clash of Clans» og «Hayday». Men de har også testet et antall spillideer som ikke har fungert. Derfor har spillene blitt stengt ned igjen. Ved hjelp av AWS kan man veldig raskt iterere og teste ideer uten å måtte gjøre store investeringer i egen infrastruktur, sier Broman.
Kostnader og elastisitet
Han trekker også fram kostnadsfaktoren.
– Man betaler bare for det man faktisk konsumerer, for eksempel per sekund eller minutt. Hos mange kunder varierer bruken av IT-tjenestene veldig mye i løpet av et døgn eller en måned. I tillegg kan man for eksempel stenge ned utviklingsmiljøer på nattetid for å spare penger, sier Broman.
En relatert faktor er elastisiteten.
Dette er en virksomhet som har vokst med en faktor på 100 på tolv måneder.
– Det gjør at du veldig raskt får tilgang til den kapasiteten som behøves. Du setter ganske enkelt opp regler i AWS for hvordan miljøet ditt skal skaleres opp. Når du får så så mye trafikk, så legger vi til ressurser, forklarer han.
– Et spill som Fortnite fra Epic har omtrent 200 millioner brukere og bruker AWS til spillservere, backend, distribusjon, analyse og maskinlæring. Dette er en virksomhet som har vokst med en faktor på 100 på tolv måneder. Denne veksten muliggjøres av AWS ved at de får rask tilgang til ressurser, forteller Boman.
Ingen kapasitetsutfordringer
Alt det nevnte kan man i og for seg få hos enhver nettskyleverandør med tilstrekkelig kapasitet. Men i alle fall én av de største nettskyleverandørene opplevde i våres at kapasiteten var for liten til å dekke behovet.
På spørsmål om AWS noen gang har opplevd noe lignende, sier Boman at svaret er nei.
– Vi opererer på en skala som kanskje er størrelsesordener større enn konkurrenter, som kanskje også har vært her lenger enn oss. Det er bare å se på størrelsen på kundene våre, sier han og nevner nordiske selskaper som Scania, Klarna, Telenor, Tine og Visma.
Eget spotmarked
– Vi har faktisk så mye kapasitet til overs at vi har skapt et eget spotmarked for vår overflødige kapasitet. Der kan man legge inn bud på hvor mye man er villig til å betale for denne kapasiteten. Dette kan gi enorme kostnadsfordeler, men skulle kapasiteten vår innen visse familier av virtuelle maskiner bli brukt opp, vil spotkundene miste tilgangen til denne kapasiteten, forteller Boman.
Han mener også at utvalget av de nevnte høynivåtjenestene er noe som gjør at mange velger AWS.
– Man vil ikke være begrenset når man gjør et valg av infrastruktur og skyleverandør, ved at det bare finnes et visst antall komponenter, etc. Man vil kunne gjøre mye forskjellig, avhengig av hvilken bransje man tilhører. Denne bredden, og det faktum at vi har gedigen erfaring ved at vi gjennom årene har lært oss hvordan man håndterer et slikt miljø med millioner av aktive kunder på plattformen. Muligheten til å bruke det globale fotavtrykket til AWS, er enda en faktor, for å kunne levere en bra brukeropplevelse til et globalt publikum, sier Boman.
Hvordan komme i gang?
Da har vi en fått brukbar forståelse av hva AWS mener å kunne tilby. Dermed er vi over i den litt mer praktiske delen, hvor ønsket å få en kjapp innføring i hvordan vi kan flytte et relativt enkelt, LAMP-basert (Linux, Apache, MySQL, PHP) fra én enkelt Linux-server og over i skyen, på en måte som utnytter skyfordelene.
Det finnes naturligvis mange måter man kan gjøre dette på.
– Det finnes naturligvis mange måter man kan gjøre dette på. Det enkleste er at du fortsetter å kjøre din Linux-server, men du gjør det i en virtuell maskin i AWS. Da flytter du egentlig det du har til en Linux-maskin som kjøres hos oss. Den kan kjøre omtrent hvilken som helst Linux-distribusjon du ønsker, forteller Boman.
Den virtuelle serveren vil da være en del av tjenesteområdet EC2.
Egen databasetjeneste
– Det du deretter trolig vil gjøre, er å flytte databasen vekk fra selve applikasjonsserveren, dels fordi du vil kunne skalere databaselaget. Da har vi tjenester som forvalter MySQL. Det vil si at vi setter opp MySQL, men du er fortsatt databaseadministrator og setter opp tabeller og fyller inn innholdet. Vi tar hånd om patching og driften av MySQL. Ved hjelp av denne tjenesten kan du med bare ett klikk bruke flere tilgjengelighetssoner. Det vil si at databasen din replikeres og får høy tilgjengelighet. Du kan også opprette flere replikaer og gjøre databasen skalerbar uten selv å være den som skal sette opp MySQL Cluster, finne ut av replikering og annen kompleksitet, forklarer Boman.
– Denne tjenesten heter RDS (Relational Database Service). Den har støtte for MySQL, PostgreSQL, Microsoft SQL Server, Oracle og Aurora. Det sistnevnte er vår egen hundre prosent MySQL-kompatible database, men som er bygget spesifikt for bruk i skyen, noe som gir større mulighet for skalerbarhet. Blant annet er visse aspekter av lagringsmotoren blitt designet om, fortsetter han.
«Autoscaling»-gruppe
Med databasen koblet fra applikasjonsserveren, er EC2-instansen (den virtuelle maskinen) ifølge Boman nå mer eller mindre «stateless». Det betyr at alt av systemer og tilstanden til applikasjonene lagres på utsiden av serverinstansen. Da avhenger man ikke av at det er den samme instansen som svarer den neste spørringen, noe som er vesentlig for at systemet skal kunne skaleres opp.
– Da kan du skape det vi kaller en «autoscaling»-gruppe. Dersom du begynner å få veldig mye trafikk til applikasjonen din, kommer vår «autoscaling»-tjeneste til å starte opp flere applikasjonsservere og spre disse på våre tilgjengelighetssoner. Du kan selv sette reglene for hvor mye og hvor raskt det skaleres opp eller ned, avhengig av trafikken. Det betyr at du kan levere en bra brukeropplevelse uansett hvor mye trafikk du begynner å få til applikasjonsserveren din, sier Boman.
Lastbalansering og statisk innhold
– Foran denne gruppen av webservere har man som oftest en lastbalanserer som tar den innkommende forespørselen og balanserer denne mellom de tilgjengelige serverne. Den kan også detektere om noen av instansene får problemer og dermed slutte å sende trafikk til den instansen. Da stenges instansen ned og det opprettes en ny, fortsetter han.
Dersom nettstedet inneholder mye statisk innhold, slik som bilder, filmer og Javascript-filer, så ønsker man ifølge Boman ikke at applikasjonsserveren skal levere alt dette.
Det finnes en funksjon i S3 som gjør at du kan sette det opp til å fungere som en webserver.
– Det man da bruker å gjøre, er det benytte lagringstjenesten S3 i stedet til å levere alt det statiske innholdet. Det gjør at du kanskje kan ha en litt mindre og billigere virtuell maskin som applikasjonsserver, siden du avlaster den ved å la S3 håndtere det statiske, forklarer Boman.
Det siste trinnet han nevner, er å benytte CDN-tjenesten (Content Delivery Network) Cloudfront til å mellomlagre det statiske innholdet geografisk nær brukerne.
– Cloudfront kan settes opp til å hente for eksempel bilder fra S3 og alt annet fra applikasjonsserveren. Dette er en billig løsning som er enkel å sette opp, hevder Boman.
Han understreker at det naturligvis finnes andre måter å gjøre dette på.
– En del har kanskje ikke engang behov for en applikasjonsserver eller database, men har hele nettstedet i S3. Det finnes en funksjon i S3 som gjør at du kan sette det opp til å fungere som en webserver. Da blir det veldig billig og fordelaktig. Mye, slik som rendering, kan gjøres på klientsiden med Javascript og annet, forteller Boman.
Tjenester for å komme i gang
Det er selvfølgelig mulig å velge enkeltkomponenter fra AWS og bygge opp infrastrukturen på den måten, men AWS tilbyr et par alternativer som kan gjøre det enklere for mange å komme i gang.
Det ene er Amazon Simple Cloud Server, kanskje mer kjent som Lightsail. Dette er en løsning som på mange måter minner om en VPS (Virtual Private Server) man kan få hos bortimot ethvert webhotell. Her velger en Linux- eller Windows-instanser med fast månedspris og ressurstilgang. Utvalget er helt klart best dersom en velger Linux. En kan velge mellom en rekke grunnleggende instanser basert på ulike Linux-distribusjoner, eller instanser med ferdige applikasjonsstakker, slik som LAMP (Linux, Apache, MySQL, PHP/Python/Perl), MEAN (MongoDB, Express, AngularJS, and Node.js), Wordpress eller Magento, for å nevne noen.
Den store forskjellen fra tradisjonelle webhoteller, er at Lightsail-instansene også kan brukes mange av de øvrige AWS-tjenestene, inkluder administrerte databaseinstanser og lastbalansering.
En annen inngang er Elastic Beanstalk, som er særlig beregnet for å flytte eksisterende webapplikasjoner over i AWS. Den er noe mer krevende enn Lightsail å ta i bruk, men er samtidig mer rettet mot tanken om at man i skyen betaler for det man faktisk bruker av ressurser. Elastic Beanstalk en støtter en rekke forskjellige utviklingsplattformer, programmeringsspråk og webservere.