Ga je een nieuw project starten of sta je op het punt om een aantal nieuwe functies te ontwikkelen? Voordat je acties onderneemt, is het de moeite waard om zoveel mogelijk te weten te komen over verschillende externe tools die nuttig voor je kunnen zijn.
Twee basisservices en waarschijnlijk de populairste AWS-services zijn EC2 en S3. In een notendop: met EC2 kun je je project en het aan de wereld laten zien, terwijl S3 wordt gebruikt om allerlei soorten gegevens op te slaan. In dit artikel wil ik echter kijken naar andere min of meer populaire AWS-tools die we hier bij Codest normaal gesproken gebruiken.
Cloudfront
Het is een tool die speciaal is gemaakt voor een zeer snelle levering van bronnen aan veel gebruikers. En veel betekent niet honderden of duizenden, maar miljoenen aanvragen voor een enkele bron. Je wilt bijvoorbeeld je afbeelding, css, html of javascript bestand op elke pagina. Je wilt ook een volledige impact hebben op de inhoud van de bron - je moet iets veranderen en je wilt dat deze verandering op alle pagina's met je bestand gebeurt. En hier komt AWS Cloudfront, met al zijn mogelijkheden, die ervoor zorgen dat de eindgebruiker je bron zo snel mogelijk ontvangt.
Cloudfront biedt ook een aantal statistieken. Bijvoorbeeld - pagina's die het meest zijn opgevraagd, apparaten waarmee de resource is opgevraagd, http-statussen, enz.
Natuurlijk is deze tool vrij duur, maar hoe meer aanvragen er worden gedaan bij cloudfront, hoe minder je betaalt voor de service. Daarom zou je deze oplossing moeten overwegen als je de bron op websites met echt veel of zelfs enorm verkeer wilt plaatsen.
Batch
Eenvoudig gezegd is het een service waarmee je een groot aantal jobs rechtstreeks op AWS kunt uitvoeren. Het enige wat je hoeft voor te bereiden is een uitvoeringsscript en een docker image, terwijl AWS Batch de rest doet. Batch maakt dynamisch instanties aan op EC2, wijst een geschikte plaats toe voor taken en lanceert ze tegelijkertijd. Je hoeft je geen zorgen te maken dat je EC2-instantie ruimte of geheugen tekort komt, of dat je constant moet bedenken wanneer en hoe de taak kan worden gestart. Voor de communicatie tussen het script in de docker image en je service kun je gewoon de API maken en daar ga je. Als je Batch wilt gebruiken moet je ook je docker repository voorbereiden in de Amazon Elastic Container Registry (ECR) service.
Een andere service die de voordelen van docker-containers plukt, is ook het vermelden waard. Het heet Elastic Container Service (ECS). Het belangrijkste verschil met Batch is dat je zelf EC2-instanties moet opzetten en schalen, terwijl Batch al het werk voor je doet. De kosten van Batch zijn afhankelijk van welke EC2-instanties je mag gebruiken, omdat je in dit geval alleen betaalt voor draaiende instanties.
Lambda
AWS Batch doet het werk door docker-images te lanceren, terwijl je met de volgende service - AWS Lambda - het script direct kunt uitvoeren. Je hoeft geen server in te stellen, de code virtueel wordt uitgevoerd, en wat nog beter is, je kunt ook een waarde retourneren op de manier die jij wilt.
Wanneer kan het worden gebruikt? Laten we zeggen dat je een aantal berekeningen wilt maken op onze website op basis van parameters uit de browser, en misschien vereisen deze berekeningen bovendien een aantal extra queries naar andere plaatsen op het web. In dit geval hoef je alleen maar een eindpunt aan te maken in Lambda, je script toe te voegen en dit eindpunt te gebruiken op de website. Het is echt eenvoudig.
De Lambda-kosten worden alleen geteld als het script wordt uitgevoerd, als het eindpunt niet wordt gebruikt, betaalt u niets.
SNS
Simple Notification Service is, zoals de naam al doet vermoeden, een tool die speciaal is ontwikkeld om notificaties te versturen. Het kan gemakkelijk worden gebruikt voor communicatie tussen verschillende AWS-services. Je hebt bijvoorbeeld een groep microservices en je wilt dat een van hen de anderen leidt - sommige ervan starten of bepaalde acties uitvoeren. In dit specifieke geval kun je een notificatie sturen vanuit de hoofdservice en de ontvangst van berichten afhandelen in een andere microservice die je verkiest. Overigens is het ook de moeite waard om de Amazon Simple Queue Service (SQS) te noemen, die samen met SNS een zeer interessante verbinding kan maken.
In het geval van SNS (en SQS) wordt alleen betaald voor uitgevoerde verzoeken: het verzenden van berichten naar SNS, het verzenden van berichten van SNS naar andere services en andere aanvullende verzoeken vanuit de SNS API pool.
RDS
Amazon Relational Database Service is gewoon een externe database. Met deze service maakt AWS het mogelijk om een relationele database eenvoudig op te zetten, te gebruiken en te schalen. Als je bijvoorbeeld verwacht dat je database een behoorlijke omvang zal hebben en elke dag zal groeien, en je bent van plan om er regelmatig min of meer complexe bewerkingen mee uit te voeren, zoals het verwerken en kopiëren van gegevens naar een andere database, dan is deze oplossing het overwegen waard. Beschikbare database-engines zijn PostgreSQL, MySQL en MariaDB.
Het is makkelijk te raden dat de kosten van RDS gerelateerd zijn aan de grootte van de database en het gebruik ervan, dus het is moeilijk te zeggen of het erg duur gaat worden of niet.
Samenvatting
AWS verandert voortdurend, of het nu gaat om het verbeteren van bestaande services of het creëren van iets nieuws. Het is niet alleen beter om op de hoogte te blijven van hun technologische innovaties, maar ook om de reeds bestaande dingen te leren kennen.
Nuttige links