Windows tingkat-N di Azure Stack Hub dengan SQL Server

Arsitektur referensi ini menunjukkan cara menyebarkan mesin virtual (VM) dan jaringan virtual yang dikonfigurasikan untuk aplikasi tingkat N, menggunakan SQL Server di Windows untuk tingkat data.

Arsitektur

Arsitektur memiliki komponen-komponen berikut.

Diagram menunjukkan jaringan virtual yang terdiri dari enam subnet: Application Gateway, Manajemen, Tingkat web, Tingkat bisnis, Tingkat data, dan Direktori Aktif. Subnet Tingkat data menggunakan Cloud Witness. Ada tiga load balancer.

Umum

  • Grup sumber daya. Grup sumber daya digunakan untuk mengelompokkan sumber daya Azure sehingga dapat dikelola berdasarkan masa aktif, pemilik, atau kriteria lainnya.

  • Set Ketersediaan. Set ketersediaan adalah konfigurasi pusat data untuk menyediakan redundansi dan ketersediaan mesin virtual. Konfigurasi ini dalam stempel Azure Stack Hub memastikan bahwa selama peristiwa pemeliharaan yang direncanakan atau tidak direncanakan, setidaknya satu mesin virtual tersedia. Mesin virtual ditempatkan dalam set ketersediaan yang menyebarkannya di beberapa domain kesalahan (host Azure Stack Hub)

Jaringan dan penyeimbangan beban

  • Jaringan virtual dan subnet. Setiap Azure VM disebarkan ke jaringan virtual yang dapat disegmentasi menjadi subnet. Buat subnet terpisah untuk setiap tingkat.

  • Load Balancer Lapisan 7. Karena Application Gateway belum tersedia di Azure Stack Hub, terdapat alternatif yang tersedia di Marketplace Azure Stack Hub seperti: KEMP LoadMaster Load Balancer ADC Content Switch/ f5 Big-IP Virtual Edition atau A10 vThunder ADC

  • Load balancer. Gunakan Azure Load Balancer untuk mendistribusikan lalu lintas jaringan dari tingkat web ke tingkat bisnis, dan dari tingkat bisnis ke SQL Server.

  • Kelompok keamanan jaringan (NSG). Gunakan NSG untuk membatasi lalu lintas jaringan dalam jaringan virtual. Misalnya, dalam arsitektur tiga tingkat yang ditunjukkan di sini, tingkat database tidak menerima lalu lintas dari front end web, hanya dari tingkat bisnis dan subnet manajemen.

  • DNS. Azure Stack Hub tidak menyediakan layanan hosting DNS sendiri, jadi silakan menggunakan server DNS di ADDS Anda.

Komputer virtual

  • Grup Ketersediaan Always On SQL Server. Menyediakan ketersediaan tinggi di tingkat data, dengan mengaktifkan replikasi dan failover. Ini menggunakan teknologi Windows Server Failover Cluster (WSFC) untuk failover.

  • Server Active Directory Domain Services (AD DS). Objek komputer untuk kluster failover dan peran kluster yang terkait dibuat di Active Directory Domain Services (AD DS). Menyiapkan server AD DS di mesin virtual di jaringan virtual yang sama adalah metode yang lebih disukai untuk menggabungkan mesin virtual lainnya ke AD DS. Anda juga dapat menggabungkan mesin virtual ke AD DS Enterprise yang ada dengan menyambungkan jaringan virtual ke jaringan Enterprise menggunakan koneksi VPN. Dengan kedua pendekatan tersebut, Anda perlu mengubah DNS jaringan virtual ke server DNS AD DS Anda (dalam jaringan virtual atau jaringan Enterprise yang ada) untuk mengatasi FQDN domain AD DS.

  • Cloud Witness. Kluster failover membutuhkan lebih dari setengah nodenya untuk dijalankan, yang dikenal memiliki kuorum. Jika kluster hanya memiliki dua node, partisi jaringan dapat menyebabkan setiap node berpikir itu adalah node sarana kontrol. Dalam hal ini, Anda memerlukan saksi untuk memutuskan ikatan dan menetapkan kuorum. Saksi adalah sumber daya seperti disk bersama yang dapat berfungsi sebagai pemutus ikatan untuk menetapkan kuorum. Cloud Witness adalah jenis saksi yang menggunakan Azure Blob Storage. Untuk mempelajari selengkapnya tentang konsep kuorum, lihat Memahami kluster dan kuorum kumpulan. Untuk informasi selengkapnya tentang Cloud Witness, lihat Menyebarkan Cloud Witness untuk Kluster Failover. Di Azure Stack Hub, titik akhir Bukti Cloud berbeda dari Azure global.

