Udostępnij za pośrednictwem


Łączenie aplikacji z wystąpieniem zarządzanym usługi Azure SQL

Dotyczy: Azure SQL Managed Instance

W tym artykule opisano sposób łączenia aplikacji z usługą Azure SQL Managed Instance w wielu różnych scenariuszach aplikacji w sieciach wirtualnych platformy Azure lub między nimi.

Obecnie masz wiele opcji podczas podejmowania decyzji o sposobie i miejscu hostowania aplikacji. Możesz wybrać hostowanie aplikacji w chmurze przy użyciu usługi aplikacja systemu Azure Service lub niektórych zintegrowanych opcji sieci wirtualnej platformy Azure, takich jak aplikacja systemu Azure Service Environment, Azure Virtual Machines i Virtual Machine Scale Sets. Możesz również stosować podejście hybrydowe ("mieszane") w chmurze i zachować aplikacje w środowisku lokalnym. Niezależnie od wybranego wyboru aplikacja może łączyć się z usługą Azure SQL Managed Instance w wielu różnych scenariuszach aplikacji w sieciach wirtualnych platformy Azure lub między nimi.

Możesz również włączyć dostęp do danych do wystąpienia zarządzanego spoza sieci wirtualnej — na przykład z wielodostępnych usług platformy Azure, takich jak Power BI i aplikacja systemu Azure Service, lub z sieci lokalnej, która nie jest połączona z sieciami wirtualnymi za pośrednictwem sieci VPN. Aby zrealizować te i podobne scenariusze, zobacz Konfigurowanie publicznego punktu końcowego w usłudze Azure SQL Managed Instance.

Diagram przedstawiający wysoką dostępność.

Nawiązywanie połączenia z poziomu tej samej sieci wirtualnej

Połączenie aplikacji w tej samej sieci wirtualnej w usłudze SQL Managed Instance jest najprostszym scenariuszem. Maszyny wirtualne wewnątrz sieci wirtualnej mogą łączyć się ze sobą bezpośrednio, nawet jeśli znajdują się wewnątrz różnych podsieci. Oznacza to, że aby połączyć aplikację wewnątrz środowiska App Service Environment lub maszyny wirtualnej wdrożonej w tej samej sieci wirtualnej co usługa SQL Managed Instance, należy skonfigurować parametry połączenia w celu docelowego punktu końcowego sieci wirtualnej.

Nawiązywanie połączenia z innej sieci wirtualnej

Połączenie aplikacji, gdy znajduje się w sieci wirtualnej innej niż usługa SQL Managed Instance, wymaga, aby aplikacja po raz pierwszy uzyskała dostęp do sieci wirtualnej, w której wdrożono usługę SQL Managed Instance, lub do samej usługi SQL Managed Instance. Dwie sieci wirtualne nie muszą znajdować się w tej samej subskrypcji.

Istnieją trzy opcje nawiązywania połączenia z usługą SQL Managed Instance w innej sieci wirtualnej:

Spośród trzech prywatnych punktów końcowych to najbezpieczniejsza i ekonomiczna opcja, ponieważ:

  • uwidacznia tylko wystąpienie zarządzane SQL z sieci wirtualnej.
  • Zezwalaj tylko na łączność jednokierunkową.
  • wymaga tylko jednego adresu IP w sieci wirtualnej aplikacji.

Jeśli prywatne punkty końcowe nie mogą w pełni spełniać wymagań scenariusza, rozważ komunikację równorzędną sieci wirtualnych. Komunikacja równorzędna korzysta z sieci szkieletowej platformy Azure, więc nie ma zauważalnej kary za opóźnienie komunikacji między granicami sieci wirtualnej. Komunikacja równorzędna sieci wirtualnych jest obsługiwana między sieciami we wszystkich regionach (globalna komunikacja równorzędna sieci wirtualnych), podczas gdy wystąpienia hostowane w podsieciach utworzonych przed 22 września 2020 r. obsługują komunikację równorzędną tylko w ich regionie.

Połączenie ze środowiska lokalnego

