Amazon анонсировал микро инстансы в EC2 – теперь самый дешевый instance в линейке EC2 стоит 2 (два) цента в час и похоже что хостинг на EC2 становится дешевле чем low-cost dedicated – за 2 цента в час ( 15 долларов в месяц ) получаем linux с root/ssh и всеми соответствующими пирогами. Есть конечно и подводные камни – во первых производительность таких micro instance будет явно очень небольшой ( см – Amazon EC2 Micro instance, how fast is it? ), во вторых собственно дискового пространства на таком micro instance нет и для хранения данных в файловой системе надо использовать EBS, что стоит некоторых небольших денег – 10 центов в месяц за каждый Гб хранимых данных плюс 10 центов за каждый миллион операций ввода-вывода.
Archive for the ‘Amazon EC2’ Category
AWS как хранилище данных
По состоянию на март 2010 года в Amazon S3 хранится 102 миллиарда объектов, если принять за основу расчеты Is number of objects true indicator of Amazon S3 growth? – 18 миллиардов объектов соответствуют 10 Пт данных, то получаем что сейчас в S3 хранится около 50 Пт данных ( на март 2010 ). Почти наверняка это заниженная оценка, поскольку для хранения петабайт данных Amazon S3 предоставляются специальные условия – видимо есть спрос на хранение таких объемов данных в S3. Если же брать EC2, то только предоставление дискового пространства для запущенных instances требует как минимум 8 Пт ежедневно – см Amazon provisioning 7 petabytes of storage per day.
AWS как вычислительный ресурс
Согласно Amazon’s EC2 Generating 220M+ Annually ( данные на октябрь 2009 ) – 80 процентов серверов приходится на зоны US, в сумме около 40 000 физических серверов, примерно одна пятая инфраструктурных мощностей EC2 используются для нужд сервисов обслуживающих amazon.com. Распределение по типам инстансов :

Amazon Web Services по прежнему лидер рынка – см State of the cloud – 2010 August

