میکروویاِمهای AWS Lambda؛ چند نکته دستاول
خلاصهٔ کاملتر
AWS سرویس Lambda MicroVMs رو راهاندازی کرده و نویسنده این پست چند نکتهای رو که همون روز اول کشف کرده جمع کرده. به گفته نویسنده، MicroVMها تقریباً یه تعمیم از توابع لامبدا یا یه تخصصیشدن از اینستنسهای EC2 هستن؛ شبیه کانتینرن ولی ایزولهتر و قدرتمندتر، و حتی میتونن خودشون کانتینر اجرا کنن. تو کد رو میدی و لامبدا توی چند ثانیه یه VM جدید بالا میآره که تا ۸ ساعت اجرا میشه. کاربردهاش شامل رانرهای CI، میزبان عاملهای کدنویسی، سرور بازی و سرورهای وب تخصصیه.
یکی از کشفهای جالب اینه که میتونی توی MicroVM شل بگیری. برخلاف توابع لامبدا که pty ندارن، اینجا pty یه شهروند درجهیکه؛ میتونی API به اسم CreateMicrovmShellAuthToken رو صدا بزنی و مستقیم بهش وصل شی، بدون هیچ ترفند reverse-shell.
نکته بعدی اینه که میشه همه قابلیتهای سیستمعامل رو فعال کرد. اگه بخوای داکر داخل MicroVM اجرا کنی، کاملاً کار میکنه. نویسنده میگه یه ناسازگاری نسخه با containerd داشته که با اشارهدادن dockerd به سوکت containerd حل شده.
نویسنده به یه نکته شبکهای هم اشاره میکنه: بهطور پیشفرض کل UDP خروجی مسدوده و resolver پیشفرض DNS یه stub لوکاله، که باعث میشه DNS داخل کانتینر به یه resolver عمومی برگرده و شکست بخوره؛ راهحلش اجرای کانتینر با DNS مخصوص لامبداست. UDP از طریق VPC درست کار میکنه.
برای شبکه پیشرفتهتر هم میشه یه «Lambda network connector» ساخت؛ یهجور پیکربندی VPC تجسمیافته با سابنت، سکیوریتی گروپ، حالت IPv4/دوگانه و یه نقش IAM. این کانکتور چرخه حیات و ARN خودش رو داره و یه جداسازی تمیز بین وظایف تیم شبکه و توسعهدهندهها میسازه. نویسنده تذکر میده که این کانکتورها توی VPC تو ENI میسازن ولی بهطور پیشفرض دیده نمیشن.
نکات کلیدی:
- Lambda MicroVMs کد رو توی چند ثانیه داخل یه VM ایزوله تا ۸ ساعت اجرا میکنه
- ایزولهتر از کانتینره و میتونه خودش کانتینر (مثل داکر) اجرا کنه
- میشه با API مخصوص، شل مستقیم روی MicroVM گرفت
- بهطور پیشفرض UDP خروجی مسدوده؛ برای شبکه کامل باید network connector ساخت
- مناسب برای رانرهای CI، میزبان عاملهای کدنویسی و سرور بازی




