Создание Приватного канала и управление им для службы "База данных Azure для MySQL" с помощью CLI

Область применения: База данных Azure для MySQL — отдельный сервер

Частная конечная точка — ключевой компонент для построения частной ссылки в Azure. Это позволяет ресурсам Azure, таким как виртуальные машины (VM), обмениваться данными в частном порядке с ресурсами частной ссылки. В этой статье вы узнаете, как использовать Azure CLI для создания виртуальной машины в виртуальной сети Azure и сервера базы данных Azure для MySQL с помощью частной конечной точки Azure.

Примечание

Функция приватного канала доступна только для серверов базы данных Azure для MySQL в ценовой категории "Общее назначение" или "Оптимизированная для операций в памяти". Убедитесь, что сервер базы данных находится в одной из этих ценовых категорий.

Предварительные требования

  • Используйте среду Bash в Azure Cloud Shell.

    Запуск Cloud Shell в новом окне

  • При необходимости установите Azure CLI, чтобы выполнять справочные команды CLI.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о дополнительных возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Если появится запрос, установите расширения Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  • Для работы с этой статьей требуется Azure CLI версии 2.0.28 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

Создание группы ресурсов

Перед созданием любого ресурса необходимо создать группу ресурсов, которая будет содержать эту виртуальную сеть. Создайте группу ресурсов с помощью команды 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 для MySQL.

Создайте базу данных Azure для MySQL, выполнив команду "az mysql server create". Помните, что имя MySQL Server должно быть уникальным в пределах Azure, поэтому замените значение заполнителя в квадратных скобках своим уникальным значением:

# Create a server in the resource group 

az mysql server create \
--name mydemoserver \
--resource-group myResourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2

Примечание

Иногда база данных Azure для MySQL и подсеть виртуальной сети относятся к разным подпискам. В этих случаях необходимо обеспечить следующую конфигурацию:

  • Убедитесь, что в обеих подписках зарегистрирован поставщик ресурсов Microsoft.DBforMySQL. Дополнительные сведения см. в разделе resource-manager-registration

Создание частной конечной точки

Создайте частную конечную точку для сервера SQL в виртуальной сети:

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.DBforMySQL/servers" --query "id" -o tsv) \    
    --group-id mysqlServer \  
    --connection-name myConnection  

Настройка частной зоны DNS

Создайте частную зону DNS для домена сервера MySQL, а затем ссылку на ассоциацию с виртуальной сетью.

az network private-dns zone create --resource-group myResourceGroup \ 
   --name  "privatelink.mysql.database.azure.com" 
az network private-dns link vnet create --resource-group myResourceGroup \ 
   --zone-name  "privatelink.mysql.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 MySQL name 

# Create DNS records 
az network private-dns record-set a create --name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup  
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup -a <Private IP Address>

Примечание

Полное доменное имя в параметре DNS клиента не разрешается в настроенный частный IP-адрес. Вам потребуется задать зону DNS для настроенного FQDN, как показано ниже.

Подключение к виртуальной машине из Интернета

Подключитесь к виртуальной машине myVm из Интернета, выполнив следующие действия.

  1. На портале в строке поиска введите myVm.

  2. Нажмите кнопку Подключиться. После нажатия кнопки Подключиться откроется окно Connect to virtual machine (Подключение к виртуальной машине).

  3. Щелкните Скачать RDP-файл. Azure создаст и скачает на ваш компьютер файл протокола удаленного рабочего стола (RDP).

  4. Откройте файл downloaded.rdp.

    1. При появлении запроса выберите Подключиться.

    2. Введите имя пользователя и пароль, указанные при создании виртуальной машины.

      Примечание

      Возможно, потребуется выбрать More choices > Use a different account (Дополнительные варианты > Использовать другую учетную запись), чтобы указать учетные данные, введенные при создании виртуальной машины.

  5. Щелкните ОК.

  6. При входе в систему может появиться предупреждение о сертификате. В таком случае выберите Да или Продолжить.

  7. Когда появится рабочий стол виртуальной машины, сверните его, чтобы вернуться на локальный рабочий стол.

Частный доступ к серверу MySQL с виртуальной машины

  1. На удаленном рабочем столе  myVm откройте PowerShell.

  2. Введите  nslookup mydemomysqlserver.privatelink.mysql.database.azure.com.

    Должно появиться сообщение следующего вида:

    Server:  UnKnown
    Address:  168.63.129.16
    Non-authoritative answer:
    Name:    mydemomysqlserver.privatelink.mysql.database.azure.com
    Address:  10.1.3.4
    
  3. Проверьте подключение к приватному каналу для сервера MySQL с помощью любого доступного клиента. В примере ниже мы использовали MySQL Workbench для выполнения этой операции.

  4. В окне Новое подключение введите или выберите следующую информацию:

    Параметр Значение
    Имя подключения Выберите нужное имя подключения.
    Hostname (Имя узла) Выберите mydemoserver.privatelink.mysql.database.azure.com
    Имя пользователя Введите имя пользователя в виде username@servername , указанное при создании сервера MySQL.
    Пароль Введите пароль, указанный при создании сервера MySQL.
  5. Нажмите кнопку "Подключиться".

  6. Просмотр баз данных из левого меню.

  7. (Дополнительно) Создание или запрос информации из базы данных MySQL.

  8. Закройте подключение к удаленному рабочему столу myVM.

Очистка ресурсов

Чтобы удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы, выполните команду "az group delete".

az group delete --name myResourceGroup --yes 

Дальнейшие действия