Aplikację lokalną można połączyć z lokalnym punktem końcowym sieci wirtualnej wystąpienia zarządzanego SQL. Aby uzyskać dostęp do niego ze środowiska lokalnego, należy nawiązać połączenie lokacja-lokacja między aplikacją a siecią wirtualną usługi SQL Managed Instance. Jeśli dostęp tylko do danych do wystąpienia zarządzanego jest wystarczający, możesz nawiązać z nim połączenie spoza sieci wirtualnej za pośrednictwem publicznego punktu końcowego — zapoznaj się z artykułem Konfigurowanie publicznego punktu końcowego w usłudze Azure SQL Managed Instance , aby dowiedzieć się więcej.

Istnieją dwie opcje łączenia aplikacji lokalnej z siecią wirtualną platformy Azure:

Jeśli nawiązano połączenie lokalne z platformą Azure i nie możesz nawiązać połączenia z usługą SQL Managed Instance, sprawdź, czy zapora ma otwarte połączenie wychodzące na porcie SQL 1433, a także zakres portów 11000-11999 dla przekierowania.

Łączenie pola dewelopera

Istnieje również możliwość połączenia pola dewelopera z usługą SQL Managed Instance. Aby uzyskać dostęp do niego z poziomu pola dewelopera za pośrednictwem sieci wirtualnej, należy najpierw nawiązać połączenie między polem dewelopera i siecią wirtualną usługi SQL Managed Instance. W tym celu skonfiguruj połączenie typu punkt-lokacja z siecią wirtualną przy użyciu natywnego uwierzytelniania certyfikatu platformy Azure. Aby uzyskać więcej informacji, zobacz Konfigurowanie połączenia punkt-lokacja w celu nawiązania połączenia z usługą Azure SQL Managed Instance z komputera lokalnego.

Aby uzyskać dostęp do danych do wystąpienia zarządzanego spoza sieci wirtualnej, zobacz Konfigurowanie publicznego punktu końcowego w usłudze Azure SQL Managed Instance.

Nawiązywanie połączenia z siecią szprych

Innym typowym scenariuszem jest to, że brama sieci VPN jest zainstalowana w oddzielnej sieci wirtualnej (a być może w ramach subskrypcji) — sieci szprych — od tej, która hostuje usługę SQL Managed Instance (sieć piasty). Łączność z usługą SQL Managed Instance z sieci szprychy jest skonfigurowana za pośrednictwem jednej z opcji wymienionych w sekcji Łączenie z innej sieci wirtualnej: prywatnych punktów końcowych, komunikacji równorzędnej sieci wirtualnej lub bramy między sieciami wirtualnymi.

Poniższy przykładowy diagram architektury przedstawia komunikację równorzędną sieci wirtualnych:

Diagram przedstawiający komunikację równorzędną sieci wirtualnych.

Jeśli używasz sieci koncentratora komunikacji równorzędnej i szprych, upewnij się, że brama sieci VPN widzi adresy IP z sieci koncentratora. W tym celu wprowadź następujące zmiany w obszarze Ustawienia komunikacji równorzędnej:

  1. W sieci wirtualnej, która hostuje bramę sieci VPN (sieć szprych), przejdź do pozycji Komunikacja równorzędna, przejdź do połączenia równorzędnej sieci wirtualnej dla usługi SQL Managed Instance i wybierz pozycję Zezwalaj na tranzyt bramy.
  2. W sieci wirtualnej, która hostuje usługę SQL Managed Instance (sieć koncentratora), przejdź do pozycji Komunikacja równorzędna, przejdź do połączenia równorzędnej sieci wirtualnej dla bramy sieci VPN, a następnie wybierz pozycję Użyj bram zdalnych.

Łączenie usługi aplikacja systemu Azure

Możesz również połączyć aplikację hostowaną przez usługę aplikacja systemu Azure, gdy jest zintegrowana z siecią wirtualną. W tym celu wybierz jeden z mechanizmów wymienionych w sekcji Połącz z innej sieci wirtualnej. Aby uzyskać dostęp do danych do wystąpienia zarządzanego spoza sieci wirtualnej, zobacz Konfigurowanie publicznego punktu końcowego w usłudze Azure SQL Managed Instance.

Szczególnym przypadkiem łączenia usługi aplikacja systemu Azure z usługą SQL Managed Instance jest integracja usługi aplikacja systemu Azure z siecią równorzędną z siecią wirtualną usługi SQL Managed Instance. Ten przypadek wymaga następującej konfiguracji:

  • Sieć wirtualna usługi SQL Managed Instance nie może mieć bramy
  • Sieć wirtualna Use remote gateways usługi SQL Managed Instance musi mieć zestaw opcji
  • Równorzędna sieć wirtualna Allow gateway transit musi mieć zestaw opcji

