Table of Contents

Тут я оставляю заметки при подгтовке к экзамену AWS Certified Cloud Practitioner - CLF-C01

1. Cloud Computing

Шесть преимуществ использования облаков

Виртуализация vs Cloud Computing

Cloud Computing выгодно отличается от банальной виртуализации:

Различные модели облачных ресурсов

2. Обзор глобальной инфраструктуры AWS

Регионы и зоны доступности

Всего у AWS есть 77 зон доступности в 24 регионах (это наверное на 2021 год).
В каждом регионе есть две или более зоны доступности. Крупные регионы содержат до шести зон. Основным регионом считается N.Virginia - us-east-1. В нем сервисы появляются раньше всех.
Регионы позволяют:

Зоны доступности позволяют:

Edge Locations

Они расположены близко к регионам (но не зависят от них).
Используются для кеширования наиболее востребованных статических ресурсов.
В том числе - и для кеширования объектов выгружаемых/загружаемых из/в хранилищ(а) S3 (Amazon S3 Transfer Acceleration).
Также - существуют Region Edge Locations в рамках регионов, которые обладают большими объемами.

Глобальные, Региональные и On-premises ресурсы

Объекты большинства сервисов привязаны к регионам. Например - если создается сервер или кластер базы данных, то при создании необходимо указать регион, а в дальнейшем указывать регион при обращении к данному объекту. Это связано с физической инфрастурктурой, задействованной в работе объекта.
Однако, есть и глобальные сервисы:

Сервисы размещаемые у заказчика (On-Premises) для создания гибридной инфраструктуры:

Планы поддержки AWS

Basic

Только базовая поддержка по e-mail, в чатах и по телефону 24/7 при проблемах с аккаунтом, а также доступ к открытой документации и форумам.
Семь базовых проверок Trusted Advisor Tool. Мониторинг и оповещение через - Personal Health Dashboard

Developer

Рекомендуется для экспериментов и тестирования.
Базовая поддержка по технической части компонентов AWS и юзкейсам.
Только по e-mail в рабочее время.
Количество тикетов - не ограничено.
Время реакции - 24 часа для обычных вопросов и 12 часов для системных проблем. В остальном - то же что и в Basic-плане.

Business

Рекомендуется для продукционных сред.
Техническая поддержка по e-mail, в чатах и по телефону 24/7.
Время реакции - зависит от проблемы, но, к примеру, если упала продукционная система, то можно ожидать поддежки от Cloud Engineer в течение часа.
Работа с проблемами взаимодействия между сервисами AWS и сторонним ПО.
За дополнительные деньги доступен инструмент Infrastructure Event Management, который позволяет проанализировать инфрастурктуру, оценить её готовность и выявить риски перед серьезными мероприятиями типа запуска в прод или миграциями.
Доступен полный набор проверок Trusted Advisor и рекомендаций по их мотивам:

Enterprise

Начинается с $15000 в месяц.
Доступен персональный менеджер - Technical Account Manager (TAM), который активно мониторит состояние инфраструктуры и предлагает решения проблем.
Доступны Well-Archtected Review грамотными специалистами.
Техническая поддержка по e-mail, в чатах и по телефону 24/7.
Время реакции для business critical проблем - 15 минут.

Таблица

Basic Developer Business Enterprise
Только нетехническая поддержка по e-mail с 8:00 до 18:00 в TZ клиента по e-mail, в чатах и по телефону 24/7 по e-mail, в чатах и по телефону 24/7
Простая техподержка сервисов AWS. SLA - 24 часа Простая техподержка сервисов AWS. SLA - 24 часа Простая техподержка сервисов AWS. SLA - 24 часа
Реакция на системные проблемы - 12 часов Реакция на системные проблемы - 12 часов Реакция на системные проблемы - 12 часов
Реакция на проблемы продукционных систем - 4 часа Реакция на проблемы продукционных систем - 4 часа
Реакция на отказы продукционных систем - 1 час Реакция на отказы продукционных систем - 1 час
Реакция на отказы business-critical систем - 15 минут

AWS Personal Health Dashboard

Раньше была доступна на https://status.aws.amazon.com , а сейчаc редиректит на https://phd.aws.amazon.com
Показывает состояние сервисов во всех регионах.
Позволяет настроить какие-то реакции на события.

3. Управление аккаунтами

Amazon рекомендует создавать столько учеток, сколько необходимо. Для эффективнго управления учетками предуемотрен ряд инструментов.
Использование мультиаккаунтного подхода позволяет:

AWS Landing Zone

AWS Landing Zone - уже устаревший инструмент, замененный AWS Control Tower. Представляет собой гайдлайн для планирования и реализации лучших практик мультиаккаунтного окружения.

AWS Control Tower

Данный инструмент позволяет создавать мультиаккаунтные окружения (landing zones) с помощью шаблонов, включающих следующие элементы:

Окружение, созданное с помощью AWS Control Tower использует рекомендуемые политики и подходы - guardrails.

AWS Organization

AWS Organization - бесплатный сервис, для централизованного управления учетками.
Каждый инстанс сервиса AWS Organization содержит одну основную management (master) учетку и позволяет создать учетки пользователей.
Сходные по функционалу учетки могут быть объединены в Organization Unit и управляться как единое целое.
К OU-шкам (или отдельным учеткам) могут применяться Service Control Policies. котрые определяют конкретные права на ресурсы.

Consolidated Billing

AWS Organization позволяет централизованно следить за расходами на ресурсы для каждой учетки отдельно и вцелом для всех учеток.
Отвественной за платежи является вляделец management-учетки.
Объединение счетов позволяет поользоваться скидками за большие объемы ресурсов.

Планирование архитектуры учеток

Иерархия учеток (и распространения привилегий) строится на нескольких простых принципах:

Обязательно должны существовать пара OU-шек с учетками:

Вообще - нихрена непонятно на первый взгляд. Надо почитать тут: https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/recommended-ous.html

AWS Free Tier Accounts

AWS Free Tier Account - обычная стандартная учетка, которая имеет досступ ко множеству сервисов AWS бесплатно 12 месяцев с момента регистрации. С ограничениями по потребляемым ресурсам.
Также - есть доступ к ряду инструментов и сервисов:

Вечнобесплатные сервисы

Сервисы, в которых можно создавать бесплатные ресурсы (с учетом некоторых ограничений):

Пробные бесплатные сервисы

Сервисы с бесплатным пробным 30-девным периодом:

4. Технологии AWS

Identity and Access management - IAM

В иерархии IAM есть соедующие учетки:

Двухфактораня аутентификация - MFA

Позволяет защитить учетки от подбора или воровства паролей.
Используют принцип - для аутентификации должны использоваться две сущности - одна которую пользователь знает (пароль), вторая - нечто что принадлежит пользователю и есть у него прямо сейчас (источник второго фактора SMS или OTP).
Управление вторым фактором происходит в разделе Secure Credentials.

Политики паролей

Настраивают сложность паролей.
Настройки в разделе Account Settings (в меню справа в консоли IAM)

IAM Access Keys

Подобны паре логин-пароль и используются для программного (из aws cli или SDK) доступа к платформе (в отличие от логина-пароля и второго фактора, используемых при доступе к web-консоли).
Каждая пользовательская учетка может иметь два access key.

IAM Groups

Позволяют объединять пользовательские учетки в группы и назначать привилегии (привязывать политики) на группу, что имеет эффект на всех пользователей в группе.
Добавление пользователя в группу распространяет на него все политики. привязанные к этой группе.

IAM Roles

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

Назначение привилегий с помощью политик IAM

Политики представляют собой json-документы.
Политики позволяют реализовать принцип “наименьших привилегий” (least privileges) и давать необходимый минимум прав.
Когда пользователь обращается к ресурсу, то IAM вычисляет результирующую политику для его учетки и ролей этой учетки и принимает решение о предоставлении доступа.
Шесть типов политик:

Типы Identity-based политик

