AWS - ett väl utformat Framework

en snabb-guide på svenska

Pierre Gustafsson

Amazon Web Services (AWS) är den ledande i världen inom moln baserade plattformar för server lösningar. Under åren har AWS Solutions Architects som YumFog LLC hjälpt många företag att skapa sina molnmiljöer. Amazon har samlat erfarenheterna från dessa arkitekter för att definiera AWS ”Well-Built Framework”. Syftet med denna guide är att definiera de bästa metoderna för ett lyckat AWS genomförande.

Ett lyckat AWS framework är baserat på fem pelare:

  1. Säkerhet

  2. Tillförlitlighet

  3. Prestanda Effektivitet

  4. Kostnadsoptimering

  5. Operativ överlägsenhet


Odoo text and image block

Allmänna design principer

  • Följande allmänna design principer används för att fastställa ovanstående fem pelare:

  • Använd molnens förmåga att automatiskt skala resurser upp eller ner för att eliminera gissning hur mycket kapacitet som behövs. Resursallokering baserad på gissning leder till förlust.

  • Använd stora testnivåer på produktionsnivå. Du kan enkelt skapa och demontera miljöer i molnet. Testmiljöer på produktionsnivå är lönsamma alternativ.

  • Använd automation för att replikera system och för att prova olika arkitekturer för att förbättra prestanda.

  • Låt arkitekturer utvecklas i molnet eftersom du inte är bunden av restriktionerna för fysiska servrar. Detta kan leda till bättre lösningar.

  • Lita på datadriven arkitektur för att samla in information som kan förbättra ditt system.

  • Använd testdagar eller simulerade händelser med hög trafik för att testa systemets robusthet regelbundet.

Låt oss nu överväga de bästa metoderna för att genomföra och hantera de viktiga frågorna inom de fem pelarna.

Säkerhetspelare

Säkerhetspelaren skyddar information, system och tillgångar genom att genomföra strategier för att motverka risker.

Design principer

Här är principerna som hjälper till att designa ett säkert system i molnet:

  • Istället för att bara täcka anslutningspunkterna i ditt system genom brandväggar, tillämpa säkerhet på alla komponenter i systemet.

  • Använd loggar och revisionsspår för att göra ditt system spårbart.

  • Ange lägsta behörighet till en användare i början och öka privilegiet vid behov.

  • Studera AWS ”Shared Responsibility Model” och förstå ditt ansvar för att säkra systemet.

  • Använd automation för att hålla dina system effektiva och kostnadseffektiva.

Nyckelkomponenterna i säkerhetspelaren

Säkerhetspelaren är beroende av dessa fem bästa metoderna:

  1. Identitets- och åtkomsthantering

  2. Detektiva kontroller

  3. Infrastrukturskydd

  4. Dataskydd

  5. Incidenthantering

Låt oss titta på de bästa metoderna i varje kategori.

AWS bästa praxis: Identitets- och åtkomsthantering

Du måste vara uppmärksam på identitet och åtkomsthantering för att hålla systemet säkert från obehöriga användare. Amazonas Identity and Access Management (IAM) tillhandahåller den tjänst som krävs för att du ska kunna styra användare, grupper, tjänster och roller och du kan ställa in säkerhetsgruppspolicyer, multifaktorautentisering (MFA), lösenordsstyrka och lösenordsutgångspolicy.

AWS bästa praxis: Detektiva kontroller

Korrekta detektiva kontroller ger dig möjlighet att känna igen potentiella säkerhetshändelser, de hjälper dig också att kontrollera kvalitet, uppfylla laglig efterlevnad och identifiera potentiella hot. Detektiva kontroller implementeras genom korrekt loggning och övervakning av händelser i ditt system. AWS CloudTrail och AWS CloudWatch ger loggar och revisionsprocesser för att hålla reda på andra AWS-tjänster.

AWS bästa praxis: Infrastrukturskydd

Infrastrukturskydd bör inriktas på att säkerställa att komponenterna i systemet är skyddade mot yttre hot genom lämpliga nätverkssäkerhetsnivåer. Förstå insatserna från Amazon Virtual Private Cloud (VPC) kan hjälpa dig att skapa en mer robust infrastruktur som skyddas av korrekta gateways, route tables, och subnets.

AWS bästa praxis: dataskydd

Ditt dataskydd bör börja med korrekt klassificering av data. Det låter dig enkelt implementera olika säkerhetsnivåer på olika dataset. Amazon Simple Storage Service (S3) har många olika vid lagring av data. Att aktivera versionskontroll på S3 kan också hjälpa dig att hålla din data säker från oavsiktliga ändringar och raderingar och man kan använda kryptering för att ytterligare säkerställa säkerheten för känslig information. Förutom S3 tillhandahåller Amazon Elastic Block Storage (EBS) och Amazon Relational Database Service (RDS) också krypteringsfunktioner.

