Использование частной ссылки для группы SQL FO и использование Terraform для обеспечения инфраструктуры

#terraform #azure-sql-database #terraform-provider-azure #azure-sql-server

Вопрос:

В данный момент у меня есть веб-приложение Azure, подключающееся к группе SQL FO с помощью прослушивателя чтения/записи строки подключения группы SQL FO. Я хотел бы использовать частную ссылку с частной конечной точкой для баз данных SQL. Поэтому мое веб-приложение должно быть включено для региональной интеграции в виртуальную сеть, если я не ошибаюсь. Я хотел бы знать, нужно ли мне создавать две частные конечные точки на сервер или нет, чтобы мое веб-приложение работало правильно, если происходит переключение базы данных SQL с основной на вторичную.

Я следую по этому URL-адресу: [https://docs.microsoft.com/en-us/azure/architecture/example-scenario/sql-failover/app-service-private-sql-multi-region#alternatives][1]

Я использую Terraform для обеспечения инфраструктуры. Поэтому я хотел бы знать, нужно ли указывать одну личную ссылку SQL для двух частных конечных точек или нет. В ссылке говорится, что вам нужно настроить две частные конечные точки для каждой базы данных SQL, так как же это сделать в коде Terraform? Может ли кто-нибудь, пожалуйста, взглянуть на код и сообщить мне, правильно это или нет.

Меня смущает блок подключения к частной службе. Каково было бы значение для «private_connection_resource_id» ? Будет ли это одинаковым для всех 4 частных конечных точек, которые являются идентификатором частной ссылки SQL?

 resource "azurerm_private_link_service" "sql-pvt-link" {
  name                = "sql-pvtlink"
  location            = var.resource_group_location
  resource_group_name = var.resource_group_name 
}

resource "azurerm_private_endpoint" "sql-primary-endpoint" {
  name                = module.names-pvt-endpoint.location.private_endpoint.name_unique
  location            = var.resource_group_location 
  resource_group_name = var.resource_group_name
  subnet_id           = data.azurerm_resources.sub-net.id 

  private_service_connection {
    name                           = "sql-primary-connection"
    private_connection_resource_id = azurerm_private_link_service.sql-pvt-link.id
    is_manual_connection           = false
  }
}

resource "azurerm_private_endpoint" "sql-secondary-endpoint" {
  name                = module.names-pvt-endpoint-secondary.location.private_endpoint.name_unique
  location            = "eastus2" 
  resource_group_name = var.resource_group_name
  subnet_id           = data.azurerm_resources.sub-net.id 

  private_service_connection {
    name                           = "sql-secondary-connection"
    private_connection_resource_id = azurerm_private_link_service.sql-pvt-link.id
    is_manual_connection           = false
  }
}

resource "azurerm_private_dns_zone" "default" {
  name                  = "privatelink.database.windows.net"
  resource_group_name   =  var.resource_group_name
}
 

Должно ли у меня быть всего 4 блока частных конечных точек, одна частная конечная точка для основной базы SQL, одна частная конечная точка для основной базы SQL, но расположение Восточной части США 2, другая частная конечная точка для вторичной базы SQL и одна частная конечная точка для вторичной базы SQL, но расположение Центральной части США, правильно?

Мой основной регион-Центральная часть США, а вторичный-Восточная часть США 2. [1]: https://docs.microsoft.com/en-us/azure/architecture/example-scenario/sql-failover/app-service-private-sql-multi-region#alternatives