Журнал LinuxFormat - перейти на главную

LXF171:AWS: Зна­ко­мим­ся с Об­ла­ком

Материал из Linuxformat
Версия от 09:47, 18 ноября 2018; Olkol (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Ос­ваи­ва­ем и при­ме­ня­ем Amazon Web Services

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

(thumbnail)
Наш эксперт Роб Добози – технический архитектор SAP, и работает с разными операционными системами, платформами и базами данных. Он работает в Linux на всех серверах, ПК, но­ут­бу­ках, роутерах, мобильных телефонах, телевизорах, медиа-плей­е­рах и Raspberry Pi, которые только есть у него дома.

Об­лач­ные сервисы — один из са­мых громких тер­ми­нов в ми­ре ИТ. Для тех, кто не впол­не пред­став­ля­ет се­бе, что это и как ими поль­зо­вать­ся, мы и под­го­то­ви­ли этот учеб­ник. Осоз­нан­но или нет, об­лач­ные сервисы в какой-либо фор­ме применя­ют многие. Вы поль­зо­ва­лись Ubuntu One, Dropbox, Netflix, Google Docs или Apple iCloud? Все это — об­лач­ные сер­ви­сы. Что же де­ла­ет сер­вис об­лач­ным? На­цио­наль­ный ин­сти­ту­т стан­дар­тов и тех­но­ло­гии [National Institute of Standards and Technology, NIST] полагает, что он дол­жен иметь та­кие ха­рак­те­ри­сти­ки:

» Са­мо­об­слу­жи­ва­ние по тре­бо­ва­нию По­зво­ля­ет пре­дос­тав­лять по­тре­би­те­лю та­кие ре­сур­сы, как вре­мя ра­бо­ты сер­ве­ра или ме­сто на дис­ке, без че­ло­ве­че­­ско­­го уча­стия — на­при­мер, че­рез брау­зер или про­грамм­ный ин­тер­фейс при­ло­же­ния [Application Programming Interface, API]. Это оз­на­ча­ет, что вы мо­же­те при­об­ре­сти ме­сто для хра­не­ния дан­ных че­рез удоб­ный для вас брау­зер.

» Уни­вер­саль­ный ин­тер­фейс Де­ла­ет ре­сур­сы дос­туп­ны­ми че­рез сеть и не­за­ви­си­мы­ми от обо­ру­до­ва­ния. По­это­му не долж­но иметь зна­че­ния, ис­поль­зуе­те ли вы Linux или Windows, ПК, план­шет или те­ле­фон. Прак­ти­че­­ски ка­ж­дый, кто пре­дос­тав­ля­ет об­лач­ный сер­вис, пред­ла­га­ет на вы­бор кли­ен­ты для Windows (не­ко­то­рые для Linux), Android или iOS.

» Объ­е­ди­не­ние [pooling] ре­сур­сов По­зво­ля­ет про­вай­де­ру об­слу­жи­вать мно­же­ст­во кли­ен­тов с по­мо­щью мно­го­поль­зо­ва­тель­ской мо­де­ли и вир­туа­ли­за­ции, где ре­сур­сы ди­на­ми­че­­ски рас­пре­де­ля­ют­ся по за­про­су. Про­вай­де­ры ис­поль­зу­ют мощ­ные сер­ве­ры, ра­бо­тая с про­грам­ма­ми вир­туа­ли­за­ции (на­при­мер, KVM или vSphere), ко­то­рые по­зво­ля­ют за­пус­кать не­сколь­ко вир­ту­аль­ных сис­тем, ис­поль­зуе­мых раз­ны­ми кли­ен­та­ми.

» Эла­стич­ность Пре­дос­тав­ля­ет воз­мож­ность бы­ст­ро из­ме­нять объ­ем ре­сур­сов по тре­бо­ва­нию. Это мо­жет уве­ли­чить про­из­во­ди­тель­ность и по­вы­сить на­деж­ность (бла­го­да­ря за­пас­ным мощ­но­стям).

» Учет по­треб­ле­ния Оз­на­ча­ет, что об­ла­ко ав­то­ма­ти­че­­ски из­ме­ря­ет, от­сле­жи­ва­ет, кон­тро­ли­ру­ет и со­об­ща­ет о по­треб­ле­нии ре­сур­сов, обес­пе­чи­вая про­зрач­ность этих дан­ных как для про­вай­де­ра, так и для кли­ен­та.

Об­лач­ные сер­ви­сы пре­дос­тав­ля­ют­ся по трем мо­де­лям:

» Ин­фра­струк­ту­ра как ус­лу­га [Infrastructure as a Service, IaaS] — ба­зо­вая мо­дель сер­ви­са. IaaS пре­дос­тав­ля­ет по тре­бо­ва­нию та­кие вир­ту­аль­ные ре­сур­сы, как CPU, диск или сеть. За управ­ле­ние ре­сур­са­ми, опе­ра­ци­он­ные сис­те­мы и лю­бые при­ло­же­ния от­ве­ча­ют поль­зо­ва­те­ли. Среди примеров IaaS — Amazon EC2, Rackspace Cloud Servers или Google Compute Engine.

» Платформа как услуга [Platform as a Service, PaaS] предоставляет пользователям платформу для разработки, обычно включающую операционную систему, среду исполнения (например, PHP или Python), базу данных и web-сервер. Вы разрабатываете и применяете приложения к облаку, и вам не надо беспокоиться о лежащих в основе компонентах. Примерами PaaS являются Amazon Elastic Beanstalk, Microsoft Azure, Google App Engine и Force.com.

» ПО как услуга [Software as a Service, SaaS] — самая продвинутая модель сервиса; с ее помощью пользователям предоставляются приложения. Обычно пользователи не могут влиять на выбор платформы или базы данных, а в некоторых случаях даже на настройки приложения, но они получают рабочее приложение, которое выполняет их требования, и при этом им не надо беспокоиться об инфраструктуре. Оплата приложений производится за каждого пользователя или за каждую транзакцию. Среди примеров — Google Apps, Salesforce.com и Netflix.

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

Пред­став­ля­ем Amazon Web Services (AWS)

AWS — это платформа, предлагающая гибкие сервисы ИТ-струк­ту­ры в ви­де web-сервисов. Звучит кра­си­во, но что это значит? По су­ти, Amazon предоставляет набор сервисов, доступных через стандартизованный интерфейс. В разных языках программирования интерфейсы разные, но на на­шем уро­ке мы рассмотрим сетевую консоль управления AWS. Следующий вопрос, который у вас, вероятно, возник: какие это сервисы? Ну, когда я заходил туда в прошлый раз, на сайте AWS было перечислено 36 продуктов, или сервисов. Они варьировались на­чи­ная с сервера, включая базы данных и хранение, и за­кан­чи­вая размещением и сетевыми сервисами. Все это довольно сложно и запутанно, поэтому мы рассмотрим некоторые из них более подробно.

Эластичные облачные вычисления (Elastic Cloud Computing, EC2)

Именно их имеют в виду большинство людей, говоря “Amazon cloud”. Они позволяют без особых проблем занимать мощности Amazon. Эти мощности расположены в разных регионах: на Востоке США (Северная Вирджиния), на Западе США (Орегон и Северная Калифорния), в ЕС (Ирландия), Азиатско-Тихоокеанском регионе (Сингапур, Токио и Сидней), Южная Америка (Сан-Паулу) и облако правительства США (GovCloud). Для нас в ЕС наиболее подходящим регионом вы­гля­дит Ирландия — особенно если вы планируете обработку личных данных, поскольку вам придется выполнять требования Закона о защите данных [Data Protection Act] от 1998 года. Каждый регион разделен на несколько зон Доступности [Availability]. Каждая зона является физиче­ски независимой инфраструктурой и разработана с целью создания высокой степени доступности.

Указав регион и зону, которую вы хотите использовать, вы­би­рай­те оптимальную для себя опцию оплаты. Есть три возможности: On-Demand [По запросу], Reserved [Зарезервированная] и Spot [Немедленный платеж]. Если выбрать On-Demand, то начисляется почасовая оплата, без долгосрочных соглашений или предоплат. Вариант Reserved требует одноразовой предоплаты, которая резервирует один или три часа, со значительно более низкой почасовой ставкой, чем в варианте On-Demand. Вариант Spot позволяет клиентам конкурировать в борьбе за свободные мощности (прямо как на eBay). Теперь поговорим о типах EC2. Именно здесь кроется некая сложность. Есть типы M1, M3, Micro, High-Memory, High-CPU, Cluster Compute, Cluster GPU и High I/O. Большинство из них могут иметь варианты Small [Малый], Medium [Средний], Large [Крупный], Extra Large [Экстра-крупный] и Double/Quadruple Extra Large [Дважды/Четырежды экстра-крупный]. Разница в том, сколько ресурсов отводится каждому варианту. Например, M1 Large Instance имеет 7,5 GiB памяти; 2 ядра с 4 EC2 Compute Units (ECUs) в общей сложности и 850 ГБ места для хранения данных.

Ваш выбор зависит от ва­ших по­треб­но­стей в памяти, месте на диске и мощности процессора.

Последнее, что нужно выбрать — операционная система. Есть различные версии Linux и Windows. Все они предоставлены и запакованы в образ, именуемый Amazon Machine Image, или AMI. AMI могут содержать просто голую ОС — например, Ubuntu, или содержать также и приложения — например, MySQL или Oracle. Од­ни AMI бесплатны, а за дру­гие надо платить ежемесячно или на почасовой основе. Выбирайте с умом! Все AMI можно найти на рынке AWS, и вы сами можете создать свой собственный.

Хранение

Amazon на данный момент предлагает четыре разных вида хранения, которыми можно пользоваться с эк­зем­п­ля­ром EC2 или без не­го. Вероятно, лучше всего известен Simple Storage Service (S3). S3 — это интернет-хранение данных, предназначенное для web-приложений. Среди множества пользователей S3 — такие известные имена, как Dropbox, Ubuntu One и Minecraft. Новейшее дополнение к арсеналу сервисов хранения AWS — это Glacier, недорогой сервис хранения для архивных данных и резервных копий. Он оптимизирован для данных, доступ к которым требуется нечасто, и время загрузки у него несколько часов (как у ленточного накопителя). Ни S3, ни Glacier не могут напрямую использоваться эк­зем­п­ля­ром EC2, поэтому мы обратим более пристальное внимание на два оставшихся сервиса. Первый — это хранилище для эк­зем­п­ля­ров вир­ту­аль­ных ма­шин, которое автоматиче­ски распределяется при их запуске. Размер хранилища зависит от типа экземпляра (микроэкземпляр, который мы используем на данном уро­ке, во­об­ще не имеет хранилища).

Важнейшее, что надо запомнить о хранилище экземпляра — то, что оно существует, только пока работает вир­ту­аль­ная ма­ши­на. Если в силу каких-либо причин она выключится, то и хранилище экземпляра будет удалено. А значит, его сле­ду­ет использовать только для чтения или для временных данных, например, /tmp. Самый важный и разносторонний тип хранилища — это Elastic Block Store (EBS), который предоставляет объемы хранения на уровне блочного устройства, виртуального диска. В отличие от хранилища экземпляра, EBS существует независимо от экземпляра EC2. Хотя объемы хранения EBS автоматиче­ски воссоздаются в Availability Zone, они не вполне надежны. Amazon заявляет о ежегодной потере данных в размере 0,1 – 0,5 %. Это намного лучше, чем обычный жесткий диск на ПК у вас дома, но все же это не 100 %. Чтобы решить эту проблему и чтобы включить резервное копирование, EBS имеет способность создавать моментальные снимки данных, хранящихся в S3. Эти моментальные снимки инкрементны, то есть сохраняются только изменения, сделанные после последнего моментального снимка. Это экономит время, требуемое для создания моментального снимка, и необходимый ему объ­ем хранилища.

По­чем?

Со всеми этими сервисами и опциями вам, вероятно, будет любопытно узнать, во сколько они вам обой­дут­ся. Хороший вопрос. Политика ценообразования AWS состоит из це­ло­го ряда элементов — что делает ее гибкой, сложной и запутанной. Во-первых, есть стоимость экземпляра, которая скла­ды­ва­ет­ся из стоимости AMI (если только вы не используете бесплатную AMI), предоплаты для зарезервированных вариантов и почасовой стоимости для зарезервированных вариантов и вариантов по запросу. Затем нужно на­ки­нуть стоимость хранилища для вашего объема и моментальных снимков EBS. Также начисляется небольшая оплата за каждый миллион запросов I/O по каждому объему EBS. Мы не коснулись ни одного из сетевых сервисов, но вам придется платить за сетевую передачу данных между Availability Zones

и за весь исходящий интернет-трафик (входящий трафик бесплатный). И, наконец, нужно оплатить добавочные расходы — например, на мониторинг или балансировку нагрузки. Может показаться, что Amazon заставляет платить абсолютно за все, однако стоимость весьма разумная. Например, вышеупомянутый вариант M1 Large с 20-ГБ хранилищем EBS, 10 ГБ на моментальные снимки, 130 миллионами запросов I/O в месяц и 30 ГБ интернет-трафика будет стоить примерно $ 182 в месяц, если вы будете работать с ним по 12 часов в день. Круглосуточная работа без выходных обойдется в $ 306. Это может показаться слишком дорого, если вы просто хотите попробовать облачные вычисления. Но не отчаивайтесь! Amazon предлагает новым пользователям бесплатное пользование сроком на 12 месяцев. Он предлагает вам один вариант Micro, 30-ГБ хранилище EBS, 2 миллиона запросов I/O и 1-ГБ хранилище моментальных снимков. Наш урок использует бесплатный эк­зем­п­ляр, так что можете спокойно изучать основные функции AWS и совершенно ничего не тратить.


Курс на об­ла­ко

Ну вот, мы рассмотрели все кирпичи, из которых складывается основа; сложим же их вместе — и перейдем к их использованию.

Для пер­во­го запуска экземпляра EC2 вам придется использовать AMI. Большинство экземпляров имеют локальное кратко­временное хранилище, ис­че­заю­щее по выключении экземпляра. Тома EBS могут прилагаться к экземпляру, и любой сделанный моментальный снимок хранится в S3. Приложение, работающее внутри экземпляра, может также использовать S3 API для хранения любых данных в блоках памяти S3. С точки зрения расходов важно помнить, что вы платите за место, отведенное под тома EBS, моментальные снимки и блоки памяти S3 независимо от того, используете ли вы их или нет (отмечены значком $ на рисунке).

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

Давайте начнем с регистрации на сайте AWS. На https://aws.amazon.com щелкните по кнопке Sign Up наверху страницы. Если вы делаете покупки в Amazon, то большая часть вашей информации там уже имеется. Вам придется указать данные своей кредитной карты, но не волнуйтесь — Amazon не заставит вас ни за что платить, пока не истечет срок бесплатного пользования. По завершении проверки по номеру телефона и оставшихся шагов регистрации откройте консоль на https://console.aws.amazon.com. Это главный интерфейс управления всеми сервисами AWS. Теперь щелкните по EC2 Service, чтобы запустить EC2 Dashboard.

Прежде чем что-либо делать, измените регион в верхней правой части с региона по умолчанию (N. Virginia) на Ирландию (Ireland), поскольку все экземпляры EC2 будут созданы в выбранном на текущий момент регионе.

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

Когда эк­зем­п­ляр за­ра­бо­та­ет, вы должны суметь соединиться с ним через SSH на его публичное имя DNS. Не паникуйте, если вам не удастся соединиться с ним сразу после запуска: у DNS может уйти одна-две минуты на обновление. Щелкните правой кнопкой по варианту и в меню выберите Connect. Есть две опции соединения. Вторая позволяет напрямую соединяться из браузера, если у вас установлена Java. Первая, которую мы собираемся испробовать, предназначена для соединения из командной строки. Следуйте инструкциям на экране. Единственное отличие в том, что в системах на базе Ubuntu надо заменить root на ubuntu:

cd Downloads

chmod 400 MyKeyPair.pem

ssh -i MyKeyPair.pem ubuntu@<public_DNS_of_your_instance>

Теперь можете исследовать свой эк­зем­п­ляр. Попробуйте проверить память (free) и место на диске (df -h). Чтобы попробовать сделать что-то поинтереснее, давайте установим web-сервер Apache и соединимся с ним:

apt-get install apache2

service apache2 start

Как только вы увидите сообщение, подтверждающее, что сервер работает, попробуйте соединиться с ним с помощью своего web-браузера. Чтобы убедиться, что это ваш сервер, измените файл /var/www/index.html с помощью своего любимого редактора, например, Vi или nano, и перезагрузите страницу в своем браузере. Если вы не видите сделанных вами изменений, проверьте, сохранили ли вы файл в редакторе, и попробуйте снова. Если у вас получилось — отлично! Используйте свой облачный сервер для какого-нибудь крутого проекта. Помните, что пределы скрыты далеко за облаками!

1 Запустите Instance Wizard>

Сначала щелкните по кнопке Launch Instance [Запустить экземпляр]. По умолчанию будет выбран классиче­ский Wizard [Мастер]. Нажмите на Continue [Продолжить]. На стадии AMI можете выбрать, с помощью какого AMI вы хотите запустить свой эк­зем­п­ляр. В этом руководстве мы будем использовать Ubuntu Server 12.04.1 LTS.

2 Дан­ные об эк­зем­п­ля­ре>

На шаге Details [Подробнее] может выбрать количе­ство экземпляров, которые вы хотите запустить (мы остановились на одном) и тип экземпляра (мы будем использовать T1 Micro, поскольку он бесплатный). Здесь вы можете решить, в какой Availability zone [Зоне доступности] вам нужно запустить свой эк­зем­п­ляр. На данный момент можете выбрать No Preference [Без предпочтений].

3 Расширенная информация по экземпляру>

В первом окне Options [Варианты] щелкните по опции Termination Protection [Защита от прерывания] и нажмите на Continue, чтобы перейти к настройке хранилища. Здесь вы можете изменить тома EBS, прилагаемые к экземпляру, но сейчас просто нажмите Continue. Третье окно позволит вам добавлять тэги к экземпляру, чтобы вы смогли распознать его впоследствии.

4 Создание пары ключей>

Пара публичный/приватный ключ требуется для того, чтобы открыть SSH-соединение, поскольку варианты EC2 не используют пароль по умолчанию. Выберите имя для вашей пары ключей (вы можете иметь разные имена для разных систем) и нажмите Create & Download your Key Pair [Создать и загрузить вашу пару ключей]. Сохраните файл, когда этого потребует ваш браузер.

5 Настройки брандмауэра

Группы безопасности определяют то, к чему может быть получен доступ в вашем экземпляре. По умолчанию разрешен только SSH (порт 22). Давайте добавим HTTP из выпадающего меню. Не забудьте нажать Add Rule [Добавить правило], чтобы и 22, и 80 появились в списке портов.

6 Обзор и запуск

Проверьте настройки и запустите эк­зем­п­ляр. На странице Instance Overview [Обзор экземпляра] вы можете увидеть подробную информацию по экземпляру и его статусу. Запуск займет у вас не более одной-двух минут. Щелкнув правой кнопкой по экземпляру, вы сможете выполнять основные действия, такие как запуск/остановка или изменение настроек экземпляра. |

Персональные инструменты
купить
подписаться
Яндекс.Метрика