Так что же такое трехуровневая архитектура?

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

Предпосылки

  • Аккаунт AWS с разрешениями
  • Предпочитаемая вами IDE с AWS CLI, установленная и настроенная.
  • Общее представление о GitHub
  • Общее понимание основ AWS

Наша команда DevOps поставила перед нами задачу:

Создайте следующую трехуровневую архитектуру:

**Веб-уровень**
1. 2 общедоступные подсети
2. Минимум 2 экземпляра EC2 с ОС по вашему выбору (уровень бесплатного пользования) в группе автоматического масштабирования.
3. EC2 Web Группа безопасности сервера, разрешающая входящие запросы из Интернета.
4. Загрузите статическую веб-страницу или создайте собственный образ AMI, который уже содержит статическую веб-страницу.
5. Создайте общедоступную таблицу маршрутов и свяжите 2 общедоступных подсети.

**Уровень приложений**
1. 2 частные подсети
2. Минимум 2 экземпляра EC2 с ОС по вашему выбору (уровень бесплатного пользования) в группе автоматического масштабирования.
3. Приложение EC2 Группа безопасности сервера, разрешающая входящие запросы от группы безопасности веб-сервера.
4. Свяжите с частной таблицей маршрутов.
Примечание. Это не настоящий уровень приложения, поскольку у нас нет предоставленного кода для запуска. экземпляры EC2.

**Уровень базы данных**
1. Используйте бесплатную базу данных уровня MySQL RDS.
2. Группа безопасности базы данных должна разрешать входящий трафик для MySQL из группы безопасности сервера приложений.
3. 2 частные подсети.
4. Свяжите с частной таблицей маршрутов.
Примечание. Нет необходимости использовать несколько зон доступности, но обязательно задокументируйте, как вы будете это добавлять.

Создание шаблона для CloudFormation

Теперь, когда мы знаем, с чем работаем, все остальное просто. Мы перейдем к CloudFormation в нашей консоли AWS и выберем «Создать стек», затем «Создать шаблон» в Designer, затем выберите «Шаблон» в левом нижнем углу и, наконец, давайте выберем YAML в качестве нашего предпочтительного языка. Обратите внимание, что перед созданием этого стека вам необходимо убедиться, что ваши группы безопасности имеют правильные открытые порты, а также добавить ключи к указанным вами экземплярам, ​​а также ваша база данных должна ссылаться на группу подсети и зону доступности, а также убедиться, что вы создали подсеть. Группа для ваших подсетей, на которую можно ссылаться. Внесите эти коррективы и создайте стек, теперь у вас должна быть работающая трехуровневая архитектура!