Pertimbangan Jaringan untuk Lingkungan App Service

Penting

Artikel ini tentang Lingkungan Azure App Service v2 yang digunakan dengan paket Azure App Service Terisolasi. App Service Environment v2 akan dihentikan pada 31 Agustus 2024. Terdapat versi baru Lingkungan App Service yang lebih mudah digunakan dan berjalan di infrastruktur yang lebih kuat. Untuk mempelajari selengkapnya tentang versi baru, mulai dengan Pengantar Lingkungan App Service. Jika saat ini Anda menggunakan Lingkungan App Service v2, ikuti langkah-langkah dalam artikel ini untuk bermigrasi ke versi baru.

Mulai 29 Januari 2024, Anda tidak dapat lagi membuat sumber daya App Service Environment v2 baru menggunakan salah satu metode yang tersedia termasuk templat ARM/Bicep, Portal Microsoft Azure, Azure CLI, atau REST API. Anda harus bermigrasi ke App Service Environment v3 sebelum 31 Agustus 2024 untuk mencegah penghapusan sumber daya dan kehilangan data.

Lingkungan App Service adalah penyebaran Azure App Service ke dalam subnet di jaringan virtual Azure Anda. Ada dua jenis penyebaran untuk Lingkungan App Service:

Catatan

Artikel ini membahas tentang Lingkungan App Service v2, yang digunakan dengan paket App Service terisolasi.

Terlepas dari jenis penyebarannya, semua Lingkungan App Service memiliki IP virtual publik (VIP). VIP ini digunakan untuk lalu lintas manajemen masuk, dan sebagai alamat saat Anda melakukan panggilan dari Lingkungan App Service ke internet. Panggilan tersebut meninggalkan jaringan virtual melalui VIP yang ditetapkan untuk Lingkungan App Service.

Jika aplikasi melakukan panggilan ke sumber daya di jaringan virtual Anda atau melalui VPN, IP sumber adalah salah satu IP di subnet. Karena Lingkungan App Service berada dalam jaringan virtual, Lingkungan App Service juga dapat mengakses sumber daya dalam jaringan virtual tanpa konfigurasi tambahan apa pun. Jika jaringan virtual tersambung ke jaringan lokal Anda, aplikasi juga memiliki akses ke sumber daya di sana tanpa konfigurasi tambahan.

Diagram that shows the elements of an external deployment. 

Jika Anda memiliki Lingkungan App Service dengan penyebaran eksternal, VIP publik juga merupakan titik akhir yang diselesaikan aplikasi Anda untuk hal berikut:

  • HTTP/S
  • FTP/S
  • Penyebaran web
  • Debug jarak jauh

Diagram that shows the elements of an internal load balancer deployment.

Jika Anda memiliki Lingkungan App Service dengan penyebaran load balancer internal, alamat dari alamat internal adalah titik akhir untuk HTTP/S, FTP/S, penyebaran web, dan penelusuran kesalahan jarak jauh.

Ukuran subnet

Setelah Lingkungan App Service disebarkan, Anda tidak dapat mengubah ukuran subnet yang digunakan untuk menghostingnya. Lingkungan App Service menggunakan alamat untuk setiap peran infrastruktur, serta untuk setiap instans paket App Service terisolasi. Selain itu, jaringan Azure menggunakan lima alamat untuk setiap subnet yang dibuat.

Lingkungan App Service tanpa paket App Service sama sekali akan menggunakan 12 alamat sebelum Anda membuat aplikasi. Jika Anda menggunakan penyebaran load balancer internal, itu akan menggunakan 13 alamat sebelum Anda membuat aplikasi. Saat Anda meluaskan skalanya, ketahuilah bahwa peran infrastruktur ditambahkan di setiap kelipatan 15 dan 20 instans paket App Service Anda.

Penting

Tidak ada lagi yang bisa ada di subnet selain Lingkungan App Service. Pastikan untuk memilih ruang alamat yang memungkinkan pertumbuhan di masa depan. Anda tidak dapat mengubah setelan ini nanti. Kami menyarankan ukuran /24 dengan 256 alamat.

Saat Anda meningkatkan atau menurunkan skalanya, peran baru dengan ukuran yang sesuai ditambahkan, lalu beban kerja Anda dimigrasikan dari ukuran saat ini ke ukuran target. VM asli dihapus hanya setelah beban kerja dimigrasikan. Misalnya, jika Anda memiliki Lingkungan App Service dengan 100 instans paket App Service, ada periode waktu saat Anda perlu menggandakan jumlah VM.

Dependensi masuk dan keluar

Bagian berikut mencakup dependensi yang harus diperhatikan untuk Lingkungan App Service Anda. Bagian lain membahas pengaturan DNS.

Dependensi masuk

Agar Lingkungan App Service beroperasi, port berikut harus terbuka:

Menggunakan Dari Untuk
Manajemen Alamat manajemen Azure App Service Subnet Lingkungan App Service: 454, 455
Komunikasi internal Lingkungan App Service Subnet Lingkungan App Service: Semua port Subnet Lingkungan App Service: Semua port
Izinkan penyeimbang beban Azure masuk Penyeimbang beban Azure Subnet Lingkungan App Service: 16001

Port 7564 dan 1221 dapat ditampilkan sebagai terbuka pada pemindaian port. Port tersebut membalas dengan alamat IP, dan tidak lebih. Anda dapat memblokirnya jika Anda ingin.

Lalu lintas manajemen masuk memberikan perintah dan kontrol Lingkungan App Service, selain pemantauan sistem. Alamat sumber untuk lalu lintas ini tercantum di alamat manajemen Lingkungan App Service. Konfigurasi keamanan jaringan perlu mengizinkan akses dari alamat manajemen Lingkungan App Service pada port 454 dan 455. Jika Anda memblokir akses dari alamat tersebut, Lingkungan App Service Anda akan menjadi tidak sehat dan kemudian ditangguhkan. Lalu lintas TCP yang masuk pada port 454 dan 455 harus keluar dari VIP yang sama, atau Anda akan mengalami masalah perutean asimetris.

Di dalam subnet, ada banyak port yang digunakan untuk komunikasi komponen internal, dan port tersebut dapat berubah. Ini mengharuskan semua port di subnet dapat diakses dari subnet.

Untuk komunikasi antara load balancer Azure dan subnet Lingkungan App Service, port minimum yang perlu dibuka adalah 454, 455, dan 16001. Jika Anda menggunakan penyebaran load balancer internal, Anda dapat mengunci lalu lintas ke port 454, 455, 16001 saja. Jika Anda menggunakan penyebaran eksternal, Anda perlu mempertimbangkan port akses aplikasi normal. Secara khusus, ini adalah:

Menggunakan Port
HTTP/HTTPS 80, 443
FTP/FTPS 21, 990, 10001-10020
Debug Visual Studio 4020, 4022, 4024
Layanan penyebaran web 8172

Jika Anda memblokir port aplikasi, Lingkungan App Service Anda masih dapat berfungsi, tetapi aplikasi Anda mungkin tidak. Jika Anda menggunakan alamat IP yang ditetapkan aplikasi dengan penyebaran eksternal, Anda harus mengizinkan lalu lintas dari IP yang ditetapkan ke aplikasi Anda ke subnet. Dari portal Lingkungan App Service, buka alamat IP, dan lihat port yang Anda perlukan untuk mengizinkan lalu lintas.

Dependensi keluar

Untuk akses keluar, Lingkungan App Service bergantung pada beberapa sistem eksternal. Banyak dari dependensi sistem tersebut ditentukan dengan nama DNS, dan tidak dipetakan ke kumpulan alamat IP yang tetap. Dengan demikian, Lingkungan App Service memerlukan akses keluar dari subnet ke semua IP eksternal, di berbagai port.

Lingkungan App Service berkomunikasi ke alamat yang dapat diakses internet di port berikut:

Menggunakan Port
DNS 53
NTP 123
CRL, pembaruan Windows, dependensi Linux, layanan Azure 80/443
Azure SQL 1433
Pemantauan 12000

Dependensi keluar tercantum dalam Mengunci Lingkungan App Service. Jika Lingkungan App Service kehilangan akses ke dependensinya, Lingkungan App Service akan berhenti bekerja. Ketika itu terjadi untuk jangka waktu yang cukup lama, itu ditangguhkan.