AWS bästa praxis: Incidenthantering

Att ha en plan att hantera eventuella säkerhetshändelser är en viktig del av säkerhetsplaneringen. Loggning och kör bokautomatisering via skript kan hjälpa ditt system att vara redo för en händelse. Amazon CloudFormation är ett utmärkt verktyg för att utforma incident mekanismer.

Viktiga frågor att ställa sig själv om säkerhet

Identitets- och åtkomsthantering

  • Säkerhetsfråga 1. Hur skyddar jag tillgången och användningen av AWS root-kontouppgifter?

  • Säkerhetsfråga 2. Hur definierar jag systemansvariges roller och ansvar för att kontrollera mänsklig tillgång till AWS Management Console och API?

  • Säkerhetsfråga 3. Hur begränsar jag automatisk tillgång till AWS-resurser?

Detectiva kontroller

  • Säkerhetsfråga 4. Hur tar jag in och analyserar loggar?

Infrastrukturskydd

  • Säkerhetsfråga 5. Hur hanterar jag gränssnittsskydd för nätverk och värdnivå?

  • Säkerhetsfråga 6. Hur använder jag säkerhetsfunktionerna för AWS-servicenivå?

  • Säkerhetsfråga 7. Hur skyddar jag operativsystemens integritet på mina Amazon EC2-instanser?

Dataskydd

  • Säkerhetsfråga 8. Hur klassificerar jag dina uppgifter?

  • Säkerhetsfråga 9. Hur krypterar och skyddar jag mina data i vila?

  • Säkerhetsfråga 10. Hur hanterar jag nycklar?

  • Säkerhetsfråga 11. Hur krypterar och skyddar jag mina data i transit?

Incidentrespons

  • Säkerhetsfråga 12. Hur säkerställer jag ett lämpligt incidentsvar?

Tillförlitlighetspelaren

Tillförlitlighetspelaren ger ditt system möjligheten att återhämta sig från någon form av katastrof. Du kan designa ditt system för att automatiskt skaffa resurser för att möta spikar i efterfrågan eller mildra serviceavbrott. Det ska kunna hantera nätverksproblem och konfigurationsolyckor.

Design principer

Här är designprinciperna som hjälper dig att göra ditt system mer tillförlitligt:

  • Kontrollera regelbundet återställningsförfaranden så att du är redo i nödsituationer.

  • Automatisera återställningsprocessen med utlösare som kan köras baserat på nyckel prestanda indikatorer (KPI).

  • Använd horisontell skalning, vilket betyder att du byter ut en stor resurs med flera mindre resurser för att minska effekten av eventuella fel.

  • Använd övervakningsverktyg och molnets automatiska skalningsfunktioner för att automatiskt göra kapacitetsplanering.

  • Använd automation för att ändra infrastruktur så att det finns mindre chans för mänskliga fel.

Huvudkomponenterna i tillförlitlighetspelaren

Här är de metoder som bestämmer systemets tillförlitlighet:

  1. Grundinställningar

  2. Förändringar

  3. Felhantering

Låt oss utforska metoderna.

AWS Best Practices: Grunden

Grundläggande bästa praxis säkerställer att du känner till din ansökan eller systemets krav innan du börjar implementera. Molnet kan ge obegränsade resurser när det gäller beräkning och nätverksfunktioner. Du behöver dock veta och förstå begränsningar för begränsningar för att undvika hårda gränser som AWS sätter upp för dig. AWS IAM låter dig styra åtkomst till dina resurser och VPC kan du tillhandahålla en isolerad del av molnet för din ansökan.

AWS bästa praxis: Förändrings styrning

I traditionella IT-miljöer är förändringshantering ofta en manuell process. Men AWS ger dig möjligheten att skapa automatiserade förändringshanteringsprocedurer som kan hjälpa dig att hantera ditt system bättre. KPI kan utlösa förändringshanteringskontroller som kan hantera hot eller öka resurserna mer proaktivt. AWS CloudTrail och AWS Config är också tjänster som kan hjälpa dig att automatisera din förändringshantering.

AWS bästa praxis: Felhanterings styrning

System- eller komponentfel är oundvikliga i någon mjukvaruprocess. Dataövervakning och användning av AWS-tjänster för att automatiskt adressera kända fel bör ingå i konstruktionsprocessen. Du kan också använda automatisk testning för att verifiera fullständig återställning av ditt system efter ett misslyckande.

