CloudDevOpsBackendDatabase

Развертывание трехуровневого веб-приложения на Azure правильно

·MAGMA

Обзор архитектуры

В этой статье мы рассмотрим развертывание полноценного веб-приложения с использованием облачной платформы Microsoft Azure. Приложение состоит из трех уровней: фронтенд, бэкенд и база данных.

Основные компоненты:

  • Public Load Balancer: балансирует нагрузку между двумя виртуальными машинами (VM), доступными через интернет.
  • Azure Virtual Network: сеть, объединяющая все ресурсы приложения.
  • Availability Zones: зоны доступности обеспечивают отказоустойчивость путем распределения ресурсов по разным физическим локациям.
  • Private Subnets: приватные подсети изолируют каждый уровень приложения от внешнего мира.
  • Network Security Groups (NSGs): правила безопасности ограничивают доступ к каждому уровню только разрешенными источниками.

Фронтэнд — Next.js за Nginx

Фронтэнд реализован на Next.js и размещен на двух виртуальных машинах, каждая из которых находится в отдельной зоне доступности. Эти машины доступны через публичный балансировщик нагрузки, который принимает запросы пользователей и распределяет их равномерно между серверами.

Nginx используется как обратный прокси-сервер, обеспечивая дополнительную защиту и оптимизацию производительности.

Бэкэнд — Node.js/Express

Бэкэнд приложение написано на Node.js с использованием фреймворка Express. Оно также распределено по двум виртуальным машинам, находящимся в отдельных зонах доступности. Доступ к этим машинам осуществляется через внутренний балансировщик нагрузки, что обеспечивает изоляцию от прямого доступа извне.

Базовый уровень — MySQL

Для хранения данных используется управляемый сервис базы данных Azure MySQL Flexible Server. Он интегрирован с частной сетью и не имеет публичных IP-адресов, что исключает возможность прямого подключения к базе данных из интернета.

Заключение о безопасности

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

Вернуться к блогу
Правильное развертывание веб-приложений на Azure — MAGMA