Skal du starte et nytt prosjekt, eller kanskje du er i ferd med å utvikle noen nye funksjoner? Før du setter i gang, er det lurt å finne ut så mye som mulig om ulike eksterne verktøy som kan være nyttige for deg.
To grunnleggende og sannsynligvis de mest populære AWS-tjenestene er EC2 og S3. I et nøtteskall: Med EC2 kan du sette opp din prosjekt og vise det til verden, mens S3 brukes til å lagre data av alle slag. I denne artikkelen vil jeg imidlertid se på andre mer eller mindre populære AWS-verktøy som vi vanligvis bruker her på Codest.
Cloudfront
Det er et verktøy som er spesielt utviklet for å levere ressurser svært raskt til mange brukere. Og mange betyr ikke hundrevis eller tusenvis, men millioner av forespørsler om en enkelt ressurs. For eksempel vil du tillate å plassere grafikk, css, html eller javascript filen på en hvilken som helst side. Du ønsker også å ha full innvirkning på innholdet ressursen gir - du trenger å endre noe, og du vil at denne endringen skal skje på alle sider med filen din. Og her kommer AWS Cloudfront inn i bildet, med alle sine muligheter, som gjør at den endelige brukeren mottar ressursen din så snart som mulig.
Cloudfront tilbyr også en rekke statistikker. For eksempel - sider, som har blitt bedt om mest, enheter, forespørselen om ressurs har blitt gjort med, http-status osv.
Selvfølgelig er dette verktøyet ganske dyrt, men jo flere forespørsler til cloudfront kommer til å bli gjort, jo mindre betaler du for tjenesten. Derfor bør du vurdere denne løsningen i tilfelle du ønsker å plassere ressursen på nettsteder med veldig stor eller til og med enorm trafikk.
Batch
Enkelt forklart er det en tjeneste som gjør det mulig å utføre et stort antall jobber direkte på AWS. Alt du trenger å forberede er et kjøringsskript og et docker-image, mens AWS Batch gjør resten. Batch oppretter dynamisk instanser på EC2, tildeler en passende plass til jobbene og starter dem samtidig. Du trenger ikke å bekymre deg for at EC2-instansen din skal gå tom for plass eller minne, eller at du hele tiden må tenke på når og hvordan jobben kan startes. For kommunikasjon mellom skriptet i docker-imaget og tjenesten din kan du bare opprette API-et, og så er du i gang. Hvis du vil bruke Batch, bør du også klargjøre docker-repositoriet ditt i Amazon Elastic Container Registry (ECR)-tjenesten.
En annen tjeneste som drar nytte av fordelene med docker-containere, er også verdt å nevne. Den kalles Elastic Container Service (ECS). Hovedforskjellen sammenlignet med Batch er at du selv må sette opp og skalere EC2-instanser, mens Batch gjør hele jobben for deg. Batch-kostnadene avhenger av hvilke EC2-instanser du har lov til å bruke, ettersom du i dette tilfellet bare betaler for kjørende instanser.
Lambda
AWS Batch gjør jobben ved å lansere docker-bilder, mens den neste tjenesten - AWS Lambda - lar deg kjøre skriptet direkte. Du trenger ikke å sette opp noen server, den kode kjøres virtuelt, og enda bedre er det at du også kan returnere en verdi på den måten du ønsker.
Når kan det brukes? La oss si at du ønsker å gjøre noen beregninger på nettstedet vårt basert på parametere fra nettleseren, og kanskje krever disse beregningene i tillegg noen ekstra spørringer til andre steder på nettet. I dette tilfellet er alt du trenger å gjøre å opprette et endepunkt i Lambda, legge til skriptet ditt og bruke dette endepunktet på nettstedet. Det er veldig enkelt.
Lambda-kostnadene regnes bare når skriptet kjører, når endepunktet ikke brukes, betaler du ingenting.
SNS
Simple Notification Service er, som navnet antyder, et verktøy som er spesielt utviklet for å sende varsler. Det kan enkelt brukes til kommunikasjon mellom ulike AWS-tjenester. Du har for eksempel en gruppe mikrotjenester, og du vil at en av dem skal lede de andre - starte noen av dem eller kjøre noen handlinger. I dette tilfellet kan du sende varsler fra hovedtjenesten og håndtere mottak av meldinger i en annen mikrotjeneste du foretrekker. For øvrig er det også verdt å nevne Amazon Simple Queue Service (SQS), som kan skape en veldig interessant forbindelse sammen med SNS.
Når det gjelder SNS (og SQS), betales det kun for utførte forespørsler: sending av meldinger til SNS, sending av meldinger fra SNS til andre tjenester og andre tilleggsforespørsler fra SNS' API-pool.
RDS
Amazon Relational Database Service er bare en ekstern database. Med denne tjenesten gjør AWS det enkelt å sette opp, bruke og skalere en relasjonsdatabase. Hvis du for eksempel forventer at databasen din vil ha en ganske betydelig størrelse og vil vokse mer og mer hver dag, og du planlegger å regelmessig utføre mer eller mindre komplekse operasjoner ved hjelp av den, f.eks. behandling og kopiering av data til en annen database, er denne løsningen verdt å vurdere. Tilgjengelige databasemotorer inkluderer PostgreSQL, MySQL og MariaDB.
Det er lett å gjette at RDS-kostnadene er knyttet til databasestørrelsen og bruken av den, så det er vanskelig å si om det kommer til å bli veldig dyrt eller ikke.
Sammendrag
AWS er i stadig endring, enten det dreier seg om å forbedre eksisterende tjenester eller å skape noe nytt. Det er ikke bare en fordel å holde seg oppdatert på de teknologiske nyvinningene, men også å bli kjent med det som allerede finnes.
Nyttige lenker