Ia mungkin terlihat seperti:

  • Untuk Azure global:
    https://mywitness.blob.core.windows.net/

  • Untuk Azure Stack Hub:
    https://mywitness.blob.<region>.<FQDN>

  • Jumpbox. Juga disebut host bastion. VM aman di jaringan yang digunakan administrator untuk tersambung ke VM lain. Jumpbox memiliki NSG yang memungkinkan lalu lintas jarak jauh khusus dari alamat IP publik pada daftar aman. NSG harus mengizinkan lalu lintas desktop jarak jauh (RDP).

Rekomendasi

Kebutuhan Anda mungkin berbeda dengan arsitektur yang dijelaskan di sini. Gunakan rekomendasi ini sebagai titik awal.

Komputer virtual

Untuk rekomendasi dalam mengonfigurasi mesin virtual, lihat Menjalankan mesin virtual Windows di Azure Stack Hub.

Jaringan virtual

Saat Anda membuat jaringan virtual, tentukan berapa banyak alamat IP yang dibutuhkan sumber daya Anda di setiap subnet. Tentukan subnet mask dan rentang alamat jaringan yang cukup besar untuk alamat IP yang diperlukan, yakni menggunakan notasi CIDR. Gunakan ruang alamat yang termasuk dalam blok alamat IP privat standar, yaitu 10.0.0.0/8, 172.16.0.0/12, dan 192.168.0.0/16.

Jika Anda perlu menyiapkan gateway antara jaringan virtual dan jaringan lokal Anda nanti, pilih rentang alamat yang tidak tumpang tindih dengan jaringan lokal Anda. Setelah membuat jaringan virtual, Anda tidak dapat mengubah rentang alamat.

Desain subnet dengan mempertimbangkan persyaratan fungsionalitas dan keamanan. Semua VM dalam tingkat atau peran yang sama harus masuk ke subnet yang sama, yang dapat menjadi batas keamanan. Untuk informasi selengkapnya tentang mendesain jaringan virtual dan subnet, lihat Merencanakan dan mendesain Azure Virtual Networks.

Load balancer

Jangan ekspos VM langsung ke Internet, melainkan berikan setiap VM alamat IP privat. Klien menyambungkan menggunakan alamat IP publik yang terkait dengan Load Balancer Lapisan 7.

Tentukan aturan penyeimbang beban untuk mengarahkan lalu lintas jaringan ke VM. Misalnya, untuk mengaktifkan lalu lintas HTTP, petakan port 80 dari konfigurasi front-end ke port 80 di kumpulan alamat back-end. Ketika klien mengirimkan permintaan HTTP ke port 80, penyeimbang beban memilih alamat IP back-end dengan menggunakan algoritma hashing yang mencakup alamat IP sumber. Permintaan klien didistribusikan di semua VM di kumpulan alamat back-end.

Kelompok Keamanan Jaringan

