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

DOTYCZY: Azure SQL Managed Instance

Obecnie masz wiele opcji podczas podejmowania decyzji o sposobie i miejscu hostowania aplikacji.

Możesz hostować aplikację w chmurze przy użyciu Azure App Service lub niektórych zintegrowanych opcji sieci wirtualnej platformy Azure, takich jak środowisko Azure App Service, usługa Azure Virtual Machines i zestawy skalowania maszyn wirtualnych. Możesz również stosować podejście chmury hybrydowej i przechowywać aplikacje lokalnie.

Niezależnie od wybranego wyboru, możesz połączyć go z Azure SQL Managed Instance.

W tym artykule opisano sposób łączenia aplikacji z Azure SQL Managed Instance w wielu różnych scenariuszach aplikacji z sieci wirtualnej.

Ważne

Możesz również włączyć dostęp do danych do wystąpienia zarządzanego spoza sieci wirtualnej. Dostęp do wystąpienia zarządzanego można uzyskać z wielodostępnych usług platformy Azure, takich jak Power BI, Azure App Service lub sieć lokalna, która nie jest połączona z siecią VPN przy użyciu publicznego punktu końcowego w wystąpieniu zarządzanym. Musisz włączyć publiczny punkt końcowy w wystąpieniu zarządzanym i zezwolić na ruch publicznego punktu końcowego w sieciowej grupie zabezpieczeń skojarzonej z podsiecią wystąpienia zarządzanego. Zobacz więcej ważnych informacji na temat konfigurowania publicznego punktu końcowego w Azure SQL Managed Instance.

High availability

Połączenie w tej samej sieci wirtualnej

Połączenie aplikacji w tej samej sieci wirtualnej w usłudze SQL Managed Instance jest najprostszym scenariuszem. Maszyny wirtualne w sieci wirtualnej mogą łączyć się ze sobą bezpośrednio, nawet jeśli znajdują się w różnych podsieciach. Oznacza to, że wystarczy połączyć aplikację wewnątrz środowiska App Service Environment lub maszyny wirtualnej, aby odpowiednio ustawić parametry połączenia.

Połączenie wewnątrz innej sieci wirtualnej

Łączenie aplikacji, gdy znajduje się w innej sieci wirtualnej niż wystąpienie usługi SQL Managed Instance, jest nieco bardziej złożone, ponieważ wystąpienie usługi SQL Managed Instance ma prywatne adresy IP we własnej sieci wirtualnej. Aby nawiązać połączenie, aplikacja musi mieć dostęp do sieci wirtualnej, w której wdrożono wystąpienie usługi SQL Managed Instance. Dlatego należy utworzyć połączenie między aplikacją a siecią wirtualną wystąpienia usługi SQL Managed Instance. Sieci wirtualne nie muszą znajdować się w tej samej subskrypcji, aby ten scenariusz działał.

Istnieją dwie opcje łączenia sieci wirtualnych:

Preferowana jest komunikacja równorzędna, ponieważ korzysta z sieci szkieletowej firmy Microsoft, dlatego z perspektywy łączności nie ma zauważalnej różnicy w opóźnieniu między maszynami wirtualnymi w równorzędnej sieci wirtualnej i w tej samej sieci wirtualnej. Komunikacja równorzędna sieci wirtualnych jest obsługiwana między sieciami w tym samym regionie. Globalna komunikacja równorzędna sieci wirtualnych jest również obsługiwana z ograniczeniami opisanymi w poniższej notatce.

Ważne

W dniu 22.09.2020 została ogłoszona obsługa globalnej komunikacji równorzędnej sieci wirtualnych dla nowo utworzonych klastrów wirtualnych. Oznacza to, że globalna komunikacja równorzędna sieci wirtualnych jest obsługiwana dla wystąpień zarządzanych SQL utworzonych w pustych podsieciach, a także dla wszystkich kolejnych wystąpień zarządzanych utworzonych w tych podsieciach. W przypadku wszystkich pozostałych SQL obsługa komunikacji równorzędnej wystąpień zarządzanych jest ograniczona do sieci w tym samym regionie ze względu na ograniczenia globalnej komunikacji równorzędnej sieci wirtualnych. Aby uzyskać więcej informacji, zobacz również odpowiednią sekcję artykułu Azure Virtual Networks frequently asked questions (Sieci wirtualne platformy Azure— często zadawane pytania ). Aby móc używać globalnej komunikacji równorzędnej sieci wirtualnych dla SQL wystąpień zarządzanych z klastrów wirtualnych utworzonych przed datą ogłoszenia, rozważ skonfigurowanie okna obsługi w wystąpieniach, ponieważ spowoduje przeniesienie wystąpień do nowych klastrów wirtualnych obsługujących globalną komunikację równorzędną sieci wirtualnych.

Połączenie ze środowiska lokalnego

Możesz również połączyć aplikację lokalną z SQL Managed Instance za pośrednictwem sieci wirtualnej (prywatnego adresu IP). Aby uzyskać do niego dostęp ze środowiska lokalnego, należy nawiązać połączenie lokacja-lokacja między aplikacją a siecią wirtualną SQL Managed Instance. Aby uzyskać dostęp do danych do wystąpienia zarządzanego spoza sieci wirtualnej, zobacz Konfigurowanie publicznego punktu końcowego w Azure SQL Managed Instance.

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

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

Połączenie pole dewelopera

Istnieje również możliwość połączenia pola dewelopera z SQL Managed Instance. Aby uzyskać dostęp do niego z poziomu pola dewelopera za pośrednictwem sieci wirtualnej, musisz najpierw nawiązać połączenie między polem dewelopera a siecią wirtualną 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 Configure a point-to-site connection to connect to Azure SQL Managed Instance from an on-premises computer (Konfigurowanie połączenia punkt-lokacja w celu nawiązania połączenia z 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 Azure SQL Managed Instance.

Połączenie za pomocą komunikacji równorzędnej sieci wirtualnych

Inny scenariusz zaimplementowany przez klientów polega na tym, że brama sieci VPN jest zainstalowana w oddzielnej sieci wirtualnej i subskrypcji od tej, która hostuje SQL Managed Instance. Dwie sieci wirtualne są następnie równorzędne. Poniższy przykładowy diagram architektury pokazuje, jak można to zaimplementować.

Virtual network peering

Po skonfigurowaniu podstawowej infrastruktury należy zmodyfikować niektóre ustawienia, aby brama sieci VPN mogła zobaczyć adresy IP w sieci wirtualnej hostujące SQL Managed Instance. W tym celu wprowadź następujące bardzo szczegółowe zmiany w ustawieniach komunikacji równorzędnej.

  1. W sieci wirtualnej, która hostuje bramę sieci VPN, przejdź do pozycji Komunikacja równorzędna, przejdź do połączenia równorzędnej sieci wirtualnej dla SQL Managed Instance, a następnie kliknij pozycję Zezwalaj na tranzyt bramy.
  2. W sieci wirtualnej, która hostuje SQL Managed Instance, przejdź do pozycji Komunikacja równorzędna, przejdź do połączenia równorzędnej sieci wirtualnej dla bramy sieci VPN, a następnie kliknij pozycję Użyj bram zdalnych.

Połączenie Azure App Service

Możesz również połączyć aplikację hostowaną przez Azure App Service. Aby uzyskać do niego dostęp z Azure App Service za pośrednictwem sieci wirtualnej, należy najpierw nawiązać połączenie między aplikacją a siecią wirtualną SQL Managed Instance. Zobacz Integrowanie aplikacji z usługą Azure Virtual Network. Aby uzyskać dostęp do danych do wystąpienia zarządzanego spoza sieci wirtualnej, zobacz Konfigurowanie publicznego punktu końcowego w Azure SQL Managed Instance.

Aby uzyskać informacje na temat rozwiązywania problemów z dostępem Azure App Service za pośrednictwem sieci wirtualnej, zobacz Rozwiązywanie problemów z sieciami wirtualnymi i aplikacjami.

Szczególny przypadek łączenia Azure App Service z SQL Managed Instance polega na zintegrowaniu Azure App Service z siecią równorzędną z siecią wirtualną SQL Managed Instance. Ten przypadek wymaga następującej konfiguracji:

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

Ten scenariusz przedstawiono na poniższym diagramie:

integrated app peering

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 z siecią wirtualną nie działa. Jeśli potrzebujesz dostępu do zasobów za pośrednictwem połączenia usługi ExpressRoute, możesz użyć App Service Environment, która działa w sieci wirtualnej.

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 SQL Managed Instance z maszyny wirtualnej platformy Azure w tej samej sieci wirtualnej, ale w innej podsieci, sprawdź, czy w podsieci maszyny wirtualnej jest ustawiona sieciowa grupa zabezpieczeń, która może blokować dostęp. Ponadto otwórz połączenie wychodzące na SQL porcie 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 protokołu BGP jest ustawiona na włączoną dla tabeli tras skojarzonej z siecią wirtualną.

  • Jeśli używasz sieci VPN P2S, sprawdź konfigurację w Azure Portal, aby sprawdzić, czy widzisz numery ruchu przychodzącego/Egress. Liczby inne niż zero wskazują, że platforma Azure kieruje ruch do/z środowiska lokalnego.

    ingress/egress numbers

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

    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 pokazują 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 ustawiania opcji Zezwalaj na tranzyt bramy i Użyj bram zdalnych.

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

Wymagane wersje sterowników i narzędzi

Zalecane są następujące minimalne wersje narzędzi i sterowników, jeśli chcesz nawiązać połączenie z 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 nowsze

Następne kroki