Развертывание инфраструктуры 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?".

  1. Клонируйте пример репозитория на локальный компьютер:

    git clone https://github.com/Azure-Samples/linux-postgres-migration.git
    
  2. Перейдите linux-postgres-migration в каталог:

    cd linux-postgres-migration
    
  3. Разверните шаблон Bicep:

    az deployment group create \
        --resource-group 240900-linux-postgres \
        --template-file deploy/vm-postgres.bicep
    

После завершения развертывания выходные данные JSON подтверждают развертывание ресурсов.

В следующих разделах вы настроите и изучите роли RBAC и правила безопасности сети в развернутой инфраструктуре с помощью портал Azure. При использовании портал Azure можно закодировать роли и правила в шаблон Bicep. Портал Azure предоставляет визуальный интерфейс, который упрощает понимание связей между ресурсами и разрешениями, назначенными им.

Откройте группу ресурсов в портал Azure

  1. Откройте портал Azure.

  2. В меню службы выберите группы ресурсов.

  3. На панели групп ресурсов выберите группу 240900-linux-postgresресурсов.

В правой верхней части области область "Развертывания" отображает состояние развертывания шаблона Bicep. При успешном развертывании отображается успешное выполнение.

Просмотр группы безопасности сети виртуальной машины

  1. Выберите виртуальную машину. vm-1

  2. В разделе "Сеть" выберите параметры сети.

Параметры сети показывают, что группа безопасности сети (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 сетки), чтобы ограничить доступ к виртуальной машине.

  1. Выберите 240900-linux-postgres-nsg.

  2. Выберите правила безопасности для входящих подключений>.

  3. Выберите Добавить.

  4. В разделе "Источник" выберите "Мой IP-адрес".

  5. В разделе "Служба" выберите SSH.

  6. Выберите Добавить.

Просмотр администратора гибкого сервера База данных Azure для PostgreSQL

  1. Найдите и выберите гибкий сервер База данных Azure для PostgreSQL. Он называется postgres-xxxxx, где xxxxx является уникальной строкой, определенной шаблоном Bicep. Строка остается согласованной между развертываниями в подписке и группе ресурсов.

  2. Выберите "Проверка подлинности системы безопасности>".

В этом сценарии используется только проверка подлинности 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.

Просмотрите назначения ролей для управляемого удостоверения, назначаемого системой виртуальной машины

  1. Вернитесь в группу 240900-linux-postgres ресурсов и выберите vm-1.

  2. В меню службы выберите "Удостоверение безопасности>".

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

  3. В разделе "Назначаемая система" выберите назначения ролей Azure.

    Здесь можно убедиться, что роль читателя назначена управляемому удостоверению, назначенному системой. Роль ограничена 240900-linux-postgres группой ресурсов.

Разрешения в этом удостоверении позволяют использовать Azure CLI в виртуальной машине для перечисления ресурсов в группе ресурсов. Благодаря этой возможности вам не нужно жестко кодировать сведения о ресурсах в скриптах.

На более позднем этапе вы назначите дополнительную роль управляемому удостоверению виртуальной машины, чтобы виртуальная машина смогла напрямую получить доступ к учетной записи Хранилище BLOB-объектов Azure.

Затем вы изучите и настроите развернутую инфраструктуру.

Ресурсы