Наверняка все слышали про 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? Вот какие причины вижу я:


  1. Большое количество полезных сервисов.
  2. 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)


  1. Akuma
    01.09.2018 23:16
    +2

    Всем амазон хорош. Кроме отсутствия расположения в России и жутко дорогого трафика.


    1. Anton23
      02.09.2018 09:25
      +1

      Как раз таки отсутствие расположения в России — большой плюс.


      1. Ambrosian
        02.09.2018 18:02

        Как раз таки отсутствие расположения в России — большой плюс.

        чем именно?


        1. s-kozlov
          02.09.2018 19:04

          1. Ambrosian
            03.09.2018 10:07

            Этому тексту уже лет 8. Он еще до блокировок придуман. Да и тогда был шляпой.

            Верно в нем только одно — если вы нашли клиентов на общемировом рынке (как кстати нашли? так вот прямо просто? ), то логично размещаться не в России.


            1. s-kozlov
              03.09.2018 11:38
              +1

              А можно подробнее про шляпу? Я вот, например, не припомню, чтобы Amazon что-то выдавал по запросу ФСБ. Ну и историю с телеграмом еще не забыли?
              А в чем принципиальная сложность найти клиентов не из России?


              1. mgremlin
                03.09.2018 17:55

                Шляпа возникает тогда, когда клиенты в России все-таки есть, а сервер в AWS попал под ковровую бомбардировку РКН.

                И это еще никто не сказал про требования хранить персданные граждан РФ внутри РФ…


                1. s-kozlov
                  04.09.2018 04:44

                  Довольно странно признавать неадекватность РКН («ковровые бомбардировки») и этим обосновывать помещение серверов в России.


  1. Travelcamnet
    01.09.2018 23:54

    Немного некорректное сравнение. Для сравнения стоит использовать соответствующий сервис
    aws.amazon.com/ru/lightsail/pricing


    1. fiftin Автор
      02.09.2018 00:01

      Lightsail хоть и создан Amazon и, наверняка, на базе AWS, не интегрирован в инфраструктуру AWS.
      ИМХО: его можно рассматривать как конкурента AWS.


      1. 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.»


        1. fiftin Автор
          02.09.2018 09:22

          Да, точно, вы правы. Спасибо что подсказали. Тогда Lightsail тоже можно записать в достоинства AWS :)


  1. psFitz
    02.09.2018 02:30

    hetzner в опрос можно добавить


    1. rub_ak
      02.09.2018 07:59

      А ещё ArubaCloud, и возможность выбрать несколько.


  1. r0mik
    02.09.2018 09:12

    те же сервисы от гугла и майкрософта и дешевле и, соответственно, более-полно можно использовать тестовый бесплатный период. aws как-то уж слишком дорог, а преимуществ перед тем же гуглом лично я не вижу, по крайней мере в конфигурациях начального уровня, на которые и рассчитан тестовый бесплатный период…


    1. fiftin Автор
      02.09.2018 09:31

      Как правильно заметили в комментарии выше, у Amazon ещё есть Lightsail, который по ценам соответствует тем же DigitalOcean, но позволяет интегрироваться с AWS. aws.amazon.com/ru/lightsail/pricing. Самый дешёвый инстанс $3.5.

      У гугла и микрософта такого нет :-)


      1. zeolant
        02.09.2018 10:02

        У гугла есть бесплатный App Engine + Datastore. Скорей всего с ограничением по трафику, детали я не помню уже.


        1. Fedcomp
          02.09.2018 11:24
          +1

          и отсутствие нормальной техподдержки?


        1. 45Green
          02.09.2018 14:08

          У App Engine вроде 1 ГБ в день бесплатно, а далее до 14,4 ТБ платно.


      1. r0mik
        02.09.2018 10:28
        +1

        я о самых типичных конфигурациях, о каких-то банальных VDS-ах а-ля LAMP.
        вот, к примеру в гугле за подобную ВДС-ку, что-то за 2мес «бесплатного» использования, при нагрузке 24х7, не менее 30-50% загрузки процессора, при 2х ядрах, 2х GB и вроде бы 25 SSD, мне насчитали $40 из $300 «бесплатных на год».
        то есть, при самых худших раскладах мне этой бесплатной ВДС хватит на полгода.
        в амазоне же я мало того что смогу бесплатно лишь в 2 с лишним раза более слабую конфигурацию выбрать, которой мне даже под самый слабый контейнер не хватит, так она еще и не будет полностью бесплатной, потому что как минимум за трафик платить придется (ибо бесплатного не хватит никому). вообще бесплатная конфигурация в амазоне требует постоянного надзора, как минимум что бы не выйти за рамки и не получить однажды письмо счастья о невозможности снятия 50 баксов с карты на которой отродясь таких денег не водилось и не планировалось.
        да, можно сказать что ССЗБ и вообще-то все это решаемо, но тем не менее — в гугле я единожды засетапил, при этом цену с 90% достоверностью я знаю заранее, и могу забыть до примерного подхода сроков (за одним правда исключением, но это ничто по сравнению с амазоном).
        вот. как-то так. то есть с т.з. полноценной «шары» гуглосервисы, безусловно, выгодней)) сервисы от мс лишь чуть дороже, я правда их только поверхностно смотрел…


  1. s-kozlov
    02.09.2018 09:34

    Certificate Manager — позволяет бесплатно создавать SSL-сертификаты для ваших доменов, которые можно использовать в Load Balancer, CloudFront и других сервисах Amazon. Но его не получится использовать непосредственно на виртуальных серверах.

    Позволяет ли? У меня ни разу не получилось создать ни одного. Бесплатная поддержка проблему не решила. Решать через платную, т.е. репортить баги амазона за свои же деньги, — ищите другого дурака.
    Ну и после того, как letsencrypt стали выдавать wildcard certs, стало непонятно, зачем вообще нужен ACM.


    1. fiftin Автор
      02.09.2018 09:55
      +1

      Да, точно позволяет. Ни за один не платил:

      image


  1. SlavikF
    02.09.2018 09:37

    Хорошо, что Амазон хоть вменяемо показывает, за что он берёт деньги.
    Я тут в США помогаю одной миссии и им под некоторые проекты Microsoft дал ежегодный $5000 грант на Azure.
    Прошло почти два месяца, как я там запустил кое-что и я до сих пор не знаю, если нам хватит этих денег на год.

    Запустил:
    — VM (B2ms) Win Server для бухгалтерии
    — VM (B2s) Ubuntu для хостинга сайтов
    — File Share для хостинга ~200GB файлов

    Вот самое лучшее (понятное) что я пока смог увидеть:



    Из этого я надеюсь, что самая первая (самая дорогая) строчка — это за то что я заливал туда файлы (Write Operations), а хранение вроде бы дешевле…

    Сам Azure рекомендует подписаться на какой-то сторонний(!) сервис Cloudyn, в котором весь биллинг мне станет понятным…


  1. EviGL
    02.09.2018 10:14
    +1

    Статья отлично поясняет, почему AWS настолько дорогой. Потому что тем кто "подсел" приходится оплачивать огромное количество "бесплатников" с довольно щедрыми лимитами.
    Вывод — подсаживаться не стоит. А бесплатником быть почему бы и нет.


    1. Ipeacocks
      02.09.2018 18:08

      Не совсем. Если нужна какая-то приличная инфраструктура и на вагон инженеров не хочется тратить денег — то cloud самое оно. Но даже с AWS (да и любым клаудом) юзать специфические сервисы, которым нет близких аналогов в opensource, не стОит.


  1. vrangel
    02.09.2018 15:26
    +1

    Вопрос от новичка: Как у AWS обстоят дела с DDOS защитой? Нужно ли отдельно платить?


    1. fiftin Автор
      02.09.2018 15:38

      За защиту от DDoS нужно платить отдельно (причем, как обычно, цены нехилые):


      Для начинающего проекта это нереально дорого, по-этому в статье написано про CloudWatch, чтобы во-время обнаружить атаку, разрулить вручную и не разориться.

      Если не предпринять мер, то за весь трафик придется заплатить вам ($0.09 за ГБ).


      1. vrangel
        02.09.2018 16:18

        Насколько я понял, базовая защита от DDOS бесплатна, в рамках AWS Shield Standard.


        1. fiftin Автор
          02.09.2018 18:39

          Я проводил такой такой эксперемент: скачивал в цикле видео файл с CloudFront с двух серверов в 5 или 10 потоков (не помню). За несколько минут я скачать около 100 ГБ. Это ~ $9. Это конечно же не DDoS, но можно сделать вывод что если будет DDoS, то ты сначала разоришься, а потом сработает защита от DDoS.


    1. fiftin Автор
      02.09.2018 15:44

      На самом деле, чтобы разораться даже DDoS атака не нужна.
      Достаточно просто чтобы кто-то качал 1 файл с вашего сервера/S3/CloudFront в цикле. Если кто-то скачает 100 ГБ с вашего сайта, вы заплатите за это $9. По-этому нужно быть осторожным, настроить CloudWatch, следить за трафиком!


  1. 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. Работа такого сайта при малой посещаймости будет стоить почти нисколько.


    1. doom369
      02.09.2018 17:23
      +1

      Статику лучше на бесплатном Github Pages или аналогичных сервисах. На авс был чек в 20уе в мес, на гитхаб страницах стало — 0.


      1. fiftin Автор
        02.09.2018 18:10

        Мне кажется это интересный вопрос где лучше хранить статику.

        Я раньше тоже хранил статику на GitHub. Но у такого способа есть недостатки:

        1. Невозможность привязать SSL-сертификат
        2. если коммитить очень быстро, то контент начинает обновляться с задержкой.

        В итоге я отказался от этого способа и стал хранить статику на сервере, а раздавать через Cloudflare:

        1. Бесплатный SSL-сертификат
        2. Мгновенное обновление контента на сайте, если перевети Cloudflare в development-режим.


        1. doom369
          02.09.2018 19:48

          Невозможность привязать SSL-сертификат

          Можно

          если коммитить очень быстро, то контент начинает обновляться с задержкой.

          Обычно минута-две. Для статики совсем не критично.


          1. fiftin Автор
            03.09.2018 08:51
            +1

            Невозможность привязать SSL-сертификат
            Можно

            Ух ты, точно. В мае появилась возможность: blog.github.com/2018-05-01-github-pages-custom-domains-https


  1. 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 — это вообще плевое дело.


    1. fiftin Автор
      02.09.2018 18:53

      На все вопросы которые вы задали в комментарии есть ответы в статье.


      1. Ipeacocks
        02.09.2018 19:01

        Ок, для абсолютно нулячих проектов может и подойдёт. Иначе — это костылестроение. Лучше заплатить честную сумму простому хостингу, чем извращаться вот так.


        1. fiftin Автор
          02.09.2018 19:11

          Да, это констыль, но может он кому-то пригодится :) Например тому, у кого нет лишних $30 в месяц, но есть желание создать сайт/приложение и есть время изучить AWS.


          1. 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 — хорошая цель.


    1. Vilgelm
      02.09.2018 21:00

      OVH и Vultr умеют в приватные сети, но при этом стоят сильно дешевле. У OVH при этом еще и скорости лучше. И трафик бесплатен, хоть и в каких-то пределах.


      1. Ipeacocks
        02.09.2018 21:22
        +1

        Это я больше образно. В DO например тоже есть, но настроек для них особо нет. Т.е. ограничения большие.

        Плюс AWS/Google Cloud — это еще и качественный API (и например Terraform) и куча хорошей документации.


  1. dennis777
    02.09.2018 22:10

    Кстати, мало кто знает, но на БЕСПЛАТНОМ уровне пользования — можно хостить Вордпресс сайт, который не падает от 5к одновременных посещений. Nginx + правильные настройки кеширования помогают прям на микроинстансах держать достаточно ресурсоемкие хрени вроде Вордпресса


  1. AlexPu
    02.09.2018 22:43

    >>Ценообразование на AWS очень коварное, поэтому советую привязать к аккаунту виртуальную карту.

    А что, так можно???? Не знаю как сейчас, но раньше они принимали только кредитные карты. Это впрочем не мешало мне использовать Free Tier несколько раз (то-ли три то0ли четыре) — просто используя разные кредитные карты. Я разок попытался использовать дебетовую (и виртуальную тоже пытался), но их не приняли. Правда это довольно давно было


    1. fiftin Автор
      03.09.2018 09:03

      Всегда только виртуальные карты с небольшим лимитом привязываю)


  1. andronov
    02.09.2018 23:19
    +1

    Думаю сравнение AWS с Linode/Vultr/DigitalOcean абсолютно некорректно. EC2 это только лишь малая часть экосистемы AWS. Ну да, у того же Vultr есть какой-то свой недоделанный вариант S3/EFS, но он не идет ни в какое сравнение с тем как работает настоящий S3 или EFS.
    Тема AWS в последнее время это по большей части Serverless Services и там их великое множество с огромнейшими возможностями интеграции внутри экосистемы.
    Тоже самое с Azure и Google Cloud — они игроки в своих областях, только издалека чем-то похожие друг на друга.


    1. fiftin Автор
      03.09.2018 09:15

      Я сравнивал цены на VM. Можно иметь сервера на DigitalOcean и пользоваться Serverless сервисами AWS, верно же?

      Azure практически не отличается от AWS по возможностям (приходится работать и с тем и с другим).


      1. andronov
        03.09.2018 09:55

        Можно, не всегда есть смысл, потому как изюминка в интеграции, а иначе проще полностью все поднимать на том же DO.
        Я занимался одним проектом в котором географически распределенный CDN строился на дешевых VPS. Если знать рынок то можно сделать все гораздо дешевле, но скорее всего и более трудо-затратно.
        Azure отличается от AWS, но ближе к нему чем Google Cloud… Вопрос в том как сравнивать. Я сертифицировался и по тому и по другому. Когда начинаешь копать детали и смотреть на подход Амазон и Майкрософт, то понимаешь что идеи разные, хоть и визуально кажется что сервисы очень похожи.


        1. 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
          и т.д.