AWS Lambda или Azure Functions: хладан старт се плаћа и кад рачун делује исти

|Аутор: Уредништво QUASA|5 мин читања| 1
AWS Lambda или Azure Functions: хладан старт се плаћа и кад рачун делује исти

За повремени API, AWS Lambda и Azure Functions Flex Consumption могу коштати исто: рад на захтев остаје у бесплатним квотама обе платформе. Ако први одговор после мировања мора да буде предвидљив, унапред спреман капацитет се плаћа и док нема позива. У условном примеру испод месечна спремност кошта више од самог извршавања.

За исти број позива зато нема сталног победника. Lambda има нижи обрачун у приказаном примеру равномерног саобраћаја изнад бесплатне квоте, док подесива истовременост Azure Functions може да смањи број потребних инстанци током пика. Та предност важи само ако више позива на једној инстанци не продужи њихово трајање.

Исти рад, упоредив рачун

Сва три сценарија су условна: HTTP функцији је додељено 2.048 MB меморије, сваки позив има једну наплативу секунду, а месец траје 30 дана. Претпостављамо да сваки позив успева из првог покушаја, да су бесплатне квоте у целости доступне и да Azure инстанца најпре обрађује један позив одједном. Рачуница обухвата само функцију; складиште, пренос података и услуге које доводе захтев до функције нису урачунати.

Ценовник AWS Lambda за стандардне x86 функције наводи 0,20 USD за милион захтева и 0,0000166667 USD по GB-секунди рада на захтев, уз месечну бесплатну квоту од милион захтева и 400.000 GB-секунди. За Provisioned Concurrency у његовом примеру тарифа је 0,0000041667 USD по GB-секунди обезбеђеног капацитета, а рад на њему кошта 0,0000097222 USD по GB-секунди; бесплатна квота се на тај рад не примењује. Период обезбеђеног капацитета заокружује се навише на пет минута.

Ценовник Azure Functions за Flex Consumption даје 250.000 извршавања и 100.000 GB-секунди бесплатно месечно само за рад на захтев. Always Ready има одвојен обрачун стално додељеног капацитета, активног времена и извршавања, без тих бесплатних квота. Ово нису квоте старијег Azure плана Consumption.

За доларску илустрацију у региону East US узете су тарифе које Modal-ов преглед цена наводи за Flex Consumption: 0,000026 USD по GB-секунди и 0,40 USD за милион извршавања на захтев; за Always Ready 0,000004 USD по GB-секунди основе, 0,000016 USD по GB-секунди активног времена и 0,40 USD за милион извршавања. То су улазне цене за рачун, а стварна понуда зависи од региона и уговора.

Правила плана Flex Consumption прописују најмање једну наплативу секунду по извршавању, а затим заокруживање на 100 милисекунди. Зато би краће стварно извршавање на Azure Flex у овом примеру и даље имало исту наплативу секунду. Код обе платформе капацитет који је спреман унапред ствара трошак одвојен од самих позива.

Повремени API: бесплатни позиви, плаћена спремност

Први условни сценарио има 50.000 позива месечно, са паузама између њих. Уз 2 GB и једну секунду по позиву, то је 100.000 GB-секунди рада. Без унапред спремних инстанци, обрачун функције је 0 USD на обе платформе ако друге функције нису потрошиле бесплатне квоте. Тај износ не говори колико ће трајати одговор на позив после мировања.

Ако по једна инстанца од 2 GB остане спремна целих 30 дана, свака даје основу од 5.184.000 GB-секунди. На Lambda то износи око 21,60 USD за капацитет, 0,97 USD за рад и 0,01 USD за позиве: укупно око 22,58 USD. На Azure Flex основа кошта око 20,74 USD, активно време 1,60 USD, а извршавања 0,02 USD: укупно око 22,36 USD. Сличан збир настаје из различитих тарифа; једна спремна инстанца покрива само позиве које може да обради истовремено.

Нагли пик: број инстанци мења цену

Други условни сценарио смешта 12.000 равномерно распоређених позива у десет минута. Сваки траје секунду, па истовремено ради 20 позива, а укупан рад износи 24.000 GB-секунди. Без унапред спремног капацитета и тај рад стаје у обе бесплатне квоте. Ипак, бесплатан обрачун не значи да су све инстанце покренуте пре него што пик стигне.

Ако је пик познат унапред и за њега се десет минута држи по 20 инстанци, са једним позивом на свакој, Lambda кошта око 0,10 USD за капацитет и 0,24 USD за рад и захтеве: укупно око 0,34 USD. Azure Flex за исти распоред кошта око 0,10 USD за основу и 0,39 USD за активно време и извршавања: укупно око 0,48 USD. Дужи период спремности подигао би оба рачуна иако број позива остаје исти.

Azure Flex дозвољава подешавање броја истовремених позива по инстанци. Ако условна функција углавном чека спољни одговор и десет позива на једној инстанци и даље завршава за секунду, за исти пик довољне су две Always Ready инстанце. Њихова основа, активно време и извршавања за десет минута коштали би око 0,05 USD. То је прорачун под претпоставком о трајању, а не измерено убрзање: код посла који заузима процесор дељење инстанце може продужити сваки позив.

Сталан мали саобраћај: квоте се разилазе

Трећи условни сценарио има 300.000 равномерно распоређених позива месечно, приближно један на сваких 8,64 секунде. Иста меморија и трајање дају 600.000 GB-секунди. Без унапред спремне инстанце Lambda наплаћује 200.000 GB-секунди изнад бесплатне квоте, око 3,33 USD. Azure Flex наплаћује 500.000 GB-секунди и 50.000 извршавања изнад својих квота, укупно 13,02 USD.

Ако једна инстанца остане спремна целог месеца, рачун постаје око 27,49 USD на Lambda и 30,46 USD на Azure Flex. У оба случаја стална спремност кошта више од рада на захтев за овако задат саобраћај. Равномерни позиви могу затећи већ активну инстанцу, али њихов просечан размак сам по себи не гарантује одсуство новог покретања.

Шта одлучује о избору

Ако повремени API може да прихвати спорији први одговор, рад на захтев избегава сталан трошак спремности. За задати сталан саобраћај Lambda је јефтинија у обрачуну функције. Код наглог пика кључно је колико позива једна Azure инстанца може да заврши без повећања трајања, јер се њено активно време обрачунава по инстанци, док број извршавања остаје исти.

Постоји и граница коју месечни збир не показује: Azure Flex додаје инстанце постепено, у складу са подешеном истовременошћу, ограничењем броја инстанци и регионалном квотом. Унапред спремне инстанце покривају подешен капацитет, а захтеви изнад њега могу тражити ново скалирање. Истраживање Priceless такође пореди цену примерних оптерећења на AWS Lambda, Azure Functions и Google Cloud Functions и бележи разлике међу регионима. Зато су облик пика, прихватљива латенција и регион важни за избор исто колико и месечни број позива.

Прочитајте и:

Подели:

Претплатите се на наш билтен

Добијајте најновије вести о Web3, AI-у и криптовалутама директно у пријемно сандуче.

0