<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF108:CloudComputing - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF108:CloudComputing&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 22:20:31 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF108:CloudComputing&amp;diff=9026&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Программируем в Облаках==&lt;br /&gt;
&lt;br /&gt;
: Хотите иметь огромный Linux-кластер и скидывать на него решение самых насущных проблем? «Большие» вычисления теперь дешевы, и это покажет '''Дэн Фрост'''.&lt;br /&gt;
&lt;br /&gt;
Время — одиннадцать утра. Вы получили письмо от директора по маркетингу: «Привет. Мы только что пообещали отправить наш дневной бюллетень 2 000 000 клиентам наших партнеров. Я сказал, что все будет ОК, и они получат его где-то через час. Когда сделаешь, сообщи. Спасибо».&lt;br /&gt;
&lt;br /&gt;
Спешное деление в уме 2 000 000 жаждущих клиентов на 3 престарелых сервера не дает вам результата «все будет ОК». Конечно, можно бросить на проблему 200 серверов EC2 и посиживать, балуясь с обоями рабочего стола, пока они глодают список имен.&lt;br /&gt;
&lt;br /&gt;
Для большинства из нас быстрое масштабирование своего приложения и возможность скинуть проблему на несколько десятков серверов до недавнего времени было непозволительной роскошью, пока Amazon не открыл свои вычислительные облака для широких масс.&lt;br /&gt;
&lt;br /&gt;
ЕC2 предоставляет столько виртуальных серверов, сколько вам нужно, взимая почасовую плату. За $ 0,10 – да, именно десять центов США – вы получите “1 EC2 Compute Unit” [1 вычислительный модуль EC], имеющий 160 ГБ для хранения данных на 32-битной платформе с 1,7 ГБ памяти. Суммарная стоимость выходит $ 72 в месяц, так что это не дешевый хостинг, но это не повод им не пользоваться. Подумайте о нем иначе: за $ 0,40 в день вы сможете получить 4 машины, загруженные отправкой ваших дневных бюллетеней.&lt;br /&gt;
&lt;br /&gt;
===Облако? А что это?===&lt;br /&gt;
&lt;br /&gt;
«Облаком» [cloud] прозвали огромное количество серверов Amazon, работающих в вычислительных центрах по всему миру; поверх них находится виртуализация ''Xen'', предоставляющая тысячи виртуальных машин. EC2 существует почти два года, и уже имеет некоторые впечатляющие применения, от простого срочного масштабирования до развитой обработки данных.&lt;br /&gt;
&lt;br /&gt;
New York Times применила EC2 для обработки 11 миллионов изображений статей, конвертировав их в PDF за 24 часа. Hadoop – открытая реализация алгоритма MapReduce от Google, развернутая на EC2 – позволяет выполнить колоссальный объем поисковых операций, при мизерных вложениях и трудозатратах.&lt;br /&gt;
&lt;br /&gt;
Сайты вроде jamglue.com используют EC2 для внутренней обработки огромного количества аудиофайлов, на которую ушли бы длинные шеренги стоек с оборудованием. Доступ к дешевой вычислительной мощности делает построение таких систем программными, а не аппаратными проектами.&lt;br /&gt;
&lt;br /&gt;
Ученые используют EC2 как дешевый инструмент для выполнения ряда «числодробильных» задач. Автоматическое тестирование придет на ум не в первую очередь, но selenium – инструмент как раз такого класса – может быть запущен на множестве модулей EC2, каждый из которых будет работать над конкретным тестом. И если раньше прогон всех тестов для вашего приложения занимал два часа, то теперь он выполнится за 12 минут при использовании десяти «экземпляров»&lt;br /&gt;
[instances] EC2.&lt;br /&gt;
&lt;br /&gt;
Типичный пример, который мы далее рассмотрим на практике, это отправка электронной почты. Обычно, при необходимости рассылать&lt;br /&gt;
тысячи писем ежедневно, вы отводите на эту задачу отдельные серверы, и весь остаток дня они лодырничают; а с EC2 вы просто мобилизуете 3 экземпляра EC2, скажем, в 11 утра, загружаете ваши сообщения на них и отправляете почту в полдень. Это может стоить 1–2 доллара в день – сравните с сотнями долларов, необходимых на мощный выделенный сервер со всеми сопутствующими прибамбасами.&lt;br /&gt;
&lt;br /&gt;
Проще говоря, EC2 – это возможность решать более крупные задачи и масштабироваться быстрее и дешевле.&lt;br /&gt;
&lt;br /&gt;
===Что там за Облаками?===&lt;br /&gt;
&lt;br /&gt;
{{Врезка| Заголовок=Куда это годится| Содержание=&lt;br /&gt;
'''Используйте это для:'''&lt;br /&gt;
* Быстро масштабируемых приложений&lt;br /&gt;
* Масштабирования в заданное время&lt;br /&gt;
* Задач массовой обработки&lt;br /&gt;
&lt;br /&gt;
'''Не используйте это для:'''&lt;br /&gt;
* Хранения своих данных (возьмите что-то типа S3)&lt;br /&gt;
* Хостинга маленьких сайтов – он обходится дороже|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Итак, вот что лежит в основе, но с нашей точки зрения все выглядит гораздо проще. Подключившись к EC2, вы увидите нечто вроде обычного Linux-сервера. К нему можно обратиться по ''SSH'', активировать сервисы, держать web-сайты, запускать процессы, точно так же, как при загрузке нормального сервера. Когда экземпляр работает, вы подключаетесь к нему либо через временный URL, либо, как было сделано&lt;br /&gt;
недавно, через статический IP.&lt;br /&gt;
&lt;br /&gt;
Если вам понадобится больше машин, вы, используя SOAP, командную строку или графический интерфейс, отправляете запрос на них,&lt;br /&gt;
и через некоторое время получаете новые сервера для ваших нужд. Между экземплярами EC2 или между EC2 и внешним миром можно&lt;br /&gt;
обмениваться данными.&lt;br /&gt;
&lt;br /&gt;
Закончив работу с экземплярами, вам просто надо выключить их – и все, вы больше ничего не платите. Принцип «плати-пока-работаешь»&lt;br /&gt;
означает, что вы можете тестировать сложные кластерные установки, бросать сервера на подмогу, а то и просто поиграть этак со 100&lt;br /&gt;
серверами.&lt;br /&gt;
&lt;br /&gt;
===На самом деле их тут нет...===&lt;br /&gt;
&lt;br /&gt;
Но не обольщайтесь: в реальности машин не существует. Экземпляры EC2 – это виртуальные серверы, и поэтому они временны. При выключении экземпляра все данные теряются; то же самое происходит при его сбое.&lt;br /&gt;
&lt;br /&gt;
В чем тут смысл? Ну, сервера EC2 дешевы – считайте их еще и одноразовыми. В отличие от выделенного сервера, рядом с которым&lt;br /&gt;
вы проводите полжизни, резервируя и занимаясь мониторингом и проверкой, экземпляру EC2 этого не нужно, потому что вы моментально&lt;br /&gt;
можете заменить его другим.&lt;br /&gt;
&lt;br /&gt;
К ним надо немного попривыкнуть, и это может изменить способ написания ваших приложений, но главное, они вселяют надежду на то,&lt;br /&gt;
что у вас не будет точек сбоя. Серверы EC2 – просто «рабочие лошадки», а важные данные спокойно хранятся вдали от них. Если «рабочая&lt;br /&gt;
лошадка» рухнет, данные не будут утеряны.&lt;br /&gt;
&lt;br /&gt;
Как вы увидите далее, это вносит изменения в планирование и построение ваших приложений.&lt;br /&gt;
&lt;br /&gt;
===Начало===&lt;br /&gt;
&lt;br /&gt;
Во-первых, заведите себе учетную запись на Amazon Web Services: https://aws-portal.amazon.com/gp/aws/developer/registration/index.html.&lt;br /&gt;
Затем перейдите на сайт EC2 http://www.amazon.com/ec2/ и с помощью кнопки “Your Web Services Account” выберите пункт AWS Access Identifiers.&lt;br /&gt;
Вам потребуется '''Access Key ID''' и '''Secret Access Key''' с этой страницы.&lt;br /&gt;
&lt;br /&gt;
Вы можете управлять вашей частью облака EC2 через интерфейс командной строки, API SOAP или графический интерфейс. Мы же&lt;br /&gt;
справимся с использованием EC2 при помощи расширения для ''Firefox'',&lt;br /&gt;
а для любителей грязной работы есть горы документации.&lt;br /&gt;
&lt;br /&gt;
Следуя инструкции с форума, используем '''Key ID''' и '''Secret Access Key''' как подтверждение ваших полномочий: http://developer.amazonwebservices.com/connect/thread.jspa?threadID=17717&amp;amp;tstart=45&lt;br /&gt;
&lt;br /&gt;
Установив все это, вы увидите список доступных вам AMI – образов машин. Чтобы начать работать, создайте экземпляр с подходящим&lt;br /&gt;
образом, например, '''Fedora-core4-apache-mysql'''.&lt;br /&gt;
&lt;br /&gt;
Когда образ выполняется, он возникает в списке ‘'''Your Instances'''' [Ваши экземпляры]. Подождите, пока колонка '''Public DNS''' сменится с&lt;br /&gt;
‘'''pending'''’ [ожидание] на ‘'''running'''’ [работа].&lt;br /&gt;
&lt;br /&gt;
Откройте ''SSH''-терминал и войдите в экземпляр:&lt;br /&gt;
&lt;br /&gt;
  ssh -i ваш_ключe.pem root@публичное_доменное_имя_сервера&lt;br /&gt;
&lt;br /&gt;
Флаг '''-i''' велит ''ssh'' использовать реквизиты ''ssh'', созданную вами при&lt;br /&gt;
настройке расширения ''Firefox''.&lt;br /&gt;
&lt;br /&gt;
Войдя в свой первый экземпляр EC2, осмотритесь вокруг. Заметим&lt;br /&gt;
что он по виду и ощущениям выглядит как обычный сервер, поэтому&lt;br /&gt;
долго привыкать не придется.&lt;br /&gt;
&lt;br /&gt;
Для примера: зайдите в '''/var/www/html/''' и создайте там файл '''hello.php''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 echo “&amp;lt;h1&amp;gt;Hello, virtual world&amp;lt;/h1&amp;gt;”;&lt;br /&gt;
 phpinfo():&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Скопируйте '''Public DNS''' в браузер, чтобы увидеть результат. После этого попробуйте установить что-то вроде ''wordpress'', чтобы убедиться,&lt;br /&gt;
как просто пользоваться EC2.&lt;br /&gt;
&lt;br /&gt;
Теперь у вас есть свой модуль EC2; платите за него $ 0,10 в час и используйте как нормальный web-сервер. Если вы уже баловались с&lt;br /&gt;
Linux-серверами, там для вас будет очень мало нового, и вы, вероятнее всего, сможете сразу начать работу. Но далее мы видим важную&lt;br /&gt;
разницу: остановите экземпляр, например, выбрав его и нажав кнопку&lt;br /&gt;
'''Terminate'''. Затем запустите новый экземпляр. Все, что вы делали, будет потеряно, потому что этот экземпляр абсолютно новый, а старый стерт&lt;br /&gt;
с лица земли.&lt;br /&gt;
&lt;br /&gt;
===2 000 000 электронных писем===&lt;br /&gt;
&lt;br /&gt;
Так что же нам делать с заданием директора по маркетингу и его двумя&lt;br /&gt;
миллионами писем? Объединим EC2, SQS и чуть-чуть ''Ruby on Rails''.&lt;br /&gt;
&lt;br /&gt;
EC2 предоставляет семейство web-сервисов для хранения данных,&lt;br /&gt;
постановки их в очередь, поиска и прочего, обладающих широкими&lt;br /&gt;
возможностями масштабирования, и в то же время очень простых в&lt;br /&gt;
использовании. Один из его наиболее известных представителей – S3:&lt;br /&gt;
многие компании применяют его для дешевого резервного копирова-&lt;br /&gt;
ния. Другой – Simple Query Service (SQS), и он гораздо внушительнее,&lt;br /&gt;
чем его имя. Только представьте: 10, 100 или 1000 экземпляров EC2&lt;br /&gt;
все трудятся над одним центральным списком задач; простое привлечение большего числа экземпляров выполнит эту работу быстрее.&lt;br /&gt;
&lt;br /&gt;
Используя очень простую модель ''Rails'' под названием ‘'''Email'''’, добавим несколько методов, которые будут помещать каждую запись '''Email'''&lt;br /&gt;
в очередь SQS при сохранении:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ruby&amp;gt;&lt;br /&gt;
 # Standard Rails callback&lt;br /&gt;
 def after_save&lt;br /&gt;
 send_email_to_queue()&lt;br /&gt;
 end&lt;br /&gt;
 # Send the current email to the SQS queue to be delivered&lt;br /&gt;
 def send_email_to_queue&lt;br /&gt;
 q = Email.get_queue()&lt;br /&gt;
 q.send_message self.to_xml&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь, имея возможность добавлять письма в центральную очередь, мы хотим, чтобы какой-либо из наших экземпляров EC2 брал их&lt;br /&gt;
для отправки. Опять же, добавим это к модели '''e-mail''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ruby&amp;gt;&lt;br /&gt;
 # Get an email from the queue - pop from stack&lt;br /&gt;
 def self.get_email&lt;br /&gt;
 q = Email.get_queue()&lt;br /&gt;
 queueitem = q.receive_message&lt;br /&gt;
 remote_email = Email.new()&lt;br /&gt;
 remote_email.from_xml queueitem.body&lt;br /&gt;
 return remote_email&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При создании каждого нового элемента '''Email''' он помещается прямо в SQS-очередь, где его может забрать любой экземпляр EC2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ruby&amp;gt;&lt;br /&gt;
 e = Email.new()&lt;br /&gt;
 e.recipient = ‘dummy@example.com’&lt;br /&gt;
 e.save()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И затем любой другой экземпляр в нашем коде может просто вытащить письмо из SQS и послать его:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ruby&amp;gt;&lt;br /&gt;
 e = Email.get_email&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нужны еще кое-какие методы, которые я здесь опустил, но и эти строки показывают, как сделать вашу задачу простой и масштабируемой. Для развертывания этого приложения нам нужен подходящий AMI – выберите из списка образ '''ami-5c0aef35''' (манифест '''ec2onrails''').&lt;br /&gt;
Получив работающий экземпляр EC2, разверните ''Rails''-приложение на каждом сервере и запустите их.&lt;br /&gt;
&lt;br /&gt;
Далее каждый экземпляр EC2 начинает забирать почтовые сообщения из очереди SQS, подготавливать их и отправлять. ''Rails''-приложение&lt;br /&gt;
будет просто повторять попытки, пока очередь не опустеет, так что можете добавить 10, 20, 30 экземпляров.&lt;br /&gt;
&lt;br /&gt;
Иметь экземпляры EC2.0, работающие с SQS-списком задач, очень эффективно для процессов, которые могут быть децентрализованы.&lt;br /&gt;
Пакетная отправка электронной почты – один из таких примеров, как и задача конверсии образов статей NYT. В обоих случаях большую работу&lt;br /&gt;
можно разбить на множество более мелких, независимых задач.&lt;br /&gt;
&lt;br /&gt;
===А дальше что?===&lt;br /&gt;
&lt;br /&gt;
{{Врезка| Заголовок=Куда это годится|Содержание=&lt;br /&gt;
Использовать чужое AMI не так-то просто, потому что экземпляры EC2 все настроены под вас.&lt;br /&gt;
&lt;br /&gt;
Например, '''selenium grid''' использует EC2 для автоматизации тестирования web-приложений: http://selenium-grid.openqa.org/&lt;br /&gt;
&lt;br /&gt;
Или используйте Hadoop для запуска по-настоящему крупных вещей: http://wiki.apache.org/hadoop/AmazonEC2&lt;br /&gt;
&lt;br /&gt;
Попробуйте учебники и приложения на: http://developer.amazonwebservic es.com/ |Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Для всех этих примеров нам не пришлось писать какого-либо кода с&lt;br /&gt;
учетом окружения EC2. Пример ''PHP'' – всего лишь простое ''PHP'', и приложение ''Rails'' не общается с EC2 каким-либо специальным образом –&lt;br /&gt;
только через SQS. Так происходит потому, что для большинства готовых web-приложений вам не нужно менять многое для работы на EC2:&lt;br /&gt;
машины спроектированы так, чтобы на вид не отличаться от обычных серверов.&lt;br /&gt;
&lt;br /&gt;
API имеются для наиболее популярных языков – ''PHP, Java, Ruby, Python'' и т.д. – так что вы сможете сделать что-то устанавливаемое и&lt;br /&gt;
запускаемое. Но поиграть стоит. Если ваш основной заработок – программирование, с EC2 вы сможете вбросить огромную вычислительную мощность в проблемные задачи за очень небольшие деньги. Если вы просто любите пробовать новые технологии, EC2 доставит вам&lt;br /&gt;
большое удовольствие. Вы сможете запустить приложение такой сложности, о которой из-за убогого компьютера даже и мечтать не смели,&lt;br /&gt;
или наконец завершить ''NetHack'' на суперкомпьютере! '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Контроль облака через ''Firefox''===&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF108_40_1.jpg|Расширение к ''Firefox'' позволит вам быстро запустить ваш экземпляр.]]&lt;br /&gt;
&lt;br /&gt;
'''Расширение к ''Firefox'' позволит вам быстро запустить ваш экземпляр.'''&lt;/div&gt;</description>
			<pubDate>Fri, 30 Oct 2009 08:30:42 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF108:CloudComputing</comments>		</item>
	</channel>
</rss>