В настоящее время облачные вычисления стали центральной частью любой технологической компании. Таковыми считаются все организации, т.к. большинство из них подпадает под категорию «программное обеспечение как услуга» (SaaS). В данной статье я постараюсь как можно проще рассказать о главных облачных/веб-сервисах Amazon, более известных как AWS.

Этот материал поможет разобраться в различных сервисах Amazon и откроет для вас массу новых возможностей, приходящих с использованием облачных вычислений, вместо самоуправляемых инфраструктур.

Самые популярные сервисы AWS

Amazon предлагает множество сервисов, которые могут оказаться крайне полезными для вашего приложения. Однако то, что является важным для одних, может показаться не таким уж нужным для других. Поэтому в данной статье мы поговорим о сервисах, нужных для всех. И начнем с Amazon Elastic Compute Cloud (EC2).

Amazon Elastic Compute Cloud — EC2

EC2 — это виртуальный вычислительный сервис, упрощающий процесс установки и настройки. С ним мы можете в два счета запускать или завершать инстансы/серверы с помощью преднастроенных операционных систем и приложений. К тому же, он позволяет создавать собственные изображения или снимки работающего инстанса ЕС2 и запускать новые с тем же статусом изображения/снимка без необходимости в его отключении.

EC2 предлагает большой выбор ОС и приложений, включая различные версии Linux и Windows. Некоторые из них находятся в уровне бесплатного пользования, поэтому будут доступны вам без каких-либо финансовых вложений.

Amazon предлагает различные типы ЕС2. Например, в некоторых доступно много оперативной памяти, а где-то предусмотрена большая вычислительная мощность CPU. Хорошая новость: вы можете выбрать разные типы ЕС2 для каждой части приложения, а платить только за то, что вам действительно нужно.

Compute-Optimized EC2:

Если ваше приложение выполняет большое количество вычислений, то вам потребуются так называемые “Compute Optimized” (оптимизированные для вычислений) инстансы от 2 до 72 ядер vCPU и объемом памяти от 4 до 144 ГБ. Этот тип хорошо проявил себя при обработке данных, массовом преобразовании файлов, машинном/глубоком обучении, многопользовательских играх и кодировании видео.

Memory-Optimized EC2:

В случаях, если приложению не требуется большой вычислительной мощности, однако вам нужно хранить большой объем данных в памяти, например, для быстрого доступа к той же базе данных в оперативке, то выбирайте инстанс “Memory-Optimized” (оптимизированный для памяти). Емкость памяти в нем от 122 до 3904 ГБ, vCPU — от 4 до 128 ядер.

С полным списком типов ЕС2 можно ознакомиться здесь.

EC2 Auto-Scaling:

Очень мощным функционалом, который идет в комплекте с ЕС2, будет автоматическое масштабирование. Это позволит вам определять некие атрибуты для увеличения или уменьшения масштаба вычислительной мощности. Например, можно создать группу автомасштабирования для «5» ЕС2-инстансов и задать ее минимальный размер «2», а максимальный — «5», а затем настроить программу масштабирования для запуска нового инстанса каждый раз при использовании CPU свыше 80% или, например, при использовании более 70% памяти. Таким образом, каждый раз при затратах 80% ресурсов CPU или 70% памяти будет запускаться новый инстанс. Процесс будет повторяться до тех пор, пока все пять инстансов не окажутся в работающем состоянии. Затем, когда нагрузка на приложение спадет, эти инстансы будут поочередно выключаться до достижения минимального значения в два работающих инстанса. Данный функционал не только сэкономит ваши деньги, но и позволит вам крепче спать по ночам.

Elastic Load Balancers

Elastic Load Balancer регулирует рабочую нагрузку на приложение, распределяя трафик по многочисленным ЕС2-инстансам и IP-адресам. Балансировщик нагрузки может использовать в качестве точки доступа для подключения SSL сертификата к нескольким инстансам. Причем, самостоятельная настройка каждого инстанса не требуется. К тому же вам будет показываться предупреждение о проверке состояния при падении или проблемах с одним или несколькими инстансами. Настройка балансировщика нагрузки не займет более 2–5 минут.

Identity Access Management (IAM)

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

Группы безопасности

Если вы когда-либо работали над конфигурацией брандмауэра в Linux, то знаете, насколько трудной и замысловатой задачей это может обернуться. С «Группами безопасности» (Security Groups) можно задавать правила из графического интерфейса. Эти правила будут сразу же применяться к инстансам без необходимости в перезагрузке.

