Обзорная информация об Amazon Web Services

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

AWS — это собирательное описание Amazon для всех предоставляемых компанией сервисов, основанных на Web-технологиях. Он охватывает широкий диапазон сервисов, каждый из которых подпадает под концепцию облачной обработки данных (хотя, честно говоря, я не очень понимаю, как классифицировать Amazon Mechanical Turk1). В данной книге основное внимание будет сосредоточено на технологиях, используемых следующими сервисами облачной инфраструктуры Amazon:

± Amazon Elastic Cloud Compute (Amazon EC2);

± Amazon Simple Storage Service (Amazon S3);

± Amazon Simple Queue Service (Amazon SQS);

± Amazon CloudFront;

± Amazon SimpleDB.

В контексте транзакционных систем особый интерес представляют две технологии — Amazon EC2 и Amazon S3.

1 Сервис Amazon Mechanical Turk (MTurk) — это один из сервисов семейства AWS, который получил свое название от первого шахматного автомата, известного под названием "Турок" (потому что он представлял собой выполненную в натуральную величину восковую фигуру мужчины, одетого в турецкий костюм и сидящего перед ящиком с шахматной доской). Этот шахматный автомат был сконструирован в XVIII веке Вольфгангом фон Кемпеленом (Wolfgang Ritter von Kempelen). Впоследствии выяснилось, что в действительности это устройство не было автоматом, потому что в специальном отделении ящика сидел живой (и очень сильный) шахматист, который и управлял всеми действиями аппарата. Аналогичным образом действует и сервис Ama- zon Mechanical Turk: с его помощью компании (пока только расположенные на территории США) — так называемые заказчики (Requesters) — размещают на сайте несложные задания, которые, тем не менее, человек заведомо выполнит лучше машины. Зарегистрировавшиеся пользователи (workers) выполняют эти задания и получают за это деньги. Подробнее см.: http://en.wikipedia.org/wiki/Amazon_Mechanical_Turk, http://moneynews.ru/9206/. — Прим. перев.

Как я упоминал ранее, очереди сообщений имеют критическое значение в гридсистемах, а также играют важную роль в большом количестве иных транзакционных систем. Однако они не типичны среди Web-приложений, поэтому в этой книге не будет уделяться особо пристального внимания таким сервисам, как, например, Amazon SQS.

Учитывая, что "сердцем" транзакционной системы является база данных, вы могли бы подумать, что сервис Amazon SimpleDB мог бы оказаться критически важным компонентом транзакционного приложения в облаке Amazon. Однако в действительности Amazon SimpleDB, как и следует из названия, представляет собой очень простую базу данных, и, следовательно, не подходит для крупномасштабных Web-приложений. Более того, это патентованная (proprietary) СУБД, а это значит, что приложение, слишком тесно интегрированное с Amazon SimpleDB, будет "привязано" к облаку Amazon.

Amazon Elastic Cloud Compute (EC2)

Amazon EC2 — это и есть настоящее "сердце" облака Amazon. Этот сервис предоставляет API Web-сервисов для выделения виртуальных серверов, управления ими и освобождения после того, как они стали ненужными с возвращением освобожденных ресурсов в облако Amazon. Иными словами, любое приложение, работающее где угодно в Интернете, может запустить виртуальный сервер в облаке Amazon, осуществив единственный вызов к Web-сервисам Amazon.

На момент написания этой книги основание Amazon EC2 в США состояло из трех центров обработки данных на восточном побережье США и двух — в Западной Европе. Вы можете отдельно создать учетную запись для европейского центра обработки данных Amazon, но вы не можете смешивать и комбинировать американскую и европейскую среды. На серверах в этих средах работает в высшей степени индивидуализированная версия Xen гипервизора (hypervisor) на основе открытого кода (Open Source). Эта виртуальная среда Xen позволяет динамически выделять и освобождать серверы, а также дает возможности, необходимые для предоставления изолированных компьютерных сред гостевым серверам.

Если вы хотите запустить виртуальный сервер в среде Amazon, вам необходимо создать новый узел на предопределенном образе машины Amazon (Amazon Machine Image, AMI). В состав AMI входят ваша операционная система и другое предварительно подготовленное (prebuilt) программное обеспечение. Большинство людей начинают со стандартного AMI на основе их предпочтительной операционной системы, настраивают его, создают новый образ, а затем запускают свои серверы на основе собственных индивидуально настроенных образов.

Сам по себе, сервис EC2 предоставляет два вида пространства для хранения:

± "краткосрочное" или "эфемерное" пространство (Ephemeral storage), привязанное к узлу, срок жизни которого истекает с истечением срока жизни узла;

