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


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

 

Elastic Cloud 2
«Практически любой высоконагруженный сервис требует внушительных вычислительных мощностей» — вполне закономерное высказывание, именно проблемы с ним связанные и призван решить данный сервис. Сервис предоставляет в распоряжение пользователей виртуальные машины сопоставимые по производительности с «железными» серверами в считанные минуты, причем имеется возможность настраивать изначальный набор программного обеспечения и конфигурацию виртуального оборудования. Размещаемые на таких виртуальных машинах сервисы могут наращивать вычислительные мощности существенно быстрее по сравнению с использованием dedicated или colocation хостинга.
Simple Storage Service
Этот сервис по сути представляет собой «бездонное» хранилище для произвольных файлов. Функционал достаточно прост: положить, забрать, удалить. Доступ возможен с использованием нескольких предоставляемых интерфейсов, а доступ к файлам может быть ограничен. Казалось бы ничего особенного, но во многих интернет-проектах такая возможность может оказаться полезной.
SimpleDB
Позиционируется как сервис для предоставления доступа к структурированным данным. С точки зрения разработчика проще охарактеризовать его как нереляционную базу данных. Схема данных генерируется в процессе эксплуатирования сервиса — заранее ее указывать не нужно, а запросы в какой-то степени напоминают сильно ограниченный SQL с возможностью только самых примитивных операций: сравнение, объединение, пересечение и т.п. У этой системы есть несколько аналогов, среди них Apache HBase и Hypertable.
Simple Queue Service
Более экзотический сервис — предоставляет возможность создания распределенных очередей сообщений для обеспечения взаимодействия других компонентов системы, которые предполагается, что будут размещены в Amazon EC2. Далеко не всем веб-проектам такая функциональность нужна, но если она все же понадобится — этот сервис здорово упростит жизнь разработчикам.

 

Все это можно было бы легко узнать и просто посетив официальный их сайт, но не в этом суть — написать этот пост меня подтолкнул тот факт, что мне довелось столкнуться с этими сервисами и на личном опыте по работе. Собственно говоря просто хочу поделиться впечатлениями :)

 

Знакомство было не долгим — всего пару недель, да и поиграться удалось по большей части лишь с Amazon EC2 и совсем чуть-чуть с S3. Первое впечатление произвел их Getting Started Guide — все просто и лаконично, еще даже до получения доступа к сервису у меня сложилось четкое представление о том, как он работает — несомненный плюс. После получения всех необходимых ключей от аккаунта (их было несколько, запутаться достаточно легко, но документация всегда спасала) можно сразу же приступать к работе с сервисом, скачав набор консольных утилит. Первым делом стоит взглянуть на ассортимент предоставляемых операционных систем для установки на будущие виртуальные машины — на первый взгляд представлены все популярные дистрибутивы Linux, что в общем-то более, чем достаточно (но при более детальном рассмотрении это оказалось далеко не так: различается в них только набор программного обеспечения, а ядро везде одно и то же — от Fedora 8). Так что выбор предстоит хоть и непростой, но скорее его стоит основывать его на личном предпочтении и удобстве, а не на каких-то других соображениях — разница в итоге будет невелика. Я лично остановил свой выбор на Debian Etch — не знаю по каким соображениям, да и не важно это вовсе, как впоследствии оказалось. Сделав свой выбор и подождав буквально несколько секунд можно узнать по какому URL располагается свежесозданная виртуальная машина (хочется отметить, что у утилиты их создания есть параметр «количество», то есть создавать их можно целыми пачками).

 

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

 

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

 

На закуску я оставил ложку дегтя — их ценовую политику. За пару недель достаточно неактивного, «ознакомительного» использования счет легко достиг отметки в пятьсот долларов. EC2 тарифицируется по часам — от 10 до 80 центов в час за виртуальную машину плюс трафик (более детально можно посмотреть на все том же официальном сайте). Там же и указаны гарантируемые вычислительные мощности и объем дискового пространства и оперативной памяти. На практике же все остальные параметры системы (пропускная способность сетевых интерфейсов, скорость чтения/записи на диски и так далее) делятся между всеми виртуальными машинами, располагаемыми на одной физической и по большей части это происходит по принципу «как повезет», хотя наблюдаются и некоторые закономерности: узлам за 40-80 центов/час дается явный приоритет при доступе к дискам (что, впрочем, упоминается в их Developer Guide), но, как оказалось, приоритет этот настолько высок, что скорость записи отличается между ними более чем на порядок — в 15-20 раз, такое вот несколько удивительное наблюдение. Интернет-канал же тоже делится — ограничения сверху достичь не удалось, но есть предположение, что в сумме «на всех» он равен гигабиту на физическую машину.

 

В целом сервис производит достаточно положительные впечатления (если закрыть глаза на цены) — быстро и удобно, да и сфера его использования вовсе не ограничивается веб-проектами, его запросто можно приспособить и к, скажем, научным исследованиям, связанным с моделированием чего-нибудь, да и вообще к решению любых задач, требующих больших вычислительных мощностей. Жалко, что не удалось поближе познакомится с остальными веб-сервисами Amazon — они также кажутся достаточно интересными, если взглянуть со стороны. www.insight-it.ru/masshtabiruemost/amazon-web-services/

 

 

Вверх