
В Интернете есть множество руководств, рекламирующих дешевый хостинг статических веб-сайтов с помощью AWS S3 + AWS Cloudfront (+ Cloudflare).
Примером этого могут служить:
Я изучил структуру ценообразования сервисов AWS и в случае S3 или Cloudfront, я думаю, что невозможно ограничить расходы, связанные с недействительными запросами, поскольку Amazon также взимает плату за трафик и запросы, сгенерированные недействительными или заблокированными запросами.
Даже использование Amazon WAF, который может блокировать определенные диапазоны IP-адресов, не должно вам помочь, поскольку запрашивающая сторона все равно получит сообщение «Доступ запрещен» или что-то подобное.
Недействительные запросы повлекут за собой:
- запросы на объекты, которых нет
- вариант использования"обслуживание частного контента"
- отсутствуют параметры для подписанных URL-адресов / подписанных файлов cookie
- неправильные учетные данные IAM / инкогнито
Цены (S3 в Северной Вирджинии / Cloudfront USA; 2018-03-25)
---------------------------------------------------------------------------------------
- service - # requests type - pricing -
---------------------------------------------------------------------------------------
- S3 - 1000 PUT/COPY/POST requests - 0.0050 USD -
---------------------------------------------------------------------------------------
- S3 - 1000 GET and other requests - 0.0004 USD -
---------------------------------------------------------------------------------------
- Cloudfront - 10000 HTTP - 0.0075 USD -
---------------------------------------------------------------------------------------
- Cloudfront - 10000 HTTPS - 0.0100 USD -
---------------------------------------------------------------------------------------
Стоимость DDoS-атаки с недействительными запросами
-------------------------------------------------------------------------------------------------------------
- requests per second - service - type - costs per day - costs per month -
-------------------------------------------------------------------------------------------------------------
- 200 - S3 (North-Verginia) - POST - 86.400 USD - 2592.00 USD -
-------------------------------------------------------------------------------------------------------------
- 500 - S3 (North-Verginia) - POST - 216.000 USD - 6480.00 USD -
-------------------------------------------------------------------------------------------------------------
- 1000 - S3 (North-Verginia) - POST - 432.000 USD - 12960.00 USD -
-------------------------------------------------------------------------------------------------------------
- 200 - S3 (North-Verginia) - GET - 6.912 USD - 207.36 USD -
-------------------------------------------------------------------------------------------------------------
- 500 - S3 (North-Verginia) - GET - 17.280 USD - 518.40 USD -
-------------------------------------------------------------------------------------------------------------
- 1000 - S3 (North-Verginia) - GET - 34.560 USD - 1036.80 USD -
-------------------------------------------------------------------------------------------------------------
- 200 - Cloudfront (USA) - HTTPS - 17.000 USD - 518.40 USD -
-------------------------------------------------------------------------------------------------------------
- 500 - Cloudfront (USA) - HTTPS - 216.000 USD - 1296.00 USD -
-------------------------------------------------------------------------------------------------------------
- 1000 - Cloudfront (USA) - HTTPS - 432.000 USD - 2592.00 USD -
-------------------------------------------------------------------------------------------------------------
- 10000 - Cloudfront (USA) - HTTPS - 864.000 USD - 25920.00 USD -
-------------------------------------------------------------------------------------------------------------
- 200 - Cloudfront (USA) - HTTP - 12.960 USD - 388.80 USD -
-------------------------------------------------------------------------------------------------------------
- 500 - Cloudfront (USA) - HTTP - 32.400 USD - 972.00 USD -
-------------------------------------------------------------------------------------------------------------
- 1000 - Cloudfront (USA) - HTTP - 64.800 USD - 1944.00 USD -
-------------------------------------------------------------------------------------------------------------
- 10000 - Cloudfront (USA) - HTTP - 648.000 USD - 19440.00 USD -
-------------------------------------------------------------------------------------------------------------
Возможное решение: использовать CDN?
Предлагаемое решение этой проблемы, указанное в некоторых руководствах, заключается в использовании бесплатного сервиса Cloudflare CDN, который может обрабатывать все эти запросы, предоставляя им кэшированный результат из AWS S3 или AWS Cloudfront.
Единственная проблема, которая все еще сохраняется при использовании этого решения, заключается в том, что можно по-прежнему генерировать столько недействительных запросов, сколько захочется.
Примеры:
www.flare-example.com/iza7648hklto
www.flare-example.com/dsatnygp4851021
...
В этом случае злоумышленник все равно сможет достичь источника с любым количеством недействительных запросов, поскольку Cloudflare каждый раз будет сталкиваться с промахом кэша.
Теперь, наконец, мой вопрос:
Можно ли избежать этих расходов во время DDoS-атаки, только удалив свой облачный дистрибутив или контейнер S3 как можно быстрее?
Или я ошибся в структуре ценообразования AWS?
решение1
Очень интересный анализ. Думаю, единственный способ — это строгий мониторинг трафика и стоимости. Кроме того, можно взглянуть на AWS Shield advanced. Несмотря на то, что есть дополнительная стоимость в месяц, они покроют расходы на масштабирование из-за DDOS.
С AWS Shield Advanced вы получаете «Защиту от расходов на DDoS-атаки» — функцию, которая защищает ваш счет за AWS от скачков использования EC2, Elastic Load Balancing (ELB), Amazon CloudFront и Amazon Route 53 в результате DDoS-атак.