Amazon Elastic Compute Cloud ( EC2 ) является частью платформы облачных вычислений Amazon , Amazon Web Services (AWS), которая позволяет пользователям арендовать виртуальные компьютеры , на которых они могут запускать свои собственные компьютерные приложения. EC2 поощряет масштабируемое развертывание приложений, предоставляя веб-сервис , через который пользователь может загрузить Amazon Machine Image (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]
Amazon добавил три новые функции 27 марта 2008 года [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 анонсировала экземпляр bare-metal, что является отходом от предложения исключительно виртуализированных типов экземпляров. [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] Зарезервированные экземпляры можно приобрести с тремя различными вариантами оплаты: All Upfront, Partial Upfront и No Upfront. Различные варианты покупки позволяют использовать различные структурные модели оплаты, при этом большая скидка предоставляется клиентам, которые оплачивают бронирование авансом. [32]
Зарезервированные экземпляры приобретаются на основе обязательств по ресурсам. Эти резервирования производятся на основе типа экземпляра и количества экземпляров этого типа. Например, вы можете зарезервировать 100 экземпляров i3.large на 3 года.
В сентябре 2016 года AWS анонсировала несколько улучшений для зарезервированных экземпляров, представив новую функцию под названием «область действия» и новый тип резервирования под названием «конвертируемый». [33] В октябре 2017 года AWS анонсировала возможность подразделять приобретенные экземпляры для большей гибкости. [34]
Поставщики облачных услуг сохраняют большие объемы избыточной мощности, которые они должны продать или рисковать понести убытки. [35] Спотовые экземпляры Amazon EC2 представляют собой резервную вычислительную мощность в облаке AWS, доступную со скидкой до 90% по сравнению с ценами по запросу. [23] В качестве компромисса AWS не предлагает SLA для этих экземпляров, и клиенты рискуют тем, что они могут быть прерваны всего за две минуты уведомления, когда Amazon снова потребуется мощность. Исследователи из Израильского технологического института обнаружили, что «они (спотовые экземпляры) обычно генерируются случайным образом из узкого ценового интервала с помощью динамической скрытой резервной цены». [35] Некоторые компании, такие как Spotinst, используют машинное обучение для прогнозирования спотовых прерываний за 15 минут. [36] [37]
В ноябре 2019 года Amazon анонсировала Savings Plans. [38] Savings Plans являются альтернативой Reserved Instances [39] , которые доступны в двух разных типах планов: Compute Savings Plans и EC2 Instances Savings Plans. Compute Savings Plans позволяют организации взять на себя обязательство использовать EC2 и Fargate со свободой менять регион, семейство, размер, зону доступности, ОС и аренду в течение срока действия обязательства. Планы EC2 Instance Savings предоставляют большую скидку, чем Compute Savings Plans, но они менее гибкие, то есть пользователь должен взять на себя обязательство использовать отдельные семейства экземпляров в регионе, чтобы воспользоваться преимуществом, но со свободой менять экземпляры в пределах семейства в этом регионе. [40]
AWS использует Cost Explorer для автоматического расчета рекомендаций по обязательствам, которые вам следует принять, и того, как это обязательство будет выглядеть в виде ежемесячной платы в вашем счете AWS. [41] Планы экономии AWS приобретаются на основе почасового обязательства по расходам. Это почасовое обязательство делается с использованием дисконтной цены приобретаемого вами плана экономии. Например, вы можете взять на себя обязательство тратить 5 долларов в час на Compute Savings Plan в течение 3 лет. [42]
При запуске в августе 2006 года служба EC2 предлагала Linux , а позже Sun Microsystems OpenSolaris и Solaris Express Community Edition . В октябре 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] который также разработал безопасный дедуплицирующий сервис резервного копирования Tarsnap на основе облака Amazon S3 . [52]
Amazon имеет собственный дистрибутив Linux на основе Fedora и Red Hat Enterprise Linux в качестве недорогого предложения, известного как Amazon Linux AMI . Версия 2013.03 включала: ядро Linux , Java OpenJDK Runtime Environment и GNU Compiler Collection . [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 по использованию их ресурсов, таких как CPU, диск, сеть и задержка реплики для реплик базы данных 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.
Тарифы Reserved Instances и Compute Savings рассчитываются почасово. Каждый из этих инструментов резервирования имеет свою собственную цену за час в зависимости от варианта оплаты, срока и используемого продукта резервирования. Эти цены фиксируются на срок 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]
Сайты Amazon временно были отключены 12 декабря 2010 года, хотя изначально было неясно, было ли это связано с атаками или сбоем оборудования. Позднее представитель 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] Отключение электроэнергии вызвало множество вопросов относительно инфраструктуры EBS Amazon, что привело к выявлению нескольких ошибок в их программном обеспечении. Ошибки привели к удалению некоторых данных клиентов при восстановлении томов EBS в ходе операции записи во время сбоя. [85]
8 августа 2011 года произошел очередной сбой в работе сетевого подключения в центре обработки данных Amazon в Северной Вирджинии, из-за чего были отключены такие сервисы, как Reddit, Quora, Netflix и FourSquare. [86] Сбой продолжался около 25 минут.
Еще один сбой в работе центра обработки данных в Северной Вирджинии произошел 22 октября 2012 года примерно с 10:00 до 16:00 по тихоокеанскому времени. Пострадали Edmodo, Airbnb, Flipboard, Reddit и другие клиенты. Anonymous взяли на себя ответственность, но Amazon опровергла это утверждение. [87]