Viktiga frågor att ställa sig om tillförlitlighet

Grundinställningar

  • Tillförlitlighet Fråga 1. Hur hanterar jag AWS-servicegränser för mina konton?

  • Tillförlitlighet Fråga 2. Hur planerar jag min nätverkstopologi på AWS?

Förändringar

  • Tillförlitlighet Fråga 3. Hur anpassar mitt system till förändringar i efterfrågan?

  • Tillförlitlighet Fråga 4. Hur övervakar jag AWS-resurser?

  • Tillförlitlighet Fråga 5. Hur genomför jag förändring?

Felhantering

  • Tillförlitlighet Fråga 6. Hur säkerhetskopierar jag mina data?

  • Tillförlitlighet Fråga 7. Hur står systemet emot komponentfel?

  • Tillförlitlighet Fråga 8. Hur testar jag för elasticitet?

  • Tillförlitlighet Fråga 9. Hur planerar jag för katastrofåterställning?

Prestationseffektivitetspelare

Syftet med prestationseffektivitetspelaren är att se till att arkitekturen effektivt kan hantera resursallokering för att ändra krav och tekniska förändringar.

Design principer

Konstruktionsprinciperna nedan kan vägleda dig för att förbättra prestanda effektivitet:

  • Använd molntjänster för svåra teknologier som NoSQL och maskininlärning för att förenkla ditt IT-ansvar.

  • Utveckla runt om i världen med hjälp av clouds billiga globala funktioner för att ge dina kunder snabbare och mer pålitlig service.

  • Använd server fri arkitektur för att minska komplexiteten av resurser som du måste behålla.

  • Använd jämförande test och experiment ofta för att optimera prestandan för dina instanser, lagring och arkitektur.

Nyckelkomponenterna i prestationseffektivitetspelaren

Med tanke på följande komponenter kan du förbättra prestanda:

  1. Urval (beräkning, lagring, databas, nätverk)

  2. Granska

  3. Övervakning

  4. Kompromisser

Låt oss ta en titt på de bästa metoderna.

AWS bästa praxis: Urval

Att välja rätt beräkning, lagring, databas och nätverkskomponenter är ett komplicerat arkitektoniskt problem. Ditt val beror på din särskilda arbetsbelastning. I AWS har du flera alternativ att välja för vilken komponent som helst. Att lägga alla dessa alternativ tillsammans kräver noggrann övervägning. En datastyrt inställning i valet kan hjälpa dig att mäta effektiviteten hos alla arbetsdelar och optimera den efter behov. Kunskap om automatisk skalning, Amazon EBS-lagringsalternativ, Amazon RDS-databasfunktioner och Amazon Route 53-nätverksfunktioner hjälper dig att designa en bättre fungerande arkitektur.

AWS bästa praxis: Granska

AWS är ett ständigt föränderligt universum med flera lösningar för samma problem. Det är viktigt att regelbundet granska den nuvarande arkitekturen för att avgöra om alla tjänster du använder är optimala. Amazon distribuerar nya regioner, kantplatser, tjänster och funktioner regelbundet. En granskningsprocess kan hjälpa dig att utnyttja dessa innovationer i god tid. AWS-bloggen och avsnittet What's New är stora resurser för att hålla dig uppdaterad.

AWS bästa praxis: Övervakning

Övervakning av olika mätvärden ger dig möjlighet att se till att ditt system fungerar optimalt. Amazon CloudWatch-tjänsten kan skicka meddelanden om det finns prestandafrågor. Amazon Kinesis, Amazon Simple Queue Service (SQS) och AWS Lambda är användbara verktyg för att implementera automatiserade lösningar för alla utlösare.

AWS bästa praxis: Kompromisser

Avvikelser mellan konsistens, hållbarhet, utrymme, tid, latens och mer är en del av utformningen av ett system. Det bästa sättet att hitta en lösning är att testa scenarier. Cloud ger dig möjlighet att enkelt ändra parametrar och testa olika lösningar. Amazon hjälper dig också att göra det bästa av dina nuvarande resurser med tjänster som Amazon ElasticCache, Amazon CloudFront och AWS Snowball.

Viktiga frågor att ställa sig om prestanda och effektivitet

 Urval

  • Prestationseffektivitets fråga 1. Hur väljer jag den mest effektiva arkitekturen?

  • Prestationseffektivitets fråga 2. Hur väljer jag min beräkningslösning?

  • Prestationseffektivitets fråga 3. Hur väljer jag min lagringslösning?

  • Prestationseffektivitets fråga 4. Hur väljer jag min databaslösning?

  • Prestationseffektivitets fråga 5. Hur väljer jag min nätverkslösning?

