Создание приватного канала для отдельного сервера Базы данных Azure для PostgreSQL и управление им с помощью CLI
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Частная конечная точка — ключевой компонент для построения частной ссылки в Azure. Это позволяет ресурсам Azure, таким как виртуальные машины (VM), обмениваться данными в частном порядке с ресурсами частной ссылки. В этой статье вы узнаете, как использовать Azure CLI для создания виртуальной машины в виртуальной сети Azure и сервера базы данных Azure для PostgreSQL с помощью частной конечной точки Azure.
Примечание.
Функция приватного канала доступна только для серверов базы данных Azure для PostgreSQL в ценовой категории "Общего назначения" или "Оптимизированная для операций в памяти". Убедитесь в том, что сервер базы данных находится в одной из этих ценовых категорий.
Необходимые компоненты
Прежде чем приступить к выполнению этого руководства, необходимы следующие компоненты:
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Если вы решили установить и использовать Azure CLI локально, для выполнения инструкций из этого руководства вам потребуется использовать Azure CLI 2.0.28 или более поздней версии. Выполните команду az --version
, чтобы узнать установленную версию. Сведения об установке или обновлении Azure CLI см. в этой статье.
Создание или изменение группы ресурсов
Перед созданием любого ресурса необходимо создать группу ресурсов, которая будет содержать эту виртуальную сеть. Создайте группу ресурсов с помощью команды az group create. В этом примере создается группа ресурсов с именем myResourceGroup в расположении westeurope.
az group create --name myResourceGroup --location westeurope
Создание виртуальной сети
Создайте виртуальную сеть с помощью команды az network vnet create. В этом примере создается виртуальная сеть по умолчанию с именем myVirtualNetwork с подсетью mySubnet.
az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet
Отключение политик подсети частной конечной точки
Поскольку Azure развертывает ресурсы в подсеть виртуальной сети, чтобы отключить политики сети частной конечной точки, вам следует создать или обновить подсеть. Обновите конфигурацию подсети mySubnet с помощью команды az network vnet subnet update.
az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true
Создание виртуальной машины
Создайте виртуальную машину с помощью команды "az vm create". При появлении запроса укажите пароль в качестве учетных данных для входа на виртуальную машину. В этом примере создается виртуальная машина с именем myVM.
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Win2019Datacenter
Запишите общедоступный IP-адрес виртуальной машины. Этот адрес используется на следующем шаге, чтобы подключиться к виртуальной машине из Интернета.
Создание одного сервера Базы данных Azure для PostgreSQL
Создайте База данных Azure для PostgreSQL с помощью команды az postgres server create. Помните, что имя сервера PostgreSQL должно быть уникальным в пределах Azure, поэтому замените значение заполнителя своим уникальным значением, которое использовалось выше:
# Create a server in the resource group
[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]
[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]
az postgres server create \
--name mydemoserver \
--resource-group myresourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2
Создание частной конечной точки
Создайте частную конечную точку для сервера PostgreSQL в вашей виртуальной сети:
az network private-endpoint create \
--name myPrivateEndpoint \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--subnet mySubnet \
--private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforPostgreSQL/servers" --query "id" -o tsv) \
--group-id postgresqlServer \
--connection-name myConnection
Настройка частной зоны DNS
Создайте частную зону DNS для домена сервера PostgreSQL, а затем ссылку связи с виртуальной сетью.
az network private-dns zone create --resource-group myResourceGroup \
--name "privatelink.postgres.database.azure.com"
az network private-dns link vnet create --resource-group myResourceGroup \
--zone-name "privatelink.postgres.database.azure.com"\
--name MyDNSLink \
--virtual-network myVirtualNetwork \
--registration-enabled false
#Query for the network interface ID
networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)
az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for PostgreSQL name
[!INCLUDE [applies-to-postgresql-single-server](../includes/applies-to-postgresql-single-server.md)]
[!INCLUDE [azure-database-for-postgresql-single-server-deprecation](../includes/azure-database-for-postgresql-single-server-deprecation.md)]
#Create DNS records
az network private-dns record-set a create --name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.postgres.database.azure.com --resource-group myResourceGroup -a <Private IP Address>
Примечание.
Полное доменное имя в параметре DNS клиента не разрешается в настроенный частный IP-адрес. Вам потребуется задать зону DNS для настроенного FQDN, как показано ниже.
Примечание.
Иногда База данных Azure для PostgreSQL и подсеть виртуальной сети относятся к разным подпискам. В этих случаях необходимо обеспечить следующую конфигурацию:
- Убедитесь, что в обеих подписках зарегистрирован поставщик ресурсов Microsoft.DBforPostgreSQL. Дополнительные сведения см. в разделе Поставщики ресурсов.
Подключение к виртуальной машине из Интернета
Подключитесь к виртуальной машине myVm из Интернета, выполнив следующие действия.
На портале в строке поиска введите myVm.
Нажмите кнопку Подключиться. После нажатия кнопки Подключиться откроется окно Connect to virtual machine (Подключение к виртуальной машине).
Выберите Скачать RDP-файл. Azure создаст и скачает на ваш компьютер файл протокола удаленного рабочего стола (RDP).
Откройте файл downloaded.rdp.
При появлении запроса выберите Подключиться.
Введите имя пользователя и пароль, указанные при создании виртуальной машины.
Примечание.
Возможно, потребуется выбрать More choices>Use a different account (Дополнительные варианты > Использовать другую учетную запись), чтобы указать учетные данные, введенные при создании виртуальной машины.
Нажмите ОК.
При входе в систему может появиться предупреждение о сертификате. В таком случае выберите Да или Продолжить.
Когда появится рабочий стол виртуальной машины, сверните его, чтобы вернуться на локальный рабочий стол.
Частный доступ к серверу PostgreSQL с виртуальной машины
Откройте PowerShell на удаленном рабочем столе myVm.
Введите
nslookup mydemopostgresserver.privatelink.postgres.database.azure.com
.Должно появиться сообщение следующего вида:
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: mydemopostgresserver.privatelink.postgres.database.azure.com Address: 10.1.3.4
Проверьте подключение к приватному каналу для сервера PostgreSQL с помощью любого доступного клиента. В следующем примере для выполнения операции используется Azure Data Studio.
В окне Новое подключение введите или выберите следующую информацию:
Параметр Значение Тип сервера Выберите PostgreSQL. Имя сервера Выберите mydemopostgresserver.privatelink.postgres.database.azure.com User name Введите имя пользователя в виде username@servername, указанное при создании сервера PostgreSQL. Пароль Введите пароль, указанный при создании сервера PostgreSQL. SSL Выберите Обязательно. Нажмите Подключиться.
Просмотр баз данных из левого меню.
(Дополнительно) Создание или запрос информации с сервера PostgreSQL.
Закройте подключение к удаленному рабочему столу myVM.
Очистка ресурсов
Чтобы удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы, выполните команду az group delete:
az group delete --name myResourceGroup --yes
Следующие шаги
- См. сведения о службе Частная конечная точка Azure