Posts tagged ‘Amazon EC2’

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 ec2 usage rates

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

И на “сладкое” – анатомия instance id и расчет количества ежедневно запущенных instance – Amazon EC2 usage estimates – около 50 тысяч инстансов в пределах одной геозоны в сутки ( данные на Oct, 2009 ).

:
amazon zone eu-west-1.

По горячим следам презентации в мейл.ру хочется немного дополнить мои ответы на вопросы из зала :
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

  • 2 новых типа instance высокой мощности :64 бита – Double Extra Large с 34.2 GB RAM, and 13 ECU (4 virtual cores *3.25 EC2 compute Unit=ECU), 64-bit platform
    и Quadruple Extra Large – 68.4 GB of RAM/ 26 ECU (8 virtual cores* 3.25 ECU) : New EC2 High-Memory Instances
  • Небольшое снижение цен за instances ( в eu-west по прежнему дороже чем в us-east ) : Amazon EC2 – Now an Even Better Value
  • Новый сервис для реляционных БД ( обещается прозрачный провижионинг, скалирование и прочие радости ) : Introducing Amazon RDS – The Amazon Relational Database Service
  • И довольно таки неожиданные заявления о наличии у EC2 потенциальных уязвимостей : Vulnerability identified in Amazon’s cloud computing
  • Amazon EC2 – Ubuntu at google groups
  • 5 лет назад была анонсирована первая из технологий Amazon Web Services – Amazon Simple Queue Service – самые важные события в AWS за последние 5 лет
  • Cloud Hosting Performance
  • Measuring EC2 system performance
  • Comparing Amazon EC2 performance with other cloud/VPS hosting options… and real hardware
  • Monitoring Cloud Computing Performance with PRTG: CPU, Disk, Memory Speed Comparison of Amazon EC2 Instance Types
  • Не так давно 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

    Continue reading ‘Настройка Ubuntu для работы в EC2’ »

    Есть такой 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 Web Services: Bigger Than Amazon трафик от Amazon Web Services уже превышает трафик от amazon.com – общее количество разработчиков использующих AWS превышает 300 000 и это число растет на 10% каждый квартал. Общий объем трафика позволяет точно говорить о реальной посещаемости проектов базирующихся на AWS лишь косвенно, но основной тренд налицо – использование web services в качестве back-end платформ для самого широкого спектра продуктов ( а AWS используют не только online web ресурсы ) становится всё популярнее и имеет отличные перспективы для дальнейшего роста.

    Сравнение разных cloud-провайдеров :

    Документ в котором Amazon описывает важные аспекты работы EC2 – архитектура кластера, требования к надежности, защищенности данных и тп : AWS Security White Paper.

    Полезная конференция на Amazon Elastic Compute Cloud (EC2) at groups.grid.org

    Решения в сфере распределенных вычислений работающие с Amazon EC2 :

    Проекты работающие на Amazon EC2 :

    Полезные статьи посвященные 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’ »

    Get Adobe Flash playerPlugin by wpburn.com wordpress themes