AWS — крупнейший поставщик облачных услуг. Общие облачные сервисы включают хранилище, вычислительную мощность, базы данных, аналитику, безопасность, мониторинг, инструменты разработчика, сети. Cloud — это место, где вы храните свои данные/приложения/процессы и получаете к ним доступ в любое время через Интернет. Инженеры AWS написали документацию с основными практиками для правильного и безболезненного размещения в облаке, найти его можно здесь. В эти практики входят: Разберем эти практики и Shared responsibility model в этом подкате. Человеческая ошибка является основной причиной неисправностей и эксплуатационных происшествий. Чем больше операций можно автоматизировать, тем меньше вероятность человеческой ошибки. Данная практика направлена на автоматизацию процессов, для того чтобы уменьшить фактор человеческой ошибки. Infrastructure as a Code позволяет писать код для разворачивания сервисов AWS через yaml/json(CloudFormation) файлы или на любимом вами языке(Cloud Development Kit). Один раз пишете – много раз используете, ну разве не рай для DevOps? Observability позволяет просматривать вашу инфраструктуру, собирать различные метрики и если происходит какая-нибудь плохая или ожидаемо хорошая ситуация, то в AWS вы можете на это настроить действие. Пример плохой ситуации: Вы развернули большой сервис по доставке еды. Протестировали, всё работает идеально, приложение набирает популярность, ваш cloud engineer горизонтально масштабирует ваш сервис до 100 экземпляров, и в какой-то момент половина экземпляров приходит в не действие (предположим, что кто-то неправильно прикурил сигарету на ночном перекуре в датацентре AWS). И половина пользователей начинает жаловаться на не доступность доставки еды. А что делать ночью без еды? Что же мы делали до того как узнали про operation excellence: звоним cloud engineer, он летит в офис к своему ПК, в треморе начинает разворачивать экземпляры в другом датацентре AWS. И ура, к утру все сервисы восcтановлены. Но клиенты уже потеряны, они нашли себе другую доставку. You lose! Что же мы делаем после того как узнали про operation excellence: настраиваем метрику на минимальное количества экземпляров 100, и когда в следующий раз кто-то попробует прикурить – мы уже будем готовы и AWS за нас вернёт все не достающие экземпляры сразу же как произойдет проблема. You win! Фокусируется на том, как защитить вашу инфраструктуру в облаке. Три важные концепции, связанные с безопасностью в облаке: IAM – ключевой сервис AWS, который позволяет создавать пользователей, роли, группы, политики. Network security – вы можете настраивать какой трафик может перемещаться по вашей сети в облаке, а какой нет. Все возможные виды фильтрации: от проверки headers в https запросах до портов tcp соединений. Фокусируется на том, как вы можете создавать сервисы, устойчивые к сбоям. Облако дает вам средства для создания отказоустойчивых сервисов, которые могут противостоять сбоям, чтобы вы проектировали свои сервисы с учетом надежности. Fault Isolation говорит о том что стоит изолировать ваши сервисы от сбоев, чем меньше частей вашей системы выйдет из строя – тем лучше, казалось бы всё просто.
Что надо делать чтобы этого достичь? Делать ваши сервисы высокодоступными(high availability) вам поможет размещения ресурсов в разных датацентрах AWS, в разных регионах и зонах доступности. Вторая концепция – настройка ограничений. Самый доступный пример защита от DDoS-атак, Тестируете рабочую пропускную способность своего приложения, ставите ограничение на приём максисум 150% от текущей пропускную способности, и “задудосить” вас не получится. Фокусируется на том, как вы можете эффективно и масштабируемо запускать службы в облаке. Хотя облако дает вам возможность обрабатывать любой объем трафика, оно требует, чтобы вы выбирали и настраивали свои службы с учетом масштабирования. Первая концепция – выбор сервисов под ваши нужды. Выбирайте те сервисы которые подходят под вашу конкретную задачу. Если это пакетная обработка больших данных – есть AWS EMR, если потоковая – Kinesis, если миграция данных в облако – AWS DataSync. Все они оптимизированы под свою конкретную задачу. Scaling позволяет увеличивать перфоманс вашего приложения с помощью нарастания мощностей экземпляра (vertical scaling) или увеличением их количества (horizontal scaling). Фокусируется на оптимизации затрат помогает достичь бизнес-результатов при минимизации затрат. Pay-as-you-go модель вносит следующие изменения в ваш процесс оптимизации затрат: Эта модель показывает кто за что несёт ответственность в AWS.

С документации AWS: “AWS несет ответственность за защиту инфраструктуры облака AWS, на которой работают все предлагаемые сервисы. Эта инфраструктура состоит из аппаратного и программного обеспечения, сетей и объектов, на базе которых работают облачные сервисы AWS. Ответственность клиента будет определяться выбранными для использования облачными сервисами AWS. Выбор сервисов определяет объем работ по настройке, которые должен выполнить клиент в рамках своих обязанностей по обеспечению безопасности. Клиенты, которые развертывают инстанс Amazon EC2, отвечают за управление гостевой операционной системой (включая обновления и исправления безопасности), любым прикладным программным обеспечением или сервисными компонентами, установленными на инстансах, и за настройку брандмауэра (группы безопасности), предоставляемого AWS, для каждого инстанса. В случае абстрактных сервисов, таких как Amazon S3 и Amazon DynamoDB, AWS управляет уровнем инфраструктуры, операционной системой и платформой, а клиенты получают доступ к конечным точкам для хранения и извлечения данных. Клиенты отвечают за управление своими данными (включая параметры шифрования), классификацию своих ресурсов и использование инструментов IAM для применения соответствующих разрешений.” О чём это говорит? Если ядерная бомба упадёт на датацентр AWS – они берут ответственность за это происшествие на себя. И они будут оправдываться/возмещать ущерб. Если вы не шифруете данные при передачи с вашего компьютера и данные перехватили и украли – это ваша проблема. Вы прочитали «AWS Cloud Core Concepts». В этом статье вы узнали следующее:

  Software Engineer