Поделиться через


Краткое руководство. Создание гибкого сервера База данных Azure для PostgreSQL

База данных Azure для PostgreSQL — это управляемая служба, которую можно использовать для запуска, управления и масштабирования высокодоступных баз данных PostgreSQL в облаке.

В этом кратком руководстве показано, как создать гибкий экземпляр сервера Базы данных Azure для PostgreSQL с помощью портала Azure, Azure CLI или шаблонов Azure Resource Manager (ARM).

Предпосылки

Перед началом работы убедитесь, что у вас есть следующие ресурсы:

  • Подписка Azure. Если у вас нет учетной записи Azure, создайте бесплатную учетную запись Azure.
  • Соответствующие разрешения для создания ресурсов в подписке.

Поймите, что вы создаете

Гибкий экземпляр сервера Базы данных Azure для PostgreSQL включает:

Замечание

Подключения обычно используют порт 5432 или порт 6432 при подключении через встроенный пул подключений PgBouncer .

Создание сервера с помощью портала Azure

  1. Войдите на портал Azure.
  2. Выберите "Создать ресурс" в левом верхнем углу.
  3. В разделе Категории выберите Базы данных.
  4. Найдите и выберите гибкий сервер Базы данных Azure для PostgreSQL.
  5. Нажмите кнопку "Создать".

Настройка основных параметров

Сведения о проекте

Setting Рекомендуемое значение Примечания.
Subscription Ваша подписка Выбор места выставления счетов за ресурс
Группа ресурсов myresourcegroup Создайте новый или выберите существующий

Сведения о сервере

Setting Рекомендуемое значение Description
Имя сервера mydemoserver-pgsql Оно должно быть глобально уникальным. Домен .postgres.database.azure.com добавляется автоматически
Регион Ближайший к вам регион Рассмотрите возможность соответствия требованиям, расположения данных, ценообразования и близости к пользователям
Версия PostgreSQL Последняя версия доступна В настоящее время поддерживается: 18, 17, 16, 15, 14, 13, 12, 11
Тип рабочей нагрузки Развитие Разработка использует разрядные SKUs. В рабочей среде используется общая цель или оптимизированная память.
Зона доступности Нет предпочтений Полезно для размещения вместе с вашим приложением

Высокая доступность

Вариант SLA Description
Disabled 99,9 % Один сервер без резервного
Та же зона 99.95% Резервный режим в той же зоне доступности
Избыточное между зонами 99,99 % Резервный режим в другой зоне доступности

Authentication

Setting Description Recommended
метод проверки подлинности Проверка подлинности пользователей - Аутентификация PostgreSQL только для быстрого запуска
- Аутентификация Microsoft Entra (для продакшна)
- Оба (для гибкости)
Имя администратора adminuser — должно быть 1–63 символами
— только цифры и буквы
- Не удается начать с pg_
Нельзя использовать зарезервированные системные имена.
Пароль Сложный пароль 8-128 символов с верхним регистром, строчным регистром, цифрами и специальными символами

Настройка вычислительных ресурсов и хранилища

Выберите "Настроить сервер", чтобы настроить :

Уровень вычислений

Тир Сценарий использования Description
С увеличивающейся производительностью Развитие Для рабочих нагрузок, которые не требуют непрерывного полного ЦП
Категория общего назначения Производство Наиболее распространенные рабочие нагрузки в производственной среде
Оптимизировано для обработки в памяти Рабочие нагрузки с высокой памятью Рабочие нагрузки, требующие высокого соотношения памяти к ЦП

Параметры хранилища

Setting Может измениться позже Description
Тип хранилища ❌ Нет SSD категории "Премиум" или SSD уровня "Премиум" версии 2
Размер хранилища ✅ Да (только увеличение) Невозможно сжать после создания
Уровень производительности ✅ Да Управляет операциями ввода-вывода в секунду (IOPS) и пропускной способностью
Автоматическое увеличение хранилища ✅ Да Автоматическое увеличение при приближении к ограничениям

Параметры резервного копирования

Setting Может измениться позже Description
Хранение резервных копий ✅ Да 7-35 дней
Избыточность резервного копирования ❌ Нет Локально избыточный, зонально избыточный или географически избыточный
Геоизбыточность ❌ Нет Доступно только в парных регионах Azure

Настройка сетевых подключений

Выберите метод подключения (невозможно изменить после создания):

Открытый доступ (разрешенные IP-адреса)

Подключитесь через общедоступную конечную точку с помощью правил брандмауэра.

Параметры:

Setting Description
Разрешить общедоступный доступ Включение общедоступного доступа для настройки правил брандмауэра
Разрешить службы Azure Разрешение подключений со всех служб Azure
Добавление текущего IP-адреса клиента Добавьте свой IP-адрес в разрешённый список

Частный доступ (интеграция с виртуальной сетью)

Подключитесь через частную конечную точку в виртуальной сети. Дополнительные сведения см. в статье "Сеть с частным доступом для Базы данных Azure для PostgreSQL".

Настройка безопасности

Setting Может измениться позже Options
Ключ шифрования данных ❌ Нет Управляемые сервисом или управляемые клиентом

Добавление тегов ресурсов (необязательно)

Упорядочение ресурсов с помощью пар "имя-значение":

Имя Ценность Цель
Окружающая среда Развитие Определение типа среды
CostCenter IT-Dept Отслеживание затрат по отделу
Владелец admin@contoso.com Определение ответственной стороны

Проверка и создание

  1. Выберите Review + create.
  2. Просмотрите все конфигурации.
  3. Выберите "Создать " для развертывания.

Развертывание обычно занимает 5–10 минут. По завершении выберите "Перейти к ресурсу" , чтобы получить доступ к серверу.

Создание сервера с помощью Azure CLI

Предварительные требования для интерфейса командной строки

Для выполнения этого скрипта используйте Azure CLI в локальной среде, так как его выполнение в Cloud Shell займет слишком много времени.

Вход в Azure

Используйте указанный ниже скрипт для входа с использованием определенной подписки.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Дополнительные сведения см. в разделах Настройка активной подписки и Интерактивный вход.

Если вы используете Azure Cloud Shell, вы уже вошли в систему.

Создание сервера с помощью ИНТЕРФЕЙСА командной строки

Создайте сервер с одной командой:

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --public-access 0.0.0.0 \
  --storage-size 128 \
  --tags "Environment=Development"

Справочник по параметрам CLI

Параметр Description Example
--resource-group Имя группы ресурсов myresourcegroup
--name Глобально уникальное имя сервера mydemoserver-pgsql
--location Azure region Истус
--admin-user Имя администратора myadmin
--admin-password Пароль администратора YourPassword123!
--sku-name SKU для вычислений Standard_D4ds_v5
--tier Уровень вычислений Увеличение нагрузки, Общего назначения, Оптимизированные для памяти
--storage-size Объем хранения в ГБ 128
--public-access Разрешенные IP-адреса 0.0.0.0 (все службы Azure), IP-адрес или диапазон IP-адресов
--version Версия PostgreSQL 16
--high-availability Режим высокой доступности Отключено, SameZone, ZoneRedundant
--backup-retention Дни хранения резервных копий 7-35

Пример расширенного интерфейса командной строки

Создайте сервер высокой доступности с избыточностью на уровне зон.

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql-ha \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --storage-size 256 \
  --storage-type PremiumV2_LRS \
  --high-availability ZoneRedundant \
  --zone 1 \
  --standby-zone 2 \
  --backup-retention 14 \
  --public-access 0.0.0.0

Создание сервера с помощью шаблона ARM

Общие сведения о шаблоне ARM

Шаблоны Azure Resource Manager (ARM) позволяют определять инфраструктуру как код. Используйте шаблоны для повторяющихся развертываний.

Минимальный шаблон ARM

Сохраните этот файл следующим образом postgres-server-template.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server name must be globally unique"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "metadata": {
        "description": "Administrator username"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Administrator password"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Server location"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/flexibleServers",
      "apiVersion": "2024-08-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_D4ds_v5",
        "tier": "GeneralPurpose"
      },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "version": "16",
        "storage": {
          "storageSizeGB": 128,
          "type": "Premium_LRS",
          "autoGrow": "Enabled"
        },
        "backup": {
          "backupRetentionDays": 7,
          "geoRedundantBackup": "Disabled"
        },
        "network": {
          "publicNetworkAccess": "Enabled"
        },
        "highAvailability": {
          "mode": "Disabled"
        }
      }
    }
  ],
  "outputs": {
    "serverFQDN": {
      "type": "string",
      "value": "[reference(parameters('serverName')).fullyQualifiedDomainName]"
    }
  }
}

Развертывание шаблона ARM

az group create --name myresourcegroup --location eastus

az deployment group create \
  --resource-group myresourcegroup \
  --template-file postgres-server-template.json \
  --parameters \
    serverName=mydemoserver-pgsql \
    administratorLogin=myadmin \
    administratorLoginPassword=<password>

Получение сведений о подключении

После создания сервера получите сведения о подключении:

Использование портала Azure

  1. Перейдите на сервер на портале Azure.
  2. Откройте страницу обзора .
  3. Скопируйте следующие значения:
    • Имя сервера (конечная точка): mydemoserver-pgsql.postgres.database.azure.com
    • Имя входа администратора: myadmin

Использование Azure CLI

az postgres flexible-server show \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --query "{serverName:fullyQualifiedDomainName, adminUser:administratorLogin}" \
  --output table

Подключение с помощью psql

Установка psql

Если у вас нет клиентских средств PostgreSQL, скачайте PostgreSQL для своей платформы.

Подключение к серверу

psql "host=mydemoserver-pgsql.postgres.database.azure.com port=5432 dbname=postgres user=myadmin sslmode=require"

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

Формат строки подключения

host=<server-name>.postgres.database.azure.com port=5432 dbname=<database-name> user=<admin-user> password=<password> sslmode=require

Проверка подключения

После подключения вы увидите следующее:

psql (14.13, server 16.4)
WARNING: psql major version 14, server major version 16.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=>

Создание базы данных

CREATE DATABASE user_database;
\c user_database
\q

Устранение неполадок с подключением

Брандмауэр блокирует подключение

Если вы видите:

connection to server at "mydemoserver-pgsql.postgres.database.azure.com" (###.###.###.###), port 5432 failed: Connection timed out

Решение. Добавьте IP-адрес в правила брандмауэра:

az postgres flexible-server firewall-rule create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --rule-name AllowMyIP \
  --start-ip-address <your-ip> \
  --end-ip-address <your-ip>

Протокол SSL, необходимый, но не настроенный

Убедитесь, что строка подключения включает sslmode=require.

Очистите ресурсы

После завершения краткого руководства удалите ресурсы во избежание расходов.

Удаление всей группы ресурсов

az group delete --name myresourcegroup --yes

Удаление только сервера

az postgres flexible-server delete \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --yes