Arsitektur konektivitas untuk Azure SQL Managed Instance
Berlaku untuk:Azure SQL Managed Instance
Artikel ini menjelaskan arsitektur konektivitas di Azure SQL Managed Instance dan bagaimana komponen mengarahkan lalu lintas komunikasi untuk instans terkelola.
Gambaran Umum
Di SQL Managed Instance, instans ditempatkan di dalam jaringan virtual Azure dan di dalam subnet yang didedikasikan untuk instans terkelola. 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.
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. Proses komunikasi di bagian bawah diagram mewakili aplikasi dan alat pelanggan yang terhubung ke SQL Managed Instance sebagai sumber data.
SQL Managed Instance adalah penyewa tunggal, platform sebagai penawaran layanan yang beroperasi di dua bidang: sarana data dan sarana kontrol.
Bidang data disebarkan di dalam subnet pelanggan untuk 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 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.
Titik akhir VNet-lokal
Titik akhir VNet lokal adalah cara default untuk menyambungkan ke SQL Managed Instance. Ini adalah nama domain dalam bentuk <mi_name>.<dns_zone>.database.windows.net
. Nama domain ini diterjemahkan menjadi alamat IP dari rentang alamat subnet. Titik akhir VNet-lokal dapat digunakan untuk menyambungkan ke SQL Managed Instance dalam semua skenario konektivitas standar. Port titik akhir lokal VNet adalah 1433.
Endpoint lokal VNet mendukung tipe koneksi proksi dan pengalihan.
Saat menyambungkan ke titik akhir VNet-local, 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.
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 perlu diakses melalui Internet publik, misalnya saat menyambungkannya dari jaringan virtual yang berbeda saat 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 Managed Instance Link. Port titik akhir publik adalah 3342.
Titik akhir publik selalu menggunakan jenis koneksi proksi terlepas dari pengaturan jenis koneksi.
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 Privat
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 Managed Instance Link. Titik akhir privat memiliki port 1143.
Titik akhir privat selalu menggunakan jenis koneksi proksi terlepas dari pengaturan jenis koneksi.
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 kluster virtual
Diagram berikut menunjukkan tata letak konseptual arsitektur kluster virtual:
Nama domain titik akhir VNet-local diselesaikan 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 dapat berjalan di dalam kluster yang sama, gateway menggunakan nama host SQL Managed Instance seperti yang terlihat di 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 sekunder, kluster tersebut akan membagikan ID zonanya dengan kluster utama.
Persyaratan jaringan
Azure SQL Managed Instance memerlukan aspek subnet yang didelegasikan untuk dikonfigurasi dengan cara tertentu, yang dapat Anda capai dengan menggunakan konfigurasi subnet yang dibantu 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 appliance jaringan virtual atau gateway
- Mengonfigurasi resolusi DNS kustom, atau
- 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 subnet: Subnet SQL Managed Instance harus didelegasikan ke
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 pada port 1433 dan port 11000-11999 saat SQL Managed Instance dikonfigurasi untuk koneksi pengalihan. 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 di 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
- Sumber daya jenis
- Kunci pada jaringan virtual: Kunci pada jaringan virtual subnet khusus, grup sumber daya induknya, atau langganan, kadang-kadang mungkin mengganggu manajemen SQL Managed Instance dan operasi pemeliharaan. 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 bergantung pada nama domain tertentu yang dapat diresolusikan 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 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
, danvault.azure.net
. Namun, perhatikan bahwa Anda masih dapat membuat titik akhir privat di dalam jaringan virtual instans terkelola, bahkan ke sumber daya di domain 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 yang dibantu 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 detail tambahan, tinjau konfigurasi subnet yang dibantu 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: Menyebarkan instans terkelola di subnet privat (di mana akses keluar default dinonaktifkan) 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 mengirimkan email database. Untuk informasi lebih lanjut, lihat Memecahkan masalah konektivitas SMTP keluar di Azure.
- Peering Microsoft: Mengaktifkan peering Microsoft di sirkuit ExpressRoute yang di-peering secara langsung atau transitif dengan jaringan virtual tempat SQL Managed Instance berada memengaruhi arus lalu lintas antara komponen SQL Managed Instance di dalam jaringan virtual dan layanan yang bergantung padanya. Hasil masalah ketersediaan. 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 SQL Managed Instance 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 SQL Managed Instances, 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 membuat SQL Managed Instance tidak tersedia. Layanan SQL Managed Instance saat ini terbatas pada penggunaan load balancer dasar, yang tidak memberikan koeksistensi alur masuk dan keluar dengan NAT Azure Virtual Network.
- 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 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 bergantung pada resolusi DNS yang berfungsi di jaringan virtual mereka. Jika jaringan virtual instans terkelola dikonfigurasi untuk menggunakan server DNS kustom
dan permintaan DNS yang dikeluarkan untuk server DNS kustom gagal diselesaikan dalam interval tertentu (1-2 detik), instans terkelola akan mengulangi permintaan terhadap Azure DNS di jaringan virtual tersebut.
Konten terkait
- Untuk gambaran umum, lihat Apa itu Azure SQL Managed Instance?
- Untuk mempelajari selengkapnya, lihat
- Arsitektur kluster virtual
- Konfigurasi subnet yang dibantu layanan
- Siapkan jaringan virtual Azure baru atau jaringan virtual Azure yang sudah ada tempat Anda dapat menyebarkan SQL Managed Instance.
- Hitung ukuran subnet tempat Anda ingin menyebarkan SQL Managed Instance.
- Pelajari cara membuat instans terkelola:
- Dari portal Microsoft Azure.
- Dengan menggunakan PowerShell.
- Dengan menggunakan Templat Azure Resource Manager.
- Dengan menggunakan templat Azure Resource Manager dengan jumpbox dan SQL Server Management Studio.