В свою очередь Identity-based-политики делятся на:

  1. Managed AWS Policies - дефолтные политики, которые создает AWS и управляет ими. Задают типичные привилегии. КОнечные пользователи не могут их изменить.
  2. Customer Managed Policies - политики, которые создает и редактирует пользователь.
  3. Inline policies - политики, существующие как часть субъекта IAM (пользователя, группы или роли) и неотделимы от него. Эти политики существуют, пока существует субьект IAM.

Пример политики

{
  "Version": "2012-10-07",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": "*"
    }
  ]
}

ARN - Amazon Resource Name

Может быть в форматах:

arn : partition : service : region : account-id : resource-id
arn : partition : service : region : account-id : resource-type/resource-id
arn : partition : service : region : account-id : resource-type : resource-id

IAM Policy simulator

Тулза для проверки политик: https://policysim.aws.amazon.com
Там все просто:

Получение привилегий с помощью ролей

Пользовательские учетные записи - это идентификаторы, назначенные людям или сервисам (для программного доступа к ресурсам).
В то же время роли - могут рассматриваться как самостоятельный тип идентификаторов, имеющих собственный набор политик и привилегий. Роль может быть назначена субъекту для выполнения некоторых задач.
Например:

Автоматическое обновление учетных данных при использовании ролей

Одним из ключевых свойств ролей является автоматическая ротация учетных данных при доступе внешних пользователей к ресурсам.
Таким образом - исключается долговременное хранение учетных данных на клиентах и обеспечивается нужный уровень безопасности.
Данный функционал обеспечивает Security Token Service (STS), который выдает обновляемые короткоживущие токены при назначении роли, а также контролирует их прозрачное.
Временные учетные данные включают в себя:

Вот этот самый security token и есть обновляемая короткоживущая часть кредов.
При создании роли содается политика доверия (trust policy), которая описывает субъектов, имеющих право получить данную роль. Кроме того, субъект должен иметь разрешение на получение данной роли.
Использование ролей - предпочтительный способ назначения привилегий, вместо создания отдельных учеток для внешних пользователей.

Отчеты об использовании учеток

AWS позволяет строить различные отчеты об учетных записях и выгружать их в CSV

Работа с инструментами AWS CLI

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

Настройка доступа к сервсам AWS через AWS CLI

Следует избегать использования root-учетки для работы с CLI, поскольку учетные данные в этом случае хранятся локально.

Установка инструментов AWS CLI

Надо скачать и установить отсюда: https://aws.amazon.com/cli/

Первичная настройка инструментов AWS CLI

После установки надо запустить:

aws configure

И предоставить следующие данные:

В итоге - эти данные попадут в файл ~/.aws/credentials:

[default]
aws_access_key_id = ...............
aws_secret_access_key = ............

В данном случае [default] - это имя профиля AWS. Их может быть несколько, а переключаться между ними можно задавая значение переменной AWS_PROFILE:

export AWS_PROFILE=another_profile

5. Amazon Simple Storage Service (S3)

Amazon S3 - надежное объектное хранилище. Надежность на уровне “11 девяток”.
Объекты организованы в контейнеры - бакеты. Внутри контейнера струкрутры нет.
Имена бакетов должны быть уникальны в пределах всей инфраструктуры AWS.
Доступ к объектам (файлам) бакета может быть осуществлен одним из способов:

Максимальный размер объекта в Amazon S3 - 5Tb (терабайт).
Имя файла (объекта) обычно называется key, а его содержимое - value

Имена бакетов

Точки в именах могут использоваться только при Web-style доступе, который осуществляется по незащищенному протоколу HTTP. Virtual hosted-style endpoints предполагает использование HTTPS и имена с точками не проходят через SNI. Если совершенно необходимо использовать точки в именах бакетов при доступе по HTTPS, то можно использовать какой-то балансировщик, который будет терминировать SSL. Например - Amazon Cloud-Front.

Имена ключей (объектов, файлов)

Организация объектов в бакете

В интерфейсе есть кнопка Create folder, которая позволяет создать как-бы иерархию директорий в бакете, однако структура объектов всё-равно остается плоской.
Это достигается за счет использования префиксов (имен директорий) и разделителей / в именах ключей. То есть ключ (имя объекта в бакете) может содержать в себе привычную структуру директорий, которая отобразится в интерфейсе.

Префиксы и скрость доступа к объектам

AWS ограничивает IOPS не на уровне бакета, а на уровне префиксов. То есть если вам доступны 5500 IOPS для методов GET/HEAD, то для получения скорости на уровне 27500 IOPS достаточно использовать 5 различных префиксов в именах ключей.

Регионы размещения данных S3

При создании бакета обяхательно указывать регион, где данные физически будут расположены.
AWS НИКОГДА не реплицирует данные в другие регионы. Физически данные всегда в том регионе, где создан бакет. Однако, пользовватель может настроить репликацию в другой бакет в другом регионе.

Права доступа к объектам в S3

По дефолту - права на объекты в бакете есть только у создавшей его учетки.
Основных способов раздачи прав на объекты S3 два:

Также ограниченно могут использоваться IAM-политики.
Deny - всегда сильнее, чем Allow. Но взаимоисключающими не являются.

Бакет-полиси

JSON-документ.
Раздает права (в том числе и анонимный доступ) как на саму корзинку, так и на объекты в ней.
Могут давать права юзерам и ролям из других аккаунтов.

Списки доступа

Считаются legacy и вместо них всегда лучше использовать политики.
Не могут давать доступ отдельным юзерам (только аккаунту целиком).
Есть случаи, когда ACL всё еще используется

IAM политики

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

Классы хранилищ S3

различаются по следующим параметрам:

Стоимость в свою очередь определяется параметрами:

Стоимость закачки данных В S3 - бесплатно!
важно понимать, что в пределах одного бакета могут храниться объекты на хранилищах разных классов. То есть создавать для каждого класса отдельный бакет не нужно.

Классы хранилищ S3 для объектов частого доступа

Классы хранилищ S3 для нечастого доступа

Хранение стоит дешевле, однако есть плата за извлечение. Минимальный размер обхекта - 128kB (То есть даже пустой файл занимает 128kB).

Архивные классы хранилищ S3

Не предполагают мгновенного доступа к данным, а доступ по запросу - извлечение может занимать от нескольких минут, до 12 часов и более.

Amazon Intelligent Tiering

Класс хранилища Intelligent Tiering мониторит частоту обращений к обектам и делает следующее:

S3 в Amazon Outposts

Amazon Outposts - 42U стойки с железом на площадке заказчика с AWS-совместимым набором управляющего софта.
При использовании аутпостов доступен еще один класс хранения - S3 Outposts.
S3 Outposts позволяет:

AWS S3 Versioning

Защита от случайного (нежелательного) удаления/изменения объектов.

После включения версионирования - выключить его невозможно. Но можно приостановить.

S3 Replication

Асинхронная репликация данных между бакетами бывает двух видов:

Для работы репликации должно быть включено версионирование.
Реплицировать можно как бакеты одного аккаунта, так и между аккаунтами. Также - реплика может иметь другой класс хранения.
Можно реплицировать из одного бакета во многие. И наоборот - из многих - в один.

Amazon S3 Lifecycle Management

Механизм оптимизации стоимости хранения данных.
Может быть применен к бакету или просто набору объектов с помощью префикса.
Настраиваются правила. Два типа действий:

Шифрование S3

Данные могут храниться в зашифрованном виде.
Шифрование может происходить как на стороне клиента, так и на стороне сервера Amazon S3.
При шифровании на стороне клиента - все заботы о шифровании/дешифровании лежат на клиенте.
при шифровании на стороне сервера возможны три взаимоисключающих механизма:

Хостинг статических ресурсов на AWS S3

Файлики можно хостить на S3, предоставляя к ним анонимный доступ.
Таким образом можно хостить как просто файлы, так и целые сайты.

Amazon S3 Transfer Acceleration - S3TA

Позволяет ускорить доступ клиентов к объектам в AWS S3 с помощью Amazon Cloud Front Edge Locations - точек доступа к AWS S3 (как на аплоад, так и на скачивание).

Amazon Glacier

Хранит данные в виде архивов zip или tar.
В одном архиве может быть либо один либо несколько объектов.
Размер одного архива - до 40 ТБ (при том что один объект может быть размером до 5ТБ).

Amazon Storage Gateway

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

Сам Amazon Storage Gateway подключается к AWS S3 через интернет с помощью IPSec VPN или AWS Direct Connect. Сценарии использования:

Миграция больших объемов данных

Иногда данных много и залить их через интернет в облако невозможно.
Тогда на помощь приходят продукты Snow Family

Amazon SnowBall

Программно-аппаратные комплексы двух видов:

Amazon SnowCone

Малленький девайс. 2 кг. 8Тб диск, пара ядер CPU и 4 Gb RAM.

Amazon SnowMobile

Для эксабайтных масштабов.
Приезжает 45-футовый защищенный контейнер.
До 100 Петабайт данных. С полной технической поддержкой миграции.

6. Сетевые сервисы AWS - VPC, Route53, CloudFront

VPC

AWS VPC - это виртуальная облачная сеть.
Область действия VPC - в пределах Региона AWS. То есть ресурсы могут размещаться в любой AZ региона.
При создании VPC нужно задать один из диапазонов адресов для частных сетей.

Подсети VPC (Subnets)

Внутри VPC должны быть созданы подсети с непересекающимися диапазонами адресов.
То есть если VPC назначен CIDR 10.0.0.0/16, то подсети могут иметь CIDR - 10.0.1.0/24 и 10.0.2.0/24 .
Каждая подсеть существует в пределах одной зоны доступности (AZ).

Доступ в Internet

У дефолтных VPC и подсетей доступ в интернеты есть.
Чтобы у кастомных VPC был доступ в интернет - должен быть задеплоен шлюз (internet gateway) и соответствующие маршруты.
С публичными адресами история такая:

Elastic IP Address

VPC Security

Обеспечение безопасности - одна из основных функций VPC.
Достигается - правилами файерволов, отделяющих одни подсети от других.
Имеются два механизма реализации безопасности:

Security Groups

Это наборы правил файервола для входящего и исходящего трафика, которые привязываются к инстансам EC2.
Работают именно на уровне инстансов, но не подсетей.
К каждому инстансу должна быть привязана хотя бы одна Security Group.
Максимум можно привязать пять Security Group к одному инстансу EC2.
Дефолтные Security Group разрешают любые исходящие подключения, а входящие подключения только от инстансов с такой же Security Group.
Важно понимать, что Security Groups являются statefull, что означает что если разрешен входящий трафик к какому-то сервису, то автоматически разрешается и ответный (исходящий) трафик сервиса, независимо от явно заданных исходящих разрешений.
Несколько важных свойств Security Groups:

Network Access Control Lists (NACLs)

Это другой тип правил файервола - ограничивает трафик к целым подсетям.
По-дефолту - разрешено всё, поскольку ограничения действуют на уровне Security Groups
Не являются statefull, что означает необходимость явно конфигурировать как правила для входящего трафика к сервисам, так и ответного исходящего от сервисов.

Трансляция адресов - NAT

Для предоставления доступа в интернет для инстансов, работающих в непубличных (не имеющих прямой связи с интернетом) сетях используется NAT.
Сервис NAT должен быть помещен в публичную сеть и иметь Elastic IP.
Должны быть сконфигурированы соответсвующие маршруты.
Если инстансы используют IPv6, то доступ в интернет для них настраивается с помощью egress-only internet gateway.

Связь между разными VPC - VPC peering

Для быстрого взаимодействия между сервисами из разных VPC можно настроить VPC peering.
В этом случае - трафик не ходит через относительно медленный интернет, а ходит по быстрым и надежным внутренним каналам AWS.
Пиринг может быть настроен как между VPC в одном аккаунте, так для VPC из разных аккаунтов. Как в пределах одного региона, так и между регионами.

VPC tansit gateway

Если число взаимодейтсвующих VPC больше двух, то сетевая топология может быть довольно сложной.
Для ее упрощения существует VPC transit gateway, реализующий топологию “звезда”.

Virtual Private Networks - VPN

К инфраструктуре AWS можно подключить on-premise ресурсы с помощью IPSec VPN.
Для этого надо создать и настроить Virtual Private Gateway и подключить его к VPC.
На стороне on-premise поддерживаются различное оборудование - Cisco, Juniper, Check Point и прочие.
После настройки собственно канала - нужно настроить маршруты.
Существует аппаратное ограничение на скорость зашифрованного IPSec VPN - 1.26 Gbps.

AWS Direct Connect

Способ подключения on-premise инфраструктуры AWS по выделенным каналам.
Это дорого и круто - прокладывается оптика до ближайшего узла партнеров Amazon Direct Connect.
Доступны скорости подключения до 100 Gbps.

AWS Route53 - глобальный DNS и роутинг

Основные функции AWS Route53:

Регистрация доменных имен

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

Hosted DNS-зоны Route53

Для создания DNS-записей, указывающих на ресурсы надо создать Hosted Zone.
Hosted Zone - это контейнер для хранения записей и управления ими.
Существует два типа зон AWS Route53:

DNS-имена ресурсов AWS

При создании ресурса он получает DNS-имя, которое доступно с помощью Amazon Route53 Resolver.
Существуют два типа DNS-записей ресурсов:

Политики маршрутизации Route53

Health Checks

Проверки состояния ресурсов.

Политики обработки трафика - Traffic flow policies

Политики роутинга могут быть довольно сложными.
Например - можно по Latency роутить трафик между несколькими регионами, затем - по Weighted между инстансами.
Каждая такая конфигурация - является собственно политикой траффика, которая создается с помощью визуального редактора Route53.
Важно понимать, что политики трафика Route53 могут быть созданы только для публичных DNS-зон.
Дополнительно к основным политикам доступны следующие:

Организация CDN с помощью Amazon CloudFront

Amazon CloudFront предоставляет инструменты для организации динамической сети распространения контента CDN.
Запрашиваемые объекты доставляются с помощью Edge Locations (и кешируются там), расположенных наиболее близко к клиенту.
Для включения этого функционала надо создать distribution endpoint и задать источник (бакет S3, инстанс ec2, балансер) и тип контента.
В результате получится URL (HTTP или HTTPS), который можно отдавать пользователям.
Контент может быть:

Выбор класса для CloudFront distribution

Стоимость дистрибуци трафика зависит от качества инфраструктуры в регионе.

Amazon API Gateway

Managed-сервис для создания быстрых и безопасных API, предоставляющих доступ к облачным ресурсам - базам данных, микросервисам, Lambda-функциям и прочим.
API создается путем описания высокроуровневых абстракций.

7. AWS Compute Services

Инстансы EC2

Инстансы делятся на:

Инстансы привязаны к конкретным зонам доступности (AZ). То есть при создании инстанса нужно указать подсеть VPC, которая как раз и привязана к AZ.
Каждый инстан может иметь:

При создании инстанса используеся какой-то образ ОС - Amazon Machine Image (AMI).

Семейства инстансов

Также доступны выделенные виртуалки и хосты - Dedicated Instances и Dedicated Hosts. Они нужны для соответствя регулятивным нормам, когда недопустима работа ПО на разделямых аппаратных ресурсах.

Amazon Machine Images (AMIs)

AMIs - образы дисков виртуальных машин.
Бывают двух типов:

Если в составе AMI есть лицензируемуе ПО, то стоимость лицензии входит в стоимость эксплуатации инстанса.
AMI существуют в пределах региона. То есть если нужно создать инстанс с заданным AMI - то этот AMI должен существовать в этом регионе. Однако - AMI можно копировать между регионами.
Источники AMI:

Amazon Elastic Block Storage

Тома подключаются к инстансам как правило по iSCSI.
Тома независят от инстансов и могут быть отсоединены и присоединены к другому инстансу.
Можно создавать снепшоты. Первый - полный, последующие - инкрементные. Снепшоты можно копировать между регионами и между аккаунтами.

Есть две категории дисков EBS:


В свою очередь SSD также имеют типы:


