Размещение веб-приложения на Amazon Web Services. Дёшево. Возможно ли это?

    Наверняка все слышали про 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, при должной аккуратности и внимательности, позволяет значительно сэкономить на начальном этапе развития проекта.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Какой облачный сервис вы предпочитаете для размещения личных проектов?
    Поделиться публикацией

    Похожие публикации

    Комментарии 58
      +4
      Всем амазон хорош. Кроме отсутствия расположения в России и жутко дорогого трафика.
        +14
        Как раз таки отсутствие расположения в России — большой плюс.
          0
          Как раз таки отсутствие расположения в России — большой плюс.

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

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

                  И это еще никто не сказал про требования хранить персданные граждан РФ внутри РФ…
                    –1
                    Довольно странно признавать неадекватность РКН («ковровые бомбардировки») и этим обосновывать помещение серверов в России.
                      +1
                      Что странного? Ну вот есть уже клиенты, их надо как-то обслуживать. Забугорный сервер попал под обстрел. Все, выкинуть людей и бизнес в пропасть?
                        0
                        Вы так говорите, как будто российский сервер чем-то лучше в плане попадания под обстрел.
                          0
                          Я вроде не слышал, чтоб какой-нибудь селектел миллионами блочили — ошибаюсь? ну и требования закона все же иногда есть смысл исполнять.

                          Еще раз: я вовсе не оправдываю РКН, и из десятка серверов в хозяйстве в России расположен только один, и тот до недавнего времени работал в режиме прокси. Но текст про 9.5 все-таки очень уж упрощающий. Даже для декларации.
        +1
        Немного некорректное сравнение. Для сравнения стоит использовать соответствующий сервис
        aws.amazon.com/ru/lightsail/pricing
          0
          Lightsail хоть и создан Amazon и, наверняка, на базе AWS, не интегрирован в инфраструктуру AWS.
          ИМХО: его можно рассматривать как конкурента AWS.
            0
            Я пока что чисто теоретик, но разве Amazon VPC peering не делает его интегрированным в инфраструктуру? К тому же, оттуда же: «Some AWS resources, such as Amazon S3, Amazon CloudFront, and Amazon DynamoDB don't require VPC peering to be enabled.»
              0
              Да, точно, вы правы. Спасибо что подсказали. Тогда Lightsail тоже можно записать в достоинства AWS :)
          0

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

            +1
            А ещё ArubaCloud, и возможность выбрать несколько.
            0
            те же сервисы от гугла и майкрософта и дешевле и, соответственно, более-полно можно использовать тестовый бесплатный период. aws как-то уж слишком дорог, а преимуществ перед тем же гуглом лично я не вижу, по крайней мере в конфигурациях начального уровня, на которые и рассчитан тестовый бесплатный период…
              0
              Как правильно заметили в комментарии выше, у Amazon ещё есть Lightsail, который по ценам соответствует тем же DigitalOcean, но позволяет интегрироваться с AWS. aws.amazon.com/ru/lightsail/pricing. Самый дешёвый инстанс $3.5.

              У гугла и микрософта такого нет :-)
                0
                У гугла есть бесплатный App Engine + Datastore. Скорей всего с ограничением по трафику, детали я не помню уже.
                  +1
                  и отсутствие нормальной техподдержки?
                    0
                    У App Engine вроде 1 ГБ в день бесплатно, а далее до 14,4 ТБ платно.
                    +1
                    я о самых типичных конфигурациях, о каких-то банальных VDS-ах а-ля LAMP.
                    вот, к примеру в гугле за подобную ВДС-ку, что-то за 2мес «бесплатного» использования, при нагрузке 24х7, не менее 30-50% загрузки процессора, при 2х ядрах, 2х GB и вроде бы 25 SSD, мне насчитали $40 из $300 «бесплатных на год».
                    то есть, при самых худших раскладах мне этой бесплатной ВДС хватит на полгода.
                    в амазоне же я мало того что смогу бесплатно лишь в 2 с лишним раза более слабую конфигурацию выбрать, которой мне даже под самый слабый контейнер не хватит, так она еще и не будет полностью бесплатной, потому что как минимум за трафик платить придется (ибо бесплатного не хватит никому). вообще бесплатная конфигурация в амазоне требует постоянного надзора, как минимум что бы не выйти за рамки и не получить однажды письмо счастья о невозможности снятия 50 баксов с карты на которой отродясь таких денег не водилось и не планировалось.
                    да, можно сказать что ССЗБ и вообще-то все это решаемо, но тем не менее — в гугле я единожды засетапил, при этом цену с 90% достоверностью я знаю заранее, и могу забыть до примерного подхода сроков (за одним правда исключением, но это ничто по сравнению с амазоном).
                    вот. как-то так. то есть с т.з. полноценной «шары» гуглосервисы, безусловно, выгодней)) сервисы от мс лишь чуть дороже, я правда их только поверхностно смотрел…
                  +1
                  Certificate Manager — позволяет бесплатно создавать SSL-сертификаты для ваших доменов, которые можно использовать в Load Balancer, CloudFront и других сервисах Amazon. Но его не получится использовать непосредственно на виртуальных серверах.

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

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

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

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



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

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

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

                        0
                        Не совсем. Если нужна какая-то приличная инфраструктура и на вагон инженеров не хочется тратить денег — то cloud самое оно. Но даже с AWS (да и любым клаудом) юзать специфические сервисы, которым нет близких аналогов в opensource, не стОит.
                        +1
                        Вопрос от новичка: Как у AWS обстоят дела с DDOS защитой? Нужно ли отдельно платить?
                          0
                          За защиту от DDoS нужно платить отдельно (причем, как обычно, цены нехилые):

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

                          Если не предпринять мер, то за весь трафик придется заплатить вам ($0.09 за ГБ).
                            0
                            Насколько я понял, базовая защита от DDOS бесплатна, в рамках AWS Shield Standard.
                              0
                              Я проводил такой такой эксперемент: скачивал в цикле видео файл с CloudFront с двух серверов в 5 или 10 потоков (не помню). За несколько минут я скачать около 100 ГБ. Это ~ $9. Это конечно же не DDoS, но можно сделать вывод что если будет DDoS, то ты сначала разоришься, а потом сработает защита от DDoS.
                            0
                            На самом деле, чтобы разораться даже DDoS атака не нужна.
                            Достаточно просто чтобы кто-то качал 1 файл с вашего сервера/S3/CloudFront в цикле. Если кто-то скачает 100 ГБ с вашего сайта, вы заплатите за это $9. По-этому нужно быть осторожным, настроить CloudWatch, следить за трафиком!
                            +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
                              Статику лучше на бесплатном Github Pages или аналогичных сервисах. На авс был чек в 20уе в мес, на гитхаб страницах стало — 0.
                                0
                                Мне кажется это интересный вопрос где лучше хранить статику.

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

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

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

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

                                  Можно

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

                                  Обычно минута-две. Для статики совсем не критично.
                            +2
                            Если бизнес маленький и состоит из пары серверов — то конечно AWS не стоит использовать, он дорогой. Но если уже серверов около десятка и нужны уже приватные сети — то какие варианты? Верно: cloud-платформы.

                            В таком случае цена плюс-минус обоснована, потому как таких фич, например, в Digital Ocean нет (или не всегда есть или с дикими ограничениями), а содержание отдельного DC — это куча денег (в т.ч. на зп сотрудникам), большие сроки, куча нерв. Более того, хоть AWS и дорог, он позволяет о многих вещах не думать — например высокую доступность балансировщиков, гейтвеев и т.п. Иначе же это достаточно сложные инженерные решения, которые кто-попало с улицы не сделает. Digital Ocean и AWS — это разные рынки и нужно исходить из потребностей при выборе.

                            Юзать AWS из-за Free Tier — это вообще бред. Во первых это только на первый год, а потом что — мигрировать на новый AWS аккаунт? Также у Free Tier входит одна виртуалка с 1гб в месяц, а за вторую (если одной будет мало) вы заплатите как за просто две в Digital Ocean?

                            В общем я о том, что логика отсутвует. Это уже не говоря о том, что попасть на деньги в AWS — это вообще плевое дело.
                              0
                              На все вопросы которые вы задали в комментарии есть ответы в статье.
                                0

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

                                  0
                                  Да, это констыль, но может он кому-то пригодится :) Например тому, у кого нет лишних $30 в месяц, но есть желание создать сайт/приложение и есть время изучить AWS.
                                    0
                                    За $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
                                      А потом у OVS этот сервер накроется медным тазом, и парни просто разведут руками.
                                      была у меня помойка терабайтная для файлов… пока не кончилась.
                                        0
                                        А у AWS или Azure не наворачиваются? Сплошь и рядом.
                                        OVH хотя бы все дедики продаёт с RAID (Soft/Hard). А вот что там идёт с AWS / Azure — не разберёшь…

                                        В общем без backup — никуда
                                          +1
                                          В AWS и прочих можно сделать снапшот, и это довольно недорого.
                                          А вот забэкапить терабайтный RAID — это задача нетривиальная.
                                          Кстати, мне именно это и сказали (неофициально, ессно) в суппорте овх, когда сервак накрылся: надо было бэкапить (sic!) в AWS S3!!! :-)
                                0
                                OVH и Vultr умеют в приватные сети, но при этом стоят сильно дешевле. У OVH при этом еще и скорости лучше. И трафик бесплатен, хоть и в каких-то пределах.
                                  +1
                                  Это я больше образно. В DO например тоже есть, но настроек для них особо нет. Т.е. ограничения большие.

                                  Плюс AWS/Google Cloud — это еще и качественный API (и например Terraform) и куча хорошей документации.
                                +1
                                Кстати, мало кто знает, но на БЕСПЛАТНОМ уровне пользования — можно хостить Вордпресс сайт, который не падает от 5к одновременных посещений. Nginx + правильные настройки кеширования помогают прям на микроинстансах держать достаточно ресурсоемкие хрени вроде Вордпресса
                                  0
                                  >>Ценообразование на AWS очень коварное, поэтому советую привязать к аккаунту виртуальную карту.

                                  А что, так можно???? Не знаю как сейчас, но раньше они принимали только кредитные карты. Это впрочем не мешало мне использовать Free Tier несколько раз (то-ли три то0ли четыре) — просто используя разные кредитные карты. Я разок попытался использовать дебетовую (и виртуальную тоже пытался), но их не приняли. Правда это довольно давно было
                                    0
                                    Всегда только виртуальные карты с небольшим лимитом привязываю)
                                    +1
                                    Думаю сравнение AWS с Linode/Vultr/DigitalOcean абсолютно некорректно. EC2 это только лишь малая часть экосистемы AWS. Ну да, у того же Vultr есть какой-то свой недоделанный вариант S3/EFS, но он не идет ни в какое сравнение с тем как работает настоящий S3 или EFS.
                                    Тема AWS в последнее время это по большей части Serverless Services и там их великое множество с огромнейшими возможностями интеграции внутри экосистемы.
                                    Тоже самое с Azure и Google Cloud — они игроки в своих областях, только издалека чем-то похожие друг на друга.
                                      0
                                      Я сравнивал цены на VM. Можно иметь сервера на DigitalOcean и пользоваться Serverless сервисами AWS, верно же?

                                      Azure практически не отличается от AWS по возможностям (приходится работать и с тем и с другим).
                                        0
                                        Можно, не всегда есть смысл, потому как изюминка в интеграции, а иначе проще полностью все поднимать на том же DO.
                                        Я занимался одним проектом в котором географически распределенный CDN строился на дешевых VPS. Если знать рынок то можно сделать все гораздо дешевле, но скорее всего и более трудо-затратно.
                                        Azure отличается от AWS, но ближе к нему чем Google Cloud… Вопрос в том как сравнивать. Я сертифицировался и по тому и по другому. Когда начинаешь копать детали и смотреть на подход Амазон и Майкрософт, то понимаешь что идеи разные, хоть и визуально кажется что сервисы очень похожи.
                                          0
                                          Разная реализация одного и тогоже:
                                          — 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
                                          и т.д.
                                      0

                                      Голосовалка должна быть все таки с множественным выбором.
                                      Мы вот используем и AWS (SNS, S3, Lambda, CloudFront, EC2), и DO, и Azure в последнее время начали использовать… У всех есть свои плюсы и минусы.

                                        0
                                        Интересно, почему вы пользуетесь Azure? Какие у него преимущества? Мне приходится им пользоваться, но для меня это испытание.
                                          0

                                          Используем blob storage. Просто по двум причинам: дешевле, да и просто удобнее извлечение по сравнению с AWS Glacier.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое