Развертывание инфраструктуры Linux и PostgreSQL
В этом уроке вы можете создать вычислительные ресурсы, в которых размещено приложение в Azure.
Существует несколько методов развертывания инфраструктуры в Azure, включая портал Azure, Azure CLI и шаблоны инфраструктуры как кода (включая Bicep и Terraform). В этом уроке вы развернете предварительно настроенный шаблон Bicep, инкапсулирующий вычислительные ресурсы, необходимые для приложения. Основные ресурсы:
- Виртуальная машина под управлением Linux (Ubuntu 24.04 LTS)
- База данных Azure для Postgres под управлением Postgres 16 или более поздней версии
- Управляемое удостоверение для обеспечения безопасного доступа с виртуальной машины к базе данных
- RBAC, включая роли для доступа к базе данных в качестве администратора, и более строгие роли для самого приложения
- Виртуальная сеть для виртуальной машины и базы данных
Так как этот пример — это рабочая нагрузка разработки и тестирования, и мы хотим сохранить экономию и производительность, мы выбрали для вас следующую конфигурацию:
Виртуальная машина — это стандартная D2s_v4 (два виртуальных ЦП, 8 ГБ памяти). Он имеет SSD Azure Premium с 3200 операциями ввода-вывода в секунду (IOPS) и 128 ГБ хранилища. Он имеет подключенный диск SSD уровня "Премиум" P10 128 ГБ с 500 операций ввода-вывода в секунду для диска ОС. Вы можете обновить диск ОС, чтобы он соответствовал операций ввода-вывода в секунду виртуальной машины по мере необходимости.
База данных — это D2ds_v4 общего назначения (два виртуальных ядра, 8 ГБ ОЗУ) с 3200 максимальным числом операций ввода-вывода в секунду. Он имеет диск SSD уровня "Премиум" P10 128 ГБ с 500 операций ввода-вывода в секунду. Этот диск можно обновить, чтобы соответствовать вычислительным операций ввода-выводам в секунду по мере необходимости.
После завершения модуля удалите эти ресурсы, чтобы сэкономить затраты. Однако вы также можете отключить виртуальную машину и базу данных, если они не используются для экономии вычислительных затрат и оплаты только используемого хранилища. Вы также можете масштабировать эту рабочую нагрузку по мере необходимости.
Шаблон Bicep в этом модуле использует проверенные модули Azure (AVM). AVM — это инициатива по стандартизации модулей инфраструктуры как кода. Корпорация Майкрософт поддерживает эти модули и инкапсулирует множество рекомендаций по развертыванию ресурсов в Azure.
Убедитесь, что у вас есть подписка Azure и Azure CLI
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Для этого модуля требуется Azure CLI версии 2.0.30 или более поздней. Найдите версию с помощью следующей команды:
az --version
Если вам необходимо выполнить установку или обновление, обратитесь к статье Установка Azure CLI.
Вход в Azure с помощью Azure CLI
Чтобы выполнить команды в Azure с помощью Azure CLI, сначала необходимо выполнить вход. Войдите с помощью az login команды:
az login
Создание или изменение группы ресурсов
Группа ресурсов — это контейнер для связанных ресурсов. Все ресурсы должны быть помещены в группу ресурсов. Используйте команду az group create для создания группы ресурсов:
az group create \
--name 240900-linux-postgres \
--location westus2
Развертывание шаблона Bicep с помощью Azure CLI
Bicep — это предметно-ориентированный язык (DSL), который использует декларативный синтаксис для развертывания ресурсов Azure. В файле Bicep определяется инфраструктура, которую необходимо развернуть в Azure. Затем этот файл используется в течение жизненного цикла разработки для многократного развертывания инфраструктуры. Ресурсы развертываются согласованно.
Файл Bicep, который вы используете для развертывания вычислительных ресурсов для этого урока, находится в репозитории deploy/vm-postgres.bicep GitHub. Он содержит виртуальную машину, виртуальную сеть, управляемое удостоверение и группу безопасности сети (NSG) для виртуальной машины. Дополнительные сведения о Bicep см. в статье "Что такое Bicep?".
Клонируйте пример репозитория на локальный компьютер:
git clone https://github.com/Azure-Samples/linux-postgres-migration.gitПерейдите
linux-postgres-migrationв каталог:cd linux-postgres-migrationРазверните шаблон Bicep:
az deployment group create \ --resource-group 240900-linux-postgres \ --template-file deploy/vm-postgres.bicep
После завершения развертывания выходные данные JSON подтверждают развертывание ресурсов.
В следующих разделах вы настроите и изучите роли RBAC и правила безопасности сети в развернутой инфраструктуре с помощью портал Azure. При использовании портал Azure можно закодировать роли и правила в шаблон Bicep. Портал Azure предоставляет визуальный интерфейс, который упрощает понимание связей между ресурсами и разрешениями, назначенными им.
Откройте группу ресурсов в портал Azure
Откройте портал Azure.
В меню службы выберите группы ресурсов.
На панели групп ресурсов выберите группу
240900-linux-postgresресурсов.
В правой верхней части области область "Развертывания" отображает состояние развертывания шаблона Bicep. При успешном развертывании отображается успешное выполнение.
Просмотр группы безопасности сети виртуальной машины
Выберите виртуальную машину.
vm-1В разделе "Сеть" выберите параметры сети.
Параметры сети показывают, что группа безопасности сети (240900-linux-postgres-nsg) подключена к той же подсети виртуальной сети (240900-linux-postgres-vnet), что и виртуальная машина.
Группа безопасности сети также отображается внутри группы ресурсов. Он содержит набор правил безопасности для входящего и исходящего трафика, которые управляют трафиком и из виртуальной машины.
Вернитесь в группу ресурсов
В верхней части страницы выберите ссылку на панель навигации, чтобы вернуться в группу ресурсов (Home > Resource groups > 240900-linux-postgres).
Обратите внимание, что управляемое 240900-linux-postgres-identity удостоверение, назначаемое пользователем, отображается в группе ресурсов.
Дополнительные сведения об управляемых удостоверениях, назначаемых системой и назначаемых пользователем, см. в статье "Что такое управляемые удостоверения для ресурсов Azure?".
Добавление правила безопасности для входящего трафика в группу безопасности сети
Добавьте правило безопасности для входящего трафика в группу безопасности сети, чтобы разрешить трафик SSH из текущего IP-адреса на виртуальную машину.
В рабочем сценарии часто используется JIT-доступ, Бастион Azure или VPN (например, Azure или VPN сетки), чтобы ограничить доступ к виртуальной машине.
Выберите
240900-linux-postgres-nsg.Выберите правила безопасности для входящих подключений>.
Выберите Добавить.
В разделе "Источник" выберите "Мой IP-адрес".
В разделе "Служба" выберите SSH.
Выберите Добавить.
Просмотр администратора гибкого сервера База данных Azure для PostgreSQL
Найдите и выберите гибкий сервер База данных Azure для PostgreSQL. Он называется
postgres-xxxxx, гдеxxxxxявляется уникальной строкой, определенной шаблоном Bicep. Строка остается согласованной между развертываниями в подписке и группе ресурсов.Выберите "Проверка подлинности системы безопасности>".
В этом сценарии используется только проверка подлинности Microsoft Entra. Управляемое 240900-linux-postgres-identity удостоверение, назначаемое пользователем, отображается в разделе "Администраторы Майкрософт".
Управляемое 240900-linux-postgres-identity удостоверение в настоящее время является единственным администратором сервера. Вы можете добавить собственную учетную запись пользователя в качестве администратора. Но для этого сценария используется управляемое удостоверение, которое уже установлено.
В следующем разделе вы используете удостоверение из виртуальной машины для администрирования сервера с помощью Azure CLI. Это удостоверение также используется для предоставления доступа к серверу приложения.
В рабочем сценарии вы, скорее всего, будете использовать сочетание управляемых удостоверений, идентификатора Microsoft Entra и точного RBAC для безопасного доступа к данным и управления ресурсами в Azure. Вы будете следовать принципу наименьших привилегий.
Дополнительные сведения об этих сценариях в проверке подлинности Microsoft Entra с помощью База данных Azure для PostgreSQL — гибкий сервер и использование идентификатора Microsoft Entra для проверки подлинности с помощью База данных Azure для PostgreSQL — гибкий сервер.
Ознакомьтесь с правилами брандмауэра База данных Azure для PostgreSQL гибкого сервера
Щелкните Параметры>Сети.
Если вы администрировали сервер с локального компьютера, а не виртуальной машины, необходимо добавить IP-адрес в правила брандмауэра.
Можно создать правило брандмауэра для текущего IP-адреса, нажав кнопку "Добавить текущий IP-адрес клиента" (xxx.xxx.xxx.xxx)>Сохранить. Это правило позволит получить доступ к серверу разработки и тестирования с помощью средств на локальном компьютере. Но так как вы используете виртуальную машину для доступа к базе данных, вы не создадите правило брандмауэра в настоящее время.
В рабочей среде этот сервер, скорее всего, будет полностью изолирован от общедоступного Интернета, очищая общедоступный доступ к этому ресурсу через Интернет с помощью параметра общедоступного IP-адреса .
В отличие от виртуальной машины, вы не связылись База данных Azure для PostgreSQL с какой-либо виртуальной сетью. Вы сохраняете возможность доступа к База данных Azure для PostgreSQL через общедоступный Интернет, который полезен для сценариев разработки и тестирования.
Чтобы обеспечить безопасность и гибкость, вы можете включить доступ из виртуальной машины через свою виртуальную сеть с помощью частной конечной точки. Частная конечная точка позволяет виртуальной машине получать доступ к базе данных без предоставления доступа к общедоступному Интернету. Дополнительные сведения о частных конечных точках в База данных Azure для PostgreSQL — гибкие сети сервера с Приватный канал.
Здесь частная конечная точка была создана для вас с помощью Bicep.
Просмотрите назначения ролей для управляемого удостоверения, назначаемого системой виртуальной машины
Вернитесь в группу
240900-linux-postgresресурсов и выберитеvm-1.В меню службы выберите "Удостоверение безопасности>".
Здесь можно убедиться, что управляемое удостоверение, назначаемое системой, подключено к виртуальной машине.
В разделе "Назначаемая система" выберите назначения ролей Azure.
Здесь можно убедиться, что роль читателя назначена управляемому удостоверению, назначенному системой. Роль ограничена
240900-linux-postgresгруппой ресурсов.
Разрешения в этом удостоверении позволяют использовать Azure CLI в виртуальной машине для перечисления ресурсов в группе ресурсов. Благодаря этой возможности вам не нужно жестко кодировать сведения о ресурсах в скриптах.
На более позднем этапе вы назначите дополнительную роль управляемому удостоверению виртуальной машины, чтобы виртуальная машина смогла напрямую получить доступ к учетной записи Хранилище BLOB-объектов Azure.
Затем вы изучите и настроите развернутую инфраструктуру.
Ресурсы
- Проверенные модули Azure
- Установка Azure CLI
- Создание группы ресурсов с помощью Azure CLI
- Azure RBAC
- Управляемое удостоверение Azure
- Что такое Bicep?
- Что такое управляемые удостоверения для ресурсов Azure?
- Включение JIT-доступа на виртуальных машинах
- Что такое Бастион Azure
- Проверка подлинности Microsoft Entra с помощью База данных Azure для PostgreSQL — гибкий сервер
- Использование Microsoft Entra ID для проверки подлинности с помощью базы данных Azure для PostgreSQL - гибкий сервер
- База данных Azure для PostgreSQL — гибкая сеть сервера с Приватный канал