Connecter votre application à Azure SQL Managed Instance

S’applique à :Azure SQL Managed Instance

Cet article explique comment connecter votre application à Azure SQL Managed Instance dans plusieurs scénarios d'application différents à l'intérieur ou entre des réseaux virtuels Azure.

Aujourd’hui, plusieurs choix s’offrent à vous pour déterminer comment et où héberger votre application. Vous pouvez choisir le cloud en utilisant Azure App Service ou certaines options intégrées de réseau virtuel Azure comme Azure App Service Environment, des machines virtuelles Azure, ainsi que des groupes de machines virtuelles identiques. Vous pouvez également adopter une approche du cloud hybride (ou « mixte ») pour conserver vos applications localement. Quel que soit votre choix, votre application peut se connecter à Azure SQL Managed Instance dans un certain nombre de scénarios d’application différents à l’intérieur ou entre des réseaux virtuels Azure.

Vous pouvez également activer l’accès aux données à vos instances gérées à partir de l’extérieur d’un réseau virtuel, par exemple à partir de services Azure multilocataires tels que Power BI et Azure App Service, ou à partir d’un réseau local non connecté à vos réseaux virtuels via VPN. Pour effectuer ces scénarios et des scénarios similaires, reportez-vous à la section Configurer un point de terminaison public dans Azure SQL Managed Instance.

High availability

Connexion à l'intérieur du même VNet

La connexion d’une application à l’intérieur du même réseau virtuel que SQL Managed Instance est le scénario le plus simple. Des machines virtuelles à l’intérieur du réseau virtuel peuvent se connecter entre elles directement même si elles sont dans des sous-réseaux différents. Cela signifie que pour connecter une application à l’intérieur d’App Service Environment ou une machine virtuelle déployée dans le même réseau virtuel que SQL Managed Instance, vous devez configurer la chaîne de connexion pour cibler son point de terminaison de réseau virtuel local.

Connexion à l’intérieur d’un autre réseau virtuel

La connexion d’une application lorsqu’elle réside dans un réseau virtuel différent de celui de SQL Managed Instance nécessite que l’application accède d’abord au réseau virtuel où SQL Managed Instance est déployé, ou à SQL Managed Instance lui-même. Les deux réseaux virtuels ne doivent pas nécessairement être dans le même abonnement.

Il existe trois options pour se connecter à SQL Managed Instance dans un réseau virtuel différent :

Des trois, les points de terminaison privés sont l’option la plus sécurisée et la plus économique en ressources, car ils :

  • exposent uniquement SQL Managed Instance à partir de son réseau virtuel.
  • autorisent uniquement la connectivité unidirectionnelle.
  • ne nécessitent qu’une seule adresse IP dans le réseau virtuel de l’application.

Si les points de terminaison privés ne peuvent pas répondre entièrement aux exigences de votre scénario, envisagez plutôt le peering de réseaux virtuels. Le peering utilise le réseau Azure principal, de sorte qu’il n’y a pas de pénalité de latence notable pour la communication au-delà des limites du réseau virtuel. Le peering de réseaux virtuels est pris en charge entre les réseaux de toutes les régions (peering de réseaux virtuels globaux), tandis que les instances hébergées dans des sous-réseaux créées avant le 22 septembre 2020 prennent uniquement en charge le peering au sein de leur région.

Connexion en local

Vous pouvez connecter votre application locale au point de terminaison local du VNet de votre instance SQL Managed Instance. Afin d’y accéder localement, vous devez établir une connexion de site à site entre l’application et le réseau virtuel SQL Managed Instance. Si l’accès aux données uniquement à votre instance gérée est suffisant, vous pouvez vous y connecter à partir de l’extérieur d’un réseau virtuel via un point de terminaison public. Pour en savoir plus, consultez Configurer un point de terminaison public dans Azure SQL Managed Instance.

Vous avez deux options pour la connexion d’une application locale à un réseau virtuel Azure :

Si vous avez établi une connexion locale à Azure et que vous ne parvenez pas à établir une connexion à SQL Managed Instance, vérifiez si votre pare-feu dispose d’une connexion sortante ouverte sur le port SQL 1433 et la plage de ports 11000 à 11999 à des fins de redirection.

Connexion d’une dev box

Il est également possible de connecter votre box de développeur à SQL Managed Instance. Pour y accéder à partir de votre box de développeur en passant par un réseau virtuel, vous devez d’abord établir une connexion entre votre box de développeur et le réseau virtuel SQL Managed Instance. Pour cela, configurez une connexion point à site à un réseau virtuel à l’aide de l’authentification par certificat Azure native. Pour en savoir plus, consultez la page Démarrage rapide : Configurer une connexion point à site à Azure SQL Managed Instance à partir d’un emplacement local.

Pour accéder aux données de votre instance gérée à partir de l’extérieur d’un réseau virtuel, consultez Configurer un point de terminaison public dans Azure SQL Managed Instance.

Se connecter à un réseau spoke

Un autre scénario courant consiste à installer une passerelle VPN dans un réseau virtuel distinct (et éventuellement un autre abonnement) (réseau spoke ) de celui hébergeant SQL Managed Instance (réseau hub). La connectivité à SQL Managed Instance à partir du réseau spoke est configurée via l’une des options répertoriées dans Se connecter à partir d’un autre réseau virtuel : points de terminaison privés, peering de réseaux virtuels ou passerelle de réseau virtuel à réseau virtuel.

L'exemple de diagramme d'architecture suivant illustre le VNet peering :

Diagram showing Virtual network peering.

