Amazon Elastic Compute Cloud ( EC2 ) является частью платформы облачных вычислений Amazon.com , Amazon Web Services (AWS), которая позволяет пользователям арендовать виртуальные компьютеры для запуска своих собственных компьютерных приложений. EC2 поощряет масштабируемое развертывание приложений, предоставляя веб-сервис , с помощью которого пользователь может загрузить образ машины Amazon (AMI) для настройки виртуальной машины , которую Amazon называет «экземпляром», содержащей любое желаемое программное обеспечение. Пользователь может создавать, запускать и завершать экземпляры серверов по мере необходимости, платя за активные серверы посекундно – отсюда и термин «эластичный». EC2 предоставляет пользователям контроль над географическим расположением экземпляров, что позволяет оптимизировать задержку и обеспечить высокий уровень избыточности . [2] В ноябре 2010 года Amazon перевела свою собственную платформу розничных веб-сайтов на EC2 и AWS. [3]
Amazon объявила об ограниченном публичном бета-тестировании EC2 25 августа 2006 г. [4] , предлагая доступ в порядке очереди. Amazon добавила два новых типа инстансов (Large и Extra-Large) 16 октября 2007 г. [5] 29 мая 2008 г. были добавлены еще два типа: High-CPU Medium и High-CPU Extra Large. [6] Было доступно двенадцать типов экземпляров. [7]
27 марта 2008 года Amazon добавила три новые функции: [8] статические IP-адреса, зоны доступности и ядра, выбираемые пользователем. 20 августа 2008 года Amazon добавила Elastic Block Store (EBS) [9] . Это обеспечивает постоянное хранилище — функцию, которой отсутствовало с момента появления этой услуги.
Полномасштабное производство Amazon EC2 началось после прекращения выпуска бета-версии 23 октября 2008 года. В тот же день Amazon объявила о следующих функциях: [10]
Эти функции были впоследствии добавлены 18 мая 2009 г. [11]
Amazon EC2 был разработан в основном командой из Кейптауна, Южная Африка, под руководством Криса Пинкхема. [12] [13] Пинкхэм предоставил первоначальное руководство по архитектуре EC2, а затем сформировал команду и возглавил разработку проекта вместе с Виллемом ван Бильоном .
Первоначально EC2 использовал исключительно виртуализацию Xen . [14] Однако 6 ноября 2017 года Amazon анонсировала [15] новое семейство инстансов C5, основанное на специальной архитектуре на основе гипервизора KVM , называемой Nitro. [16] [17] Каждая виртуальная машина, называемая «экземпляром», функционирует как виртуальный частный сервер . Amazon определяет размер экземпляров на основе «эластичных вычислительных единиц». Производительность идентичных виртуальных машин может различаться. [18] 28 ноября 2017 года AWS объявила о предложении типа инстанса «голого железа», что стало заметным отходом от предложения исключительно виртуализированных типов инстансов. [19]
По состоянию на январь 2019 года предлагались следующие типы инстансов: [20]
По состоянию на апрель 2018 года [update]предлагались следующие способы оплаты по экземплярам: [21]
По состоянию на апрель 2018 года [update]Amazon взимала около 0,0058 доллара в час (4,176 доллара в месяц) за самую маленькую виртуальную машину «Nano Instance» (t2.nano) под управлением Linux или Windows. Инстансы, оптимизированные для хранилища, стоят до 4,992 долларов США в час (i3.16xlarge). «Зарезервированные» экземпляры могут стоить всего 2,50 доллара США в месяц при трехлетнем плане с предоплатой. [a] [24] [25] Стоимость передачи данных варьируется от бесплатной до 0,12 доллара США за гигабайт, в зависимости от направления и ежемесячного объема (входящая передача данных бесплатна для всех сервисов AWS [26] ).
Затраты EC2 можно проанализировать с помощью отчета Amazon Cost and Usage Report. Существует множество различных категорий затрат для EC2, включая почасовую оплату за экземпляры, передачу данных, тома EBS, моментальные снимки томов EBS и шлюз Nat. [27]
По состоянию на декабрь 2010 года [update]Amazon предложила [28] пакет бесплатных кредитов на ресурсы новым владельцам учетных записей. Кредиты предназначены для эксплуатации сервера «микро» размера, хранилища (EBS) и пропускной способности в течение одного года. [29] Неиспользованные кредиты не могут быть перенесены с одного месяца на другой. [30]
Зарезервированные инстансы позволяют пользователям служб EC2 или RDS зарезервировать инстанс на один или три года. Соответствующая почасовая ставка, взимаемая Amazon за эксплуатацию инстанса, на 35–75 % ниже, чем ставка, взимаемая за инстансы по требованию. [31] Зарезервированные инстансы можно приобрести тремя различными способами оплаты: «Полная предоплата», «Частичная предоплата» и «Без предоплаты». Различные варианты покупки позволяют по-разному структурировать модели оплаты, причем большая скидка предоставляется клиентам, которые оплачивают бронирование заранее. [32]
Зарезервированные инстансы приобретаются на основе выделенных ресурсов. Эти резервирования выполняются на основе типа экземпляра и количества экземпляров этого типа. Например, вы можете зарезервировать 100 экземпляров i3.large сроком на 3 года.
В сентябре 2016 года AWS объявила о нескольких улучшениях зарезервированных экземпляров, представив новую функцию под названием «Область» и новый тип резервирования под названием «Конвертируемый». [33] В октябре 2017 года AWS объявила о разрешении подразделять приобретенные инстансы для большей гибкости [34]
Поставщики облачных услуг сохраняют большие объемы избыточных мощностей, которые им приходится продавать, иначе они рискуют понести убытки. [35] Спотовые инстансы Amazon EC2 — это свободные вычислительные мощности в облаке AWS, доступные со скидкой до 90 % по сравнению с ценами по требованию. [23] В качестве компромисса AWS не предлагает соглашения об уровне обслуживания для этих экземпляров, и клиенты рискуют, что оно может быть прервано с уведомлением всего за две минуты, когда Amazon понадобится восстановить ресурсы. Исследователи из Израильского технологического института обнаружили, что «они (спотовые экземпляры) обычно генерируются случайным образом в пределах узкого ценового интервала с помощью динамической скрытой резервной цены». [35] Некоторые компании, такие как Spotinst, используют машинное обучение для прогнозирования сбоев в работе за 15 минут. [36] [37]
В ноябре 2019 года Amazon объявила о планах экономии. [38] Планы экономии являются альтернативой зарезервированным инстансам [39] , которые доступны в двух разных типах планов: планы экономии вычислений и планы экономии инстансов EC2. Планы экономии вычислительных ресурсов позволяют организации взять на себя обязательство использовать EC2 и Fargate с возможностью изменения региона, семейства, размера, зоны доступности, ОС и аренды в течение срока действия обязательства. Планы EC2 Instance Savings предоставляют большую скидку, чем планы Compute Savings, но они менее гибкие. Это означает, что пользователь должен использовать отдельные семейства инстансов в регионе, чтобы воспользоваться преимуществами, но с возможностью изменять экземпляры внутри семейства в этом регионе. [40]
AWS использует Cost Explorer для автоматического расчета рекомендаций по обязательствам, которые вы должны взять на себя, как эти обязательства будут выглядеть в виде ежемесячных платежей в вашем счете за AWS. [41] Планы AWS Savings приобретаются на основе почасовых обязательств по расходам. Это почасовое обязательство осуществляется с использованием сниженной цены приобретаемого вами плана сбережений. Например, вы можете взять на себя обязательство тратить 5 долларов в час на план экономии вычислительных ресурсов сроком на 3 года. [42]
Когда сервис EC2 был запущен в августе 2006 года, он предлагал Linux , а затем OpenSolaris и Solaris Express Community Edition от Sun Microsystems . В октябре 2008 года EC2 добавила операционные системы Windows Server 2003 и Windows Server 2008 в список доступных операционных систем . [43] [44] В марте 2011 года стали доступны NetBSD AMI. [45] В ноябре 2012 года была добавлена поддержка Windows Server 2012 . [46]
С 2006 года Колин Персиваль , разработчик FreeBSD и специалист по безопасности, просил Amazon добавить FreeBSD. [47] В ноябре 2012 года Amazon официально поддержала использование FreeBSD в EC2. [48] [49] [50] Платформу FreeBSD/EC2 поддерживает Персиваль [51] , который также разработал безопасную дедупликационную облачную службу резервного копирования Amazon S3 Tarsnap . [52]
Amazon имеет собственный дистрибутив Linux на базе Fedora и Red Hat Enterprise Linux в качестве недорогого предложения, известного как Amazon Linux AMI . Версия 2013.03 включала: ядро Linux , среду выполнения Java OpenJDK и коллекцию компиляторов GNU . [53]
30 ноября 2020 года Amazon объявила, что добавит macOS в сервис EC2. Была объявлена первоначальная поддержка macOS Mojave и macOS Catalina , работающих на Mac Mini . [1]
Amazon Elastic Container Registry (ECR) — это служба реестра Docker для инстансов Amazon EC2, обеспечивающая доступ к репозиториям и образам. [54]
Amazon Elastic Kubernetes Service (EKS) — управляемая служба Kubernetes, работающая поверх EC2 без необходимости предоставления экземпляров или управления ими. [54]
Экземпляр EC2 может быть запущен с выбором двух типов хранилища для загрузочного диска или «корневого устройства». Первый вариант — это локальный диск «хранилища экземпляров» в качестве корневого устройства (изначально это был единственный вариант). Второй вариант — использовать том EBS в качестве корневого устройства. Тома хранилища экземпляров — это временное хранилище, которое сохраняется после перезагрузки экземпляра EC2, но когда экземпляр останавливается или завершается (например, вызовом API или из-за сбоя), это хранилище теряется.
Amazon Elastic Block Store (EBS) предоставляет необработанные блочные устройства , которые можно подключить к экземплярам Amazon EC2. Эти блочные устройства затем можно использовать как любое необработанное блочное устройство. В типичном случае использования это включает форматирование файловой системы устройства и его монтирование . Кроме того, EBS поддерживает ряд расширенных функций хранилища, включая создание снимков и клонирование. Тома EBS могут иметь размер до 16 ТБ. Тома EBS построены на реплицируемом хранилище, поэтому сбой одного компонента не приведет к потере данных. EBS была представлена широкой публике компанией Amazon в августе 2008 года. [9]
Тома EBS обеспечивают постоянное хранилище независимо от срока службы экземпляра EC2 и действуют так же, как жесткие диски на реальном сервере. Точнее, они выглядят как блочные устройства для операционной системы, поддерживаемые дисковыми массивами Amazon. ОС может использовать устройство по своему усмотрению. В наиболее распространенном случае загружается файловая система, а том выступает в роли жесткого диска. Другое возможное использование — создание RAID-массивов путем объединения двух или более томов EBS. RAID позволяет повысить скорость и/или надежность EBS. Пользователи могут настраивать и управлять томами хранения размером от 1 ГБ до 16 ТБ. Тома поддерживают снимки, которые можно получить с помощью инструмента с графическим интерфейсом или API. Тома EBS можно присоединять или отсоединять от экземпляров во время их работы, а также перемещать из одного экземпляра в другой. [55]
Simple Storage Service (S3) — это система хранения, в которой данные доступны для экземпляров EC2 или напрямую по сети для вызывающих абонентов, прошедших соответствующую проверку подлинности (вся связь осуществляется через HTTP). Amazon не взимает плату за пропускную способность для связи между экземплярами EC2 и хранилищем S3 «в одном регионе». Доступ к данным S3, хранящимся в другом регионе (например, к данным, хранящимся в Европе из экземпляра EC2 на восточном побережье США), будет оплачиваться по обычным тарифам Amazon.
Стоимость хранилища на базе S3 указана за гигабайт в месяц. Приложения получают доступ к S3 через API. Например, Apache Hadoop поддерживает специальную файловую систему s3: для поддержки чтения и записи в хранилище S3 во время задания MapReduce . Существуют также файловые системы S3 для Linux, которые монтируют удаленное хранилище файлов S3 к образу EC2, как если бы это было локальное хранилище. Поскольку S3 не является полной файловой системой POSIX , все может вести себя не так, как на локальном диске (например, отсутствие поддержки блокировок).
Функция эластичного IP-адреса Amazon аналогична статическому IP-адресу в традиционных центрах обработки данных, но с одним ключевым отличием. Пользователь может программно сопоставить эластичный IP-адрес с любым экземпляром виртуальной машины без помощи сетевого администратора и без необходимости ждать, пока DNS распространит привязку. В этом смысле эластичный IP-адрес принадлежит учетной записи, а не экземпляру виртуальной машины. Он существует до тех пор, пока не будет явно удален, и остается связанным с учетной записью, даже если он не связан ни с каким экземпляром. [56]
Amazon CloudWatch — это веб-сервис, который обеспечивает мониторинг использования ресурсов клиентов Amazon EC2 в режиме реального времени, таких как задержка ЦП, диска, сети и реплик для реплик базы данных RDS. [57] CloudWatch не предоставляет данные о памяти, дисковом пространстве или средней нагрузке без запуска дополнительного программного обеспечения на экземпляре. С декабря 2017 года Amazon предоставляет агент CloudWatch для операционных систем Windows и Linux, включающий информацию о диске и ранее недоступную память. [58] ранее Amazon предоставляла примеры сценариев для экземпляров Linux для сбора информации об ОС. [59] [60] Данные агрегируются и предоставляются через консоль управления AWS. Доступ к нему также можно получить через инструменты командной строки и веб-API, [61] если клиент желает контролировать свои ресурсы EC2 с помощью программного обеспечения для мониторинга предприятия. Amazon предоставляет API, который позволяет клиентам работать с сигналами тревоги CloudWatch. [62]
Метрики, собираемые Amazon CloudWatch, позволяют функции автоматического масштабирования динамически добавлять или удалять инстансы EC2. [63] Плата с клиентов взимается по количеству экземпляров мониторинга.
С мая 2011 года Amazon CloudWatch принимает пользовательские метрики [64] , которые можно отправлять программно через API веб-сервисов, а затем отслеживать так же, как и все другие внутренние метрики, включая настройку сигналов тревоги для них, а с июля 2014 года также доступен сервис Cloudwatch Logs. доступный. [65]
Базовый Amazon CloudWatch включен в сервис Amazon Free Tier.
Функция автоматического масштабирования EC2 от Amazon позволяет автоматически адаптировать вычислительную мощность к трафику сайта. [66] Механизмы автоматического масштабирования на основе расписания (например, времени суток) и правил (например, порогов использования ЦП) просты в использовании и эффективны для простых приложений. Однако одна потенциальная проблема заключается в том, что виртуальным машинам может потребоваться до нескольких минут, чтобы быть готовыми к использованию, что не подходит для приложений, критичных ко времени. Время запуска виртуальной машины зависит от размера образа, типа виртуальной машины, местоположения центра обработки данных и т. д. [67] Удобство использования EC2 позволяет динамически увеличивать емкость в соответствии с потребностями и быстро получать доступ к ресурсам. [68]
ПРИМЕЧАНИЕ. примеры, рисунки и сравнительные таблицы в этом разделе в лучшем случае относятся к 2018 году; Пожалуйста, имейте это в виду, поскольку с тех пор ситуация сильно изменилась.
Стоимость инстансов EC2 по требованию указана за час. Примером такой цены может быть 0,096 доллара США в час за экземпляр Linux, m5.large, EC2 в регионе us-east-1. Цены будут варьироваться в зависимости от типа инстанса, региона и операционной системы инстанса. Публичные цены на EC2 по запросу можно найти на веб-сайте AWS.
Другие модели ценообразования для EC2 имеют разные модели ценообразования.
Спотовые инстансы также имеют стоимость за час инстанса, но эта стоимость будет регулярно меняться в зависимости от предложения спотовых мощностей EC2.
В планах «Зарезервированные инстансы» и «Экономия вычислительных ресурсов» указана почасовая оплата. Каждый из этих инструментов бронирования имеет свою собственную цену за час в зависимости от способа оплаты, срока и используемого продукта бронирования. Эти цены фиксируются на срок 1 или 3 года.
Цена Amazon EC2 варьируется от 2,5 долларов США в месяц за инстанс «nano» с 1 виртуальным ЦП и 0,5 ГБ ОЗУ на борту до инстансов типа «xlarge» с 32 виртуальными ЦП и 488 ГБ ОЗУ, стоимость которых составляет до 3997,19 долларов США в месяц.
На диаграммах выше показано, как цены на Amazon EC2 сравниваются с аналогичными сервисами облачных вычислений: Microsoft Azure, Google Cloud Platform, Kamatera и Vultr. [69]
Чтобы сделать EC2 более отказоустойчивым , Amazon разработала зоны доступности , которые предназначены для изоляции от сбоев в других зонах доступности. Зоны доступности не используют одну и ту же инфраструктуру. Приложения, работающие в более чем одной зоне доступности, могут обеспечить более высокую доступность. [70]
EC2 предоставляет пользователям контроль над географическим расположением экземпляров, что позволяет оптимизировать задержку и обеспечить высокий уровень избыточности. Например, чтобы свести к минимуму время простоя, пользователь может настроить экземпляры сервера в нескольких зонах, которые изолированы друг от друга для большинства причин сбоев, так что один дублирует другой.
Сервисы баз данных повышенной доступности, такие как Amazon Relational Database Service, работают отдельно от инстансов EC2.
В начале июля 2008 года антиспамовые организации Outblaze и Spamhaus.org начали блокировать пул адресов Amazon EC2 из-за проблем с распространением спама и вредоносного ПО . [71]
1 декабря 2010 года Amazon прекратила предоставлять услуги WikiLeaks после того, как подверглась политическому давлению в США. [72] Ассанж заявил, что WikiLeaks выбрал Amazon, зная, что его, вероятно, отключат от сервиса, «чтобы отделить риторику от реальности». [73] [74] Интернет-группа Anonymous попыталась атаковать EC2 в отместку; однако Amazon не пострадала от атаки. [75]
12 декабря 2010 г. веб-сайты Amazon были временно отключены, хотя изначально было неясно, произошло ли это из-за атак или сбоя оборудования. Позже представитель Amazon заявил, что это произошло из-за аппаратного сбоя. [76]
Незадолго до 5 часов утра по восточному времени 21 апреля 2011 года в дата-центре EC2 в Северной Вирджинии начался сбой, в результате которого были отключены несколько веб-сайтов, включая Foursquare , Springpad , Reddit , Quora и Hootsuite . [77] [78] [79] В частности, попытки использовать сервисы эластичных дисков и баз данных Amazon зависали, терпели неудачу или были медленными. Обслуживание было восстановлено в некоторых частях центра обработки данных (три из четырех «зон доступности» по терминологии Amazon) к вечеру того же дня по восточному времени; [80] проблемы по крайней мере у некоторых клиентов продолжались по состоянию на 25 апреля. [81] 0,07% объемов EBS в одной зоне также были потеряны; Сбои EBS были частью нормальной работы даже до этого сбоя и представляли собой риск, задокументированный Amazon, [82] хотя количество сбоев и количество одновременных сбоев могут застать некоторых пользователей EC2 неподготовленными.
В воскресенье, 6 августа 2011 г., у Amazon произошло отключение электроэнергии в одной из зон доступности в Ирландии. [83] Первоначально в отключении электроэнергии обвиняли молнию; однако 11 августа ирландский поставщик энергии ESB Networks назвал это причиной, но на момент написания не смог подтвердить причину проблемы. [84] Отключение электроэнергии вызвало множество вопросов относительно инфраструктуры Amazon EBS, что привело к обнаружению нескольких ошибок в их программном обеспечении. Ошибки привели к удалению данных некоторых клиентов при восстановлении томов EBS во время операции записи во время сбоя. [85]
8 августа 2011 года произошло еще одно отключение сетевого подключения в дата-центре Amazon в Северной Вирджинии, в результате чего были отключены такие сервисы, как Reddit, Quora, Netflix и FourSquare. [86] Отключение продолжалось около 25 минут.
Еще один сбой в дата-центре Северной Вирджинии произошел 22 октября 2012 г. примерно с 10:00 до 16:00 по тихоокеанскому времени. Пострадали Edmodo, Airbnb, Flipboard, Reddit и другие клиенты. Ответственность взяла на себя Anonymous, но Amazon опроверг это утверждение. [87]