HDD представлены типами:

Тома AWS EC2 Instance store (Ephemeral storage)

Еще один тип хранилища - instance store представляет собой временный диск, размещенный на локальном диске фзического хоста, на котором работает инстанс EC2.
При выключении машины - этот том уничтожается, а при старте - снова создается (поскольку машина практически никогда повторно не стартует на том же хосте).
Такми образом - instance store - это временное хранилище, обеспечивающее минимальные задержки, по сравнению с EBS (который всегда SAN).
Важно понимать, что перезагрузка инстанса не приводит к уничтожению ланных на instance store, поскольку в этом случае машина остается запущенной на прежнем хосте и не переезжает на новый.
Надежность instance store - не гарантируется.

Цены на инстансы EC2

Принципы ценообразования:


Для Reserved Instance доступны две опции:

Также - для Reserved Instance доступны скидки в зависимости от предоплаты:

Ненужные Reserved-инстансы можно перепродать на Reserved Instance Marketplace (только Standard Reserved). Также, если нужен инстанс на срок меньше стандартный 1 или 3 года - можно подыскать его на маркете. Для продажи инстанса на маркете он должне быть оплачен быть во владении не менее 30 дней.

Spot Instance Pricing

У AWS есть резервные EC2 инстансы, не задействованные в данный момент, которые можно использовать с большой (до 90%) скидкой.
Недостатком использования этих инстансов является то, что они могут быть остановлены в любой момент (по мере роста потребности в On-Demand инстансах).
При остановке инстанс раньше мог быть только удален, но теперь появились и другие опции - выключение или гибернация.
Цены устанавливаются фактически по правилам аукциона. То есть при создании такого инстанса есть текущая цена и задается максимальная цена, которую клиент готов платить за инстанс. Если потреность в инстансах растет и текущие цены превышают заданную максимальную - инстанс останавливается.
По мере падения спотовых цен - при достижении максимальной цены - инстанс снова запускается.
Таким образом - спотовые инстансы могут быть остановлены в трех случаях:

Пред остановкой, за 2 минуты, Amazon CloudWatch генерирует Event, который может быть обработан Lambda-функцией или Amazon SimpleNotifications (SNS).

Файловые хранилища AWS Elastic File System (EFS)

AWS EFS позволяет создавать файловые хранилища, подключаемые к инстансам по сети. Основные фичи:

Amazon Lightsail

Amazon Lightsail - это полностью сконфигурированные VPS со всем необходимым на борту для какой-то задачи:

Деплоится легко и быстро, имеет фиксированную стоимость в месяц (от $3.5 за 1vCPU, 512MiB RAM, 20Gb SSD и 1TB трафика в месяц). Также доступны и дополнительные опции - статические IP, DNS, доступ по SSH/RDS и прочее.
Можно сделать снепшот и проапгрейдить Lightsail до стандартного EC2-инстанса.

Amazon Elastic Container Service (ECS)

AWS ECS - сервис запуска Docker-контейнеров в облаке.
Терминология:

Опции запуска ECS

Amazon Elastic Kubernetes Service (EKS)

Managed-кластеры k8s.
При создани кластера выбирается тип EC2-инстансов для worker-нод.
После создания кластера нужно установить необходидмые addons - CNI (calico), LoadBalancer Controller для публичных IP-адресов, возможно - Ingress (nginx).

Serverless computing - AWS Lambda

Само понятие Serverless для клиента означает отсутствие необходимости взаимодествия с серверами, и их ОС. Клиент просто предоставляет код для запуска, а AWS обеспечивает и настраивает всю инфраструктуру, необходимую для его исполнения.
AWS Lambda - это Function as a Service.

Например - по событию загрузки изображения на S3 - триггер запускает Lambda-функцию, которая добавляет ватермарк и выгружает в другой бакет.
Или - по расписаню включать и выключать EC2-инстансы.
Оплата AWS Lambda - только за время фактической работы.

AWS Batch

Используется для запуска большого (тысячи) количества вычислительных заданий.
Вся работа по инициализации вычислительных ресурсов (инстансы EC2 или ECS) выполняется автоматически.
Оплаа - за фактически использованные ресурсы.

AWS Outposts

Средства создания гибридных облаков.

Дополнительные опции хранилищ AWS

Amazon FXs for Lustre

Предоставляет доступ к managed файловой системе Lustre, которая способна обеспечить миллионы IOPS и пропускную способность в десятки гигабайт в секунду.
Интегрируется с Amazon S3 для организации долговременного хранения.

Amazon FSx for Windows File Server

Managed файловые шары с поддержкой SMB для Windows-инфрастурктур.
Поддердивает AD и DFS.

Безопасный доступ к VPC - Bastion Hosts и Session Manager

Для уменьшения поверхности атаки применяются Bastion Hosts и Session Manager.

8. Сервисы AWS Databases

Amazon дает возможность создавать managed-базы данных. традиционные реляционные (RDS) или неструктуриованные NoSQL.

Amazon RDS

Поддерживаются шесть движков БД:

При создании инстанса:

Инстансы могут быть:

EBS-тома могут быть:

Можно апгрейдить тип хранилища, но это может потребовать кратковременной остановки БД.

Особенности деплоя Amazon RDS

Сценарии поключения к инстансу Amazon RDS могут включать:

Резервирование и восстановление Amazon RDS

Для выбора оптимальной стратегии резервирования важно определить два параметра:

Например - нужно восстановиться за 1 час (RTO) и потерять данные записанные в БД не более чем за 2 часа (RPO).
Логично, что чтобы реализовать RPO 2 часа нужно делать бекапы каждый 2 часа.

Реализация отказоустойчивых БД - Multi AZ

Классический кластер Active-Passive:

Таким образом можно снизить RTO и RPO практически до нескольких минут.
Переключение между master и standby нодами может быть полезно и в случаях необходимости технических работ на master-ноде (апгрейд, изменение конфигурации).

Автоматическое резервное копирование

Резервное копирование вручную

Полезно перед масштабными изменениями в БД.

Межрегиональное резервное копирование

Можно включить репликацию бекапов в другой регион, на случай серьезного дизастера.

Кратковременный отказ в обслуживаннии при начале резервного копирования

При создании снепшота БД в конфигурации, когда есть только одна master-нода, может происходить “замирание” ввода-вывода на несколько секунд.
Это стоит учитывать при выборе “окна” для создания резервных копий.
В конфигурации Multi-AZ такого не происходит, поскольку снепшот для бекапа снимается со standby-ноды

Горизонтальное AWS RDS масштабирование с репликами "только для чтения"

В кластере Active-Passive запросы обрабатывает только master-нода. Обратиться к standby-ноде невозможно - она только реплицирует данные и ждет дизастера.
Если необходимо - для повышения производительности можно настроить ноды-реплики “только для чтения”.

Amazon Aurora

Amazon Aurora - проприетарная разработка Amazon.
Эта БД совместима с MySQL и PostgreSQL, но в пять раз быстрее, чем MySQL и в три раза быстрее, чем PostgreSQL
отказоустойчивая конфигурация - минимум три ноды (в разных AZ).
Объемы БД - до 128TiB
Репликация - до 15 read-only реплик.
Деплоится в виде DB-кластеров, в котором используются два типа инстансов, а также общее хранилище - cluster volume (размещенный на нескольких storage-nodes в нескольких AZ):

Доступна как в классическом серверном варианте, так и serverless

Amazon Aurora Serverless

Amazon DynamoDB (NoSQL)

Терминология DynamoDB

В отличие от SQL - не нужно заранее определять схему и типы данных в колонках.
Ключи (за исключением Primary) можно добавлять/удалять в любой момент.
Значения ключей могут иметь следующие типы:

Определение требований к инстансу DynamoDB

При создании инстанса нужно указать параметры планируемой нагрузки:

Дальше - в зависимости от значений Amazon определит необходимые параметры инстанса.
Доступны две опции:

Amazon RedShift - Data Warehousing