± блочное пространство (Block storage), которое работает аналогично сети хранения данных (Storage Area Network, SAN) и не исчезает с течением времени.

Многие конкуренты Amazon тоже предоставляют узлам постоянное пространство для хранения данных, чтобы все выглядело более похожим на привычный центр обработки данных.

В дополнение к этому, серверы в EC2, как и любые другие серверы в Интернете, могут получать доступ к постоянному облачному пространству для хранения данных — Amazon S3. Использование этой комбинации позволяет добиться как финансовой экономии, так и повышения общей эффективности работы.

Чтобы обезопасить вашу сеть в пределах облака, вы можете управлять правилами виртуального брандмауэра, который будет фильтровать трафик, поступающий на ваши виртуальные узлы. Вы должны будете определить правила маршрутизации путем создания групп безопасности и ассоциирования правил фильтрации трафика с этими группами. Например, вы можете создать группу DMZ1, которая разрешает входящий трафик на ваши серверы через порты 80 и 443 из Интернета, но запрещает любой другой входящий трафик.

Amazon Simple Storage Service (S3)

Amazon S3 представляет собой облачное хранилище данных, доступное в реальном времени через API Web-сервисов из любой точки Интернета. Используя этот API, вы можете хранить любое количество объектов, размер которых варьируется от 1 байта до 5 Гбайт, в более или менее плоском пространстве имен.

Важно не думать об Amazon S3 как о файловой системе. Я видел много случаев, когда люди наживали себе неприятности, когда воспринимали Amazon S3 таким образом. В первую очередь, Amazon S3 имеет двухуровневое пространство имен. На первом уровне вы имеете так называемые "корзины" или "ведра" (buckets). Их можно считать аналогом каталогов в файловой системе, если вам так нравится, потому что они содержат данные, которые вы помещаете в S3. Однако, в отличие от традиционных каталогов, вы не можете организовать их иерархически — корзины не допускают вложенности (иначе говоря, вы не можете создать корзину внутри корзины). Возможно, еще более важное значение имеет тот факт, что пространство имен корзин предоставлено в общий доступ всем клиентам Amazon. Поэтому вам необходимо особо позаботиться о том, чтобы имена ваших корзин не пересекались с именами других корзин. Проще говоря, не следует создавать корзины с именами наподобие "Documents".

Еще один важный момент, который следует иметь в виду, заключается в том, что служба Amazon S3 работает относительно медленно. В действительности эта служба работает очень быстро для сервиса, развернутого в Интернете, но если вы

1 DMZ (DeMilitarized Zone) — демилитаризованная зона. Технология обеспечения защиты информационного периметра, при которой серверы, отвечающие на запросы из внешней сети, находятся в особом сегменте сети (который и называется DMZ) и ограничены в доступе к основным сегментам сети с помощью брандмауэра (firewall) с целью минимизировать ущерб при взломе одного из общедоступных сервисов, находящихся в DMZ. Подробнее см. http://en.wikipedia.org/wiki/Demilitarized_zone_(computing). — Прим. перев.

ожидаете, что она будет отвечать на ваши запросы так же быстро, как локальный жесткий диск или SAN, то вы будете глубоко разочарованы. Таким образом, использование Amazon S3 в качестве оперативного хранилища не слишком благоразумно.

Наконец, доступ к S3 осуществляется через Web-службы, а не через файловую систему или WebDAV1. В результате этого приложения должны разрабатываться с учетом того, что они должны хранить данные в Amazon S3. Вероятно, еще важнее то, что вы не можете просто воспользоваться командой rsync для синхронизации каталога с S3 без специальных инструментов, которые применяют Amazon API и, таким образом, обходят ограничения S3.

Итак, мы разобрались с тем, чего не следует ожидать от Amazon S3 — а теперь рассмотрим, что мы можем ожидать от этой службы.

Amazon S3 позволяет поместить хранимые данные в облачную инфраструктуру и впоследствии при необходимости их извлечь. При этом вы можете быть практически полностью уверены в том, что извлеченные данные будут представлять собой единый и непротиворечивый блок информации. Ключевым преимуществом Amazon S3 является то, что вы можете сбрасывать и сбрасывать данные в Amazon S3, совершенно не беспокоясь о проблеме нехватки пространства для их хранения. Иначе говоря, для большинства пользователей S3 служит в качестве краткосрочного или долгосрочного хранилища резервных копий.

ХРАНИЛИЩЕ CLEVERSAVE 2

