Налаштування AWS Lambda для продакшену
Розгортання застосунків в AWS
Dunieski Otano
Amazon Web Services Solutions Architect
У тесті все працювало
Функція пройшла всі тести
У продакшені виник таймаут і тротлінг
Код був коректний; проблема в конфігурації
Налаштування Lambda, що важливі в продакшені
Memory
: також масштабує CPU і мережу
Timeout
: максимум секунд до завершення функції
Ephemeral storage
: тимчасовий простір у /tmp
Concurrency
: скільки виконується одночасно
Розмір пам'яті та зв'язок із CPU
Більше пам'яті =
пропорційно більше CPU
CPU-обмежена функція працює швидше з більшою пам'яттю
Коротша тривалість може дати
меншу вартість
Підбирайте розмір тестами, а не здогадками
Concurrency: reserved vs provisioned
Reserved concurrency
Обмежує максимум одночасних виконань
Захищає залежні системи та інші функції
Provisioned concurrency
Попередньо прогріває інстанси, без cold start
Для функцій із чутливою до затримки, користувацькою взаємодією
Пакування конфігурації та спільного коду
Environment variables
: конфігурація на середовище
Layers
: спільний код і залежності для функцій
Extensions
: запускаються поряд із функцією для інструментів
Тримайте конфігурацію поза пакетом розгортання
Підключення Lambda до VPC
Приєднайте Lambda до
private subnets
для внутрішніх ресурсів
Lambda створює
ENIs
у вашій VPC
Security groups
визначають, що вона може досягти
Для зовнішнього доступу потрібен NAT або VPC endpoint
Обробка збоїв з destinations і DLQ
Асинхронні виклики
автоматично ретраять
у разі збою
Lambda Destinations
: маршрути для onSuccess та onFailure
Dead-letter queue
: фіксує події, що так і не вдалися
Ніколи не «губіть» невдалу подію
Давайте потренуємось!
Розгортання застосунків в AWS
Preparing Video For Download...