Предназначен для извлечения данных из других (реляционных) БД и построения аналитики по созданным датасетам - OLAP operations (OnLine Analitical Processing).
Клиентам Amazon такде доступно BI-приложение (business intelligence).
Является колоночной (column storage) БД (в противовес реляционным, где каждая запись - ряд). Это позволяет при чтении снизить количество операций IO в три раза, по сравнению с реляционными БД.
Архитектура - кластер:

RedShift Spectrum

Сервис реализующий SQL запросы к данным, хранимым в AWS S3.
Например - у вас много нечасто нужных данных в S3.
Вместо того, чобы импортировать их в дорогостоящие инстансы RedShift и затем обращаться к ним - можно сразу обращаться к данным в S3.

Amazon Elasticache

сервис кеширования горячих данных в памяти.
Доступны два варианта:

Amazon Neptune

Fully managed БД Графов
Хранит данные в виде нод, их аттрибутов и связей между ними.
Поддерживает многие широко применяемые модели:

И языки:

Применяется при анализе “больших данных”:

Amazon Quantum Ledger Database (QLDB)

Fully Managed Blockhain от Amazon.

Amazon Database Migration Service (DMS)

Сервис для миграции on-premise БД в облако. Поддерживаются как гомогенные миграции - MySQL → MySQL, так и гетерогенные - Oracle → MS SQL или MS SQL → Amazon Aurora.
Во время миграции БД остается работоспособной, уменьшая даунтайм.
Может использоваться для непрерывной репликации on-premise БД в облако для отказоустойчивости.

9. Отказоустойчивость и эластичность AWS - (HA and Elasticity)

Вертикальная и горизонтальная масштабируемость

Вертикальная - апгредим ресурсы инстансов.
Горизонтальная - увеличиваем количество инстансов

Вертикальаня масштабируемость

Горизонтальная масштабируемость

Модель OSI

Ну что про нее сказать - она самая!!!

Распределение (балансировка) трафика с помощью Amazon Elastic Load Balancer ELB

ELB - работает в пределах региона и не может балансировать между регионами.
В качестве бекендов могут выступать:

Общие правила использования ELB

Балансировщики ELB бывают двух видов:

Для того, чтобы инстанс ELB мог принимать запросы - для него должна быть настроена соответствующая Security Group с правилами для входящих подключений.
Для того, чтобы инстанс ELB мог обращаться к бекэнд-серверам - для них должна быть настроена соответствующая Security Group с правилами для входящих подключений.
Типы балансировщиков:

Application Load Balancer (ALB)

Это L7-балансировщик (application layer).
Работает с протоколами HTTP и HTTPS.
Поддерживает:

Состоит из:

Health Checks

Поддердивается проверка состояния бекэнд-инстнсов в target groups
Неработоспособные инстансы удаляютяс из баланссировки до момента восстановления

ALB и Web Application Firewall (WAF)

ALB интегрируется с WAF, который фильтрует поступающие запросы для защиты от типичных атак:

NLB

Балансировщик L4 - балансирует как TCP, так и UDP протоколы.
Свойства:

GWLB - Amazon GateWay Load Balancer

Amazon GWLB выступает в качестве единой точки входя для траффика, который должен быть проанализирован различными внешними инструментами (файерволы, IDSes/IPSec - intrusion detection/prevention). Инструменты доступны на Amazon Marketplace в виде virtual appliances.

CLB - Amazon Classic Load Balancer

CLB - первая реализация балансировщика в AWS.

Эластичность и Amazon Auto Scaling

Эластичность - предполагает автоматическое масштабирование облачных ресурсов по мере роста/уменьшения нагрузки.
Масштабирование происходит в ответ на события, например - это превышение/уменьшение значений каких-либо метрик (например - загрузка CPU), либо - таймер.
Auto Scaling - это региональный сервис, который работает с метриками и EC2-инстансами в пределах региона AWS.

Параметры Auto Scaling

Для реализации автоматического масштабирования настраиваются Auto Scaling Groups - они описывают коллекцию (fleet) EC2-инстансов и параметров масштабирования:

Сервис Auto Scaling выполняет автоматические health-чеки (выполлянемые через ELB или самим AutoScale) и реагирует на их результаты действиями, прописанными в политиках масштабирования.

Шаблоны конфигураций

Для настройки AWS Auto Scaling создаются либо Launch Template, либо - Launch Configuration - спецификации EC2-инстансов:

Чем отличаются Launch Configuration и Launch Template:

Политики Масштабирования

Масштабирование триггерится в ответ на события. Это все настраивается в политиках масштабирования (scale policy):

В свою очередь динамическое масштабирование может быть таким:

Проектирование мульти-региональных отказоустойчивых решений AWS

Эффективные механизмы обеспечения высокодоступных решений - Amazon ELB и Amazon Auto Scaling - работают только в пределах региона AWS.
Однако, обеспечить высокую доступность на случай выхода из строя целого региона можно с помощью Amazon Route 53 и Amazon Cloud Front.

10. Сервисы AWS для интеграции приложений

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

Сервисы AWS для интеграции приложений включают в себя:

Amazon Simple Notification Services (SNS)

Это сервис для push-сообщений сервисам или непосредственно пользователям.
Работает по принципу издатель/подписчик (publisher/subscriber). Каждый издатель может отправить сообщение одному или нескольким подписчикам.
Пример использования - необходимо получать оповещения о загрузке объектов в S3.

В результате - при заливке объектов в S3 на почту приходит сообщение. Это A2P.
В качестве подписчика пожет выступать Lambda-функция, которая может что-то делать с загруженным объектом. Это A2A.

Amazon SNS Endpoints

Для получения сообщений подписчики должны предоставлять один из заданных типов эндпоинтов.
A2A Endpoints:

A2P Endpoints:

Amazon SNS Topics

Чтобы сообщение было доставлено - нужно создать topic, куда издатель (publisher) его отправит и на который подпишутся подписчики (subscribers).
Для издателей настраиваются политики доступа к топикам - то есть в примере в S3 - бакету нужно дать права с помощью IAM-политики на публикацию сообщений в топике. Политика назначается на топик.
Правила наименования топиков:

ARN выглядит так: arn:aws:sns:eu-west-2:123456789789:new-object-upload-alert

Типы топиков SNS

Amazon SNS Fanout

Amazon SNS Fanout - это механизм репликации сообщений множеству подписчиков.
Работает - параллельно и ассинхронно.
Реализуется с помощью Amazon Kinesis Data Firehose
Пример - нужно чтобы сообщения от Lambda-функции, которая обрабатывает заказ билета передавались Lambda-функции, которая обрабатывает платеж и далее - в Amazon Redshift для истории.

Стоимость использования Amazon SNS

Платим только за сообщения.

Amazon SQS и Amazon MQ для реализации микросервисной архитектуры

Брокеры очередей сообщений Amazon SQS и Amazon MQ - позволяют перейти от монолитных приложений к микросервисам. Amazon SQS и Amazon MQ представляют дополнительный высоконадежный слой взаимодействия между элементами приложений, что в итоге позволяет:

Пример сценария, использующего Amazon SQS - приложение конвертирующее видео-файлы в разные разрешения и форматы:

В то время,как Amazon SNS является источником push-событий, Amazon SQS - это pull-based платформа, где чтение сообщений инициируется серверами приложений.
Сообщения в amazon SQS могут храниться некоторое время (дефолт 4 дня, до 14 дней).

Типы очередей Amazon SQS

Шифрование сообщений

Сообщения в Amazon SQS могут быть зашифрованы с помощью ключей Amazon KMS (Key management Service).

Оплата SQS

Платим только за сообщения и взаимодействия с S3 и KMS.

Amazon MQ

RabbitMQ-совместимый брокер сообщений.
Ориентирован на клиентов, мигрирующих в облако. Не имеет других преимуществ перед Amazon SNS и Amazon SQS, которые предпочтительны для новых приложений.
Поддерживает API JMS и протоколы:

Проектирование event-driven приложений на базе AWS EventBridge

Amazon EventBridge - это шина событий, для обработки сообщений поступающих в реальном времени и реакции на них.
Amazon EventBridge - это новая версия инструмента, ранее называвшегося Amazon CloudWatch Events.
В качестве обработчиков могут выступать:

