Как стать автором
Обновить

Комментарии 12

Правильно ли я понимаю, что с таким serverless-подходом (плата за выполнение кода), чтобы насолить какому-то сервису, его не надо даже ддосить, а просто организовать много запросов, чтобы счёт за хостинг стал астрономическим?
Во-первых, стоимость идёт порядка 0.20USD за миллион запросов, либо 0,00001667 USD за превышение порога 400000 гигабайт-секунд (https://aws.amazon.com/ru/lambda/pricing/).
Во-вторых, доступ извне к тем же лямбдам обычно пускают, например, через амазоновский Route 53, где есть такая прекрасная вещь, как AWS Shield. Да и без него, ЕМНИП, Амазон даст знать (но это неточно).

Но, так или иначе, необлачный сервер при той же DDoS-атаке ляжет и перестанет предоставлять услугу. И тут тоже стоит подумать, что дороже: переплатить за лишние пару сотен миллионов вызовов или вообще не предоставлять сервис, теряя клиентов (деньги).
Насколько я понял, тарифицируются отдельно запросы, отдельно вычисления, и результаты расчётов следует суммировать.
Попробуем посчитать просто для 100 запросов с разными параметрами (чтобы они shield проходили) в секунду. Примем, что каждый запрос выполняется 10 мс, а памяти при этом заказано 128 МБайт (1/8 гига). Сумму платежа будем считать для упрощения за 30 дней. Соответственно в 30 днях у нас 30 * 24 * 3 600=2 592 000 секунд.

Сначала тарифицируем запросы. Умножаем количество секунд на 100, получаем 259 200 000 запросов. Вычитаем бесплатный (по приведённой ссылке) миллион запросов в месяц и считаем:

258 200 000 * 0,2 / 1 000 000 = 51,64 USD

Теперь считаем гигабайт-секунды. Для 259 200 000 запросов по 10 мс у нас получается 2 592 000 секунды; делим на 8 (у нас не гиг, а 128 Мб) и получаем 324 000 ГБ-секунд, что ещё укладывается в бесплатный лимит 400 тысяч; для 256 МБайт у меня получилась доплата порядка 4 USD.

Астрономической цену такую, конечно, вряд ли можно назвать. Но интересно, дороже или дешевле это обычного (так сказать, «серверного») хостинга по среднерыночным ценам?
Насколько я понял, тарифицируются отдельно запросы, отдельно вычисления, и результаты расчётов следует суммировать.


Не совсем. Вот выдержка из прайсинга:
Lambda засчитывает запрос при каждом исполнении кода в ответ на вызов или оповещение о событии, при этом учитываются и тестовые вызовы с консоли


Но даже по Вашим расчётам выходит что-то в рамках 100$ потерь за одну атаку. При этом:

  1. Обычный хостинг просто «ляжет», хотя будет дешевле, разумеется :)
  2. Скорее всего стоимость DDoS-атаки будет больше, чем потери от неё у «принимающей стороны»
100 запросов в секунду — это не DDoS-атака, а посещаемость относительно небольшого, но при этом раскрученного ресурса. Для DDoS количество запросов надо увеличить раз в 10 минимум.

Хорошо, пусть даже отбивание атаки будет стоить порядка 1000 долларов. Если люди отбили эту атаку разово, это все равно оставит ресурс работающим за относительно небольшие деньги по меркам бизнеса, который конкуренты собрались ддосить. Дальше, имхо, если уж люди дошли до использования serverless, логично, что они, скорее всеоо, сделают выводы и подключат тот же экран Shield. Но в теории, при определенном стечении обстоятельств и вводных компанию таки можно разорить через Лямбды.


Кстати, ещё надо знать, что из функционала отдаётся лямбдами, а что классическими серверными скриптами. Отдавать монолит на лямбды — такая себе идея.

Может быть. Но вообще я думал не только про DDoS, но и про стоимость такого хостинга по сравнению с обычными. Если ресурс нормально крутится на, условно говоря, 20-баксовом обычном хостинге, а здесь получается 50 (хотя на старте вряд ли столько будет), не потребуется ли со временем перейти снова на классику?
Тут уже суровая экономика включается. Для своего блога и площадки под мелкие сайд-проекты достаточно простой виртуалки на хостинге или того же AWS EC2. Лямбды становятся выгодными в Enterprise-сегменте, где реально важной становится гибкость расширения, а также высокая отказоустойчивость. В моём понимании, лямбды хороши в быстро растущем бизнесе в случае, когда по каким-то причинам нет SRE или DevOps практик, но хочется в гибкость и не падать на очередной условной распродаже.
Небольшого по каким критериям?

100rps к ресурсам не за CloudFlare это очень недурной ресурс…
Что-то типа Хабра или покрупнее.
Ну по меркам всего Интернета у Хабра далеко не последняя, но и при этом далеко не самая высокая посещаемость в сравнению, скажем, с тем же Reddit или даже Пикабу — просто потому, что ресурс относительно специализированный. А про грандов вроде Яндекса или Google — с ними и так всё понятно. Поэтому таки предлагаю считать, что 100 rps — это относительно немного.
есть же способы определить ДДоСера, отключить средствами того же iptables, и работать дальше?
Конечно же есть! И в базовой грубой версии они не особо даже сложные.

НО:
1. Надо узнать, что идёт атака. То есть, нужен мониторинг. Если его нет, то атака может идти долго, делая сервис недоступным.
2. Надо правильно выделить атаку. Атаковать может большой ботнет с огромным пулом. То есть одним только анализом IP не обойдёшься.
3. Если идёт DDoS, а сервер слабенький, то есть вероятность того, что команды будут выполняться довольно долго.

Разумеется, для проектов, не подразумевающих SLA, это допустимо. Но у крупного ресурса простой в несколько минут может исчисляться несколькими нулями после единицы.

Кстати говоря, почитал тут документацию по Lambdas, и там тоже есть лимиты по параллельным вызовам. Но всё равно они гораздо больше, чем лимиты среднего такого сервера.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий