Marketing materials and documentation of AWS and other cloud providers do present their Serverless-services as a future of cloud computing, that ought to solve nearly all current problems. Is that so? Is there something marketers and documentation are hiding from us? What are costs and productivity?
Zabbix в сервисной компании ОНЛАНТА - Zabbix Meetup Moscow Vadim Nesterov
Semelhante a Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-products: a lifebuoy for apps with unpredicted load peaks?" (20)
2. КТО МЫ?
Concert.ua – билетный оператор №1 в Украине
Наши бренды:
v-Ticket – билетная система, в основе
Concert.ua
2018 2019
3. CONCERT.UA – ЭТО
Билетный сайт №2 на территории СНГ по посещаемости
Билетный сайт №66 в мире*
1,5-2M посещений в месяц
Труднопредсказуемые всплески посещаемости
* данные 2019 года
10. ФУНКЦИОНАЛЬНОСТЬ
AURORA SERVELESS
Совместимость с MySQL и PostgreSQL
1 ACU min (2 ACU для PostgreSQL) = 1vCPU + 2 GiB
256 ACU max (384 ACU для PostgreSQL) = 256 vCPU + 488GiB
Highly available – Multi-AZ всегда
Хранилище автоматически раздувается от 10GiB до 128TiB
Хранилище автоматически реплицируется в 3 AZ и в каждой имеет 2
копии
Scale-up при CPU > 70% ИЛИ использовано > 90% коннекшенов
Scale-down при CPU < 30% И использовано < 40% коннекшенов
Cooldown период 15 мин
Опционально выключает базу после 5 мин без активности
13. ОГРАНИЧЕНИЯ AURORA
SERVELESS
o Совместимость только с движками MySQL 5.6, 5.7 (new) и PostgreSQL
10.7
o Нет Binlog-репликации
o Не поддерживает Backtrack
o Не поддерживает Multi-master
o Невозможно назначить публичный IP
o Не поддерживает read-реплики
o Не поддерживает клонирование БД
o Нельзя вызвать AWS Lambda с помощью Aurora MySQL native-функий
o Не поддерживает Amazon RDS Performance Insights
o Нельзя восстановить БД из снепшота MySQL (НЕ Aurora)
o Нет загрузки/сохранения данных из/в Amazon S3
o Нет экспорта снепшота БД в Amazon S3
o Не поддерживает Aurora Parallel Query
14. СРАВНЕНИЕ СТОИМОСТИ
Aurora MySQL
db.t3.medium
2 vCPU + 4 GiB
+1 Read replica (for fault tolerance)
128.48 USD
db.r5.2xlarge
8 vCPU + 64 GiB
+1 Read replica (for fault tolerance)
1,868.80 USD
Aurora MySQL Serverless
2 ACU
2 vCPU + 4GiB
Multi-AZ and Highly Available
102.20 USD
32 ACU
32 vCPU + 64 GiB
Multi-AZ and Highly Available
1,635.20 USD
18. РЕШЕНИЕ
1. Ревью и оптимизация запросов к БД / индексы
2. Ускорение скейлинга кластера ECS / настройка параметров скейлинга
19. WHAT IS AWS
FARGATE?
AWS Fargate is a compute engine for Amazon ECS that allows
you to run containers without having to manage servers or
clusters. With AWS Fargate, you no longer have to provision,
configure, and scale clusters of virtual machines to run
containers.
21. What is Firecracker?
Firecracker is an open source
virtualization technology that is purpose-
built for creating and managing secure,
multi-tenant container and function-
based services that provide serverless
operational models.
23. ОГРАНИЧЕНИЯ
FARGATE
o Комбинации процессора / памяти ограничены
o Нет постоянных ip-адресов (но может быть под Service
Discovery)
o Нельзя подключиться по `docker run –it xxxxx /bin/bash` ;-(
28. СКОРОСТЬ СКЕЙЛИНГА
КЛАСТЕРА: EC2 vs FARGATE
EC2 Instance
t3.small
Provisioning
~2-2,5 min
Fargate
1 vCPU + 2GiB
1st Provisioning (cold start)
~30 sec
next provisioning (warm start)
7-9 sec
29. SPOTS, RESERVED UNITS
& SAVING PLANS
Пример ценообразования spot-инстансов для Fargate
AWS Pricing Calculator
No reserved instances
for Aurora Serverless ;-(
30. SPOTS & ON-DEMAND MIX
Возможно смешивать в одном кластере Spot
и On-Demand инстансы, используя Capacity
Providers
AWS Capacity Providers
31. ВЫВОДЫ
Aurora Serverless отлично работает, хоть и не без тонкостей
Aurora Serverless позволяет экономить по сравнению с Server-ful, но не
имеет возможности покупки Reserved instances или Savings Plan
Fargate раздувает кластер в 4-5 раз быстрее, чем EC2 ASG
Fargate: хотелось бы немного ускорить холодный старт контейнеров
Fargate стоит примерно вдвое дороже, чем EC2, но показывает более
высокую производительность, что компенсирует разницу
Последний пункт самый важный: это объясняет почему мы ищем и пробуем подобные технологии
1млн вызовов и 400ГБ-сек в мес бесплатно
ГБ-сек – интересная мера
1млн вызовов и 400ГБ-сек в мес бесплатно
ГБ-сек – интересная мера
1млн вызовов и 400ГБ-сек в мес бесплатно
ГБ-сек – интересная мера
1млн вызовов и 400ГБ-сек в мес бесплатно
ГБ-сек – интересная мера
1млн вызовов и 400ГБ-сек в мес бесплатно
ГБ-сек – интересная мера
1млн вызовов и 400ГБ-сек в мес бесплатно
ГБ-сек – интересная мера
Underhyped
Тоже под Firecracker
Сейчас есть Fargate для ECS и начале 2020 обещают Fargate для EKS
Это брат Lambda, с определёнными отличиями
Похож на Google Compute Engine
Меган Фокс вот тоже интересно что же там
Firecracker runs workloads in lightweight virtual machines, called microVMs, which combine the security and isolation properties provided by hardware virtualization technology with the speed and flexibility of containers.
Основан на KVM
Этот движок AWS стали использовать относительно недавно и именно с ним пришли существенные улучшения как производительности, так и функционала. Отдельно стоит упомянуть lambda layers.
ВСЕ ВХОДЯЩИЕ СОЕДИНЕНИЯ ЗАБЛОКИРОВАНЫ
Обратите на это внимание. Функция не получает напрямую никаких данных извне. Только через триггеры. Об этом чуть позже
Максимально 15 мин, но только не через API Gateway, там 30 сек на вызов
Хранение темп-файлов и кеша в /tmp, т.к. read-only файловая система
Хранение в S3
Хранение в ElastiCache (Redis/Memcache)
Пред-создание и подключение layer’ов
For most periodic or very light workloads, Lambda is dramatically less expensive than even the smallest EC2 instances.
Focus on the memory and execution time that a typical transaction in your app will need to relate a given instance size to the break-even Lambda cost.
For most periodic or very light workloads, Lambda is dramatically less expensive than even the smallest EC2 instances.
Focus on the memory and execution time that a typical transaction in your app will need to relate a given instance size to the break-even Lambda cost.
По своей сути призван заменить прямую работу с EC2 инстансами на ECS
Сильно подешевел в последнее время и сравним с EC2 по финальной стоимости (ранее был дороже)
По своей сути призван заменить прямую работу с EC2 инстансами на ECS
Сильно подешевел в последнее время и сравним с EC2 по финальной стоимости (ранее был дороже)
По своей сути призван заменить прямую работу с EC2 инстансами на ECS
Сильно подешевел в последнее время и сравним с EC2 по финальной стоимости (ранее был дороже)
For most periodic or very light workloads, Lambda is dramatically less expensive than even the smallest EC2 instances.
Focus on the memory and execution time that a typical transaction in your app will need to relate a given instance size to the break-even Lambda cost.
For most periodic or very light workloads, Lambda is dramatically less expensive than even the smallest EC2 instances.
Focus on the memory and execution time that a typical transaction in your app will need to relate a given instance size to the break-even Lambda cost.
По умолчанию в Lambda вообще запрещен выхлоп бинарных данных