Облачные системы хранения данных призваны решить уникальные проблемы, которые невозможно решить с помощью более старых технологий хранения данных. Технологии хранения данных на основе RAID и репликации не слишком хорошо подходят для использования в облачной инфраструктуре, поскольку не существует удобных путей их масштабирования до эксабайтного3 уровня. Старые технологии хранения данных, основывающиеся на создании избыточных копий с целью повышения надежности, приводят к тому, что вы получаете системы, которыми сложно управлять. К тому же эти системы требовательны к полосе пропускания и дороги.

1 WebDAV (Web-based Distributed Authoring and Versioning) — защищенный сетевой протокол высокого уровня, работающий поверх HTTP и обеспечивающий доступ к объектам и коллекциям. Подробнее см. http://www.webdav.org/, http://plone.org.ru/docs/howto/WebDAV. — Прим. перев.

2 Cleversafe, Inc. — это частная компания, зарегистрированная в США, которая является пионе-

ром в области разработки технологий распределенного хранения данных. Распределенное хранение (Dispersed storage) представляет собой специальную технологию хранения данных, при которой сохраняемые данные разбиваются на "секции" (slices), снабжаемые так называемыми кодами восстановления (erasure codes), после чего каждая "секция" сохраняется независимо от остальных на независимых носителях информации, доступ к которым осуществляется через TCP/IP. Благодаря свойствам кодов восстановления распределенное хранилище может выдерживать множественные отказы индивидуальных носителей без потери возможности восстановления данных. Подробнее см. http://en.wikipedia.org/wiki/Cleversafe. — Прим. перев.

3 1 Эбайт = 260 байт или 1 048 576 Тбайт, см. http://en.wikipedia.org/wiki/Exabyte. — Прим. перев.

Облачная платформа Cleversafe основана на уникальной технологической разработке компании — рассредоточенном хранении (зарегистрированная торговая марка Dispersed Storage). Технология рассредоточенного хранения заключается в том, что данные разбиваются на "секции" (slices) и сохраняются на разных физических носителях, расположенных в различных географических точках. Алгоритмы, использованные для рассредоточения данных, основаны на концепции контроля четности (parity), но по усложненной процедуре, поскольку эти алгоритмы позволяют из подмножества данных восстановить весь набор данных целиком. Например, ваши данные могут быть рассредоточены по 12 различным географическим точкам, и при этом для восстановления полного набора данных достаточно, чтобы сохранились любые 8 подмножеств данных. Эта технология, известная как рассредоточение информации по дисперсионным алгоритмам (infor- mation dispersal), позволяет добиться географической избыточности и высокой отказоустойчивости, избежав при этом затрат на репликацию данных.

В апреле 2008 года компания Cleversafe реализовала свои технологии рассредоточения данных на аппаратном уровне, встроив их в устройства, предоставляющие внешний интерфейс пользователям с помощью стандартных протоколов, таких как REST API или iSCSI. Эти устройства выполняют задачу по разбиению информации и распределению ее по узлам хранения, при этом размеры исходного файла увеличиваются примерно в 1,3 —1,6 раз (для сравнения — при использовании традиционной репликации этот коэффициент составляет 3).

Компании используют устройства Cleversafe Dispersed Storage для построения публичных и частных облаков в качестве основы для инфраструктуры Software as a Service. Рассредоточенное хранилище соответствует всем требованиям облачной инфраструктуры, так как оно предоставляет пространство для хранения по требованию, и выделенное пространство будет доступно из любой географической точки.

Кроме того, рассредоточение позволяет повысить уровни безопасности в облаке, не обязательно требуя шифрования, поскольку каждая "секция" (slice) содержит слишком мало информации, чтобы быть полезной. Данная уникальная архитектура помогает преодолеть обоснованные опасения пользователей за данные, хранящиеся вне их непосредственного контроля. Такие опасения часто становятся препятствием к принятию решения о хранении данных за пределами предприятия. В то время как, например, ленточный накопитель с резервной копией содержит полную копию данных, доступ к единственному устройству, содержащему отдельный фрагмент рассредоточенной копии, не даст злоумышленнику ничего.

В дополнение к сказанному, рассредоточенное хранилище может масштабироваться в широких пределах и дает возможность хранения петабайтов1 данных. Путем добавления серверов в облачную инфраструктуру с автоматическим обнаружением пространства для хранения общее пространство, доступное для хранения данных, можно легко нарастить, а производительность можно масштабировать за счет добавления дополнительных накопителей. Средства виртуализации обеспечивают быстрое развертывание и предоставление пространства для хранения данных по требованию. Все перечисленные возможности позволяют оптимизировать усилия по администрированию рассредоточенного хранилища.