Gunakan aturan NSG untuk membatasi lalu lintas antartingkat. Dalam arsitektur tiga tingkat yang ditunjukkan di atas, tingkat web tidak berkomunikasi langsung dengan tingkat database. Untuk menegakkan aturan ini, tingkat database harus memblokir lalu lintas masuk dari subnet tingkat web.

  1. Tolak semua lalu lintas masuk dari jaringan virtual. (Gunakan tag VIRTUAL_NETWORK sesuai aturan.)

  2. Izinkan lalu lintas masuk dari subnet tingkat bisnis.

  3. Izinkan lalu lintas masuk dari subnet tingkat database itu sendiri. Aturan ini memungkinkan komunikasi antara VM database, yang diperlukan untuk replikasi database dan failover.

  4. Izinkan lalu lintas RDP (port 3389) dari subnet jumpbox. Aturan ini memungkinkan administrator tersambung ke tingkat database dari jumpbox.

Buat aturan 2 - 4 dengan prioritas lebih tinggi daripada aturan pertama, sehingga aturan tersebut akan mengambil alih.

Grup Ketersediaan AlwaysOn SQL Server

Kami merekomendasikan Grup Ketersediaan AlwaysOn untuk ketersediaan tinggi SQL Server. Sebelum Windows Server 2016, Grup Ketersediaan Always On memerlukan pengendali domain, dan semua node dalam grup ketersediaan harus berada dalam domain AD yang sama.

Untuk ketersediaan lapisan mesin virtual yang tinggi, semua mesin virtual SQL harus berada dalam Set Ketersediaan.

Tingkat lain tersambung ke database melalui pendengar grup ketersediaan. Pendengar memungkinkan klien SQL tersambung tanpa mengetahui nama instans fisik SQL Server. VM yang mengakses database harus bergabung ke domain. Klien (dalam hal ini, tingkat lain) menggunakan DNS untuk menyelesaikan nama jaringan virtual pendengar ke alamat IP.

Konfigurasikan Grup Ketersediaan AlwaysOn SQL Server sebagai berikut:

  1. Buat kluster Windows Server Failover Clustering (WSFC), Grup Ketersediaan AlwaysOn SQL Server, dan replika utama. Untuk informasi selengkapnya, lihat Memulai dengan Grup Ketersediaan AlwaysOn.

  2. Buat penyeimbang beban internal dengan alamat IP privat statis.

  3. Buat pendengar grup ketersediaan, dan petakan nama DNS pendengar ke alamat IP penyeimbang beban internal.

  4. Buat aturan penyeimbang beban untuk port mendengarkan SQL Server (port TCP 1433 secara default). Aturan penyeimbang beban harus mengaktifkan IP floating, disebut juga Direct Server Return. Hal ini menyebabkan VM membalas langsung ke klien, yang mengaktifkan koneksi langsung ke replika utama.

Catatan

Saat IP floating diaktifkan, nomor port front-end harus sama dengan nomor port back-end dalam aturan penyeimbang beban.

Ketika klien SQL mencoba untuk tersambung, penyeimbang beban merutekan permintaan koneksi ke replika utama. Jika ada failover ke replika lain, penyeimbang beban akan otomatis merutekan permintaan baru ke replika utama baru. Untuk informasi selengkapnya, lihat Mengonfigurasi pendengar ILB untuk Grup Ketersediaan AlwaysOn SQL Server.

Selama failover, koneksi klien yang ada akan ditutup. Setelah failover selesai, koneksi baru akan dirutekan ke replika utama baru.

Jika aplikasi Anda lebih banyak membaca daripada menulis, Anda dapat memindahkan beberapa kueri baca-saja ke replika sekunder. Lihat Menggunakan Pendengar untuk Tersambung ke Replika Sekunder Baca-Saja (Perutean Baca-Saja).

Uji penyebaran Anda dengan menerapkan failover manual dari grup ketersediaan.

Untuk pengoptimalan performa SQL, Anda juga dapat merujuk artikel praktik terbaik server SQL untuk mengoptimalkan performa di Azure Stack Hub.

Jumpbox

Jangan izinkan akses RDP dari internet publik ke mesin virtual yang menjalankan beban kerja aplikasi. Sebaliknya, semua akses RDP ke VM ini harus melalui jumpbox. Administrator masuk ke jumpbox, lalu masuk ke VM lain dari jumpbox. Jumpbox memungkinkan lalu lintas RDP dari internet, tetapi hanya dari alamat IP yang diketahui dan aman.

