Как Сэкономить На Веб-Сервисах Amazon — Выбор Эффективной Архитектуры

Всем привет! Сегодня мы поговорим о том, как «профессионально сэкономить» деньги при использовании облачных сервисов Amazon Web Services при хостинге веб-решений, адаптированных для России.

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

Довольно странно, что очищенная от маркетинговой ерунды важная тема оптимизации затрат на Amazon Web Services как-то не особо представлена в Интернете.

Я постараюсь предметно поделиться своим опытом и обозначить очевидные преимущества и ошибки, которые следует учитывать при проектировании веб-систем.



Где запустить приложение?

В США (Вирджиния, Орегон) стоимость почасовой аренды виртуальные машины существенно дешевле, чем, например, в Европе и других регионах AWS. Но это все равно цветы.

Ягоды - если брать виртуальные машины оптом на год вперед - тогда за виртуальные машины в Европе вы заплатите почти на 50% меньше, а в США - на 60% меньше (мы используем стандартные виртуальные машины: m1*, m2*, c*).

Если вы покупаете автомобили на 3 года вперед, экономия будет еще больше.



Как сэкономить на веб-сервисах Amazon — выбор эффективной архитектуры

Кроме того, Amazon запускает в производство новые полезные технологии, обычно сначала в США.

Например диски с гарантированным и заданным количеством IOPS при создании - поставил минимум 1500 IOPS на 4-х дисках в рейде 10 и забыл о производительности MySQL :-) Также, облачный кэш И СМС-уведомления из облака впервые появились в американских дата-центрах Amazon. То есть, если вы хотите быть на шаг впереди и платить меньше за услуги — запускайте в дата-центрах в США.

Однако размещение российских проектов в США имеет и свои недостатки.

Один из них — задержка 150 мс — но если статические ресурсы передаются в Амазон CDN или внутренний CDN — тогда задержка практически незаметна, поскольку клиент получает статические данные с ближайших к браузеру серверов с минимальной задержкой (единицы, максимум десятки мс).

Во-вторых, дата-центры в США, особенно крупнейший в Вирджинии, падают, мягко говоря, чаще, чем ближайший европейский в Ирландии.

Видимо в США грозы случаются чаще :-) В общем, если вы хотите новые эффективные технологии в облаке, дешевле, вы готовы настроить CDN для возврата статических данных и разместить приложение как минимум в 2-х локальных дата-центрах в регионе Amazon для переключения трафика с одного DC на другое незаметное для клиента попадание молнии или другого предмета - можете смело выбирать США и размещать там свое веб-решение (это не сарказм, это минимум, чтобы клиент почти ничего не заметил :-) ).



Ээкономия за счет архитектуры веб-решения

Вот самая интересная часть.

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

на неиспользуемых мощностях облачный провайдер, стоимость которого В НЕСКОЛЬКО РАЗ ниже номинальной почасовой ставки - т.е.

почти даром :-) Те.

Если:

  1. Ваше приложение не хранит файлы на виртуальном диске, а хранит данные в базе данных и/или памяти.

  2. Образ виртуальной машины запускается контроллер группы автоматического масштабирования - например, в зависимости от нагрузки (у нас именно так)
  3. Клиенты получают доступ к кластеру машин через облачный балансировщик
тогда вы совершенно спокойно, без технических рисков, сможете настроить 2 группы автомасштабирования — основную и «копейочную».

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

, нагрузка автоматически будет принята на себя основной группой машин.

В любом случае вы сэкономите в несколько раз на почасовой стоимости.

Вот конкретный пример:

Как сэкономить на веб-сервисах Amazon — выбор эффективной архитектуры



Как сэкономить на веб-сервисах Amazon — выбор эффективной архитектуры

Розничная стоимость виртуальной машины c1.xlarge в регионе us-east-1: 0,58 доллара США.

Стоимость той же виртуальной машины, арендованной в качестве спотового инстанса в обмен на неиспользованные ресурсы, порой поднимается выше $0,08. Те.

если у вас есть кластер из 15 c1.xlarge — сделайте 2 кластера, один с «дешевыми» машинами размера 13, и один из стандартных машин размером 2 за $0,58. В случае возможного повышения цены спотовых инстансов выше номинальной каждые несколько месяцев вы автоматически масштабируете стандартный кластер.

Однако отмечу, что такой большой экономии можно добиться, к сожалению, только в американских регионах Amazon — в Европе спотовые инстансы стоят не так дешево, но и существенно дешевле обычных (0,17 доллара вместо 0,08 доллара в данном примере).

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

Ваше веб-приложение должно иметь возможность обрабатывать этот случай и автоматически расширять кластер обычных компьютеров.

Мы решили эту проблему, совместив тест использования ЦП в CloudWatch с группами автомасштабирования — работает «из коробки» без головной боли.



Полученные результаты

Это не все способы «экономить как профессионал» с помощью AmazonWebServices. В следующих статьях я расскажу о других, не менее эффективных методах — например, копирование корзины s3 в корзину s3 без сжигания трафика и т. д. В статье я постарался объективно обосновать плюсы и минусы, риски использования американских регионов Amazon для российских веб-проектов и на примере показал, что заложив масштабируемую кластерную архитектуру для веб-решения, можно существенно сэкономить на аренда мощности виртуальной машины.

Желаю всем удачи, побольше хороших идей и эффективных архитектурных решений и приглашаю всех на конференция , посвященный отказоустойчивости веб-приложений как на обычном хостинге, так и в облаках! Теги: #1С-Битрикс #amazon #кластеризация #Разработка сайтов

Вместе с данным постом часто просматривают: