Ítarleg greining á AWS Lambda

Þýðing greinarinnar var unnin sérstaklega fyrir nemendur námskeiðsins "skýjaþjónusta". Hefur þú áhuga á að þróast í þessa átt? Horfðu á meistaranámskeið eftir Egor Zuev (TeamLead hjá InBit) "AWS EC2 þjónusta" og komdu í næsta námskeiðshóp: hefst 26. september.

Ítarleg greining á AWS Lambda

Fleiri eru að flytja til AWS Lambda fyrir sveigjanleika, frammistöðu, sparnað og getu til að sinna milljónum eða jafnvel trilljónum beiðna á mánuði. Til að gera þetta þarftu ekki að stjórna innviðunum sem þjónustan keyrir á. Og sjálfvirk stærð gerir þér kleift að þjóna þúsundum beiðna samtímis á sekúndu. Ég held að AWS Lambda megi með réttu kallast ein vinsælasta AWS þjónustan.

AWS Lambda

AWS Lambda er atburðadrifin netþjónalaus tölvuþjónusta sem gerir þér kleift að keyra kóða án þess að útvega eða stjórna netþjónum og framlengja aðra AWS þjónustu með sérsniðinni rökfræði. Lambda bregst sjálfkrafa við ýmsum atburðum (kallaðir kveikjur), eins og HTTP beiðnir í gegnum Amazon API Gateway, breytingar á gögnum í Amazon S3 fötum eða Amazon DynamoDB töflum; eða þú getur keyrt kóðann þinn í gegnum API símtöl með því að nota AWS SDK og ástandsbreytingar í AWS Step Functions.

Lambda keyrir kóða á mjög tiltækum tölvuinnviðum og ber fulla ábyrgð á stjórnun undirliggjandi vettvangs, þar á meðal viðhaldi netþjóns og stýrikerfis, útvegun auðlinda, sjálfvirkri stærðargráðu, kóðavöktun og skráningu. Það er, þú þarft bara að hlaða upp kóðanum þínum og stilla hvernig og hvenær hann ætti að vera keyrður. Aftur á móti mun þjónustan sjá um ræsingu hennar og tryggja mikið framboð á forritinu þínu.

Hvenær á að skipta yfir í Lambda?

AWS Lambda er þægilegur tölvuvettvangur sem hentar fyrir margvísleg notkunartilvik, svo framarlega sem tungumál og keyrslutími kóðans þíns er studd af þjónustunni. Ef þú vilt einbeita þér að kóðanum þínum og viðskiptarökfræði meðan þú útvistar viðhaldi netþjóna, úthlutun og stærðarstærð á sanngjörnum kostnaði, þá er AWS Lambda örugglega leiðin til að fara.

Lambda er tilvalið til að búa til forritunarviðmót og þegar það er notað í tengslum við API Gateway geturðu dregið verulega úr kostnaði og komist hraðar á markað. Það eru mismunandi leiðir til að nota Lambda aðgerðir og möguleika til að skipuleggja netþjónalausan arkitektúr - allir geta valið eitthvað við sitt hæfi út frá markmiði sínu.

Lambda gerir þér kleift að framkvæma margvísleg verkefni. Þannig, þökk sé CloudWatch stuðningi, geturðu búið til frestað verkefni og sjálfvirkt einstök ferli. Engar takmarkanir eru á eðli og umfangi notkunar þjónustunnar (minnisnotkun og tími tekinn með í reikninginn) og ekkert kemur í veg fyrir að þú vinnur markvisst að fullgildri örþjónustu sem byggir á Lambda.

Hér er hægt að búa til þjónustumiðaðar aðgerðir sem keyra ekki stöðugt. Dæmigert dæmi er myndstærð. Jafnvel þegar um er að ræða dreifð kerfi, eru Lambda aðgerðir áfram viðeigandi.

Svo ef þú vilt ekki takast á við úthlutun og stjórnun tölvuauðlinda skaltu prófa AWS Lambda; ef þú þarft ekki þunga, auðlindafreka útreikninga skaltu líka prófa AWS Lambda; ef kóðinn þinn keyrir reglulega, það er rétt, þú ættir að prófa AWS Lambda.

öryggi

Enn sem komið er hefur ekki verið kvartað yfir öryggi. Á hinn bóginn, þar sem mörg innri ferla og útfærslueiginleika þessa líkans eru falin notanda AWS Lambda stýrðu keyrsluumhverfisins, verða sumar almennt viðurkenndar reglur um skýöryggi óviðkomandi.

Eins og flest AWS þjónusta er Lambda veitt á sameiginlegum öryggi og samræmi milli AWS og viðskiptavinarins. Þessi regla dregur úr rekstrarálagi viðskiptavinarins, þar sem AWS tekur að sér að viðhalda, stjórna og fylgjast með þjónustuhlutum - allt frá stýrikerfi gestgjafans og sýndarvæðingarlagi til líkamlegs öryggis innviðaeigna.

Sérstaklega talað um AWS Lambda, þá er AWS ábyrgt fyrir stjórnun undirliggjandi innviða, tengdri undirliggjandi þjónustu, stýrikerfi og umsóknarvettvang. Þó að viðskiptavinurinn sé ábyrgur fyrir öryggi kóðans síns, geymir trúnaðargögn, stýrir aðgangi að þeim, svo og Lambda þjónustunni og auðlindum (Identity and Access Management, IAM), þar á meðal innan marka þeirra aðgerða sem notaðar eru.

Myndin hér að neðan sýnir líkanið um sameiginlega ábyrgð eins og það á við AWS Lambda. Ábyrgð AWS er ​​appelsínugul og ábyrgð viðskiptavina er blá. Eins og þú sérð tekur AWS meiri ábyrgð á forritunum sem eru sett á þjónustuna.

Ítarleg greining á AWS Lambda

Sameiginleg ábyrgðarlíkan Gildir fyrir AWS Lambda

Lambda keyrslutími

Helsti kosturinn við Lambda er að með því að framkvæma aðgerð fyrir þína hönd úthlutar þjónustan sjálf nauðsynlegum auðlindum. Þú getur forðast að eyða tíma og fyrirhöfn í kerfisstjórnun og einbeitt þér að viðskiptarökfræði og erfðaskrá.

Lambdaþjónustunni er skipt í tvær flugvélar. Í fyrsta lagi er stjórnflugvélin. Samkvæmt Wikipedia er stjórnvélin sá hluti netkerfisins sem ber ábyrgð á að flytja merkjaumferð og leiðsögn. Það er aðalþátturinn sem tekur alþjóðlegar ákvarðanir um útvegun, þjónustu og dreifingu vinnuálags. Að auki virkar stjórnplanið sem netkerfi lausnaveitunnar, sem ber ábyrgð á leiðsögn og stjórnun umferðar.

Annað planið er gagnaplanið. Hún hefur, eins og stjórnflugvélin, sín eigin verkefni. Stýriplanið veitir API til að stjórna aðgerðum (CreateFunction, UpdateFunctionCode) og stjórnar því hvernig Lambda hefur samskipti við aðra AWS þjónustu. Gagnaplanið stjórnar Invoke API, sem keyrir Lambda aðgerðir. Eftir að fall hefur verið kallað út, úthlutar eða velur stýriplanið núverandi keyrsluumhverfi sem er fyrirfram undirbúið fyrir þá aðgerð og keyrir síðan kóðann í því.

AWS Lambda styður margs konar forritunarmál, þar á meðal Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2, og fleiri, í gegnum viðkomandi keyrsluumhverfi. AWS uppfærir þá reglulega, dreifir öryggisplástrum og framkvæmir aðrar viðhaldsaðgerðir á þessu umhverfi. Lambda gerir þér kleift að nota önnur tungumál líka, að því tilskildu að þú útfærir viðeigandi keyrslutíma sjálfur. Og þá verður þú að sjá um viðhald þess, þar á meðal að fylgjast með öryggi þess.

Hvernig virkar þetta allt saman og hvernig mun þjónustan sinna aðgerðum þínum?