DNS Pelanggan

Jika jaringan virtual dikonfigurasi dengan server DNS yang ditentukan pelanggan, beban kerja penyewa menggunakannya. Lingkungan App Service menggunakan Azure DNS untuk tujuan manajemen. Jika jaringan virtual dikonfigurasi dengan server DNS yang dipilih pelanggan, server DNS harus dapat dijangkau dari subnet.

Catatan

Pemasangan Storage atau penarikan gambar kontainer di Lingkungan App Service v2 tidak dapat menggunakan DNS yang ditentukan pelanggan di jaringan virtual, atau melalui pengaturan aplikasi WEBSITE_DNS_SERVER.

Untuk menguji resolusi DNS dari aplikasi web, Anda dapat menggunakan perintah konsol nameresolver. Buka jendela debug di situs scm untuk aplikasi Anda, atau buka aplikasi di portal dan pilih konsol. Dari prompt shell, Anda dapat mengeluarkan perintah nameresolver, beserta nama DNS yang ingin Anda cari. Hasil yang Anda dapatkan kembali sama dengan apa yang akan didapat aplikasi Anda saat melakukan pencarian yang sama. Jika Anda menggunakan nslookup, lakukan pencarian dengan menggunakan Azure DNS sebagai gantinya.

Jika Anda mengubah pengaturan DNS jaringan virtual tempat Lingkungan App Service Anda berada, Anda harus melakukan boot ulang. Untuk menghindari boot ulang, ada baiknya untuk mengonfigurasi pengaturan DNS untuk jaringan virtual Anda sebelum Anda membuat Lingkungan App Service.

Ketergantungan portal

Selain dependensi yang dijelaskan di bagian sebelumnya, ada beberapa pertimbangan tambahan yang harus Anda ketahui terkait dengan pengalaman portal. Beberapa kemampuan di portal Azure bergantung pada akses langsung ke situs manajer kontrol sumber (SCM). Untuk setiap aplikasi di Azure App Service, ada dua URL. URL pertama adalah untuk mengakses aplikasi Anda. URL kedua adalah untuk mengakses situs SCM, yang juga disebut konsol Kudu. Fitur yang menggunakan situs SCM antara lain:

  • Pekerjaan web
  • Fungsi
  • Log streaming
  • Kudu
  • Ekstensi
  • Penjelajah Proses
  • Konsol

Saat Anda menggunakan load balancer internal, situs SCM tidak dapat diakses dari luar jaringan virtual. Beberapa kemampuan tidak berfungsi dari portal aplikasi karena memerlukan akses ke situs SCM aplikasi. Anda dapat tersambung ke situs SCM secara langsung, bukan dengan menggunakan portal.

Jika load balancer internal Anda adalah nama domain contoso.appserviceenvironment.net, dan nama aplikasi Anda adalah testapp, aplikasi tersebut dicapai di testapp.contoso.appserviceenvironment.net. Situs SCM yang menyertainya dicapai di testapp.scm.contoso.appserviceenvironment.net.

Alamat IP

Lingkungan App Service memiliki beberapa alamat IP yang harus diperhatikan. Yaitu:

  • Alamat IP masuk publik: Digunakan untuk lalu lintas aplikasi dalam penyebaran eksternal, dan lalu lintas manajemen dalam penyebaran internal dan eksternal.
  • IP publik keluar: Digunakan sebagai IP "dari" untuk koneksi keluar yang keluar dari jaringan virtual. Koneksi ini tidak dirutekan ke VPN.
  • Alamat IP load balancer internal: Alamat ini hanya ada di penyebaran internal.
  • Alamat TLS/SSL berbasis IP yang ditetapkan oleh aplikasi: Alamat ini hanya dimungkinkan dengan penyebaran eksternal, dan saat pengikatan TLS/SSL berbasis IP dikonfigurasi.

Semua alamat IP ini terlihat di portal Azure dari antarmuka pengguna Lingkungan App Service. Jika Anda memiliki penyebaran internal, IP untuk load balancer internal akan dicantumkan.

Catatan