Например, можно заблокировать доступ к 22 порту для всех IP-адресов, кроме вашего, или разрешить HTTPS для порта 443 с любого IP.

Важно знать о Группах безопасности:

· Это бесплатно, не нужно ни за что платить.

· Мгновенный эффект от применения правил.

· Разрешение на входящий трафик распространяется также и на исходящий.

· По умолчанию весь входящий трафик не разрешен.

· На один ЕС2-инстанс можно присвоить несколько групп безопасности.

· Одну группу безопасности можно задавать для нескольких ЕС2 инстансов.

· Нельзя блокировать IP-адрес с помощью групп безопасности, но можно пользоваться списками управления доступа к сети.

Типы хранилищ AWS

Amazon web services предлагает всевозможные типы хранилищ для удовлетворения всех потребностей вашего приложения. Решения разнятся от самых простых и бюджетных до эластичных хранилищ файловых систем.

Elastic Block Store (EBS):

EBS — это том блочного уровня, который прикрепляется к ЕС2-инстансу. Его можно считать виртуальным жестким диском с набором функций. К примеру, вам доступны различные типы томов, в т.ч. SSD или HDD. А еще вы можете задать количество подтипов в каждом из них.

Важно знать о EBS:

· Можно легко изменять размер тома. Если вам требуются дополнительные 200 ГБ места, то просто увеличьте объем тома без перезагрузки инстансов. Опция не работает для магнитных типов хранилищ.

· Каждый том EBS автоматически реплицируется в пределах своей зоны доступности, чем защищает приложение от сбоев компонента.

· EBS и EC2 должны содержать одинаковые зоны доступности.

Elastic File System (EFS):

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

Важно знать о EFS:

· EFS поддерживает сетевую файловую систему NFS v4.

· EFS может масштабироваться до петабайтов.

· EFS поддерживает тысячи одновременных NFS подключений.

· EFS данные хранятся в нескольких зонах доступности в регионе.

· EFS автоматически масштабируется.

· Каждая директория и файл, сохраненные в EFS, также дублируются в нескольких зонах доступности.

· EFS предлагает быстрый и безопасный способ перемещения файлов с локальных серверов в EFS, который будет в 5 раз быстрее, чем с использованием стандартных средств копирования в Linux.

Simple Storage Service (S3):

Amazon Simple Storage Service (S3) — это хранилище объектов для обеспечения 99.999999999% надежности. К тому же, все ваши файлы будут автоматически передаваться в три разные зоны доступности.

Важно знать о S3:

· Файлы хранятся как объекты внутри контейнеров «директорий».

· S3 — это не файловая система. Для того, чтобы пользоваться функциями файловой системы, необходимо добавить AWS SDK.

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

· В S3 есть 3 типа: S3 Standard, S3 AI и S3 Reduced Redundancy Storage. Они отличаются по скорости и цене.

· S3 — это универсальное пространство имен. Имя контейнера должно быть уникальным на глобальном уровне.

· S3 дает возможность запускать аналитику big data без перемещения данных в другую аналитическую систему. Эта функция называется “Query in Place”.

· В S3 имеется собственный интерфейс для легкого и безопасного перемещения данных из S3 или в него.

AWS базы данных

AWS предлагает множество профильных решений (в том числе для реляционных БД, не реляционных и In-memory) c поставщиками баз данных по каждой из вышеперечисленных категорий, а именно MySQL, PostgreSQL, MariaDB, SQL Server, Oracle, DynamoDB, Redis и Memcached.

AWS Database Migration Service:

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

Заключение

Хорошо, когда вы разбираетесь в основных возможностях Amazon web services. Теперь вы знаете о различных типах ЕС2 и областях применения вычислительных серверов, в т.ч. оптимизированных для памяти, вычислений и др. Вы также познакомились несколькими видами хранилищ, узнали об их плюсах и минусах. Поэтому всегда сможете выбрать наиболее подходящий вариант, в зависимости от своего приложения и бюджета. Кроме того, поддерживаемые AWS базы данных и сервисы миграции помогут перемещать данные из одного типа в другой. Наконец, мы советуем вам посетить сайт AWS и почитать подробнее про другие сервисы, которые не были упомянуты в данной статье.

Перевод статьи Mohamed Aladdin: Software Architecture: Architect Your Application with AWS

Предыдущая статьяКак настроить мощный API на Nodejs, GraphQL, MongoDB, Hapi, и Swagger. Часть 1
Следующая статьяЗавершаем настройку мощного API на Nodejs, GraphQL, MongoDB, Hapi, и Swagger. Часть 2