Hver aðgerð keyrir í einu eða fleiri sérstöku umhverfi, sem eru aðeins til á líftíma aðgerðarinnar og er síðan eytt. Hvert umhverfi hringir aðeins eitt símtal í einu, en það er endurnotað ef það eru mörg raðsímtöl í sömu aðgerðina. Öll keyrsluumhverfi keyra á sýndarvélum með virtualization vélbúnaðar - svokölluðum microVM. Hvert microVM er úthlutað á tiltekinn AWS reikning og hægt er að endurnýta það af umhverfi til að framkvæma mismunandi aðgerðir innan þess reiknings. ÖrVM er pakkað inn í byggingareiningar Lambda Worker vélbúnaðarvettvangsins, sem er í eigu og starfrækt af AWS. Ekki er hægt að nota sama keyrslutíma af mismunandi aðgerðum, né eru microVM einstök fyrir mismunandi AWS reikninga.

Ítarleg greining á AWS Lambda

AWS Lambda einangrunarlíkan

Einangrun á keyrsluumhverfi er útfærð með nokkrum aðferðum. Á efsta stigi hvers umhverfis eru sérstök afrit af eftirfarandi hlutum:

  • Aðgerðarkóði
  • Öll Lambdalög valin fyrir aðgerðina
  • Aðgerðarumhverfi
  • Lágmarks notendarými byggt á Amazon Linux

Eftirfarandi aðferðir eru notaðar til að einangra mismunandi framkvæmdaumhverfi:

  • cgroups - takmarka aðgang að örgjörva, minni, geymslu og netauðlindum fyrir hvert keyrsluumhverfi;
  • nafnarými - flokka ferli auðkenni, notendaauðkenni, netviðmót og önnur úrræði sem stjórnað er af Linux kjarnanum. Hver keyrslutími keyrir í sínu eigin nafnrými;
  • seccomp-bpf - takmarkar kerfissímtöl sem hægt er að nota í keyrslutímanum;
  • iptables og leiðartöflur - einangrun framkvæmdaumhverfis frá hvort öðru;
  • chroot - veitir takmarkaðan aðgang að undirliggjandi skráarkerfi.

Ásamt AWS séreinangrunartækni, tryggja þessi kerfi áreiðanlegan aðskilnað við keyrslutíma. Umhverfi sem eru einangruð á þennan hátt geta ekki nálgast eða breytt gögnum frá öðru umhverfi.

Þrátt fyrir að margar keyrslutímar á sama AWS reikningi geti keyrt á einum microVM, er undir engum kringumstæðum hægt að deila microVM milli mismunandi AWS reikninga. AWS Lambda notar aðeins tvo aðferðir til að einangra microVMs: EC2 tilvik og Firecracker. Einangrun gesta í Lambda byggt á EC2 tilfellum hefur verið til síðan 2015. Firecracker er nýr opinn uppspretta hypervisor sem er sérstaklega hannaður af AWS fyrir netþjónalaust vinnuálag og kynntur árið 2018. Líkamlegum vélbúnaði sem keyrir microVMs er deilt á milli vinnuálags á mismunandi reikninga.

Að vista umhverfi og vinnsluástand

Þrátt fyrir að Lambda keyrslutími sé einstakur fyrir mismunandi aðgerðir, geta þeir kallað sömu aðgerðina ítrekað, sem þýðir að keyrslutíminn getur lifað í nokkrar klukkustundir áður en honum er eytt.

Hver Lambda keyrslutími hefur einnig skrifanlegt skráarkerfi sem er aðgengilegt í gegnum /tmp skrána. Ekki er hægt að nálgast innihald þess frá öðrum keyrslutíma. Hvað varðar viðvarandi vinnsluástand, þá eru skrár sem skrifaðar eru á /tmp til fyrir allan lífsferil keyrsluumhverfisins. Þetta gerir kleift að safna niðurstöðum margra símtala, sem er sérstaklega gagnlegt fyrir dýrar aðgerðir eins og að hlaða vélanámslíkönum.

Gagnaflutningur hringja

Hægt er að nota Invoke API í tveimur stillingum: atburðastillingu og beiðni-viðbragðsham. Í atburðaham er símtalinu bætt við biðröð til að framkvæma síðar. Í beiðni-viðbragðsham er aðgerðin kölluð samstundis með uppgefnu farmálagi, eftir það er svarinu skilað. Í báðum tilfellum keyrir aðgerðin í Lambda umhverfi, en með mismunandi hleðsluleiðum.

Meðan á beiðni-svarsímtölum stendur rennur gagnálagið frá API (API Caller), eins og AWS API Gateway eða AWS SDK, til álagsjafnarans og síðan til Lambda símtalsþjónustunnar (Invoke Service). Hið síðarnefnda ákvarðar viðeigandi umhverfi til að framkvæma aðgerðina og sendir farmið þangað til að ljúka símtalinu. Álagsjafnari tekur á móti TLS-varinni umferð yfir internetið. Umferð innan Lambda-þjónustunnar - eftir álagsjafnara - fer í gegnum innri VPC á tilteknu AWS svæði.

Ítarleg greining á AWS Lambda

AWS Lambda símtalsvinnslulíkan: Beiðni-viðbragðshamur

Hægt er að hringja í viðburði strax eða bæta við biðröð. Í sumum tilfellum er röðin útfærð með því að nota Amazon SQS (Amazon Simple Queue Service), sem sendir símtöl til Lambda símtalsuppfyllingarþjónustunnar í gegnum innra skoðanakönnunarferli. Senda umferðin er vernduð af TLS og það er engin viðbótar dulkóðun á gögnum sem eru geymd í Amazon SQS.

Viðburðarsímtöl skila ekki svörum - Lambda-starfsmaðurinn hunsar einfaldlega allar svörunarupplýsingar. Atburðabundin símtöl frá Amazon S3, Amazon SNS, CloudWatch og öðrum aðilum eru unnin af Lambda í viðburðaham. Símtöl frá Amazon Kinesis og DynamoDB straumum, SQS biðraðir, Application Load Balancer og API Gateway símtöl eru unnin á beiðni-svar hátt.

Eftirlit

Þú getur fylgst með og endurskoðað Lambda aðgerðir með því að nota margs konar AWS kerfi og þjónustu, þar á meðal eftirfarandi.

amazoncloudwatch
Safnar ýmsum tölfræði eins og fjölda beiðna, lengd beiðna og fjölda beiðna sem mistókst.

Amazon CloudTrail
Gerir þér kleift að skrá þig inn, fylgjast stöðugt með og viðhalda upplýsingum um reikningsvirkni sem tengjast AWS innviðum þínum. Þú munt hafa fullkomna sögu um aðgerðir sem gerðar eru með því að nota AWS Management Console, AWS SDK, skipanalínuverkfæri og aðra AWS þjónustu.

AWS röntgengeisli
Veitir fullan sýnileika á öllum stigum beiðnavinnslu í umsókn þinni byggt á korti yfir innri hluti þess. Gerir þér kleift að greina forrit meðan á þróun stendur og í framleiðsluumhverfi.

AWS stillingar
Þú munt geta fylgst með breytingum á stillingum Lambdaaðgerða (þar á meðal eyðingu) og keyrslutíma, merkjum, nöfnum meðhöndlunar, kóðastærð, minnisúthlutun, tímamörkum og samtímastillingum, svo og Lambda IAM framkvæmdarhlutverki, undirneti og öryggishópabindingum .

Ályktun

AWS Lambda býður upp á öflugt sett af verkfærum til að byggja upp örugg og stigstærð forrit. Margar öryggis- og regluvörsluaðferðir í AWS Lambda eru þær sömu og í öðrum AWS þjónustu, þó það séu undantekningar. Frá og með mars 2019 er Lambda í samræmi við SOC 1, SOC 2, SOC 3, PCI DSS, Health Insurance Portability and Accountability Act (HIPAA) og aðrar reglugerðir. Svo þegar þú ert að hugsa um að innleiða næsta forrit þitt skaltu íhuga AWS Lambda þjónustuna - hún gæti hentað best fyrir þitt verkefni.

Heimild: www.habr.com

Bæta við athugasemd