Рассредоточенное хранилище подходит для хранения и распространения крупных объектов. Эта возможность представляет собой краеугольный камень информационных технологий в современном обществе, где видео, изображения и другая мультимедийная информация всесторонне влияют на каждый аспект жизни. Рассредоточение как будто специально было разработано для естественной балансировки нагрузки и распределенной обработки данных за счет множества "секций" (Slices), разбросанных по всей сети и

1 1 Пбайт = 250 байт = 1024 Тбайт. См. http://en.wikipedia.org/wiki/Petabyte. — Прим. перев.

используемых для реконструкции исходного файла. Это означает, что предприятия не должны отдельно платить за создание сети, предназначенной для распространения информационного содержимого.

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

Amazon Simple Queue Service (SQS)

Amazon SQS — это краеугольный камень во всех проектах Amazon в области грид-обработки данных. Как и в случае с сервисом очереди сообщений, Amazon SQS принимает сообщения и передает их серверам, "подписанным" на очередь сообщений.

Как правило, система обмена сообщениями позволяет множеству компьютеров обмениваться информацией, не имея никаких сведений друг о друге. Отправитель просто  передает  короткое  сообщение  (в  Amazon  SQS  его  длина  не  превышает 8 Кбайт) в очередь сообщений и продолжает заниматься своим делом. Получатель принимает сообщение из очереди и оперирует с его содержимым.

Например, сообщение может содержать следующие инструкции: "Обработать набор данных 123.csv в корзине S3 s3://fancy-bucket и передать результаты в очередь сообщений Y". Одним из преимуществ, предоставляемых системой на базе очереди сообщений, является то, что отправитель не должен идентифицировать получателя или выполнять обработку ошибок в случае перебоев со связью. Получатель даже не обязательно должен быть активным в момент отправки сообщения.

Система Amazon SQS хорошо вписывается в концепцию облачной обработки данных именно из-за своей простоты. Большинству систем, основанных на очереди сообщений, требуется только очень простой API, позволяющий передать сообщение в очередь, извлечь его, полагаясь на целостность сообщения в очереди. Написание и поддержание такой простой программы может быть сложной задачей, но и приобретение коммерческого пакета может быть не менее сложным и дорогим решением.

Amazon CloudFront

Amazon CloudFront — это облачная сеть распространения информационного содержимого (content distribution network, CDN), которая на момент написания этих строк представляла собой новое предложение от Amazon Web Services. Этот сервис позволяет распространять ваше информационное наполнение (интернет-контент) по периферии сети с учетом того, что информация будет доставлена из точки, близкой к местоположению запросившего ее пользователя. Иными словами, если посетитель сайта находится в Лос-Анджелесе, то он получит информацию с сайта Amazon, расположенного в Лос-Анджелесе, а посетитель из Нью-Йорка получит информацию с сервера, расположенного в Нью-Йорке. Вам достаточно поместить информацию в сеть S3, и она быстро распространится по конечным точкам сети Amazon, где станет доступна для быстрой доставки потребителям.

Amazon SimpleDB

Amazon SimpleDB — это необычная комбинация структурированного хранилища данных с более высокой отказоустойчивостью, чем типичные экземпляры MySQL или Oracle, и очень скромными базовыми потребностями в реляционном хранилище. Это очень мощный сервис, предназначенный для тех, кого больше волнуют доступность реляционных данных и в меньшей степени — сложность реляционной модели или управление транзакциями. На основании моего личного опыта я могу сказать, что эта целевая аудитория составляет очень небольшое подмножество пользователей реляционных приложений. Впрочем, такое приложение, как Amazon SimpleDB, может быть чрезвычайно полезным в информационных средах с высокой степенью нагрузки, например, таких как системы управления Web- контентом.

К числу преимуществ Amazon SimpleDB относятся:

± отсутствие    необходимости    в    администраторе    базы    данных    (database administrator, DBA);

± очень простой интерфейс прикладного программирования (API) для запросов данных через Web-сервисы;

± доступность   кластерной   системы   управления   базами   данных   (database management system, DBMS);

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

Если вам требуется вся мощь реляционной базы данных, то инструмент Amazon SimpleDB вам не подойдет. Но, с другой стороны, если в качестве приложения для работы с базой данных вы выбрали bdb1, то Amazon SimpleDB будет для вас идеальным выбором.

1 Berkeley DB (BDB) — это высокопроизводительная встраиваемая база данных, реализованная в виде библиотеки. См. http://ru.wikipedia.org/wiki/Berkeley_DB/ Прим. перев.

Источник: Риз Дж., Облачные вычисления: Пер. с англ. — СПб.: БХВ-Петербург, 2011. — 288 с.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете промотать до конца и оставить ответ. Pinging в настоящее время не допускается.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100