События генерируются в ответ на изменение состояния ресурса (например - EC2-инстанса, события AutoScale).
Amazon EventBridge путем создания правил, описывающих шаблоны событий и таргеты, куда будет отправлено оповещение.
Amazon EventBridge может запускать действия по таймеру.
В отличие от Amazon CloudWatch Events, который имел только одну дефолтную шину событий (для событий AWS и кастомных), Amazon EventBridge позволяет создавать кастомные шины, который могут быть выделены для обработки катомных событий от приложений. Также Amazon EventBridge поддерживает интеграцию с внешними приложениямитакими как ZenDesk, PagerDuty, Datadog.
Терминология Amazon EventBridge:

Amazon Step Functions и Amazon SWF

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

Amazon Step Functions

Amazon Step Functions - связывают различные элементарные обработчики данных (Lambda-функции, контейнеры ECS) в единый WorkFlow.
Amazon Step Functions - позволяют описывать и визуализировать workflow прикладных задач в виде отдельных блоков - конечных автоматов, называемых states, каждый из которых на входе получает даные, в том числе и интерактивно от пользователя, а затем принимает решение на их основе и передаёт дальше по цепочке следующему state или внешнему обработчику типа Lambda-функции.
State бывают следующих видов:

Amazon Step Functions используют JSON-объекты Amazon State Language (ASL) для описания конечных автоматов.

Типы Workflow

Amazon Simple Workflow Service (SWF)

Amazon SWF - еще один, наряду с Amazon Step Functions сервис компоновки сложных задач из элементарных обработчиков (workers), работащих на инстансах EC2 или on-premise.
Основное отличие Amazon SWF от Amazon Step Functions - это способ описания workflow.

11. Сервисы AWS для анализа информации

Amazon Kinesis - стриминг данных

Amazon Kinesis - fully-managed сервис для немедленной обработки данных по мере их поступления.
Включает в себя 4 основых сервиса:

Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose - по функционалу напоминает Logstash от Elastic, но не обеспечивает кеширования.
Amazon Kinesis Data Firehose - сервис для приема данных и передачи их в:

Amazon Kinesis Data Firehose позволяет:

Оплата - только за количество обработанных данных. Без резервирования и предоплат.

Amazon Kinesis Data Streams

Amazon Kinesis Data Streams - real-time сервис для получения и стриминга данных в кастомные приложения (Lambda-функции или AWS S3). В отличие от Amazon Kinesis Data Firehose, который ориентирован на стриминг данных в хранилища.
Свойства Amazon Kinesis Data Streams:

На первый взгляд может показаться, что Amazon SQS и Kinesis Data Streams абсолютно одинаковые, однако это не так. Amazon SQS - это слой взаимодействия между компонентами приложений, очередь сообщений, с издателями и подписчиками. А Kinesis Data Streams - это просто стриминг сообщений, аналог logstash с резервируемой и гарантированной пропускной способностью, а также хранением при необходимости.

Amazon Kinesis Data Analytics

Сервис построения приложений для анализа данных, собираемых Amazon Kinesis Data Streams или Managed Streaming for Kafka (MSK).
Позволяет использовать стандартные способы обращения к БД - с помощью языков Java, Python, Scala, SQL, а также отрытого фреймворка дял потокой обработки данных - Apache Flink.
Для разработки приложений потоковой обработки доступна среда Kinesis Data Analytics Studio.

Amazon Kinesis Video Streams

Amazon Kinesis Video Streams - сервис хранения, каталогизации, воспроизведения и анализа видеопотоков.
В качестве хранилища использует S3.
Amazon Rekognition - сервис анализа видеопотоков для выявления объектов, лиц, сцен, текста, изображений.
Например - можно организовать стриминг с камер возле дверей домов, распознавать людей, которые стучатся в дверь и уведомлять пользователей.

Обработка данных из Amazon S3 с помощью Amazon Athena

Часто, данные выгружаются на S3 потому что они нужны нечасто и держать их в одной из баз Amazon RDS или NoSQL нецелесообранзно.
Для быстрого и удобного доступа к таким данным используется fully-mnaged бессерверный сервис Amazon Athena, который позволяет выполнять SQL-запросы к данным хранящимся на S3.
Формат хранения данны на S3 может быть как структурированным, так и неструктурированным - CSV, JSON, ORC, Apache Parquet.
Кроме того, Amazon Athena предоставляет драйвер JDBC для взаимодейтсия с популярными BI-приложениями.
Процесс доступа предполагает создание (автоматически или вручную) базы данных и таблиц с даными на основе метаданных, которые указывают Amazon Athena формат данных на S3.
Результаты запросов могут быть выгружены на S3.

Amazon Elasticsearch (AWS OpenSearch)

OpenSearch - это Managed-сервис от Amazon реализующий все прелести Elasticsearch. Используется свой дистрибутив - OpenDistro
Доступны Kibana и Logstash.
OpenSearch может получать данные из Amazon Kinesis Data Firehose, Amazon CloudWatch Logs, и AWS IoT

Amazon Glue и Amazon QuickSight

Сервисы для объединения данных из различных источников - БД, стримингов, S3 и прочих.

Amazon Glue

Amazon Glue - это serverless managed ETL-сервис (Extract, Transform, Load).
Он позволяет извлекать, преобразовывать и загружать данные из обних хранилищ в другие, тем самым объединяя и обогащая данные.
Amazon Glue содержит Data Catalog - центральное хранилище метаданных, которое хранит сведения о данных (например - опредения таблиц).
Для обнаружения данных и сбора сведений об их структуре и типах используется crawler.
Crawler сканирует источники, обнаруживает данные и сохраняет информацию о них в Data Catalog.
Затем - собранные метаданные используются для построения ETL-скриптов, преобразующих данные в нужные форматы.
Для работы с Amazon Glue используется AWS Glue console которая может:

Биллинг - на основании ресурсов и времени их использования, почасовой (с посекундным разрешением), а также на основании количества использованного места для хранения метаданных в AWS Glue Data Catalog.

.

Amazon QuickSight

Fully Managed, serverless BI-сервис для формирования и публикации интерактивных BI-дашбордов.
Может использовать данные из сервисов AWS, БД on-premises, из сервисов SaaS и B2B-данные.
Дашборды могут быть использоваться как на PC, так и на мобильных девайсах.
QuickSight интегрируется с ML-сервисами (ML Insights) для глубокого анализа, выявления отклонений и аномалий в данных.
Также - итоги анализа могут быть сформулированы обобщены в виде описания на естественном языке.
Биллинг - по числу пользователей этих дашбордов.

Другие сервисы анализа данных от Amazon

Elastic Map Reduce (EMR)

AWS EMR - это managed Hadoop framework.
Может использоватьс с инструментами Apache Spark, Apache Hive, Apache HBase, Apache Flink, Apache Hudi и Presto.
Включает в себя свою IDE - EMR Studio., которая поддерживает разработку на R, Python, Scala и PySpark.
Рабочие нагрузки можно запускать на EC2-инстансах и в кластерах k8s - AWS EKS, а также on-premises с помощью AWS Outpost.
Биллинг - за каждый инстанс, посекундный с минимальным интервалом использования 1 минута.

AWS Data Pipeline

web-сервис для автоматизации переноса и преобразования данных из различных источников (on-premise и других) в сервисы AWS (S3, RDS, DynamoDB, EMR).
Например - настроить автоматическую архивацию логов web-сервера в S3 и затем - запускать EMR-job для анализа и генерации репортов.

AWS CloudSearch

Managed-сервис для организации поиска в web-приложениях.
Поддерживает 34 языка и разные сложные поисковые запросы для поиска по сайтам.

12. Автоматизация и развертывание приложений в AWS

В даном разделе рассматриваются:

Деплоймент приложений с помощью Amazon Elastic Beanstalk

Сервис Amazon Elastic Beanstalk позволяет полностью автоматически выполнять:

Подерживаются приложения на следующих языках:

Amazon Elastic Beanstalk полностью обеспечивает создание и настройку инфраструктуры, также поддердиваются контейнеризированные прилжения.
В процессе разворачивания инфраструктуры можно задавать ее параметры - типы инстансов EC2, их количество, а также параметры автоскейлинга, а после разворачивания - можно менять параметры и апдейтить приложение.

Базовые концепции Elastic Beanstalk

Web Server environment tier

Позволяет автоматизировать публикацию web-фронтендов.
Настраивает ec2-инстансы в нейскольких AZ, автоскейлинг для них, балансировщики нагрузки, а также - весь стек, необходимый для работы приложения.
Например публикация .NET приложения для Windows подразумевает настройку Windows-based инстансов EC2 и заданую версию IIS.
Также - приложение автоматически публикуется, для чего создается DNS-запись вида app-name.region.elasticbeanstalk.com, на которую можно ссылаться с помощью CNAME-записей.
На созданных EC2-инстансах деплоится host manager (HM), который:

Worker environment tier

Этот тип окружений предназначен для деплоя backend-слоя.
Elastic Beanstalk деплоит:

На каждый EC2-инстанс деплоится демон, который читает сообщения из очереди SQS и отправляет прочитанные данные в приложение.

IaC с помощью Amazon CloudFormation

Amazon CloudFormation - использует JSON-темплейты (можно YAML) для описания инфраструктуры, в коорые можно подставлять некоторые значения для изменения параметров.
Темплейты используются для разворачивания стеков - CloudFormation stacks

CloudFormation stacks

CloudFormation stack - это контейнер, который группирует создаваемые ресурсы и позволяет обращаться с ними как с единым целым.
Стеков в рамках инсталляции может быть много и они могут взаимодействовать между собой.

Change sets

При внесении изменений в ресурсы, задеплоенные с помощью CloudFormation формируются change set'ы, которые позволяют оценить изменения вносимые в конфигурацию и принять решение о файтическом изменении.
Это полезно, для избежания катастрофических последствий для инфраструктуры.
Например, если в темплейте поменять имя базы данных, то применение темплейта будет подразумевать удаление базы со старым именем и создание новой базы с новым именем.

Выявление отклонений - drift detection

Если в инфраструктуру вносятся изменения НЕ с помощью CloudFormation, то может возникать разница между тем, что описано в темплейтах и тем, что есть на самом деле.
Это может приводить к тому, что дальнейшее применение изменений с помощью CloudFormation может оказаться невозможным.
Для исправления этой ситуации существует механизм drift detection, который демонстрирует расхождения между фактической конфигурацией и тем что описано в темплейтах.

Управление конфигурацими с помощью Chef и Puppet на базе AWS OpsWorks

AWS OpsWorks for Puppet Enterprise и AWS OpsWorks for Chef Automate - это managed-сервисы, которые позволяют управлять конфигурациями инстансов EC2.

AWS OpsWorks Stacks

В рамках AWS стеком (stack) называется некоторый набор разнообразных ресурсов, управляемый как единое целое.
AWS OpsWorks Stack позволяет не толко создать и настроить ресурсы, но и мониторить их, при этом нет необходимости поддерживать инфраструктуру Chef для управления конфигурацией.
AWS OpsWorks Stack представлен двумя слоями (layers):

Кроме того, стек AWS OpsWorks может быть расширен сервисыми слоями (service layers):

13. Мониторинг и управление ресурсами AWS - Amazon CloudWatch

Базовые концепции Amazon CloudWatch

Amazon CloudWatch - предназначн для мониторинга, сбора, хранения и анализа метрик с ресурсов AWS, а также on-premises.
Все ресурсы AWS отдают метрики в CloudWatch. Базовый набор метрик - бесплатен, сложные метрики - за деньги.
Типичные задачи решаемые с помощью CloudWatch:

Метрики CloudWatch

Некоторые регулярно собираемые значения.
Каждая запись значения имеет таймстамп, а если его нет, то CloudWatch поставит ее сам.

Записи метрики существуют в пределах региона AWS, но могут быть доступны в cross-account и cross-region дашбоардах.
Срок хранения - 15 месяцев. Старые записи автоматически уничтожаются.

CloudWatch Dashboards

Средства визуализации собранных данных метрик.
Функционал CloudWatch Dashboards интегрирован с AWS Organizations и таким образом является глобальным - межрегиональным и межаккаунтным.

CloudWatch Alarms

Средства реагирования на достижение мертиками заданных значений.
Alarm может иметь одно из трех состояний:

Возможные реакции на alarm:

CloudWatch Logs

Средство аггрегации логов, с ресурсов:

Время хранения логов настраивается (от 1 дня до 10 лет), но может быть и не ограниченным.
Логи могут архивироваться на S3 Glacier.
В подсистеме логирования можно выделить сущности:

CloudWatch Events

CloudWatch Events - это устаревающий инструмент, который в настоящее время заменяется Amazon EventBridge.
Это инструмент, который позволяет создать правила, описывающие событие (запись в логах, время и т.д.), на которое можно настроить реакцию.
Реакция на возникновение события - практичесски в реальном времени, без задерджек.
Реакцию можно настроить на любую операцию API write. Примерами событий могут являться - выключение инстанса EC2, логин пользователя через IAM и прочее.
В качестве реакции могут выступать:

Например - можно настроить выполнение Lambda-функции в ответ на событие загрузки файла на S3.

Amazon CloudTrail

Amazon CloudTrail - это средство аудита, которое может логировать все обращения к AWS API, таким образом фиксируя все действия пользователей и алгоритмов.
По-дефолту - включен. Время хранения записей - 90 дней.
Для просмотра собранного доступен CloudTrail Dashboard.
Логируются следующие разновидности событий:

Trails

Trail - это специальный (отличный от дефолтного) конфиг CloudTrail, который фиксирует указанные события и хранит их заданный срок.
События пишутся в AWS S3, CloudWatch Logs и CloudWatch Events . Можно писать в один бакет, либо - в несколько.
В рамках одного Trail можно настроить хранение событий либо из одного региона, либо - из всех регионов (дефолтный вариант). При добавлении нового региона - его события автоматически добавляются в All Regions Trail.
Большинство событий - региональные и пишутся в том регионе, где произошли, а события глобальных сервисов (например - IAM) пишутся в дефолтный регион US East N.Virginia
Может быть настроен глобальный аудит в рамках корневого аккаунта организации - AWS Organization Trail, который будет фиксировать действия всех аккаунтов.

AWS Config

AWS Config - инструмент change management:

Сущности, существующие в рамках AWS Config:

AWS System Manager

Инструмент для централизованного управления AWS. Ранее известен как SSM.
Позволяет декаларативно с помощью JSON-документов (есть много готовых темплейтов, но можно создавать и свои) приводить русурсы AWS к описанному в них сосотоянию.
Например - документ AWS-CreateRdsSnapshot позволяет быстро и просто создать снепшот базы данных.
Вот некоторые доступные операции:

AWS Trusted Advisor

Сервис анализа конфигураций на соответствие best practice.
Модет выдавать репорты следующих категорий:

Как должна выглядеть хорошо спроектированна инфрастуктура

Инфраструктуру принято оценивать по пяти критериям

Надежность

Приложения должны быть устойчивы к отказам отдельных элементов инфраструктуры.
Также - важно время восстановления после отказа.
В рамках облачной инфраструктуры все компоненты рассматриваются как бастрозаменяемые. То есть архитектура должна это учитывать и вместо починки вышедшего из строя инстанса нужно стремиться просто поднимать новый.

Производительность и эффективность

При проектировани инфраструктуры важно стремиться к заданому уровню производительности при оптимальной цене.
Также следует закладывать возможность расширения ресурсов при возрастающей нагрузке.
Следует планировать распределение ресурсов с учетом особенностей досиупа к приложениям - например - с учетом географии пользователей.

Безопасность