Recension

  • Prestationseffektivitets fråga 6. Hur ser jag till att jag fortsätter att ha den lämpligaste resurstypen eftersom nya resurstyper och funktioner introduceras?

Övervakning

  • Prestationseffektivitets fråga 7. Hur övervakar jag mina efterlanseringar för att se till att de fungerar som förväntat?

Kompromisser

  • Prestationseffektivitets fråga 8. Hur använder jag avvägningar för att förbättra prestanda?

Kostnadsoptimeringspelaren

Kostnadsoptimeringspelaren hjälper dig att driva kostnadseffektiva system genom kontinuerlig förbättring av din produkt från början till produktion. Det maximerar din avkastning på investeringar och hjälper dig att uppfylla dina affärsmål.

Design principer

Molnet ger dig många alternativ för att optimera kostnaderna. Följande principer hjälper dig med din strävan:

  • Betala endast för konsumtion genom att implementera ett system för att bara använda resurser vid behov.

  • Använd skalbarhets fördelarna för molnet för att minimera kostnaderna.

  • Undvik datacenterkostnader för att behålla servrar genom att använda molntjänster och resurser

  • Använd molnets förmåga att exakt identifiera och analysera kostnader. Fördela IT kostnader till rätt projekt och optimera avkastningen på investeringen.

  • Använd hanterade tjänster för att minska ägandekostnaden.

Nyckelkomponenter i pelaren för kostnadsoptimering

Följande bästa praxis kan hjälpa dig att optimera kostnaden:

  1. Kostnadseffektiva resurser

  2. Matcha utbud och efterfrågan

  3. Medvetenhet om utgifterna

  4. Optimera över tiden

Låt oss dyka djupare in i dessa metoder.

AWS bästa praxis: kostnadseffektiva resurser

Noggrant med tanke på kostnaden för varje instans och resursval kan din övergripande arkitektur bli mer kostnadseffektiv. Du behöver dock förstå de kortsiktiga och långsiktiga effekterna av dina beslut. Du kan välja en mindre beräkna instans för att spara pengar, men du kan sluta betala mer på grund av långa körtider. I ett sådant fall är det bättre att spendera pengar i större utsträckning för att spara på lång sikt. AWS Trusted Advisor kan inspektera din AWS-miljö och rekommendera lösningar för att göra ditt system mer kostnadseffektivt.

AWS bästa praxis: Matchande utbud och efterfrågan

I traditionella IT-system måste du förutsäga efterfrågan och förplanera dina resurser. Molnet ger mer flexibilitet genom automatisk leverans av instanser, lager och databaser. Med automatisk skalning och elasticitet kan du expandera och minska din användning respektive. Med rätt arkitektur kan du bibehålla en optimal balans mellan utbud och efterfrågan.

AWS bästa praxis: Utgiftsmedvetenhet

De flesta IT-kostnadsoptimering i det förflutna har varit inriktad på att hitta produkter och förhandla bättre priser med leverantörer. Cloud computing tar de ansvaren utanför IT-avdelningen. De frigjorda resurserna kan användas för att övervaka användning, utgifter och avkastning på investeringar. Det kan hjälpa företag att finjustera sina avdelningar och minska avfallet. Amazon CloudWatch-larm och Amazon Simple Notification Service (SNS) -varningar kan hjälpa till att hålla avdelningarna klara sina budgetar.

AWS bästa praxis: Optimering över tiden

Att regelbundet omvärdera dina arkitektoniska beslut kan bidra till att ditt system blir mer konkurrenskraftigt. Om du kör en relationsdatabas i en EC2-förekomst kan det vara värt att överväga Amazon RDS Aurora eller andra hanterade databastjänster för att spara pengar och tid på underhåll. Regelbunden uppdatering av komponenter kommer att optimera kostnaderna för att köra ditt system.

Viktiga frågor att ställa sig om kostnadsoptimering

Kostnadseffektiva resurser

  • Kostnadsoptimering fråga 1. Överväger jag kostnad när jag väljer AWS-tjänster för min lösning?

  • Kostnadsoptimering fråga 2. Har jag storleken på mina resurser för att möta mina kostnadsmål?

  • Kostnadsoptimering fråga 3. Har jag valt lämplig prissättningsmodell för att möta mina kostnadsmål?

Matchande utbud och efterfrågan

  • Kostnadsoptimering fråga 4. Hur ser jag till att min kapacitet matchar men inte överstiger vad jag behöver?