Si vous appariez les réseaux en étoile, assurez-vous que la passerelle VPN voit les adresses IP du réseau hub. Pour ce faire, apportez les modifications qui suivent dans Paramètres de peering :

  1. Dans le réseau virtuel qui héberge la passerelle VPN (réseau spoke), accédez à Peerings, puis à la connexion de réseau virtuel appairé pour SQL Managed Instance, et sélectionnez Autoriser le transit par passerelle.
  2. Dans le réseau virtuel qui héberge SQL Managed Instance (réseau hub), accédez à Peerings, puis à la connexion de réseau virtuel appairé pour la passerelle VPN, puis sélectionnez Utiliser des passerelles distantes.

Connexion d’Azure App Service

Vous pouvez également connecter une application hébergée par Azure App Service lorsqu’elle est intégrée à votre réseau virtuel. Pour ce faire, sélectionnez l’un des mécanismes répertoriés dans Se connecter à partir d’un autre réseau virtuel. Pour accéder aux données de votre instance gérée à partir de l’extérieur d’un réseau virtuel, consultez Configurer un point de terminaison public dans Azure SQL Managed Instance.

L’intégration d’Azure App Service à un réseau homologué avec un réseau virtuel SQL Managed Instance constitue un cas spécial de connexion entre Azure App Service et le réseau virtuel SQL Managed Instance. Ce cas nécessite la configuration suivante :

  • Le réseau virtuel SQL Managed Instance ne doit PAS avoir de passerelle
  • L’option Use remote gateways doit être définie pour le réseau virtuel SQL Managed Instance
  • L’option Allow gateway transit doit être définie pour le réseau virtuel appairé

Ce scénario est illustré dans le diagramme suivant :

Diagram for integrated app peering.

Remarque

La fonctionnalité d’intégration du réseau virtuel n’intègre pas une application à un réseau virtuel doté d’une passerelle ExpressRoute. Même si la passerelle ExpressRoute est configurée en mode de coexistence, l’intégration du réseau virtuel ne fonctionnera pas. S’il vous faut accéder aux ressources via une connexion ExpressRoute, vous pouvez utiliser App Service Environment s’exécutant dans votre réseau virtuel.

Pour résoudre les problèmes d’accès à Azure App Service en passant par un réseau virtuel, consultez la section Dépannage de la page Intégrer votre application à un réseau virtuel Azure.

Résoudre les problèmes de connectivité

Pour résoudre les problèmes de connectivité, passez en revue les points suivants :

  • Si vous ne parvenez pas à vous connecter à SQL Managed Instance à partir d’une machine virtuelle Azure au sein du même réseau virtuel, mais que vous y parvenez à partir d’un autre sous-réseau, vérifiez si un groupe de sécurité réseau défini sur le sous-réseau de machine virtuelle bloque l’accès. De plus, ouvrez la connexion sortante sur le port SQL 1433 ainsi que les ports de la plage 11000-11999, car ceux-ci sont nécessaires pour la connexion via la redirection à l’intérieur de la limite Azure.

  • Assurez-vous que la propagation des itinéraires de passerelle est désactivée pour la table de route associée au réseau virtuel.

  • Si vous utilisez une connexion VPN point à site, accédez à la configuration dans le portail Azure pour voir si les sections Entrée/Sortie contiennent des chiffres. La présence de chiffres autres que zéro indique qu'Azure achemine le trafic entrant et sortant sur un ordinateur local.

    Screenshot showing ingress/egress numbers in the Azure portal.

  • Vérifiez que la machine cliente (qui exécute le client VPN) affiche des entrées de routage pour tous les réseaux virtuels auxquels vous avez besoin d’accéder. Les itinéraires sont stockés dans %AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    Screenshot showing the route.txt.

    Comme le montre cette image, il y a deux entrées pour chaque réseau virtuel impliqué, et une troisième entrée pour le point de terminaison VPN qui est configuré dans le portail.

    Une autre façon de vérifier les itinéraires est d’utiliser la commande suivante. La sortie montre les itinéraires vers les différents sous-réseaux :

    C:\ >route print -4
    ===========================================================================
    Interface List
    14...54 ee 75 67 6b 39 ......Intel(R) Ethernet Connection (3) I218-LM
    57...........................rndatavnet
    18...94 65 9c 7d e5 ce ......Intel(R) Dual Band Wireless-AC 7265
    1...........................Software Loopback Interface 1
    Adapter===========================================================================
    
    IPv4 Route Table
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
            0.0.0.0          0.0.0.0       10.83.72.1     10.83.74.112     35
           10.0.0.0    255.255.255.0         On-link       172.26.34.2     43
           10.4.0.0    255.255.255.0         On-link       172.26.34.2     43
    ===========================================================================
    Persistent Routes:
    None
    
  • Si vous utilisez le peering de réseaux virtuels, suivez les instructions concernant la configuration des options Autoriser le transit par passerelle et Utiliser des passerelles distantes.

  • Si vous utilisez le peering de réseaux virtuels pour connecter une application hébergée Azure App Service et que le réseau virtuel SQL Managed Instance a une plage d’IP publiques, assurez-vous que les paramètres de votre application hébergée autorisent le routage du trafic sortant vers des réseaux IP publics. Suivez les instructions de la section Intégration au réseau virtuel régional.

Bien que les versions antérieures puissent fonctionner, le tableau suivant répertorie les versions minimales recommandées des outils et pilotes pour se connecter à SQL Managed Instance :

Pilote/outil Version
.NET Framework 4.6.1 (ou .NET Core)
Pilote ODBC v17
Pilote PHP 5.2.0
Pilote JDBC 6.4.0
Pilote Node.js 2.1.1
Pilote OLEDB 18.0.2.0
SSMS 18.0 ou ultérieur
SMO 150 ou ultérieur

Étapes suivantes