Arsitektur konektivitas untuk Azure SQL Managed Instance

Berlaku untuk:Azure SQL Managed Instance

Artikel ini menjelaskan arsitektur konektivitas Azure SQL Managed Instance dan bagaimana komponen mengarahkan lalu lintas komunikasi untuk instans terkelola SQL.

Gambaran Umum

Di SQL Managed Instance, instans ditempatkan di dalam jaringan virtual Azure dan di dalam subnet yang didedikasikan untuk instans terkelola SQL. Penyebaran menyediakan:

  • Alamat IP lokal jaringan virtual (VNet-lokal) yang aman.
  • Kemampuan untuk menghubungkan jaringan lokal ke SQL Managed Instance.
  • Kemampuan untuk menyambungkan SQL Managed Instance ke server tertaut atau ke penyimpanan data lokal lainnya.
  • Kemampuan untuk menghubungkan SQL Managed Instance ke sumber daya Azure.

Arsitektur konektivitas tingkat tinggi

SQL Managed Instance terdiri dari komponen layanan yang dihosting pada sekumpulan komputer virtual terisolasi khusus yang dikelompokkan bersama oleh atribut konfigurasi serupa dan bergabung ke kluster virtual. Beberapa komponen layanan disebarkan di dalam subnet jaringan virtual pelanggan, sementara layanan lain beroperasi dalam lingkungan jaringan aman yang dikelola Microsoft.

Diagram yang menunjukkan arsitektur konektivitas tingkat tinggi untuk Azure SQL Managed Instance setelah November 2022.

Aplikasi pelanggan dapat terhubung ke SQL Managed Instance dan dapat mengkueri serta memperbarui database di dalam jaringan virtual, jaringan virtual yang di-peering, atau jaringan yang terhubung dengan VPN atau Azure ExpressRoute.

Diagram berikut menunjukkan entitas yang terhubung ke SQL Managed Instance. Ini juga menunjukkan sumber daya yang perlu berkomunikasi dengan instans terkelola SQL. Proses komunikasi di bagian bawah diagram mewakili aplikasi dan alat pelanggan yang terhubung ke SQL Managed Instance sebagai sumber data.

Diagram yang menunjukkan entitas dalam arsitektur konektivitas untuk Azure SQL Managed Instance setelah November 2022.

SQL Managed Instance adalah penawaran platform sebagai layanan penyewa tunggal yang beroperasi di dua lapisan: lapisan data dan lapisan kontrol.

Data plane dikerahkan di dalam subnet pelanggan untuk memastikan kompatibilitas, konektivitas, dan isolasi jaringan. Bidang data bergantung pada layanan Azure seperti Azure Storage, ID Microsoft Entra (sebelumnya Azure Active Directory) untuk autentikasi, dan layanan pengumpulan telemetri. Anda akan melihat lalu lintas yang berasal dari subnet yang berisi SQL Managed Instance yang masuk ke layanan tersebut.

Sarana kontrol membawa fungsi penyebaran, manajemen, dan pemeliharaan layanan inti melalui agen otomatis. Agen-agen ini memiliki akses eksklusif ke sumber daya komputasi yang mengoperasikan layanan. Anda tidak dapat menggunakan SSH atau Protokol Desktop Jarak Jauh untuk mengakses host tersebut. Semua komunikasi sarana kontrol dienkripsi dan ditandatangani dengan menggunakan sertifikat. Untuk memeriksa kepercayaan pihak yang berkomunikasi, SQL Managed Instance terus memverifikasi sertifikat ini dengan menggunakan daftar pencabutan sertifikat.

Gambaran umum komunikasi

Aplikasi dapat terhubung ke SQL Managed Instance melalui tiga jenis titik akhir: titik akhir VNet-lokal, titik akhir publik, dan titik akhir privat. Titik akhir ini menunjukkan properti dan perilaku yang berbeda yang cocok untuk skenario yang berbeda.

Diagram yang memperlihatkan cakupan visibilitas untuk titik akhir VNet-lokal, publik, dan privat ke Azure SQL Managed Instance.

Titik akhir lokal VNet

Titik akhir VNet lokal adalah cara default untuk menyambungkan ke SQL Managed Instance. Nama domain titik akhir lokal VNet dalam bentuk <mi_name>.<dns_zone>.database.windows.net. Nama domain ini diterjemahkan menjadi alamat IP dari rentang alamat subnet. Gunakan titik akhir VNet-local untuk menyambungkan ke SQL Managed Instance dalam semua skenario konektivitas standar. Titik akhir VNet-local menerima koneksi pada port 1433.

Titik akhir VNet-lokal mendukung jenis koneksi Proksi dan pengalihan.

Saat menyambungkan ke titik akhir VNet-lokal, selalu gunakan nama domainnya dan izinkan lalu lintas masuk pada port yang diperlukan di seluruh rentang subnet, karena alamat IP yang mendasar terkadang dapat berubah.

Untuk menemukan nama domain titik akhir lokal VNet untuk sebuah instans:

  • Portal Microsoft Azure: Pada panel Gambaran Umum setelah Anda memilih instans terkelola SQL Anda, di bagian Esensial , nilai Host memperlihatkan nama domain titik akhir lokal VNet.
  • PowerShell: Get-AzSqlInstance -ResourceGroupName <resource-group> -Name <mi-name> menampilkan nama domain endpoint VNet-lokal sebagai fullyQualifiedDomainName properti.
  • Azure CLI: az sql mi show -g <resource-group> -n <mi-name> menampilkan nama domain titik akhir lokal VNet sebagai fullyQualifiedDomainName properti .

Untuk keamanan yang ditingkatkan, tentukan koneksi terenkripsi, dan jangan percayai sertifikat. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Keamanan.

Titik akhir publik

Titik akhir publik adalah nama domain dalam bentuk <mi_name>.public.<dns_zone>.database.windows.net. Nama domain ini mengarah ke alamat IP publik yang dapat dijangkau dari internet. Titik akhir publik cocok untuk skenario ketika instans terkelola SQL perlu diakses melalui internet publik. Misalnya, saat menghubungkannya dari jaringan virtual lain di mana peering atau titik akhir privat tidak tersedia. Titik akhir publik hanya membawa lalu lintas klien dan tidak dapat digunakan untuk replikasi data antara dua instans, seperti grup failover atau tautan Instans Terkelola. Titik akhir publik menerima koneksi pada port 3342.

Titik akhir publik selalu menggunakan jenis koneksi Proksi terlepas dari pengaturan jenis koneksi.

Nama domain titik akhir publik instans sama dengan nama titik akhir VNet-lokalnya dengan label public yang disisipkan antara nama host dan domain lainnya: <mi-name>.public.<dns-zone>.database.windows.net.

Saat menyambungkan ke titik akhir publik, selalu gunakan nama domainnya dan izinkan lalu lintas masuk pada port 3342 di seluruh rentang subnet, karena alamat IP yang mendasar terkadang dapat berubah.

Pelajari cara menyiapkan titik akhir publik di Mengonfigurasi titik akhir publik untuk Azure SQL Managed Instance.

Titik Akhir Pribadi

Titik akhir privat adalah alamat IP tetap opsional di jaringan virtual lain yang melakukan lalu lintas ke instans terkelola SQL Anda. Satu Azure SQL Managed Instance dapat memiliki beberapa titik akhir privat di beberapa jaringan virtual. Titik akhir privat hanya membawa lalu lintas klien dan tidak dapat digunakan untuk replikasi data antara dua instans, seperti grup failover atau tautan Instans Terkelola. Titik akhir privat menerima koneksi pada port 1433.

Titik akhir privat selalu menggunakan jenis koneksi Proksi terlepas dari pengaturan jenis koneksi.

Nama domain endpoint privat dari instance sama dengan nama domain lokal VNet-nya kecuali endpoint tersebut telah dikonfigurasi secara berbeda. Ini adalah kasus ketika titik akhir privat dan titik akhir VNet-lokal berada di jaringan virtual yang sama. Untuk informasi selengkapnya, lihat Menyiapkan resolusi nama domain untuk titik akhir privat.

Saat menyambungkan ke titik akhir privat, selalu gunakan nama domain karena menyambungkan ke Azure SQL Managed Instance melalui alamat IP-nya belum didukung. Namun, alamat IP titik akhir privat tidak berubah.

Pelajari selengkapnya tentang titik akhir privat dan cara mengonfigurasinya di Azure Private Link untuk Azure SQL Managed Instance.

Arsitektur konektivitas kelompok virtual

Diagram berikut menunjukkan tata letak konseptual arsitektur kluster Virtual:

Diagram yang menunjukkan arsitektur konektivitas kluster virtual untuk Azure SQL Managed Instance.

Nama domain dari titik akhir VNet-local diarahkan ke alamat IP privat dari load balancer internal. Meskipun nama domain ini terdaftar di zona Sistem Nama Domain (DNS) publik dan dapat diselesaikan secara publik, alamat IP-nya termasuk dalam rentang alamat subnet dan hanya dapat dijangkau dari dalam jaringan virtualnya secara default.

Load balancer mengarahkan lalu lintas ke gateway SQL Managed Instance. Karena beberapa instans terkelola SQL dapat berjalan di dalam kluster yang sama, gateway menggunakan nama host SQL Managed Instance seperti yang terlihat dalam string koneksi untuk mengalihkan lalu lintas ke layanan mesin SQL yang benar.

Nilai untuk dns-zone dibuat secara otomatis saat Anda membuat kluster. Jika kluster yang baru dibuat menghosting instans terkelola SQL sekunder, kluster tersebut berbagi ID zonanya dengan kluster utama.

Persyaratan jaringan

Azure SQL Managed Instance memerlukan beberapa aspek dari subnet yang didelegasikan untuk dikonfigurasi dengan cara tertentu, yang dapat Anda capai dengan menggunakan konfigurasi subnet yang didukung layanan. Di luar apa yang diperlukan layanan, pengguna memiliki kontrol penuh atas konfigurasi jaringan subnet mereka, seperti:

  • Mengizinkan atau memblokir lalu lintas pada beberapa atau semua port.
  • Menambahkan entri ke tabel rute untuk merutekan lalu lintas melalui perangkat jaringan virtual atau gateway.
  • Mengonfigurasi resolusi DNS kustom.
  • Menyiapkan peering atau VPN.

Untuk memenuhi kriteria Konfigurasi Jaringan yang Sesuai dalam Perjanjian Tingkat Layanan untuk Layanan Online Microsoft, jaringan virtual dan subnet tempat SQL Managed Instance disebarkan harus memenuhi persyaratan berikut:

  • Subnet khusus: Subnet yang digunakan SQL Managed Instance hanya dapat didelegasikan ke layanan SQL Managed Instance. Subnet tidak dapat menjadi subnet gateway, dan Anda hanya dapat menyebarkan sumber daya SQL Managed Instance di subnet.
  • Delegasi dari subnet: Subnet pada SQL Managed Instance harus didelegasikan kepada Microsoft.Sql/managedInstances penyedia sumber daya.
  • Grup keamanan jaringan: Grup keamanan jaringan harus dikaitkan dengan subnet SQL Managed Instance. Anda dapat menggunakan grup keamanan jaringan untuk mengontrol akses ke titik akhir data SQL Managed Instance dengan memfilter lalu lintas masuk pada port 1433. Layanan ini secara otomatis menyediakan aturan dan menjaganya tetap terkini sesuai kebutuhan untuk memungkinkan arus lalu lintas manajemen yang tidak terganggu.
  • Tabel rute: Tabel rute harus dikaitkan dengan subnet SQL Managed Instance. Anda dapat menambahkan entri ke tabel rute ini, misalnya untuk merutekan lalu lintas ke lokal melalui gateway jaringan virtual, atau untuk menambahkan rute default 0.0.0.0/0 yang mengarahkan semua lalu lintas melalui appliance jaringan virtual seperti firewall. Azure SQL Managed Instance secara otomatis menyediakan dan mengelola entri yang diperlukan dalam tabel rute.
  • Alamat IP yang memadai: Subnet SQL Managed Instance harus memiliki setidaknya 32 alamat IP. Untuk mengetahui informasi selengkapnya, lihat Menentukan ukuran subnet untuk SQL Managed Instance. Anda dapat menyebarkan instans terkelola SQL dalam jaringan yang ada setelah mengonfigurasinya untuk memenuhi persyaratan jaringan untuk SQL Managed Instance. Jika tidak, buat jaringan dan subnet baru.
  • Diizinkan oleh kebijakan Azure: Jika Anda menggunakan Azure Policy untuk mencegah pembuatan atau modifikasi sumber daya dalam cakupan yang menyertakan subnet SQL Managed Instance atau jaringan virtual, kebijakan Anda tidak boleh mencegah SQL Managed Instance mengelola sumber daya internalnya. Sumber daya berikut perlu dikecualikan dari efek penolakan kebijakan untuk operasi normal:
    • Sumber daya jenis Microsoft.Network/serviceEndpointPolicies, ketika nama sumber daya dimulai dengan \_e41f87a2\_
    • Semua sumber daya jenis Microsoft.Network/networkIntentPolicies
    • Semua sumber daya jenis Microsoft.Network/virtualNetworks/subnets/contextualServiceEndpointPolicies
  • Kunci pada jaringan virtual: Kunci pada jaringan virtual subnet khusus, grup sumber daya induknya, atau langganan terkadang mungkin mengganggu manajemen dan operasi pemeliharaan SQL Managed Instance. Berhati-hatilah saat Anda menggunakan kunci sumber daya.
  • catatan DNS publik yang dapat diselesaikan: Jika jaringan virtual dikonfigurasi untuk menggunakan server DNS kustom, server DNS harus dapat menyelesaikan catatan DNS publik. Menggunakan fitur seperti autentikasi Microsoft Entra mungkin memerlukan penyelesaian nama domain yang lebih memenuhi syarat (FQDN). Untuk informasi selengkapnya, lihat Mengatasi nama DNS privat di Azure SQL Managed Instance.
  • Catatan DNS yang diperlukan: Instans terkelola SQL bergantung pada penyelesaian nama domain tertentu dengan benar. Nama domain tersebut tidak boleh digantikan dalam jaringan virtual mereka, baik melalui zona privat Azure DNS maupun oleh server DNS kustom. Jika tidak, instans terkelola SQL akan gagal disebarkan atau mungkin menjadi tidak tersedia. Domain berikut tidak boleh diganti: windows.net, database.windows.net, core.windows.net, blob.core.windows.net, table.core.windows.net, management.core.windows.net, monitoring.core.windows.net, queue.core.windows.net, graph.windows.net, login.microsoftonline.com, login.windows.net, servicebus.windows.net, dan vault.azure.net. Anda masih dapat membuat titik akhir privat di jaringan virtual dari instans terkelola SQL, bahkan ke sumber daya di domain yang disebutkan di atas. Titik akhir privat menggunakan mekanisme DNS yang tidak mengharuskan server DNS lokal menjadi otoritatif untuk seluruh zona.
  • Tag AzurePlatformDNS: Menggunakan tag layanan AzurePlatformDNS untuk memblokir resolusi DNS platform mungkin membuat SQL Managed Instance tidak tersedia. Meskipun SQL Managed Instance mendukung DNS yang ditentukan pelanggan untuk resolusi DNS di dalam mesin, ada dependensi pada Azure DNS untuk operasi platform.

Konfigurasi subnet berbantuan layanan

Untuk meningkatkan keamanan layanan, pengelolaan, dan ketersediaan, SQL Managed Instance menggunakan konfigurasi subnet yang dibantu layanan dan kebijakan niat jaringan pada infrastruktur jaringan virtual Azure untuk mengonfigurasi jaringan, komponen terkait, dan tabel rute untuk memastikan bahwa persyaratan minimum untuk SQL Managed Instance terpenuhi.

Aturan keamanan jaringan dan tabel rute yang dikonfigurasi secara otomatis terlihat oleh pelanggan dan dianotasikan dengan salah satu awalan ini:

  • Microsoft.Sql-managedInstances_UseOnly_mi- untuk aturan dan rute wajib
  • Microsoft.Sql-managedInstances_UseOnly_mi-optional- untuk aturan dan rute opsional

Untuk informasi tambahan, lihat Konfigurasi subnet berbantu layanan.

Untuk informasi selengkapnya tentang arsitektur konektivitas dan lalu lintas manajemen, lihat Arsitektur konektivitas tingkat tinggi.

Batasan jaringan

Batasan berikut pada fitur jaringan virtual dan lalu lintas berlaku:

  • Subnet privat: Instans terkelola SQL dapat beroperasi di subnet privat. Namun, penyebaran ke subnet privat diperkirakan gagal di wilayah berikut: Qatar Tengah, Israel Tengah, Israel Barat Laut, UAE Tengah, dan UAE Utara. Untuk menyebarkan instans terkelola SQL di salah satu wilayah ini, aktifkan akses keluar default untuk subnet, sebarkan instans, lalu ubah subnet menjadi kembali ke privat (nonaktifkan akses keluar default). Untuk informasi tentang cara mengonfigurasi subnet privat, lihat Akses keluar default di Azure.
  • Enkripsi VNet: Menyebarkan dan mengoperasikan instans terkelola SQL di jaringan virtual tempat enkripsi Azure Virtual Network diaktifkan saat ini tidak didukung.
  • Email database ke relai SMTP eksternal pada port 25: Mengirim email database melalui port 25 ke layanan email eksternal hanya tersedia untuk jenis langganan tertentu di Microsoft Azure. Instans pada jenis langganan lain harus menggunakan port yang berbeda (misalnya, 587) untuk menghubungi relai SMTP eksternal. Jika tidak, instans mungkin gagal mengirim email database. Untuk informasi lebih lanjut, lihat Memecahkan masalah konektivitas SMTP keluar di Azure.
  • Peering Microsoft: Mengaktifkan peering Microsoft di sirkuit ExpressRoute yang dipeering secara langsung atau transitif dengan jaringan virtual tempat SQL Managed Instance berada mempengaruhi pengaliran lalu lintas antara komponen SQL Managed Instance di dalam jaringan virtual dan layanan yang menjadi dependensi. Masalah ketersediaan menghasilkan dampak. Penyebaran SQL Managed Instance ke jaringan virtual yang sudah mengaktifkan peering Microsoft diharapkan gagal.
  • Peering jaringan virtual global: Konektivitas peering jaringan virtual di seluruh wilayah Azure tidak berfungsi untuk instans terkelola SQL yang ditempatkan di subnet yang dibuat sebelum 9 September 2020.
  • Peering jaringan virtual – konfigurasi: Saat membuat peering jaringan virtual antara jaringan virtual yang berisi subnet dengan instans terkelola SQL, subnet tersebut harus menggunakan tabel rute dan grup keamanan jaringan (NSG) yang berbeda. Menggunakan kembali tabel rute dan NSG dalam dua subnet atau lebih yang berpartisipasi dalam peering jaringan virtual akan menyebabkan masalah konektivitas di semua subnet menggunakan tabel rute atau NSG tersebut, dan menyebabkan operasi manajemen SQL Managed Instance gagal.
  • Gateway NAT: Menggunakan NAT Azure Virtual Network untuk mengontrol konektivitas keluar dengan alamat IP publik tertentu saat ini tidak didukung.
  • IPv6 untuk Azure Virtual Network: Menyebarkan SQL Managed Instance ke jaringan virtual IPv4/IPv6 tumpukan ganda diperkirakan akan gagal. Mengaitkan grup keamanan jaringan atau tabel rute dengan rute yang ditentukan pengguna (UDR) yang berisi prefiks alamat IPv6 ke subnet SQL Managed Instance membuat SQL Managed Instance tidak tersedia. Selain itu, menambahkan prefiks alamat IPv6 ke grup keamanan jaringan atau UDR yang sudah terkait dengan subnet instans terkelola SQL membuat SQL Managed Instance tidak tersedia. Penyebaran SQL Managed Instance ke subnet dengan kelompok keamanan jaringan dan UDR yang sudah memiliki prefiks IPv6 diharapkan gagal.
  • TLS 1.2 diberlakukan pada koneksi keluar: Mulai Januari 2020, Microsoft memberlakukan TLS 1.2 untuk lalu lintas intra-layanan di semua layanan Azure. Untuk SQL Managed Instance, ini mengakibatkan TLS 1.2 diberlakukan pada koneksi keluar yang digunakan untuk replikasi dan pada koneksi server tertaut ke SQL Server. Jika Anda menggunakan versi SQL Server yang lebih lama dari 2016 dengan SQL Managed Instance, pastikan Anda menerapkan pembaruan khusus TLS 1.2.
  • Fallback internal ke Azure DNS: Instans terkelola SQL bergantung pada resolusi DNS yang berfungsi di jaringan virtual mereka. Jika jaringan virtual instans terkelola SQL dikonfigurasi untuk menggunakan server DNS kustom dan permintaan DNS yang dikeluarkan ke server DNS kustom gagal diselesaikan dalam interval tertentu (1-2 detik), instans terkelola SQL akan mengulangi permintaan terhadap Azure DNS di jaringan virtual tersebut.