Принцип работы AWS
Знакомство с AWS
Этот материал входит в серию технических статей, написанных командой архитекторов программных решений AWS для стартапов с целью помочь создателям стартапов заложить основу для быстрого развития их бизнеса. Эта серия является общим обзором технических решений, которые необходимо принять на этапе создания стартапа, а также сервисов AWS, наиболее подходящих для их реализации.
Создание своего первого стартапа – это невероятно увлекательный процесс, требующий решения множества проблем. Вам необходимо нанять квалифицированных специалистов для создания, обслуживания и запуска продуктов, завершения следующих этапов сбора средств, выхода на мировой рынок, а также завоевания доверия клиентов путем предоставления им великолепного опыта взаимодействия с вашим продуктом, сохранения инновационных преимуществ и защиты их данных. И все это необходимо сделать, не допустив повышения издержек.
Эксперты AWS понимают это, и многие из них не понаслышке знакомы с проблемами, с которыми изо дня в день сталкиваются основатели стартапов на ранних этапах. С 2006 г., когда компания AWS впервые представила миру облачную инфраструктуру, мы работали с сотнями тысяч основателей стартапов по всему миру, помогая им развивать и расширять свой бизнес. Некоторым из них удалось совершить революционный прорыв.
С AWS ваш стартап получит множество преимуществ. В этой статье мы расскажем, как можно использовать AWS, чтобы сократить издержки, быстро приступить к разработке и сосредоточить силы и время на развитии тех аспектов продукта или услуги, которые сделают ваш стартап успешным.
Что именно представляют собой облачные вычисления?
Облачные вычисления – это предоставление ИТ-ресурсов в сети Интернет по запросу с оплатой по факту использования. Это означает, что вместо покупки, обслуживания физических центров обработки данных или серверов и владения ими вы можете получать доступ к технологическим сервисам, таким как вычислительные мощности, хранилища и базы данных, через поставщиков облачных сервисов по мере необходимости.
Как работает AWS?
Теперь, когда мы знаем, что такое облачные вычисления, давайте подробнее рассмотрим возможности AWS. AWS – это наиболее совершенная и широко используемая облачная платформа с самым широким набором сервисов в мире. Миллионы клиентов создают инфраструктуру и приложения на базе AWS. Стартапы и организации всех типов и размеров используют сервисы AWS, чтобы экспериментировать, быстрее внедрять инновации, снижать затраты и становиться более гибкими.
Поскольку мы берем на себя всю тяжелую работу, вы можете создавать и запускать приложения практически любого типа, включая социальные сети, приложения для умного города и геномных исследований, игры, потоковое видео, онлайн-банкинг и многое другое. Вы используете эти сервисы без предоплаты или долгосрочных обязательств.
Благодаря модели с оплатой по факту использования вы можете экспериментировать с различными технологиями, пока не найдете те, которые соответствуют вашим потребностям и сокращают время выхода на рынок. Таким образом, стартапы быстрее завершают разработку продукта и функций с минимальными затратами.
Сервисы AWS бывают разных типов и форм: от инфраструктурных технологий, таких как вычисления, хранилища и базы данных, до новейших технологий, таких как машинное обучение и искусственный интеллект, озера данных, аналитика, Интернет вещей и многое другое.
В некоторых сервисах вам предоставляется полный контроль, тогда как AWS управляет инфраструктурой и базовыми ресурсами. В других сервисах AWS полностью берет на себя ответственность за функционирование и безопасность, поэтому вам остается просто использовать их. Мы называем это моделью разделенной ответственности.
При использовании сервисов AWS вы решаете, какую тяжелую работу (если таковая имеется) вы хотите взять на себя.
AWS в действии: реляционная база данных для стартапа электронной коммерции
Допустим, вы работаете над стартапом в области электронной коммерции и вам нужно реляционное хранилище данных для вашего приложения. После экспериментов с различными реляционными базами данных вы выбираете MySQL.
Вы можете установить эту базу на такой сервис, как Amazon Elastic Compute Cloud (Amazon EC2), который по сути является безопасным виртуальным сервером с изменяемым размером. AWS управляет инфраструктурой вплоть до гипервизора. К сфере вашей ответственности относятся такие аспекты, как управление гостевой операционной системой, ядром MySQL или данными в БД.
Стартап электронной коммерции отвечает за обновления и исправления безопасности, масштабирование, резервное копирование, обработку отказов и многое другое. Как правило, эти задачи не имеют ничего общего с вашим основным бизнесом. Более удобным вариантом будет использование Amazon Relational Database Service (Amazon RDS). Сделав несколько щелчков мышью в Консоли управления AWS, вы получите работающую реляционную БД по вашему выбору и за очень короткое время. RDS представляет собой управляемый сервис. Это означает, что он берет на себя трудоемкие задачи администрирования базы данных, такие как подготовка, установка исправлений, резервное копирование, обнаружение сбоев и восстановление. Это позволит вам сосредоточиться на своем приложении, данных и бизнесе.
Как только вы создадите свой продукт, захотите выйти на мировые рынки и расширить охват, мировое присутствие AWS придется как нельзя кстати. Глобальная инфраструктура AWS состоит из зон доступности, регионов и периферийных местоположений.
Центры обработки данных AWS объединены с помощью частных и резервных оптоволоконных линий в так называемые зоны доступности. В пределах одного географического региона существует несколько зон доступности, например Орегон, Ирландия, Токио и т. д. Эти зоны доступности географически удалены друг от друга, в них проведены независимые коммуникации и имеются иные различия. Использование нескольких зон доступности позволяет легко проектировать масштабируемые, отказоустойчивые и высокодоступные рабочие нагрузки и управлять ими.
Важно отметить, что регионы в AWS работают независимо друг от друга, а это означает, что цены и наборы доступных сервисов в разных регионах могут отличаться. Мы рекомендуем осуществлять разработку в регионе, в котором задержка для конечных пользователей минимальна, а сервисы предлагаются по самой низкой цене. При этом необходимо соблюдать все законы о местонахождении данных, применимые к вашему бизнесу. Благодаря периферийным местоположениям AWS ваше мировое присутствие расширяется еще больше. Они позволяют кэшировать и обслуживать контент, запускать код, использовать сервисы безопасности, подключаться к магистрали сети AWS и даже выходить в космос из любой точки мира – ближе к вашим клиентам.
Все элементы этой огромной глобальной инфраструктуры связаны через океаны и континенты с помощью специальной частной сетевой инфраструктуры, обладающей малой задержкой и высокой доступностью. Сейчас мы прокладываем транстихоокеанский кабель протяженностью 14 тысяч километров, который соединит Новую Зеландию, Австралию, штаты Гавайи и Орегон.
Высочайшие стандарты конфиденциальности и безопасности данных
Наша инфраструктура и сервисы разработаны с учетом стандартов безопасности наиболее чувствительных к риску организаций, и мы предлагаем одинаковые функции всем клиентам.
Эксперты по безопасности, которые контролируют и защищают нашу инфраструктуру, также занимаются разработкой и поддержкой большого количества инновационных сервисов безопасности. Благодаря этим сервисам значительно проще соблюдать собственные требования к безопасности и требования нормативно-правовых документов.
Чтобы дать вам возможность поэкспериментировать, AWS предоставляет уровень бесплатного пользования для многих сервисов. Узнайте, какие ресурсы и как долго вы можете использовать в рамках уровня бесплатного пользования, и посмотрите, можно ли распределить рабочие нагрузки с учетом их максимального использования. Вы также можете претендовать на участие в нашей программе AWS Activate, в рамках которой бесплатно предоставляются кредиты, поддержка и обучение. Посетите страницу программы Activate, чтобы узнать критерии отбора и подать заявку.
Каждое путешествие начинается с первого шага. Теперь, когда вы познакомились с облачными вычислениями и базовыми понятиями AWS, такими как регионы, зоны доступности и сервисы, начинается самое интересное.
Источник
AWS: Хороший, плохой, злой
Здесь, в awe.sm, мы с самого начала использовали Amazon AWS для хостинга. За последние три года мы изучили, что хорошо, а что не очень и сформулировали для себя свой собственный набор правил для запуска высоко доступной, высоко производительной системы, которые в некоторых случаях отличаются от того, что советует Amazon.
Мы собираемся поговорить о следующих родственных понятиях:
- Для людей, которые слышали об Amazon, но еще не имели возможности его использовать, мы покажем все преимущества и недостатки этого сервиса, с которыми мы столкнулись в своей работе.
- Для тех, кто уже использует AWS, мы проясним некоторые детали и расскажем о лучшей практике использования Amazon для таких высокопроизводительных сервисов, как наш, где непрерывная работа системы является самым высоким критерием.
Не будет преувеличением сказать, что Amazon радикально изменил экономический аспект запуска IT стартапов, это происходило медленно и постепенно, но сейчас это факт. Никто не осознает, как много компаний используют Amazon EC2 где-либо в своей инфраструктуре, до тех пор, пока не случится сбой и не создастся впечатление, что половина Интернета перестала работать. Это не значит, что Amazon просто повезло, на самом деле у них очень хороший продукт. Все пользуются этим сервисом, потому что он очень сильно упростил запуск приложений и сервисов, значительно уменьшив количество необходимых знаний, шагов, которые нужно предпринять и денег, которые необходимы, чтобы запустить стартап.
EC2 это новый способ запуска ПО.
Первое и самое главное, что нужно знать о EC2 это то, что это не просто виртуальный хостинг. Лучше думать об этом, как о найме системного и сетевого администратора на частичную занятость. Вместо того, чтобы нанять высокооплачиваемого сотрудника, который выполнит полный объем работ и автоматизирует все для вас, вы платите немного больше за каждый сервер, но избавляетесь от целого ряда проблем. Электропитание, сетевая топология, стоимость аппаратного обеспечения, несовместимость оборудования разных производителей, сетевые хранилища данных — обо всех этих вещах приходилось думать в далеком 2004 году (или выбросить эту идею из головы). С AWS его конкурентами, количество которых быстро растет, у вас отпадает необходимость думать о подобных вещах, до тех пор пока вы не захотите чего-то большего.
Основное отличие и преимущество использования EC2 это гибкость. Мы можем запустить новый сервер быстро, очень быстро, это займет около 5-ти минут, с момента появления мысли «мне необходимо новое оборудование» до момента, когда вы можете зайти в систему в первый раз. Это дает нам возможность делать такие вещи, которые еще несколько лет назад казались невозможными, например:
- мы можем установить самые последние обновления аппаратного обеспечения. Когда у нас происходит большое обновление мы запускаем новый сервер, устанавливаем на него всё необходимое программное обеспечение, устанавливаем все зависимости, переносим конфигурационные файлы, а затем просто включаем этот сервер в наш балансировщик нагрузки, если всё в порядке мы просто убираем из балансировщика старые сервера и выключаем их, если же что-то пошло не так, мы можем легко переключить балансировщик обратно. Можно держать запущенными дубликаты старых и новых серверов в нужном нам количестве, необходимое нам время и потом выключить те, которые не нужны, без необходиомсти покупать новое оборудование.
- для некоторых не критичных систем, где один час простоя является приемлым, мы использовали следущий алгоритм: сервер мониторился и в случае появления проблем, мы просто поднимали новый хост вручную
- мы можем расширять нашу инфраструктуру в момент роста нагрузки, вместо того, чтобы устанавливать новое оборудование заранее. В слуае возростания нагрузки мы запускаем новые мощности, которые нам нужны как раз в определенный момент времени, для того чтобы справиться с текущей нагрузкой
- мы не должны заботиться о предварительном вычислении мощностей, которые нам могут понадобиться. Когда нам необходимо мы запускаем новый сервер, если он не справляется с нагрузкой мы запускаем более мощный, или наоборот, мы можем запустить более слабый, если его мощности достаточно. Это одна из лучших возможностей AWS, которая предоставляется на уровне оборудования, и это возможно только потому, что предоставление новых серверов и удаление старых происходит почти мгновенно.
EC2 является финансово выгодным для стартапов.
Самая очевидная экономическая выгода состоит в том, что мы в буквальном смысле можем стартовать с нулевыми затратами. Вы используете тот же Amazon аккаунт, который вы используете для покупки разнообразных не нужных вещей через Интернет, нажимаете кнопку и начинаете играть со своими серверами в течение часа. Вы платите только за те сервера, которые запущены и только за те дисковые накопители, которые используются, так, что стоимость старта для вас является минимальной. Это дает возмодность проводить эксперименты с оборудованием: запустить в 10 раз больше мощностей чем вам необходимо, запустить нагрузочные тесты и затем всё выключить, пока такие мощности нам действительно не понадобятся. Это не просто удобство, это революционный прорыв, на равне с другими преимуществами AWS, эта количественная особенность становится качественной.
Как я уже упоминал, AWS резко снижает операционные затраты. Вплоть до 2012 года, более двух лет с того момента как мы запустили нашу компанию у нас небыло выделенного системного администратор. Это было плохой тенденцией, мы должны были нанять хотя бы одного человека в 2011 году или раньше. Сейчас у нас работает только один системный администратор, который работает на полной занятости и управляет всей нашей инфраструктурой, состоящей из сотен серверов. Это довольно высокое отношение количества людей к количеству обслуживаемых машин. Усиливает эффект то, что у нас нет необходимости беспокоится о сети, электропитании и многом другом и как только вы привыкнете к такому, вы начинаете это недооценивать.
Конечно, это не просто хостинг, он стоит дороже обычного хостинга. Но Амазон старается убрать этот недостаток и периодически снижает цены: на 18% в октябре, на 10% в марте, и это только в этом году. Так же для экономии вы можете использовать запасные сервера, которые запускаются, при наличии свободных мощностей и стоят дешевле, вместо тех, которые запускаются по требованию. Так же при долгосрочном использовании вы можете платить заранее и пользоваться зарезервированными машинами, таким образом можно сохранить до 50%. Мы в awe.sm помешаны на надежности и используем избыточное количество оборудования, так что резервирование было большим выигрышем для нас.
EC2 имеет ряд проблем.
В этом месте хвалебное письмо заканчивается и настает время пересмотреть отношение к Amazon. Пока мы любим EC2 и не можем себе представить жизнь без него важно быть честным и понимать, что этот путь не безоблачный и не выложен лепестками роз. EC2 имеет серьезные ограничения по производительности и надежности, которых нужно остерегаться и которые нужно учитывать в своих планах.
В первую очередь это заявленная независиомсть инфраструктуры и её отказов пределах зоны доступности. Сервисы AWS расположены в нескольких локациях по всему миру, которые называются регионами доступности. Каждый регион состоит из нескольких зон доступности, которые в теории изолированы друг от друга, являются самостоятельным датацентрами, имеют самостоятельную сетевую инфраструктуру, электропитание и тому подобное. Есть несколько важных фактов, которые необходимо учесть при использовании регионов и зон доступности:
- Виртуальное оборудование это не реальное физическое оборудование.
Наши трехлетние наблюдения показали, что средний жизненный цикл виртуальной машины на EC2 — 200 дней. После этого шанс, что сервер уйдет на пенсию, сильно возрастает. И этот процесс непредсказуем: иногда тех. поддержка информирует нас заранее за 10 дней, о том, что машина будет выключена, иногда сообщение, о том, что машина будет выключена приходит через два часа после того как её выключили. Внезапно пропадающее оборудование не самая большая проблема — легко можно запустить новое, но важно учитывать этот факт и заранее потратить время на автоматизацию этого процесса, чтобы сэкономить время затрачиваемое на регулярный запуск нового оборудования. - Ваши сервера должны находиться в более чем одной зоне доступности и иметь все необходимые сервисы в обеих зонах. Наш опыт показал, что с большей вероятностью может отказать целая зона, чем отдельный сервер. Так что, если вы планируете использовать основной и резервный сервера в одной зоне доступности, в случае проблем с основным сервером вы потеряете и резервный из-за общих проблем в пределах всей зоной. ваша система в таком случае будет единой точкой отказа и вы не сможете ни востановить свои данные из резервной копии ни извлечь ваши файлы из серверов, так как при проблемах с зоной, вы даже не сможете увидеть ваши сервера, не то что извлечь из них какие-либо данные.
- Проблемы с несколькими зонами в пределах региона тоже случаются. Так что, если вы можете себе это позволить, используйте также разные регионы. US-East регион, который является самым популярным, потому что он самый старый и самый дешевый, испытывал проблемы в июне 2012, марте 2012 и самый сильный сбой был в апреле 2011, который был назван облачным апокалипсисом. Наше мнение по этому поводу, из-за которого мы возможно потеряем друзей в Amazon, нестабильная работа целых регионов случается довольно часто и случается она по одной и той же причине. Это привело нас к следующему решению.
Для обеспечения высокой надежности мы должны перестать доверять EBS.
Это тот пункт, в которым мы категорически не согласны с маркетологами Amazon и с их советами. Amazon предполагает, что использование EBS является основополагающим при пользовании EC2. Вы должны хранить все данные на EBS диске, вы можете его подключать к новым серверам, вы можете сделать снимок EBS диска для создания резервных копий базы данных и потом использовать его для восстановления. Amazon так же хочет, чтобы вы использовали EBS в качестве корневого дискового устройства системы, используя EBS-backed образы. EBS привнес нам несколько основных проблем:
- Скорость ввода-вывода на EBS неудовлетворительная
Скорость ввода-вывода на виртуальном оборудовании гораздо ниже, чем на чистом аппаратном оборудовании, но наш опыт показал, что производительность EBS гораздо ниже, чем производительность локальных дисков на виртуальной машине, которые Amazon называет ephemeral storage. EBS диски по существу являются сетевыми дисками. Производительность, которую следует ожидать от любого сетевого диска не очень большая. AWS также предоставляет диски с гарантированным количеством операций ввода-вывода, но они довольно дорогие и не подходят в качестве чуть более привлекательного компромисса. - EBS отказывает на уровне региона, а не на уровне отдельного диска.
Наш опыт показал, что EBS имеет две модели поведения: все диски доступны или все диски недоступны. Двое из трех отказов в рамках региона, которые были описаны ранее, были связаны с проблемами на уровне EBS, проблемы начались в одной зоне и распространились на другие. Если ваш план по восстановлению завязан на работу с EBS дисками, а отказ в работе обусловлен проблемами на уровне EBS, у вас ничего не выйдет, мы сталкивались с подобной проблемой несколько раз. - Проблемы с EBS на системе Ubuntu сказываются крайне тяжело: потому что EBS это сетевой диск, который эмулируется в системе под видом реального жесткого диска, это нарушает работу на уровне операционной системы. Это имело ужасные последствия для нас. Как только происходят проблемы с EBS — полностью недоступен весь сервер, к которому присоединен EBS диск, и это влияет на функциональность, которая никак не связана с дисковой активностью.
По этой причине, а так же по причине того, что наша основная цель это наибольшее время безотказной работы системы, мы полностью отказались от EBS около 6-ти месяцев назад. Мы потратили некоторое время на реализацию сложных операций, в основном связанных с резервным копированием и восстановлением, но это того стоило, учитывая увеличившееся время безотказной работы системы.
Будьте осторожны. Другие сервисы Amazon тоже могут использовать EBS.
Из-за того, что некоторые сервисы Amazon используют EBS, при проблемах на уровне EBS эти сервисы тоже недоступны. Это справедливо для балансировщика нагрузки ELB, сервиса баз данных RDS, сервиса облачных приложений Elastic Beanstalk и других.
Основываясь на нашем опыте, мы пришли к выводу, что при серьезных проблемах с Amazon, сервис EBS тоже почти всегда недоступен. Так что если EBS не работает, и вам нужно переключить балансировщик на другой регион, вы не сможете этого сделать, так как он завязан на EBS. Так же вы не сможете запустить новое оборудование, потому что консоль Amazon запущена на EBS. Так что мы любим EC2 и очень любим S3, но не используем никаких дополнительных сервисов.
Выгодной стороной нашего подхода является то, что мы легко можем переключиться на использование другого провайдера и не сильно привязываемся к AWS.
Уроки, которые мы извлекли.
Если бы мы стартовали awe.sm завтра, я бы использовал Amazon без лишних раздумий. Для стартапа с маленькой командой и с ограниченным бюджетом это то, что нужно, чтобы быстро стартовать. AWS на самом деле не предоставляет никакой угрозы, он не является чем-то страшным и плохим.
Такие IaaS провайдеры, как Joyent и Rackspace наступают на пятки Amazon: у нас есть хорошие друзья в обеих компаниях и мы собираемся сотрудничать с ними. Когда количество наших серверов вырастет с 100 до 1000, нам придется разнообразить нашу инфраструктуру этими провайдерами, а также такими, как Carpathia, которые используют AWS Direct Connect для предоставления услуг хостинга с низким временем доступа к AWS, что делает создание гибридных облачных инфраструктур более легким.
Я надеюсь, эта информация была полезна для вас.
Источник