Alamat IP ini tidak berubah, selama Lingkungan App Service Anda berjalan. Jika Lingkungan App Service Anda ditangguhkan lalu dipulihkan, alamat yang digunakan akan berubah. Penyebab normal penangguhan adalah jika Anda memblokir akses manajemen masuk, atau Anda memblokir akses ke dependensi.

Alamat IP yang ditetapkan oleh aplikasi

Dengan penyebaran eksternal, Anda dapat menetapkan alamat IP ke masing-masing aplikasi. Anda tidak dapat melakukannya dengan penyebaran internal. Untuk informasi selengkapnya tentang cara mengonfigurasi aplikasi Anda agar memiliki alamat IP sendiri, lihat Mengamankan nama DNS khusus dengan pengikatan TLS/SSL di Azure App Service.

Saat aplikasi memiliki alamat SSL berbasis IP sendiri, Lingkungan App Service mencadangkan dua port untuk dipetakan ke alamat IP tersebut. Satu port untuk lalu lintas HTTP, dan port lainnya untuk HTTPS. Port tersebut tercantum di bagian alamat IP portal Lingkungan App Service Anda. Lalu lintas harus dapat mencapai port tersebut dari VIP. Jika tidak, aplikasi tidak dapat diakses. Persyaratan ini penting untuk diingat saat Anda mengonfigurasi kelompok keamanan jaringan (NSG).

Grup keamanan jaringan

NSG memberikan kemampuan untuk mengontrol akses jaringan dalam jaringan virtual. Saat Anda menggunakan portal, ada aturan penolakan implisit pada prioritas terendah untuk menolak semuanya. Apa yang Anda buat adalah aturan izin Anda.

Anda tidak memiliki akses ke VM yang digunakan untuk menghosting Lingkungan App Service itu sendiri. VM tersebut berada dalam langganan yang dikelola Microsoft. Jika Anda ingin membatasi akses ke aplikasi, atur NSG di subnet. Dalam melakukannya, perhatikan baik-baik dependensinya. Jika Anda memblokir dependensi apa pun, Lingkungan App Service akan berhenti bekerja.

Anda dapat mengonfigurasi NSG melalui portal Azure atau melalui PowerShell. Informasi di sini menunjukkan portal Microsoft Azure. Anda membuat dan mengelola NSG di portal sebagai sumber daya tingkat atas di bawah Jaringan.

Entri yang diperlukan dalam NSG adalah untuk mengizinkan lalu lintas:

Masuk

  • TCP dari tag layanan IP AppServiceManagement pada port 454, 455
  • TCP dari penyeimbang beban pada port 16001
  • Dari subnet Lingkungan App Service ke subnet Lingkungan App Service di semua port

Keluar

  • UDP ke semua IP pada port 53
  • UDP ke semua IP pada port 123
  • TCP ke semua IP pada port 80, 443
  • TCP ke tag layanan IP Sql pada port 1433
  • TCP ke semua IP pada port 12000
  • Ke subnet Lingkungan App Service di semua port

Port ini tidak menyertakan port yang diperlukan aplikasi Anda agar berhasil digunakan. Misalnya, aplikasi Anda perlu memanggil server MySQL pada port 3306. Network Time Protocol (NTP) pada port 123 adalah protokol sinkronisasi waktu yang digunakan oleh sistem operasi. Titik akhir NTP tidak spesifik untuk App Service, dapat bervariasi menurut sistem operasi, dan tidak ada dalam daftar alamat yang ditentukan dengan baik. Untuk mencegah masalah sinkronisasi waktu, Anda harus mengizinkan lalu lintas UDP ke semua alamat di port 123. TCP keluar ke port 12000 lalu lintas adalah untuk dukungan dan analisis sistem. Titik akhir bersifat dinamis, dan tidak dalam kumpulan alamat yang ditentukan dengan baik.

Port akses aplikasi normal adalah:

Menggunakan Port
HTTP/HTTPS 80, 443
FTP/FTPS 21, 990, 10001-10020
Debug Visual Studio 4020, 4022, 4024
Layanan Penyebaran Web 8172

Aturan default memungkinkan IP di jaringan virtual untuk berbicara dengan subnet. Aturan default lainnya memungkinkan load balancer, juga dikenal sebagai VIP publik, untuk berkomunikasi dengan Lingkungan App Service. Untuk melihat aturan default, pilih Aturan default (di samping ikon Tambahkan).

Jika Anda meletakkan aturan tolak yang lainnya sebelum aturan default, Anda mencegah lalu lintas antara VIP dan Lingkungan App Service. Untuk mencegah lalu lintas datang dari dalam jaringan virtual, tambahkan aturan Anda sendiri untuk mengizinkan masuk. Gunakan sumber yang sama dengan AzureLoadBalancer, dengan tujuan Apa saja dan rentang port *. Karena aturan NSG diterapkan ke subnet, Anda tidak perlu menentukan tujuan secara spesifik.

Jika Anda menetapkan alamat IP ke aplikasi Anda, pastikan Anda tetap membuka port. Untuk melihat port, pilih Lingkungan Azure App Service>alamat IP.  

Setelah NSG Anda ditentukan, tetapkan ke subnet. Jika Anda tidak ingat jaringan atau subnet virtual, Anda dapat melihatnya dari portal Lingkungan App Service. Untuk menetapkan NSG ke subnet Anda, buka UI subnet dan pilih NSG.

Rute

Penerowongan paksa adalah saat Anda mengatur rute di jaringan virtual sehingga lalu lintas keluar tidak langsung menuju internet. Sebaliknya, lalu lintas pergi ke tempat lain, seperti gateway Azure ExpressRoute atau alat virtual. Jika Anda perlu mengonfigurasi Lingkungan App Service Anda sedemikian rupa, lihat Mengonfigurasi Lingkungan App Service Anda dengan penerowongan paksa.

Saat Anda membuat Lingkungan App Service di portal, Anda secara otomatis membuat kumpulan tabel rute di subnet. Rute-rute itu hanya mengatakan untuk mengirim lalu lintas keluar langsung ke internet.

Untuk membuat rute yang sama secara manual, ikuti langkah-langkah berikut:

  1. Buka portal Azure, dan pilih Jaringan>Tabel Rute.

  2. Buat tabel rute baru di wilayah yang sama dengan jaringan virtual Anda.

  3. Dari dalam UI tabel rute, pilih Rute>Tambahkan.

  4. Atur Jenis hop berikutnya ke Internet, dan Alamat prefiks ke 0.0.0.0/0. Pilih Simpan.

    Anda kemudian melihat sesuatu seperti berikut:

    Screenshot that shows functional routes.

  5. Setelah Anda membuat tabel rute baru, buka subnet. Pilih tabel rute Anda dari daftar di portal. Setelah Anda menyimpan perubahan, Anda akan melihat NSG dan rute yang dicatat dengan subnet Anda.

    Screenshot that shows NSGs and routes.

Titik akhir layanan

Titik akhir layanan memungkinkan Anda membatasi akses ke layanan multi-penyewa ke sekumpulan jaringan dan subnet virtual Azure. Untuk informasi selengkapnya, lihat Titik akhir layanan Virtual Network.

Saat Anda mengaktifkan titik akhir layanan pada sumber daya, ada rute yang dibuat dengan prioritas lebih tinggi daripada semua rute lainnya. Jika Anda menggunakan titik akhir layanan pada layanan Azure apa pun, dengan Lingkungan App Service yang diterowongkan secara paksa, lalu lintas ke layanan tersebut tidak diterowongkan secara paksa.

Saat titik akhir layanan diaktifkan pada subnet dengan instans Azure SQL, semua instans Azure SQL yang tersambung dari subnet tersebut harus memiliki titik akhir layanan yang diaktifkan. Jika Anda ingin mengakses beberapa instans Azure SQL dari subnet yang sama, Anda tidak dapat mengaktifkan titik akhir layanan di satu instans Azure SQL dan tidak pada yang lain. Tidak ada layanan Azure lain yang berperilaku seperti Azure SQL sehubungan dengan titik akhir layanan. Saat Anda mengaktifkan titik akhir layanan dengan Azure Storage, Anda mengunci akses ke sumber daya tersebut dari subnet Anda. Namun, Anda masih dapat mengakses akun Azure Storage lainnya, meskipun titik akhir layanan tidak diaktifkan.

Diagram that shows service endpoints.