AWS Lambda функцийг олон зэрэг ажиллахад юу саад болдог вэ?

Ankhbayar Gansukh
Unimedia Solutions
Published in
1 min readMay 16, 2019

Lambda функцийн Concurrency буюу нэгэн зэрэг ажиллах инстансын тоо нь дефаултаар 1000 байдаг. Энэ нь мянган функц нэгэн зэрэг ажиллаж ажлаа мянга дахин хурдан дуусгах зорилготой. Гэтэл стресстест хийх явцад манай ламбда функц маань 230-аас илүү гардаггүй (Cloudwatch-ийн ConcurrentExecutions метрикээс харах боломжтой). Хайгаад үзэхэд доорх хоёр шалтгаантай байв.

Манай Lambda функц нь VPC-ийн Private Subnet дотор ажиллах бөгөөд гадагшаа интернет-рүү хандахдаа NAT Gateway-ээр гардаг юм. Lambda функц нь VPC дотор ажилладаг бол инстанс бүр нь өөрийн subnet-ээс нэг IP хаяг авч ашигладаг. Харин манай subnet-ийн CIDR нь 255 IP-ийн боломжтой байсан болохоор subnet-ийн IP лимитэд баригдаад байж.

Зөвхөн тус lambda функцэд зориулж 4091 IP хаягийн боломжтой шинэ subnet (10.0.96.0/20) үүсгэж функцээ дотор нь тавив. Дахин стресстэст гүйлгэхэд 320 хүрэв. Бас л 1000 хүрсэнгүй тул үргэлжлүүлээд хайв. Гэтэл VPC нь өөрөө нэг режионд 350 Network interface (ENI)-ийн дефаулт лимиттэйг нь олж мэдлээ. Лимитийн дэлгэрэнгүйг эндээс уншина уу. ENI лимитийг нь AWS Support-руу тикет үүсгэж 1500 болгуулав. Тэгээд стресстэстээ гүйлгэхэд 1000 зэрэг ажиллав.

Товчхон хэлэхэд таны lambda функц VPC дотор ажилладаг бол олон зэрэг ажиллахад доорх зүйлүүд нөлөөлнө.

  • Subnet-ийн сул IP-ийн тоо
  • VPC ENI limit-ийн тоо

References

--

--