AWS как хостинг
EC2 может быть дешевле обычного dedicated хостинга ( имеется в виду с root ssh доступом ) – самые дешевые instance Amazon – micro instances стоят 2 цента в час, что дает 15 долларов в месяц. В среднем ( имхо ) бюджетные предложения хостинга linux ( root ssh ) стоят в районе 20-30 USD в месяц. Производительность micro instance очевидно будет ниже чем m1.small – см Amazon EC2 Micro instance, how fast is it?, второй, более существенный, минус – дисковое пространство на таких instance отсутствует и в качестве хранилища данных ( подмонтированной файловой системы ) можно использовать только EBS, а EBS стоит некоторых денег – 10 центов в месяц за 1 Гб данных плюс 10 центов за каждый миллион операции ввода-вывода. Тем не менее возможность получить кластер из 200 серверов всего за 4 USD в час очень привлекательная и наилучшим юзекейсом для micro instances имхо будет высокораспределенный вычислительный грид, что впрочем не уменьшает привлектельности использования EC2 как дешевого хостинга с root доступом.
На “сладкое” – анатомия instance id и расчет количества ежедневно запущенных instance – Amazon EC2 usage estimates – около 50 тысяч инстансов в пределах одной геозоны в сутки ( данные на Oct, 2009 ) :
.
По горячим следам презентации в мейл.ру хочется немного дополнить мои ответы на вопросы из зала :
Q : Какова производительность EC2 instance ( по сравнению с реальным железом )?
A: Картинка ниже должна ответить на данный вопрос ( не забываем что в линейке EC2 есть и гораздо более производиельные instance чем m1.medium ), по теме произвоительности EC2 ( и других клауд провайдеров ) можно посмотреть эту небольшую подборку ссылок – Cloud providers perfomance tests and monitoring.
Q: Трафик с EC2 – сколько стоит входящий трафик и сколько исходящий? Насколько оправдано например будет вынести краулинг веба в EC2 ?
A: Как я и сказал – внешний входящий трафик бесплатный, исходящий наружу стоит некоторых денег – см EC2 pricing. Трафик внутри сети ( в пределах региона ) – бесплатный. Теперь о деталях – исходящий трафик бесплатный до 1 ноября 2010, после будет тарифицироваться по 10 центов за Гб – так что времени бесплатно скачать весь интернет осталось не так много
При цене в 10 центов за Гб скачать весь рунет ( по данным яндекса 140 тысяч Гб только текста ) будет стоит 14 000 USD, а если говорить о инкрементальном апдейте в 2 Тб ( что вполне близко к реальности ), то один стоимость трафика достаточно невысока – всего 200 USD. Внешний трафик ( наружу ) – один Гб в месяц – бесплатно, далее в зависимости от объёма цена колеблется от 8 до 15 центов за Гб. Другая приятная для анонимного краулинга особенность EC2 – действительно большой выбор ip адресов – имеется возможность размещения instance в достаточно широком диапазоне подсетей и более того в разных географических регионах.
Q : Как ведут себя instance EC2 в некоторых нештатных ситуациях ( например когда кончаются сокеты или память ), какие там установлены лимиты?
A: Для меня неясно насколько поведение ОС под Xen отличается от ее поведения на настоящем железе, особенно в крайних ситуациях. Очевидно что все настройки лимитов на guest-OS доступны для редактирования, но также очевидно что всё это никак не влияет на настройки host-OS. Официальная точка зрения инженеров Amazon состоит в том, что то все лимиты устанавливаются также как и под реальным железом ( root + ulimit ) и запуск OC под системой виртуализации не играет тут никакой роли. Из найденных пользователями фич можно посмотреть по этому поводу например Get around EC2 filesystem limits (sort of), а вообще подозреваю что поведение будет иметь фичи не столько связанные с тем что мы запускаем сервер под EC2/Xen, сколько зависеть от образа который мы запускаем.
Q: Поддерживается ли hibernate в EC2 ? ( можно ли поднять приложение, “прогреть” кэш и сохранить это состояние, а потом когда нужно быстро поднять сервер? )
A: Для начала каким образом можно было бы сделать Hibernate – для этого необходимо к instance примонтировать EBS устройство ( отформатировать его и тп ) и сделать туда hibernate выключив instance – shutdown в данном случае означает что мы потеряли данный instance навсегда, EBS хранилище при это естесственно остается существовать и его можно примонтировать к любому другому запущенному instance. Таким образом hibernate можно реализовать как например запуск нового instance такого же типа с автоматическим монтированием EBS с hibernate данными и восстановлением состояния системы из данных с этого EBS устройства. Насколько я могу судить эта фича достаточно востребована, но как я вижу, пока не реализована – см. EC2 Hibernate, Hibernating Ubuntu on EBS boot EC2 instances.
ps. Из остального – если хочется что-то cloud computing но на местной, российской площадке – посмотрите на Оверсан Скалакси.
То о чем так долго твердили большевики клауд евангелисты случилось – HPC на EC2 таки пришло ( см – New Amazon EC2 Instance Type – The Cluster Compute Instance ) в виде HVM виртуализации ( Xen/CentOS ) вместо паравиртуализации ( Xen/много_разных_ос ) используемой в EC2 сейчас. Ожидается что виртуалки запускаемые под HVM будут сильно быстрее, сеть обещают 10Гбит, что безусловно хорошо. Создавать HPC кластеры как обычно можно через API парой команд – создать имя кластера, и второй командой запихнуть в этот кластер столько то виртуалок :
$ ec2-create-placement-group bokov_super_cluster -s cluster $ ec2-run-instances ami-2de43f55 --type cc1.4xlarge --placement-group bokov_super_cluster -n 8
ami-2de43f55 – это CentOS ( ничего другого пока нет – не поддерживают HVM ? ), 8 – сколько нодов в кластере,
cc1.4xlarge – тип ноды ( Quadruple Extra Large – 33.5 ECU (EC2 Compute Units), 23 GB of RAM, 1690 GB storage ).
HPC кластеры от EC2 базируются на самом мощном инстансе из линейки AWS который запускается под HVM, причем в случае с Cloud Compute cc1.4xlarge стоит дешевле ( 1.60 против 2.40 ) чем в случае простого, не HPC-кластерного, использования. Доступно все это пока только в одном регионе – us-east ( физический локайшн серверов, конечно же пользовать все это можно из любой точки мира ), постепенно думаю что расширят ее и на другие регионы. Как уже упоминалось из операционок доступна сейчас только CentOS, для других ОС Amazon предлагает делать образы самостоятельно, но имхо лучше подождать немного пока этого не сделают. И еще немного по поводу производительности - как утверждается в New Amazon EC2 Instance Type – The Cluster Compute Instance народ из AWS сделал кластер из 880 HPC узлов с производительностью 41.82 MFlops (запускали High Performance Linpack запущенный на 880 инстансах Cluster Compute (7040 cores) – что пример равно 146 месту в top500 суперкомпьютеров.
Если совсем-совсем честно, то конечно же HVM это все равно Xen и всё равно виртуализация, что имеет свои явные плюсы в виде скорости _скалирования_ кластера, но и по сравнению с “просто железом” верхняя планка по производительности ( в пике? ) все равно будет ниже. Из HPC + cloud computing еще раз хочется отметить Penguin On Demand – это HPC кластеры on demand ( cloud computing!) из “настоящего” hardware, без виртуализации. Penguin-ы уповают на то что их cloud будет сильно быстрее в смысле общего времени выполнения задач. Подробно в POD я пока не копался – остаётся открытым вопрос про API ( свое ПО для управление кластерами Penguin-ов – SkyId ClusterWare + TaskMaster Suite + Integrated Managed Framework, API явно есть, не понятно как из своих приложений управлять кластером ) и про то насколько быстро кластер будет скалироваться – с одной стороны конечно Pay-As-You-Go, но тем не менее SLA не гарантируют и про динамическое изменение размеров кластера сказано что “can be rapidly scaled by Penguin so POD can grow its capacity as needed” ( POD = Penguin On Demand, по умолчанию в нем доступно 1280 ядер, видимо платить надо за все сразу? ), интересно а если надо уменьшить размер кластера ? Еще небольшое замечание – Penguin-On-Demand на сегодня также как и Amazon HPC работает с CentOS.
Обновление в Amazon Web Services
и Quadruple Extra Large – 68.4 GB of RAM/ 26 ECU (8 virtual cores* 3.25 ECU) : New EC2 High-Memory Instances
Не так давно amazon анонсировал появление дополнительной зоны в регионе us-east – us-east-1d – теперь у EC2 есть два региона – us-east-1 ( в котором есть 4 зоны us-east-1a, us-east-1b, us-east-1c, us-east-1d ) и eu-west-1 ( в котороем есть две зоны eu-west-1a и eu-west-1c ). Continue reading ‘Регионы и зоны в Amazon EC2’ »
Короткий how-to на тему настройки чистой Ubuntu для работы с EC2 API
Есть такой resource provider – goGrid – GoGrid возник в недрах “обычного” провайдера ServePath, по всей видимости в какой то момент там “уперлись” в неэффективное использование железа, плюс потребности рынка в resources on demand имеется – возник cloud provider GoGrid. Несмотря на достаточно агрессивный маркетинговый спич goGrid направленный в основном на сравнение с amazon ec2 и упирающий на 100% надежность ( в отличие от amazon ec2 – по словам goGrid маркетологов ) – в реальности всё немного по другому.
Для начала про надежность – на amazon ec2 надежность достаточно высокая, на уровне обычного dedicated hosting, есть вопросы с производительностью – по моим ощущениям не стоит ожидать того что одна и та же “тяжелая” задача будет выполняться в одном и том же окружении на amazon ec2 всегда одинаковое время – но это расплата за виртуализацию когда на одном железе одновременно крутится несколько виртуалок – в этом плане goGrid несильно отличается – тот же Xen ( правда amazon ec2 основывается на паравиртуализации, а у gogrid hardware assisted virtualization ). Если по каким то причинам instance повис – он доступен для перезагрузки, просмотра системного лога, можно также сделать с него image. Если по каким то причинам amazon-у надо выключить ваш инстанс – они предоставляют образ с instance ( это очень редкая ситуация, лично у меня такой ни разу не было ). Если goGrid хочет перегрузить ваш инстанс – они его просто перегружают уведомляя об этом постфактум.
Реально полезной фичей GoGrid является то что они предоставляют возможность использовать наряду с виртуалками настоящие железки – то есть часть кластара может быть размещена на “реальном” железе, а часть – на виртуалках – это сильно расширяет возможности для конфигурирования и во вторых открывает для cloud computing приложения которые работают в режиме высокой нагрузки – если взять например некий асбтрактный веб поиск – то на выделенном железе можно разместить поисковый back-end который очень требователен к производительности и сети, и поисковую морду, а на виртуалках держать кластер для индексации и краулинга, каких то периодически возникающих map-reduce задач ( например подсчет Индекса Цитирования – пришло обновление базы – создали кластер из много-много машин – запустили там map-reduce – подсчитали ИЦ, отдали кластер обратно – resources by demand ). В этом смысле потенциальный рынок для GoGrid немного шире, чем у amazon ec2 – на ec2 ввиду того что все размещается только на виртуалках и никоим образом ( почти – кое что всё таки можно – например гарантировать что вируалки размещаются на физически разных боксах используя разные регионы и availability zones ) нельзя конфигурировать физическое размещение серверов – для приложений критичных к сетевым задержкам ( когда желательно чтобы все серверы стояли в одной стойке например ) или для приложений критичных ко времени выполнения когда желательно знать что данная задача будет выполняться столько времени на данном сервере – на ec2 время выполнения тяжелых таском на m1.small отнюдь не постоянно, возможно что на x.large с этим лучше, но все равно с настоящим выделенным сервером все это не сравнится.
Сегодня мне наконец удалось собственноручно положить instances с 64 битной Ubuntu – запущенный в бесконечной рекурсии скрипт на bash делает своё грязное дело – “съедает” все сокеты, так что ssh ( и все остальное ) ложится намертво. Что делать – ec2-reboot-instances спасет ( все что было в памяти естесственно будет потеряно ), с первого раза reboot не всегда удается – иногда приходится по несколько раз посылать на ребут. Еще полезная штука – AWS Managment Console, которая тоже умеет делать reboot и shutdown, но самое главное в ней всегда можно посмотреть system log. От себя замечу что dedicated box с например FreeBSD в подобных ситуациях ( кто то пожрал сокеты ) ведет себя абсолютно точно также – лежит, и чтобы поднять надо уже его руками поднимать – либо через Managment interface если сервер не совсем старый, или руками Reset нажимать если удаленно он вообще недоступен. Посколько привилигия доступа к managment interface обычно есть у крайне узкого круга лиц, то повисла машина – стучимся до админов, и он уже поднимает упавшее. Попробуйте проделать этот трюк раз 5 за час и узнайте все что думают админы про кривые руки программистов – на ec2 managment interface доступен всем и пинать для того чтобы поднять упавшую ноду никого не надо.
- платформы
- вендоры
- Amazon EC2 vs GoGrid vs Mosso
- The Private Cloud: Enterprise-ready on and off premise by Stephen Herrod ( at cloudSlam-2009 )
- Defining private clouds – Part 1, Part 2 – by Bernard Golden
- How LinkedIn grew Bumpersticker to be the “Biggest Ruby on Rails app in the World? и Web Scalability Practices: Bumper Sticker on Rails
Как сообщается в Amazon Web Services: Bigger Than Amazon трафик от Amazon Web Services уже превышает трафик от amazon.com – общее количество разработчиков использующих AWS превышает 300 000 и это число растет на 10% каждый квартал. Общий объем трафика позволяет точно говорить о реальной посещаемости проектов базирующихся на AWS лишь косвенно, но основной тренд налицо – использование web services в качестве back-end платформ для самого широкого спектра продуктов ( а AWS используют не только online web ресурсы ) становится всё популярнее и имеет отличные перспективы для дальнейшего роста.
Сравнение разных cloud-провайдеров :
- Comparing the Cloud: EC2, Mosso, and GoGrid,
- Cloud versus cloud: A guided tour of Amazon, Google, AppNexus, and GoGrid
- Comparison: GoGrid Cloud versus Amazon EC2
Документ в котором Amazon описывает важные аспекты работы EC2 – архитектура кластера, требования к надежности, защищенности данных и тп : AWS Security White Paper.
Полезная конференция на Amazon Elastic Compute Cloud (EC2) at groups.grid.org
Решения в сфере распределенных вычислений работающие с Amazon EC2 :
- Cloud Management Platform : RightScale
- Data grid, compute grid – GigaSpaces
- Compute grid, map-reduce implementation – gridGain
Проекты работающие на Amazon EC2 :
- Список самых крупных проектов использующих AWS
- “Аська”, в которой рисуют с друзьями :- Рисоваська
…
Полезные статьи посвященные Amazon AWS:
Допустим у нас есть хорошо настроенный instance со всеми поставленными package и настроенной средой. Хотим сохранить заработанное в виде AMI на S3. Для начала надо установить на instance Amazon EC2 AMI Tools. В /root/keys/ кладем privateKey и publicKey ( те что получены от amazon ) и Выполняем : ec2-bundle-vol –cert /root/key/PublicKey.pem –privatekey /root/key/PrivateKey.pem –exclude /root/key -u -d /mnt -r i386
(вместо i386 если у нас что то другое – пишем это другое ). Мы используем –exclude – для того чтобы наши ключи не попали в создаваемый образ ( например если собираемся его выложить в public access ).
Загружаем его в s3 : ec2-upload-bundle -b -m /mnt/image.manifest.xml -a -s
Регистрируем его : ec2-register /image.manifest.xml
Help от amazon доступен здесь.
Для erlang есть очень хорошая библиотека для работы с e-mail : erlmail, но вот авторизации на smtp сервере я в ней не обнаружил, а ведь большинство stmp серверов работают с авторизацией. Сделал небольшой патч – авторизация на smtp сервере.
Пользоваться этим можно например вот так :
send_mail(UserEmail, Data) ->
{ok, Pid} = smtpc:connect(“smtp.server.com”, ?SMTP_PORT),
smtpc:ehlo(Pid, ?SMTP_SERVER),
smtpc:auth(Pid, ?MAIL_LOGIN, ?MAIL_PASSWORD),
smtpc:mail(Pid, ?MAIL_FROM),
smtpc:rcpt(Pid, UserEmail),
smtpc:data(Pid, Data),
smtpc:quit(Pid).
send_mail(UserEmail, MessageSubject, MessageBody) ->
Data = “From:” ++ ?MAIL_FROM ++ “\r\n” ++ “To:” ++ UserEmail ++ “\r\n” ++ “Subject:” ++
MessageSubject ++ “\r\n\r\n” ++ MessageBody,
send_mail(UserEmail, Data ).
test() ->
send_mail(“user@bokov.net”, “this is subject”, “this is message body!”).
Очень давно хотел написать про RightScale – rightScale занимается активным продвижением cloud-решений на базе Amazon Web Services ( S3, EBS, EC2 ) и у них это очень хорошо получается. Для тех кто заинтересовался Amazon EC2 rightScale предоставляет отличную возможность попробовать amazon EC2 в действии – вы можете получить бесплатный trial account на Amazon EC2 и попробовать “прикрутить” Аmazon EC2 к какому то реальному проекту. RightScale занимается активным продвижением Amazon Web Services и проводит семинары посвященные технологиям используемым в Amazon EC2 – например последний семинар был посвящен Elastic Block Storage – вот здесь доступно видео он-лайн семинара, слайды презентации , руководство по EBS.
Amazon анонсировала появление Windows в качестве ОС для EC2 instances. На текущий момент они запустили эту возможность в private beta ( Windows Server в связке с SQL Server ), предоставить доступ к этой возможности для всех желающих планируют не позднее конца 2008 года. Появление Windows в качестве ОС внутри elastic cloud уже давно напрашивалось – в альтернативных Amazon Elastic Compute Cloud решениях windows присутствует и этот продукт пользуется хорошим спросом на рынке распределенных вычислений. Поддержка Windows Server ( и приложений базирующихся на доступных на Windows сервисах ) позволит Аmazon значительно укрепить позиции среди cloud computing провайдеров и даст возможность клиентам создавать на базе Amazon EC2 масштабируемые приложения работающие на гетерогенных архитектурах, включающих в себя windows server, unix, linux, solaris и соответственно создавать приложения которые могут базироваться на сервисах доступных на всех этих платформах.
При необходимости рассылки почты с какого либо сервера внутри Amazon Elastic Compute Cloud Вы обязательно столкнетесь с проблемой того что большая часть smtp-серверов отказываются принимать сообщения с ip которые относятся к сети Amazon EC2 – и их можно понять. Amazon EC2 – идеальная среда-инкубатор не только для креативных стартапов, но и для рассылки спама – поэтому вся сеть себя уже скомпрометировала в определенном смысле. Поэтому даже если вы поставить на instance внутри Amazon EC2 почтовый сервер почта с него уходить все равно не будет, потому что никто не будет ее принимать – выход – сделать relay на какой либо платный сервис вроде authsmtp.com, dnsmadeeasy.com, easydns.com. Второй вариант ( возможно более сложный ) состоит в том чтобы арендовать классический хостинг и сконфигурировать стоящий там smtp сервер так чтобы он мог принимать сообщения с _ваших_ серверов amazon ( если открыть доступ для всей сети Amazon EC2 ваш smtp сервер станет отличным relay для спам проектов внутри Amazon ) – я рекомендую внутри Amazon EC2 выделить сервер с elastic IP на котором поставить Postfix, который в свою очередь будет настроен так чтобы быть relay на Ваш smtp сервер у провайдера.
Далее – как проверить соединение с почтовым сервером и как настроить postfix на instance EC2
Continue reading ‘e-mail и Amazon elastic cloud – как сделать почту в EC2’ »
Amazon EC2 и Amazon S3 теперь являются официальными поставщиками cloud-решений для Oracle – компания анонсировала cloud-лицензии для Oracle Database 11g, Oracle Fusion Middleware, Oracle Enterprise Manager. Политика лицензирования для amazon compute cloud базируется на мощности instance – каждое виртуальное ядро ( virtual core ) считается эквивалентным физическому процессору, при этом политика лицензирования применима к тем продуктам к которым применяется лицензирование основанное на процессорной метрике. При этом для продуктов Standard Edition One или Standard Edition один instance EC2 c 4 ( и менее ) виртуальными ядрами считается одним socket ( и требует одной процессорной лицензии ), а для instance EC2 c более чем 4 ядрами – каждые 4 ядра считаются эквивалентом одному socket ( и требуют соответствующее количество процессорных лицензий ). Oracle Database Standard Edition при этом может быть лицензирована для instance с не более чем 16 виртуальными ядрами, а Oracle Standard Edition One может быть лицензирована для instance c не более чем 8 ядрами. Например для Oracle Database Standard Edition мы имеем 4 instance EC2 c 1 virtual core и 1 instance EC2 c 4 virtual core, тогда общее количество лицензий будет 5 – по 1 лицензии на каждый instance из тех 4 с одним виртуальным ядром, и 1 лицензия на instance c 4 виртуальными ядрами. Также Oracle объявляет о том, что “Basic Limited” и “Premier Limited” поддержки не применимы к instance у которых более чем 8 виртуальных ядер.
Более подробно о лицензировании – Licensing Oracle Software in the Cloud Computing Environment.
Информация в блоге Amazon Web Services.
Официальный пресс релиз – Oracle Unveils New Cloud Computing Products and Services
Статья про Oracle в cloud ( на русском ) – Про Oracle и Amazon EC2
Amazon анонсировал документ посвященный общему описанию системы безопасности своих веб-сервисов – Amazon Web Services: Overview of Security Processes. Несмотря на то что технических подробностей в документе не описаное, кое-что интересное стоит отметить. Итак, почему мы можем быть уверены что наши данные внутри AWS будут защищенны должным образом? Посмотрим что же обещает Amazon в плане защищенности данных внутри Elastic Compute Clouds ( EC2 ), SimpleDB и Simple Storage Service (S3).
Amazon говорит о том, что дата центры где находятся серверы построены в правильных местах, имеют все уровни физической защиты и опытный персонал. Также говорится о том, что backup данных нет, но зато данные хранятся распределенно, и эта распределенность ничего не стоит пользователям (бесплатна для них:-) ).
C EC2 ситуация следующая – там есть несколько уровней организации доступа – это собственно ОС ( host OS ), поверх нее запущено несколько виртуальных instance c guest OS ( на физически одном host работает несколько instance разных пользователей c разными guest OS), firewall ( регламентирующий доступ по сети к данному instance ) и вызовы API Amazon ( через него работает например Amazon command line tools ) – в целом вся структура должна работать таким образом чтобы данные внутри Amazon EC2 не могли быть доступны неавторизованным пользователям и каждый instance Amazon EC2 должен быть защищен настолько, насколько это возможно без ущерба для гибкости в необходимом для пользователей конфигурировании.
Continue reading ‘Защита данных в веб сервисах Amazon’ »
