Наверняка все слышали про Amazon Web Services (AWS). А некоторые даже заглянули на страницу Pricing. И заметили, что цены там заметно выше, чем на DigitalOcean, Linode, Hetzner Cloud и др. Вот таблица для сравнения цен:
Тип | RAM | CPUs | Диск | Трафик | Цена | |
---|---|---|---|---|---|---|
DigitalOcean | - | 4 GB | 2 vCPUs | 80 GB | 4 TB | $20 |
Linode | Linode 4GB | 4 GB | 2 vCPUs | 80 GB | 4 TB | $20 |
AWS | t2.medium | 4 GB | 2 vCPUs | - | - | $40 |
Amazon берёт деньги за трафик, причём цены тоже не низкие:
Так для чего же тогда выбирать Amazon? Вот какие причины вижу я:
- Большое количество полезных сервисов.
- Free Tier.
О втором и пойдет речь в этой статье.
На странице с ценами есть ссылку на страницу с уровнем бесплатного пользования, которая гласит что многими сервисами можно пользоваться бесплатно в течении 1 года.
Этого вполне достаточно чтобы целый год держать бесплатно полноценный сайт или бекенд мобильного приложения / игры или чего-то ещё. К тому же:
- Можно завести произвольное количество аккаунтов (Amazon этого не запрещает, гуглил по иностранным форумам), если ресурсов 1 аккаунта не хватает.
- Можно настроить Auto Scaling Group, в которой будет 1 бесплатная VM, а при пиковых нагрузках будут добавляться платные с почасовой оплатой. Максимальное число VM задаёте вы сами.
- После года можно завести новый аккаунт, перенести данные и пользоваться ещё год.
- Год — это достаточно много для начинающего проекта, чтобы он загнулся или же наоборот, выстрелил.
Ценообразование на AWS очень коварное, поэтому советую привязать к аккаунту виртуальную карту. Даже на уровне бесплатного использования можно влететь на значительные суммы. Ниже я поделюсь своим опытом.
Ценообразование pay-as-you-go пугает, поскольку не можешь точно спрогнозировать расходы на конец месяца. Признаться, я бы не стал им пользоваться, если бы не опыт, полученный на работе, где за чужие деньги не страшно.
При работе с AWS нужно быть внимательным с момента регистрации. Из личного опыта: когда регистрировался первый раз, выбрал тариф Developer (ну я же разработчик, значит для меня) и не заметил, что у этого тарифа абонентская плата $20 в месяц.
Итак, что мы имеем бесплатно в течение года после регистрации:
- 1 виртуальный сервер (EC2) — 1 vCPU, 1 ГБ RAM, 30 ГБ диск, 1 статический IP-адрес (t2.micro).
- 1 сервер Redis или Memcached (ElastiCache) — 1 vCPU, 0,555 ГБ RAM (cache.t2.micro).
- 1 сервер ElasticSearch — 1 vCPU, 2 ГБ RAM, 10 ГБ диск (t2.micro.elasticsearch).
- 1 сервер MySQL, PostgreSQL или SQL Server (RDS) — 1 vCPU, 1 ГБ RAM, 20 ГБ диск (db.t2.micro).
- 1 балансировщий нагрузки (Elastic Load Balancer) — 15 ГБ трафика в месяц.
- Файловое хранилище (S3) — 5 ГБ, 20K запросов Get, 2K запросов Put в месяц.
- CDN (CloudFront) — 50 ГБ исходящих данных, 2M запросов в месяц.
Бесплатно всегда:
- Рассылка email-ов (SES) — 62К сообщений в месяц.
- Функция как услуга (Lambda) — 1M запросов в месяц.
- NoSQL база данных (DynamoDB) — 25 ГБ хранилища, 200M запросов в месяц.
- Средство реализации API (API Gateway) — 1M вызовов API в месяц, работает в связке с Lambda.
- Мониторинг (CloudWatch) — 10 предупреждений по 10 метрикам.
Не относится к Free Tier, но тоже бесплатно:
- Certificate Manager — позволяет бесплатно создавать SSL-сертификаты для ваших доменов, которые можно использовать в Load Balancer, CloudFront и других сервисах Amazon. Но его не получится использовать непосредственно на виртуальных серверах.
Как следить за затратами
После того как вы создали необходимые инстансы, загрузили данные, настроили CloudFront, полезно настроить CloudWatch и бюджет. Без этого можно получить неожиданный счёт в конце
месяца за трафик.
CloudWatch — это сервис для мониторинга различных метрик ваших серверов и используемых сервисов: загрузка процессора, число операций ввода/вывода и самое главное — трафика.
С помощью него можно настроить отправку предупреждения на почту или вызвать webhook (например, для отправки сообщения в Телеграм) если трафик превысил заданное значение за заданный период времени. Например, отправить сообщение в Телеграм если трафик CloudFront превысит 1 Гб за 5 минут. Минимальный доступный интервал времени — 1 минута.
Скриншот страницы CloudWatch с настроенными предупреждениями:
Бюджет позволяет задавать месячный лимит затрат, при превышении которого будет отпралено предупрежлении по аналогии с CloudWatch. Можно создать бесплатно до 3 бюджетов.
Из личного опыта: однажды на своём сервере поднял CORS-прокси crossorigin.me и один товарищ (не буду говорить как он узнал о существовании прокси) начал качать через него YouTube. Я это обнаружил, когда он успел накачать на $17, после чего я остановил прокси.
Реальный пример
- 1 балансировщик нагрузки
- 1 виртуальный сервер
- Образы сервера для балансировщика нагрузки ($0.33 в месяц)
- 1 сервер Elasticsearch для логов
- 1 сервер MySQL
- 3 таблицы DynamoDB
- 2 домена в Route 53 ($0.5 за каждый, итого $1 в месяц)
- Статический сайт на S3 с кешированием в CloudFront
- Gateway API + Lambda — API сервиса
Скриншот счёта за август:
Итог. AWS, при должной аккуратности и внимательности, позволяет значительно сэкономить на начальном этапе развития проекта.
Комментарии (49)
Travelcamnet
01.09.2018 23:54Немного некорректное сравнение. Для сравнения стоит использовать соответствующий сервис
aws.amazon.com/ru/lightsail/pricingfiftin Автор
02.09.2018 00:01Lightsail хоть и создан Amazon и, наверняка, на базе AWS, не интегрирован в инфраструктуру AWS.
ИМХО: его можно рассматривать как конкурента AWS.p1h
02.09.2018 09:06Я пока что чисто теоретик, но разве Amazon VPC peering не делает его интегрированным в инфраструктуру? К тому же, оттуда же: «Some AWS resources, such as Amazon S3, Amazon CloudFront, and Amazon DynamoDB don't require VPC peering to be enabled.»
fiftin Автор
02.09.2018 09:22Да, точно, вы правы. Спасибо что подсказали. Тогда Lightsail тоже можно записать в достоинства AWS :)
r0mik
02.09.2018 09:12те же сервисы от гугла и майкрософта и дешевле и, соответственно, более-полно можно использовать тестовый бесплатный период. aws как-то уж слишком дорог, а преимуществ перед тем же гуглом лично я не вижу, по крайней мере в конфигурациях начального уровня, на которые и рассчитан тестовый бесплатный период…
fiftin Автор
02.09.2018 09:31Как правильно заметили в комментарии выше, у Amazon ещё есть Lightsail, который по ценам соответствует тем же DigitalOcean, но позволяет интегрироваться с AWS. aws.amazon.com/ru/lightsail/pricing. Самый дешёвый инстанс $3.5.
У гугла и микрософта такого нет :-)r0mik
02.09.2018 10:28+1я о самых типичных конфигурациях, о каких-то банальных VDS-ах а-ля LAMP.
вот, к примеру в гугле за подобную ВДС-ку, что-то за 2мес «бесплатного» использования, при нагрузке 24х7, не менее 30-50% загрузки процессора, при 2х ядрах, 2х GB и вроде бы 25 SSD, мне насчитали $40 из $300 «бесплатных на год».
то есть, при самых худших раскладах мне этой бесплатной ВДС хватит на полгода.
в амазоне же я мало того что смогу бесплатно лишь в 2 с лишним раза более слабую конфигурацию выбрать, которой мне даже под самый слабый контейнер не хватит, так она еще и не будет полностью бесплатной, потому что как минимум за трафик платить придется (ибо бесплатного не хватит никому). вообще бесплатная конфигурация в амазоне требует постоянного надзора, как минимум что бы не выйти за рамки и не получить однажды письмо счастья о невозможности снятия 50 баксов с карты на которой отродясь таких денег не водилось и не планировалось.
да, можно сказать что ССЗБ и вообще-то все это решаемо, но тем не менее — в гугле я единожды засетапил, при этом цену с 90% достоверностью я знаю заранее, и могу забыть до примерного подхода сроков (за одним правда исключением, но это ничто по сравнению с амазоном).
вот. как-то так. то есть с т.з. полноценной «шары» гуглосервисы, безусловно, выгодней)) сервисы от мс лишь чуть дороже, я правда их только поверхностно смотрел…
s-kozlov
02.09.2018 09:34Certificate Manager — позволяет бесплатно создавать SSL-сертификаты для ваших доменов, которые можно использовать в Load Balancer, CloudFront и других сервисах Amazon. Но его не получится использовать непосредственно на виртуальных серверах.
Позволяет ли? У меня ни разу не получилось создать ни одного. Бесплатная поддержка проблему не решила. Решать через платную, т.е. репортить баги амазона за свои же деньги, — ищите другого дурака.
Ну и после того, как letsencrypt стали выдавать wildcard certs, стало непонятно, зачем вообще нужен ACM.
SlavikF
02.09.2018 09:37Хорошо, что Амазон хоть вменяемо показывает, за что он берёт деньги.
Я тут в США помогаю одной миссии и им под некоторые проекты Microsoft дал ежегодный $5000 грант на Azure.
Прошло почти два месяца, как я там запустил кое-что и я до сих пор не знаю, если нам хватит этих денег на год.
Запустил:
— VM (B2ms) Win Server для бухгалтерии
— VM (B2s) Ubuntu для хостинга сайтов
— File Share для хостинга ~200GB файлов
Вот самое лучшее (понятное) что я пока смог увидеть:
Из этого я надеюсь, что самая первая (самая дорогая) строчка — это за то что я заливал туда файлы (Write Operations), а хранение вроде бы дешевле…
Сам Azure рекомендует подписаться на какой-то сторонний(!) сервис Cloudyn, в котором весь биллинг мне станет понятным…
EviGL
02.09.2018 10:14+1Статья отлично поясняет, почему AWS настолько дорогой. Потому что тем кто "подсел" приходится оплачивать огромное количество "бесплатников" с довольно щедрыми лимитами.
Вывод — подсаживаться не стоит. А бесплатником быть почему бы и нет.Ipeacocks
02.09.2018 18:08Не совсем. Если нужна какая-то приличная инфраструктура и на вагон инженеров не хочется тратить денег — то cloud самое оно. Но даже с AWS (да и любым клаудом) юзать специфические сервисы, которым нет близких аналогов в opensource, не стОит.
vrangel
02.09.2018 15:26+1Вопрос от новичка: Как у AWS обстоят дела с DDOS защитой? Нужно ли отдельно платить?
fiftin Автор
02.09.2018 15:38За защиту от DDoS нужно платить отдельно (причем, как обычно, цены нехилые):
- AWS WAF — aws.amazon.com/ru/waf/pricing
- AWS Shield — aws.amazon.com/ru/shield/pricing
Для начинающего проекта это нереально дорого, по-этому в статье написано про CloudWatch, чтобы во-время обнаружить атаку, разрулить вручную и не разориться.
Если не предпринять мер, то за весь трафик придется заплатить вам ($0.09 за ГБ).vrangel
02.09.2018 16:18Насколько я понял, базовая защита от DDOS бесплатна, в рамках AWS Shield Standard.
fiftin Автор
02.09.2018 18:39Я проводил такой такой эксперемент: скачивал в цикле видео файл с CloudFront с двух серверов в 5 или 10 потоков (не помню). За несколько минут я скачать около 100 ГБ. Это ~ $9. Это конечно же не DDoS, но можно сделать вывод что если будет DDoS, то ты сначала разоришься, а потом сработает защита от DDoS.
fiftin Автор
02.09.2018 15:44На самом деле, чтобы разораться даже DDoS атака не нужна.
Достаточно просто чтобы кто-то качал 1 файл с вашего сервера/S3/CloudFront в цикле. Если кто-то скачает 100 ГБ с вашего сайта, вы заплатите за это $9. По-этому нужно быть осторожным, настроить CloudWatch, следить за трафиком!
amaxim
02.09.2018 15:27+2Про LighSail уже написали выше.
Ещё рекомендовал бы обратить внимение на новый тип инстансов t3. По сравнению с t2 при таком же объёме RAM в два раза больше vCPU, а цена даже чуть меньше.
Так же, у AWS есть возможность покупки инстанса по меньшей цене, но минимум на год. Называется Reserved Instance (RI). Например, RI t3.micro 1GB RAM 2 vCPU в регионе us-east-1 с оплатой сразу за год стоит $53. Что эквивалентно $4.42 в месяц.
Если продолжать копать дальше. «Статику» сайта лучше держать на S3 плюс CloudFront. Если «динамика», то есть изменение данных, происходит редко, то её лучше реализовать, используя Lambda и API Gateway. Работа такого сайта при малой посещаймости будет стоить почти нисколько.doom369
02.09.2018 17:23+1Статику лучше на бесплатном Github Pages или аналогичных сервисах. На авс был чек в 20уе в мес, на гитхаб страницах стало — 0.
fiftin Автор
02.09.2018 18:10Мне кажется это интересный вопрос где лучше хранить статику.
Я раньше тоже хранил статику на GitHub. Но у такого способа есть недостатки:
- Невозможность привязать SSL-сертификат
- если коммитить очень быстро, то контент начинает обновляться с задержкой.
В итоге я отказался от этого способа и стал хранить статику на сервере, а раздавать через Cloudflare:
- Бесплатный SSL-сертификат
- Мгновенное обновление контента на сайте, если перевети Cloudflare в development-режим.
doom369
02.09.2018 19:48Невозможность привязать SSL-сертификат
Можно
если коммитить очень быстро, то контент начинает обновляться с задержкой.
Обычно минута-две. Для статики совсем не критично.fiftin Автор
03.09.2018 08:51+1Невозможность привязать SSL-сертификат
Можно
Ух ты, точно. В мае появилась возможность: blog.github.com/2018-05-01-github-pages-custom-domains-https
Ipeacocks
02.09.2018 18:04+2Если бизнес маленький и состоит из пары серверов — то конечно AWS не стоит использовать, он дорогой. Но если уже серверов около десятка и нужны уже приватные сети — то какие варианты? Верно: cloud-платформы.
В таком случае цена плюс-минус обоснована, потому как таких фич, например, в Digital Ocean нет (или не всегда есть или с дикими ограничениями), а содержание отдельного DC — это куча денег (в т.ч. на зп сотрудникам), большие сроки, куча нерв. Более того, хоть AWS и дорог, он позволяет о многих вещах не думать — например высокую доступность балансировщиков, гейтвеев и т.п. Иначе же это достаточно сложные инженерные решения, которые кто-попало с улицы не сделает. Digital Ocean и AWS — это разные рынки и нужно исходить из потребностей при выборе.
Юзать AWS из-за Free Tier — это вообще бред. Во первых это только на первый год, а потом что — мигрировать на новый AWS аккаунт? Также у Free Tier входит одна виртуалка с 1гб в месяц, а за вторую (если одной будет мало) вы заплатите как за просто две в Digital Ocean?
В общем я о том, что логика отсутвует. Это уже не говоря о том, что попасть на деньги в AWS — это вообще плевое дело.fiftin Автор
02.09.2018 18:53На все вопросы которые вы задали в комментарии есть ответы в статье.
Ipeacocks
02.09.2018 19:01Ок, для абсолютно нулячих проектов может и подойдёт. Иначе — это костылестроение. Лучше заплатить честную сумму простому хостингу, чем извращаться вот так.
fiftin Автор
02.09.2018 19:11Да, это констыль, но может он кому-то пригодится :) Например тому, у кого нет лишних $30 в месяц, но есть желание создать сайт/приложение и есть время изучить AWS.
Vilgelm
02.09.2018 21:04За $30 (чуть больше) можно арендовать в OVH (SoYouStart) вот такой сервер: Intel Xeon E3-1225v2 4c / 4t, 3.2GHz, 16GB DDR3 1333 MHz, SoftRaid 3x2TB SATA, 250 mbps, 16 IP, на котором можно хоть свое облако на базе esxi развернуть.
Для обычного сайта VPS с аналогичными характеристиками FreeTier будет стоить около $20-30 в год, а shared хостинг можно и бесплатно найти.
То есть практическая цель выглядит сомнительной. А вот изучить AWS — хорошая цель.
Vilgelm
02.09.2018 21:00OVH и Vultr умеют в приватные сети, но при этом стоят сильно дешевле. У OVH при этом еще и скорости лучше. И трафик бесплатен, хоть и в каких-то пределах.
Ipeacocks
02.09.2018 21:22+1Это я больше образно. В DO например тоже есть, но настроек для них особо нет. Т.е. ограничения большие.
Плюс AWS/Google Cloud — это еще и качественный API (и например Terraform) и куча хорошей документации.
dennis777
02.09.2018 22:10Кстати, мало кто знает, но на БЕСПЛАТНОМ уровне пользования — можно хостить Вордпресс сайт, который не падает от 5к одновременных посещений. Nginx + правильные настройки кеширования помогают прям на микроинстансах держать достаточно ресурсоемкие хрени вроде Вордпресса
AlexPu
02.09.2018 22:43>>Ценообразование на AWS очень коварное, поэтому советую привязать к аккаунту виртуальную карту.
А что, так можно???? Не знаю как сейчас, но раньше они принимали только кредитные карты. Это впрочем не мешало мне использовать Free Tier несколько раз (то-ли три то0ли четыре) — просто используя разные кредитные карты. Я разок попытался использовать дебетовую (и виртуальную тоже пытался), но их не приняли. Правда это довольно давно было
andronov
02.09.2018 23:19+1Думаю сравнение AWS с Linode/Vultr/DigitalOcean абсолютно некорректно. EC2 это только лишь малая часть экосистемы AWS. Ну да, у того же Vultr есть какой-то свой недоделанный вариант S3/EFS, но он не идет ни в какое сравнение с тем как работает настоящий S3 или EFS.
Тема AWS в последнее время это по большей части Serverless Services и там их великое множество с огромнейшими возможностями интеграции внутри экосистемы.
Тоже самое с Azure и Google Cloud — они игроки в своих областях, только издалека чем-то похожие друг на друга.fiftin Автор
03.09.2018 09:15Я сравнивал цены на VM. Можно иметь сервера на DigitalOcean и пользоваться Serverless сервисами AWS, верно же?
Azure практически не отличается от AWS по возможностям (приходится работать и с тем и с другим).andronov
03.09.2018 09:55Можно, не всегда есть смысл, потому как изюминка в интеграции, а иначе проще полностью все поднимать на том же DO.
Я занимался одним проектом в котором географически распределенный CDN строился на дешевых VPS. Если знать рынок то можно сделать все гораздо дешевле, но скорее всего и более трудо-затратно.
Azure отличается от AWS, но ближе к нему чем Google Cloud… Вопрос в том как сравнивать. Я сертифицировался и по тому и по другому. Когда начинаешь копать детали и смотреть на подход Амазон и Майкрософт, то понимаешь что идеи разные, хоть и визуально кажется что сервисы очень похожи.fiftin Автор
03.09.2018 10:07Разная реализация одного и тогоже:
— AWS Network Load Balancer = Azure Load Balancer
— AWS Application Load Balancer = Azure Application Gateway
— AWS Route 53 = Azure DNS + Traffic Manager
— Auto Scaling Group = Azure VMSS
— AWS Lambda + API Gateway = Azure Function Apps
и т.д.
Akuma
Всем амазон хорош. Кроме отсутствия расположения в России и жутко дорогого трафика.
Anton23
Как раз таки отсутствие расположения в России — большой плюс.
Ambrosian
чем именно?
s-kozlov
9,5 правил ведения безопасного IT-бизнеса в России
Ambrosian
Этому тексту уже лет 8. Он еще до блокировок придуман. Да и тогда был шляпой.
Верно в нем только одно — если вы нашли клиентов на общемировом рынке (как кстати нашли? так вот прямо просто? ), то логично размещаться не в России.
s-kozlov
А можно подробнее про шляпу? Я вот, например, не припомню, чтобы Amazon что-то выдавал по запросу ФСБ. Ну и историю с телеграмом еще не забыли?
А в чем принципиальная сложность найти клиентов не из России?
mgremlin
Шляпа возникает тогда, когда клиенты в России все-таки есть, а сервер в AWS попал под ковровую бомбардировку РКН.
И это еще никто не сказал про требования хранить персданные граждан РФ внутри РФ…
s-kozlov
Довольно странно признавать неадекватность РКН («ковровые бомбардировки») и этим обосновывать помещение серверов в России.