Jumpbox memiliki persyaratan performa minimal, jadi pilih ukuran VM yang kecil. Buat alamat IP publik untuk jumpbox. Tempatkan jumpbox di jaringan virtual yang sama dengan VM lainnya, tetapi di subnet manajemen terpisah.

Untuk mengamankan jumpbox, tambahkan aturan NSG yang memungkinkan koneksi RDP hanya dari satu set alamat IP publik yang aman. Konfigurasikan NSG untuk subnet lain guna memungkinkan lalu lintas RDP dari subnet manajemen.

Pertimbangan skalabilitas

Kumpulan skala

Untuk tingkat web dan bisnis, sebaiknya gunakan set skala mesin virtual, jangan sebarkan VM terpisah. Set skala memudahkan untuk menyebarkan dan mengelola satu set mesin virtual yang identik. Pertimbangkan set skala jika Anda perlu dengan cepat memperluas skala mesin virtual.

Ada dua cara dasar untuk mengonfigurasi VM yang disebarkan dalam satu set skala:

  • Gunakan ekstensi untuk mengonfigurasi VM setelah disebarkan. Dengan pendekatan ini, instans VM baru mungkin akan dimulai dalam waktu yang lebih lama daripada VM tanpa ekstensi.

  • Sebarkan disk terkelola dengan gambar disk kustom. Opsi ini mungkin lebih cepat untuk disebarkan. Namun, opsi itu mengharuskan Anda untuk terus memperbarui gambar.

Untuk informasi selengkapnya, lihat Pertimbangan desain untuk set skala. Pertimbangan desain ini sebagian besar berlaku untuk Azure Stack Hub, namun ada beberapa peringatan:

  • Set skala mesin virtual di Azure Stack Hub tidak mendukung peningkatan pengguliran atau provisi berlebih.

  • Anda tidak dapat menskalakan set skala mesin virtual secara otomatis di Azure Stack Hub.

  • Sebaiknya gunakan disk Terkelola di Azure Stack Hub alih-alih disk yang tidak dikelola untuk set skala mesin virtual

  • Saat ini, terdapat batas 700 mesin virtual di Azure Stack Hub, yang mencakup semua mesin virtual infrastruktur Azure Stack Hub, mesin virtual individual, dan instans set skala.

Batas langganan

Setiap langganan penyewa Azure Stack Hub memiliki batas default, termasuk jumlah maksimum mesin virtual per wilayah yang dikonfigurasi oleh operator Azure Stack Hub. Untuk informasi selengkapnya, lihat ringkasan layanan, paket, penawaran, langganan Azure Stack Hub. Lihat juga Jenis kuota di Azure Stack Hub.

Pertimbangan keamanan

Jaringan virtual adalah batas isolasi lalu lintas di Azure. Secara default, VM dalam satu jaringan virtual tidak dapat berkomunikasi langsung dengan VM di jaringan virtual yang berbeda.

NSG. Gunakan kelompok keamanan jaringan (NSG) untuk membatasi lalu lintas menuju dan dari internet. Untuk informasi selengkapnya, lihat Keamanan jaringan dan layanan cloud Microsoft.

DMZ. Sebaiknya tambahkan appliance virtual jaringan (NVA) untuk membuat DMZ antara Internet dan jaringan virtual Azure. NVA adalah istilah umum untuk appliance virtual yang dapat melakukan tugas terkait jaringan, seperti firewall, inspeksi paket, audit, dan perutean kustom.

Enkripsi. Enkripsi data sensitif yang tidak aktif dan gunakan Key Vault di Azure Stack Hub untuk mengelola kunci enkripsi database. Untuk informasi selengkapnya, lihat Mengonfigurasi integrasi Azure Key Vault untuk SQL Server di Komputer Virtual Azure (Resource Manager). Sebaiknya simpan juga rahasia aplikasi, seperti string koneksi database, di Key Vault.

Langkah berikutnya