При проектировани облачных решений важно уделять внимание безопасности.
То есть - обеспечивать аутентификацию и авторизацию, проверку целостности данных и кода.
Назначение привилегий всегда должно быть основано на принципе минимально необходимых привилегий.
Решения должны включать в себя планы создания резервных копий и восстановления после сбоев.
Важно уделять внимание аудиту событий в инфрастурктуре.

Операционное совершенство - Operational Excellence

Способность быстро и эффективно вносить обратимые изменения в конфигурацию в любой момент времени с помощью IaC.
Проведение тестов отказа элементов инфраструктуры и отработка реакции на их.
Выявление и устранение рисков.

Оптимизация расходов

Анализ структуры расходов на облачную инфраструктуру и автоматическая оптимизация потребления в зависимости от текущих условий.
Использование managed-решений.

14. Обеспечение безопасности инфрастурктуры AWS

Базовый принцип обеспечения безопасности AWS - Shared Responsibility Model. Она формулируется так:

Ответственность AWS - безопасность облака

Ответственность за:

Ответственность клиента - безопасность в облаке

Клиент несет ответственность за:

В зависимости от модели (IaaS, PaaS, SaaS) - объем ответственности клиента меняется.

Обеспечение соотвествия регулятивным требованиям - AWS Artifact

AWS Artifact - это портал, содержащий отчеты о соответствии сервисов AWS требованиям регуляторов, а также сертификаты соответствия этим требованиям.
Документы, представленные на этом портале предназначены для предоставления аудиторам, проверяющим соответствие инфрастурктуры на базе AWS требованиям, предъявляемым к тем или иным приложениям.

Сканирование на наличие уязвимостей

Amazon разрешает клиентам проводить pen-testing приложений, развернутых в среде AWS.
Есть некоторые типы проверок, которые могут проводить только организации со специальными полномочиями. Например - имитация атак Distributed Denial of Service (DDoS) разрешена только партнерам AWS Partner Network (APN).
Network Stress testing может осуществляться силами клиента, но с запросом соответствующего разрешения от AWS.

Обзор средств шифрования AWS

Передача данных по сети - должна проходить в зашифрованном виде по протоколам Secure Socket Layer/Transport Layer Security SSL/TLS.
Хранимые данные могут быть зашифрованы с помощью ключей и одного из признанных алгоритмов шифрования - Tripple DES или AES-256.
AWS может брать на себя задачи управления ключами шифрования - с помощью сервиса Key Management Service (KMS). С помощью KMS клиент создает Customer Master Keys (CMKs), которые зранятся в KMS и используются для шифрования.
Ключи могут быть мультирегиональными - то есть данные. зашифрованные в одном регионе, могут быть переданы и расшифрованы в другом.
Есть два типа ключей:

AWS KMS интегрирован с CloudTrail и обеспечивает аудит использования ключей.

Шифрование Amazon S3

безопасность хранящихся на S3 данных может быть обеспечена следующими способами:

AWS KMS исползует дял шифрования аппаратные модули hardware security modules (HSMs), соответствующие стандарту FIPS 140-2. Модули HSM - используются многими клиентами AWS одновременно, но если нужно иметь выделенный модуль шифрования, то достун сервис AWS Cloud HSM.

AWS CloudHSM

Сервис AWS CloudHSM предоставляет досиуп к выделеному аппаратному модулю шифрования. который доступен в VPC. В этому случае - все операции к ключами (генерация, хранение, импорт, экспорт, ротация) выполняются клиентом.
Поддерживаются как симметрчное, так и ассимметричное шифрование.
AWS CloudHSM совместим с популярными API и библиотеками - PKCS#11, Java Cryptography Extension (JCE), Microsoft CryptoNG (CNG).

Защита облачных приложений с помощью AWS WAF и AWS Shield

Amazon WAF

Amazon WAF - это файервол приложений, который защищает приложения опубликованние через:

AWS WAF работает на Layer7 OSI, мониторит трафик HTTP/HTTPS и защищает от распространенных эксплоитов, а также от SQL-инъекций и XSS (cross-site scripting).
Настраивается с помощью web ACLs, которые задают правила проверок и реакции на результаты.
Биллинг - по числу правил web ACLs и HTTP(S)-запросов.

AWS Shield

AWS Shield - защита от DDoS.
Доступна в двух вариантах:

Защита инстансов EC2 с помощью AWS Inspector

AWS Inspector - проверяет инстансы EC2 с помощью двух наборов правил:

Если нужна более развернутая информация о безопасности инстансов EC2 - на них предлагается установить AWS Inspector Agent. Он будет собирать информацию о ОС, приложениях, операциях на файловой системе и прочую телеметрию и выгружать ее на S3 в виде JSON-документов. Затем - на основании этих документов могут быть сформулированы рекомендации.
Установить AWS Inspector Agent удобно с помощью AWS System Manager Run Command.

Другие сервисы AWS, обеспечивающие безопасность

AWS Macie

Сервис проверки данных на наличие сенситивной информации. Например - персональных данных.
Сканирует данные на S3 и определет подозрительные паттерны, а также - мониторит доступ к данным на S3 и выявляет аномалии или неавторизованный доступ.

AWS GuardDuty

AWS GuardDuty - серсив обнаружения угроз с помощью анализа подозрительной активности аккаунтов AWS и приложений. Анализирует данные из логов - CloudTrail Logs, VPC Flow Logs, DNS.
Обнаруживает использование скомпроментированных учетных данных, взаимодейтстсвие с подозрительными IP и доменами, необычную активность учеток AWS.
Например - запуск EC2-инстансов в регионах, где обычно комапния не работает.
Обнаруживает криптовалютные майнеры, компроментацию бакетов S3 и прочее.

Биллинг - в зависимости от числа событий логов CloudTrail, VPC Flow, DNS.

Amazon Detective

Сервис помогает в расследовании инцидентов и поиске первопричин инцидентов - позволяет визуализировать, анализировать и сопоставлять логи CloudTrail, VPC Flow, результаты работы GuardDuty.

AWS Certification Manager

Сервис управления (получение, обновление) сертификатами. Интегрирован с балансировщиками и CloudFront.

AWS Secrets Manager

Сервис AWS Secrets Manager немного напоминает AWS System Manager Parameter Store, однако не только модет хранить сенситивные данные, но и автоматически ротировать. например - пароли от баз Amazon RDS.
Или - токены для взаимной аутентификации приложений.
Кроме того - AWS Secrets Manager шифрует хранимые данные с помощью ключей Amazon KMS и обеспечивает репликацию секретов между регионами.
Биллинг - в зависимости от числа ключей и вызовов Secrets Manager API.

Amazon Cognito

Amazon Cognito - сервис аутентификации пользователей опубликованных приложений по протоколам OAuth, SAML, OpenID и прочие.
Внутри Amazon Cognito есть две сущности отвечающие за аутентификацию и авторизацию соотвественно:

AWS Directory Service

AWS Directory Service for Microsoft Active Directory (также известен как AWS Managed Microsoft AD) - это fully-managed Active Drectory на платформе AWS.
Позволяет использовать MS AD аутентификацию на всех сервисах AWS, которые это умеют.
В том числе Amazon Workspaces - VDI на базе linux и windows, также Amazon Worksdocs - облачный офисный пакет от Amazon, совместимый с продуктами Microsoft.

15. Биллинг и ценообразование

Пользователь платит за:

При проектировании решений следует принимать ко вниманию:

AWS Cost Explorer

Средство мониторинга и визуализации затрат. Позволяет увидеть на что тратятся деньги и спрогнозировать траты на год вперед.
Можно видеть затраты по часам и по разным типам ресурсов.
AWS Cost Explorer выдет рекомендации на основе которых можно резервировать ресурсы и таким образом экономить.
Также - позволяет выявлять аномалии в затратах и оповещать о них

Тегирование ресурсов

Для выделения среди ресурсов групп и определения того какие из этих групп сколько стоят применяются теги. Теги бывают встроенные и пользовательские.

AWS Budgets

Позволяют мониторить затраты и предпренимать действия при превышении заданных поргов:

То есть, например при превышении бюджета можно запретить создание новых EC2-инстансов с помощью IAM-политики.