Ska du starta ett nytt projekt eller kanske ska du utveckla några nya funktioner? Innan du börjar vidta några åtgärder är det värt att ta reda på så mycket som möjligt om olika externa verktyg som kan vara användbara för dig.
Två grundläggande och förmodligen de mest populära AWS-tjänsterna är EC2 och S3. I ett nötskal: med EC2 kan du sätta upp din projekt och visa upp det för världen, medan S3 används för att lagra data av alla slag. I den här artikeln vill jag dock titta på andra mer eller mindre populära AWS-verktyg som vi normalt använder här på Codest.
Cloudfront
Det är ett verktyg som är speciellt skapat för en mycket snabb resursleverans till många användare. Och många betyder inte hundratals eller tusentals utan miljontals förfrågningar om en enda resurs. Till exempel vill du tillåta att placera din grafik, css, html eller javascript fil på vilken sida som helst. Du vill också ha full inverkan på det innehåll som resursen tillhandahåller - du behöver ändra något och du vill att denna ändring ska ske på alla sidor med din fil. Och här kommer AWS Cloudfront med alla sina funktioner, vilket gör att den slutliga användaren får din resurs så snart som möjligt.
Cloudfront erbjuder också ett antal statistik. Till exempel - sidor, som har begärts mest, enheter, begäran om resurs har gjorts med, http-statusar etc.
Naturligtvis är det här verktyget ganska dyrt, men ju fler förfrågningar till cloudfront kommer att göras, desto mindre betalar du för tjänsten. Därför bör du överväga den här lösningen om du vill placera resursen på webbplatser med riktigt stor eller till och med enorm trafik.
Batch
Enkelt uttryckt är det en tjänst som gör det möjligt att exekvera ett stort antal jobb direkt på AWS. Allt du behöver förbereda är ett exekveringsskript och en dockeravbildning, medan AWS Batch gör resten. Batch kommer dynamiskt att skapa instanser på EC2, tilldela en lämplig plats för jobb och starta dem samtidigt. Du behöver inte oroa dig för att din EC2-instans ska få slut på utrymme eller minne, eller att du hela tiden måste tänka på när och hur jobbet kan startas. För kommunikation mellan skriptet i docker-imagen och din tjänst kan du bara skapa API:et och vips så är du igång. Om du vill använda Batch bör du också förbereda ditt docker-repository i Amazon Elastic Container Registry (ECR)-tjänsten.
En annan tjänst, som får fördelarna med dockercontainrar, är också värd att nämna. Den kallas Elastic Container Service (ECS). Dess huvudsakliga skillnad jämfört med Batch är att du måste konfigurera och skala EC2-instansen själv medan Batch gör allt jobb åt dig. Batch-kostnaderna beror på vilka EC2-instanser som är tillåtna att använda, eftersom du i det här fallet bara betalar för körande instanser.
Lambda
AWS Batch gör jobbet genom att lansera dockeravbildningar, medan nästa tjänst - AWS Lambda - låter dig köra skriptet direkt. Du behöver inte konfigurera någon server, utan kod körs virtuellt, och vad som är ännu bättre är att du också kan returnera ett värde på det sätt du vill.
När kan det användas? Låt oss säga att du vill göra några beräkningar på vår webbplats baserat på parametrar från webbläsaren, och kanske kräver dessa beräkningar dessutom några extra förfrågningar till andra platser på webben. I det här fallet är allt du behöver göra att skapa en endpoint i Lambda, lägga till ditt skript och använda denna endpoint på webbplatsen. Det är verkligen enkelt.
Lambda-kostnaderna räknas endast när skriptet körs, när slutpunkten inte används betalar du ingenting.
SNS
Simple Notification Service är, som namnet antyder, ett verktyg som är speciellt utvecklat för att skicka meddelanden. Det kan enkelt användas för kommunikation mellan olika AWS-tjänster. Du har till exempel en grupp mikrotjänster och du vill att en av dem ska leda de andra - starta några av dem eller köra vissa åtgärder. I det här fallet kan du skicka meddelanden från huvudtjänsten och hantera mottagandet av meddelanden i en annan mikrotjänst som du föredrar. Förresten är det också värt att nämna Amazon Simple Queue Service (SQS), som kan skapa en mycket intressant anslutning tillsammans med SNS.
För SNS (och även SQS) utgår betalning endast för utförda förfrågningar: skicka meddelanden till SNS, skicka meddelanden från SNS till andra tjänster och andra ytterligare förfrågningar från SNS API-pool.
RDS
Amazon Relational Database Service är bara en extern databas. Med den här tjänsten gör AWS det enkelt att konfigurera, använda och skala en relationsdatabas. Om du till exempel förväntar dig att din databas kommer att ha en ganska betydande storlek och kommer att växa mer och mer varje dag, och du planerar att regelbundet utföra mer eller mindre komplexa operationer med den, t.ex. bearbetning och kopiering av data till en annan databas, är den här lösningen värt att överväga. Tillgängliga databasmotorer inkluderar PostgreSQL, MySQL och MariaDB.
Det är lätt att gissa att RDS-kostnaderna är relaterade till databasstorleken och dess användning, så det är svårt att säga om det kommer att bli mycket dyrt eller inte.
Sammanfattning
AWS är i ständig förändring, oavsett om det handlar om att förbättra befintliga tjänster eller skapa något nytt. Det är inte bara att föredra att hålla dig uppdaterad med deras tekniska innovationer, utan också lära känna de redan befintliga sakerna.
Användbara länkar