Utgiftsmedvetenhet

  • Kostnadsoptimering fråga 5. Ansåg jag överföringsavgifter vid utformningen av min arkitektur?

  • Kostnadsoptimering fråga 6. Hur övervakar jag användning och utgifter?

  • Kostnadsoptimering fråga 7. Avvecklar jag resurser som jag inte längre behöver eller stoppar resurser som tillfälligt inte behövs?

  • Kostnadsoptimering fråga 8. Vilka åtkomstkontroller och förfaranden har jag för att styra AWS-användningen?

Optimering över tiden

  • Kostnadsoptimering Fråga 9. Hur hanterar jag, planerar och överväger antagandet av nya tjänster?

Operationell excellens

Syftet med pelaren för operationell excellens är att säkerställa korrekt dokumentation, testning och granskning av operativa metoder och förfaranden.

Design principer

Genomförandet av följande principer kan hjälpa dig att driva operativ excellens i molnet:

  • Använd automation för repeterande uppgifter för att förbättra operativ effektivitet.

  • Samla mätvärden för att anpassa operativa processer till affärsmål.

  • Förbättra rutiner genom regelbundna, små och inkrementella ändringar för att undvika nertider.

  • Planera in testdagar eller simulerade händelser för att testa svar på oväntade händelser.

  • Granska driftsfel för att förbättra processerna.

  • Regelbundet uppdatera rutiner och håll alla i organisationen informerade genom en wiki eller intern kunskapsbas.

Huvudkomponenterna för operativ excellenspelaren

För att uppnå operativ excellens, hålla koll på följande områden:

  1. Framställning

  2. Verksamhet

  3. Svar

Låt oss ta reda på mer.

AWS bästa praxis: Förberedelser

Korrekt förberedelse kan hjälpa alla system att fungera på en högre nivå av excellens. Procedurer för dagliga arbetsbelastningar (körbok) och oväntade händelser (playbook) bör ge nödvändig vägledning för alla som arbetar med systemet. Runbook och playbook bör kontrolleras regelbundet för att hitta några problemområden. Operativ beredskap minskar mänskligt fel och gör det enkelt att underhålla systemet. AWS CloudFormation, AWS Config och AWS Service Catalog är bra resurser för att förbereda sig för de dagliga och oväntade utmaningarna. 

AWS bästa praxis: Operations

Standardisering av förfaranden kan hjälpa till att göra en stor skillnad i operativ effektivitet. Förändringar i systemet ska enkelt kunna spåras och reproduceras. Även förändringsprocessen ska vara lätt. Kontinuerlig integration / kontinuerlig distribuering (CI / CD) och frigöringshantering (automatisk källkontroll, uppbyggnad, installation och testning) kan säkerställa kontinuerlig drift utan flaskhalsar. Kvalitetssäkring (QA) bör mildra risken genom att använda testtekniker (Blå / Grön, Kanarie- och A / B-testning) som kan minimera effekterna av förändringar. AWS CodeCommit, AWS CodeDeploy och AWS CodePipeline kan hjälpa till med CI / CD-processer. Använd AWS CloudTrail för att granska och spåra ändringar.

AWS bästa praxis: Respons

Svar på händelser och hot bör automatiseras. En bra arkitektur bör innehålla automatisering för varningar, begränsning, återställning och återställning. Spelboken ska ha väldefinierade vägar att följa. Eskaleringsprocessen för varje oväntad händelse bör vara tydlig. Du kan utnyttja Amazon CloudWatch-tjänsten för att utlösa automatiska svar.

Viktiga Frågor att ställa sig om operationell excellens 

Förberedelse

  • Operationell excellens fråga 1. Vilka bästa metoder använder jag för molnoperationer?

  • Operationell excellens fråga 2. Hur gör jag konfigurationshantering för min arbetsbelastning?

Actions

  • Operationell excellens fråga 3. Hur utvecklar jag min arbetsbelastning samtidigt som förändringens inverkan minimeras?

  • Operationell excellens fråga 4. Hur övervakar jag min arbetsbelastning för att säkerställa att den fungerar som förväntat?

Svar

  • Operationell excellens fråga 5. Hur svarar jag på oförutsedda operativa händelser?

  • Operationell excellens fråga 6. Hur hanteras eskalering när man svarar på oförutsedda operativa händelser?

Slutsats

Amazon Well-Architectured Framework föreskriver sätt att förbättra din arkitektur. Använd frågorna i denna artikel för att skapa en bättre arkitektur för din applikation.

Om du vill lära dig mer kan du läsa hela Amazon Well-Architectured Framework Whitepaper här.

Sammanställd av
Arun SubramanianYumFog LLC
Pierre GustavssonArbore AB