Ten scenariusz przedstawiono na poniższym diagramie:

Diagram przedstawiający zintegrowaną komunikację równorzędną aplikacji.

Uwaga

Funkcja integracji sieci wirtualnej nie integruje aplikacji z siecią wirtualną, która ma bramę usługi ExpressRoute. Nawet jeśli brama usługi ExpressRoute jest skonfigurowana w trybie współistnienia, integracja sieci wirtualnej nie działa. Jeśli chcesz uzyskać dostęp do zasobów za pośrednictwem połączenia usługi ExpressRoute, możesz użyć środowiska App Service Environment działającego w sieci wirtualnej.

Aby rozwiązać problemy z dostępem do usługi aplikacja systemu Azure za pośrednictwem sieci wirtualnej, zapoznaj się z artykułem Rozwiązywanie problemów z sieciami wirtualnymi i aplikacjami.

Rozwiązywanie problemów z łącznością

Aby rozwiązać problemy z łącznością, zapoznaj się z następującymi tematami:

  • Jeśli nie możesz nawiązać połączenia z usługą SQL Managed Instance z maszyny wirtualnej platformy Azure w tej samej sieci wirtualnej, ale innej podsieci, sprawdź, czy istnieje sieciowa grupa zabezpieczeń skonfigurowana w podsieci maszyny wirtualnej, która może blokować dostęp. Ponadto otwórz połączenie wychodzące na porcie SQL 1433, a także porty z zakresu 11000–11999, ponieważ są one wymagane do nawiązania połączenia za pośrednictwem przekierowania wewnątrz granicy platformy Azure.

  • Upewnij się, że propagacja tras bramy jest wyłączona dla tabeli tras skojarzonej z siecią wirtualną.

  • Jeśli używasz sieci VPN typu punkt-lokacja, sprawdź konfigurację w witrynie Azure Portal, aby sprawdzić, czy widzisz numery ruchu przychodzącego/wychodzącego . Liczby niezerowe wskazują, że platforma Azure kieruje ruch do/z środowiska lokalnego.

    Zrzut ekranu przedstawiający numery ruchu przychodzącego/wychodzącego w witrynie Azure Portal.

  • Sprawdź, czy maszyna kliencka (uruchomiona klient sieci VPN) ma wpisy tras dla wszystkich sieci wirtualnych, do których chcesz uzyskać dostęp. Trasy są przechowywane w pliku %AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    Zrzut ekranu przedstawiający route.txt.

    Jak pokazano na tej ilustracji, istnieją dwa wpisy dla każdej zaangażowanej sieci wirtualnej i trzeci wpis dla punktu końcowego sieci VPN skonfigurowanego w portalu.

    Innym sposobem sprawdzenia tras jest użycie następującego polecenia. Dane wyjściowe przedstawiają trasy do różnych podsieci:

    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
    
  • Jeśli używasz komunikacji równorzędnej sieci wirtualnych, upewnij się, że wykonano instrukcje dotyczące ustawienia opcji Zezwalaj na tranzyt bramy i Użyj bram zdalnych.

  • Jeśli używasz komunikacji równorzędnej sieci wirtualnych do łączenia aplikacji hostowanej usługi Azure App Service, a sieć wirtualna usługi SQL Managed Instance ma publiczny zakres adresów IP, upewnij się, że ustawienia aplikacji hostowanej zezwalają na kierowanie ruchu wychodzącego do sieci publicznych adresów IP. Postępuj zgodnie z instrukcjami w temacie Regionalna integracja sieci wirtualnej.

Mimo że starsze wersje mogą działać, w poniższej tabeli wymieniono zalecane minimalne wersje narzędzi i sterowników w celu nawiązania połączenia z usługą SQL Managed Instance:

Sterownik/narzędzie Wersja
.NET Framework 4.6.1 (lub .NET Core)
Sterownik ODBC Wersja 17
Sterownik PHP 5.2.0
Sterownik JDBC 6.4.0
Sterownik Node.js 2.1.1
Sterownik OLEDB 18.0.2.0
SSMS 18.0 lub nowsze
SMO 150 lub więcej