Menggunakan dan mengelola 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.

App Service Environment (ASE) adalah penyebaran Azure App Service ke dalam subnet dalam instans Azure Virtual Network pelanggan. ASE terdiri dari:

  • Ujung depan: Di mana HTTP atau HTTPS berakhir di Lingkungan App Service
  • Pekerja: Sumber daya yang menghosting aplikasi Anda
  • Database: Menyimpan informasi yang mendefinisikan lingkungan
  • Penyimpanan: Digunakan untuk menghosting aplikasi yang diterbitkan pelanggan

Anda dapat menyebarkan ASE dengan IP virtual eksternal atau internal (VIP) untuk akses aplikasi. Penyebaran dengan VIP eksternal umumnya disebut ASE Eksternal. Penyebaran dengan VIP internal disebut ILB ASE karena menggunakan load balancer (ILB) internal. Untuk mempelajari selengkapnya tentang ILB ASE, lihat Membuat dan menggunakan ILB ASE.

Membuat aplikasi di ASE

Untuk membuat aplikasi di ASE, Anda menggunakan proses yang sama seperti saat biasanya membuat aplikasi, tetapi dengan beberapa perbedaan kecil. Saat Anda membuat paket App Service baru:

  • Untuk menyebarkan aplikasi, sebaiknya pilih ASE sebagai lokasi Anda, bukan lokasi geografis.
  • Semua paket App Service yang dibuat di ASE hanya dapat berada dalam tingkat harga Terisolasi.

Jika Anda tidak memiliki ASE, Anda dapat membuatnya dengan mengikuti instruksi di Membuat Lingkungan App Service.

Untuk membuat aplikasi di ASE:

  1. Pilih Buat sumber daya>Web + Ponsel>Aplikasi Web.

  2. Masukkan nama untuk aplikasi. Jika Anda sudah memilih paket App Service di ASE, nama domain untuk aplikasi menunjukkan nama domain ASE:

    App name selection

  3. Pilih Langganan.

  4. Masukkan nama untuk grup sumber daya baru, atau pilih Gunakan yang sudah ada dan pilih salah satu dari daftar menurun.

  5. Pilih OS Anda.

  6. Pilih paket App Service yang sudah ada di ASE Anda, atau buat paket baru dengan mengikuti langkah-langkah berikut:

    a. Di portal Microsoft Azure, pilih Buat sumber daya>Web App.

    b. Pilih langganan.

    c. Memilih atau membuat grup sumber daya.

    d. Masukkan nama aplikasi web Anda.

    e. Pilih Kode atau DockerContainer.

    f. Pilih tumpukan runtime.

    g. Pilih Linux atau Windows.

    h. Pilih ASE Anda di daftar menurun Wilayah.

    i. Pilih atau buat paket App Service baru. Jika membuat paket App Service baru, pilih ukuran SKU Terisolasi yang sesuai.

    Isolated pricing tiers

    Catatan

    Aplikasi Linux dan aplikasi Windows tidak dapat berada dalam paket App Service yang sama, tetapi dapat berada di Lingkungan App Service yang sama.

  7. Pilih Ulas + buat, pastikan informasinya benar, lalu pilih Buat.

Cara kerja skala

Setiap aplikasi App Service berjalan dalam paket App Service. Lingkungan App Service menyimpan paket App Service, dan paket App Service menyimpan aplikasi. Saat menskalakan aplikasi, Anda juga menskalakan paket App Service dan semua aplikasi dalam paket yang sama.

Saat Anda menskalakan paket App Service, infrastruktur yang diperlukan akan ditambahkan secara otomatis. Ada penundaan waktu untuk menskalakan operasi saat infrastruktur sedang ditambahkan. Jika Anda melakukan beberapa operasi penskalaan secara berurutan, permintaan skala infrastruktur pertama diaktifkan dan yang lain mengantri. Ketika operasi penskalaan pertama selesai, infrastruktur lainnya meminta semua beroperasi bersama-sama. Dan ketika infrastruktur ditambahkan, paket App Service ditetapkan sebagaimana mestinya. Membuat paket App Service baru sendiri merupakan operasi penskalaan karena meminta perangkat keras tambahan. Operasi skala biasanya membutuhkan waktu 30-60 menit untuk diselesaikan.

Di App Service multitenant, penskalaan segera dilakukan karena kumpulan sumber daya tersedia untuk mendukungnya. Dalam ASE, tidak ada buffer seperti itu, dan sumber daya dialokasikan berdasarkan kebutuhan.

Di ASE, Anda dapat menskalakan paket App Service hingga 100 instans. ASE dapat memiliki hingga 201 total instans di semua paket App Service di ASE tersebut.

Alamat IP

App Service dapat mengalokasikan alamat IP khusus ke aplikasi. Kemampuan ini tersedia setelah Anda mengonfigurasi pengikatan TLS/SSL berbasis IP, seperti yang dijelaskan dalam Mengikat sertifikat TLS/SSL kustom yang ada ke Azure App Service. Dalam ILB ASE, Anda tidak dapat menambahkan lebih banyak alamat IP yang akan digunakan untuk pengikatan TLS/SSL berbasis IP.

Dengan ASE Eksternal, Anda dapat mengonfigurasi pengikatan TLS/SSL berbasis IP untuk aplikasi anda dengan cara yang sama seperti di App Service multi-penyewa. Selalu ada satu alamat cadangan di ASE, hingga 30 alamat IP. Setiap kali Anda menggunakannya, alamat lain akan ditambahkan sehingga alamat selalu tersedia. Penundaan waktu diperlukan untuk mengalokasikan alamat IP lain. Penundaan tersebut mencegah penambahan alamat IP secara cepat berturut-turut.

Penskalaan ujung depan

Saat Anda memperluas skala paket App Service, pekerja secara otomatis ditambahkan untuk mendukungnya. Setiap ASE dibuat dengan dua ujung depan. Ujung depan secara otomatis memperluas skala pada kecepatan satu ujung depan untuk setiap set 15 instans paket App Service. Misalnya, jika Anda memiliki tiga paket App Service dengan masing-masing lima instans, Anda akan memiliki total 15 instans dan tiga ujung depan. Jika Anda menskalakan ke total 30 instans, Anda memiliki empat ujung depan. Pola ini berlanjut saat Anda memperluas skala.

Jumlah ujung depan yang dialokasikan secara default dinilai baik untuk beban sedang. Anda dapat menurunkan rasio paling sedikit satu ujung depan untuk setiap lima instans. Anda juga dapat mengubah ukuran ujung depan. Secara default, ujung depan adalah inti tunggal. Di portal Azure, Anda dapat mengubah ukurannya menjadi dua atau empat core.

Ada biaya untuk mengubah rasio atau ukuran ujung depan. Untuk informasi selengkapnya, lihat Harga Azure App Service. Jika Anda ingin meningkatkan kapasitas beban ASE, Anda akan mendapatkan lebih banyak peningkatan dengan menskalakan dua inti ke ujung depan terlebih dahulu sebelum menyesuaikan rasio skala. Mengubah ukuran inti ujung depan Anda akan menyebabkan peningkatan ASE Anda dan harus dilakukan di luar jam kerja reguler.

Sumber daya ujung depan adalah titik akhir HTTP/HTTPS untuk ASE. Dengan konfigurasi ujung depan default, penggunaan memori per ujung depan secara konsisten sekitar 60 persen. Alasan utama untuk menskalakan ujung depan Anda adalah penggunaan CPU, yang utamanya didorong oleh lalu lintas HTTPS.

Akses aplikasi

Di ASE Eksternal, akhiran domain yang digunakan untuk pembuatan aplikasi adalah .<asename>.p.azurewebsites.net. Jika ASE Anda diberi nama external-ase dan Anda menghosting aplikasi yang disebut contoso di ASE tersebut, Anda mencapainya di URL ini:

  • contoso.external-ase.p.azurewebsites.net
  • contoso.scm.external-ase.p.azurewebsites.net

Untuk informasi tentang cara membuat ASE Eksternal, lihat Membuat Lingkungan App Service.

Dalam ILB ASE, akhiran domain yang digunakan untuk pembuatan aplikasi adalah .<asename>.appserviceenvironment.net. Jika ASE Anda bernama ilb-ase dan Anda menghosting aplikasi yang disebut contoso di ASE tersebut, Anda mencapainya di URL ini:

  • contoso.ilb-ase.appserviceenvironment.net
  • contoso.scm.ilb-ase.appserviceenvironment.net

Untuk informasi tentang cara membuat ILB ASE, lihat Membuat dan menggunakan ILB ASE.

URL SCM digunakan untuk mengakses konsol Kudu atau untuk menerbitkan aplikasi dengan menggunakan Penyebaran Web. Konsol Kudu memberi Anda antarmuka pengguna web untuk penelusuran kesalahan, pengunggahan file, pengeditan file, dan banyak lagi.

Konfigurasi DNS

Saat Anda menggunakan ASE Eksternal, aplikasi yang dibuat di ASE Anda akan terdaftar di Azure DNS. Tidak ada langkah tambahan di ASE Eksternal agar aplikasi Anda tersedia untuk publik. Dengan ILB ASE, Anda harus mengelola DNS Anda sendiri. Anda dapat melakukannya dengan server DNS Anda sendiri atau dengan zona privat Azure DNS.

Untuk mengonfigurasi DNS di server DNS Anda sendiri dengan ILB ASE Anda:

  1. buat zona untuk <nama ASE>.appserviceenvironment.net
  2. buat rekaman A di zona yang menunjuk * ke alamat IP ILB
  3. buat rekaman A di zona yang menunjuk @ ke alamat IP ILB
  4. buat zona di scm bernama <nama ASE>.appserviceenvironment.net
  5. membuat rekaman A di zona scm yang mengarahkan * ke alamat IP ILB

Untuk mengonfigurasi DNS di zona Privat Azure DNS:

  1. buat zona privat Azure DNS bernama <nama ASE>.appserviceenvironment.net
  2. buat rekaman A di zona yang menunjuk * ke alamat IP ILB
  3. buat rekaman A di zona yang menunjuk @ ke alamat IP ILB
  4. buat rekaman A di zona yang mengarahkan *.scm ke alamat IP ILB

Pengaturan DNS untuk akhiran domain default ASE Anda tidak membatasi aplikasi untuk dapat diakses hanya dari nama tersebut. Anda dapat mengatur nama domain kustom tanpa validasi apa pun pada aplikasi Anda di ILB ASE. Jika Anda kemudian ingin membuat zona bernama contoso.net, Anda dapat melakukannya dan mengarahkannya ke alamat IP ILB. Nama domain kustom berfungsi untuk permintaan aplikasi tetapi tidak untuk situs scm. Situs scm hanya tersedia di <appname>.scm.<asename>.appserviceenvironment.net.

Zona bernama .<asename>.appserviceenvironment.net unik secara global. Sebelum Mei 2019, pelanggan dapat menentukan akhiran domain dari ILB ASE. Jika Anda ingin menggunakan .contoso.com untuk akhiran domain, Anda dapat melakukannya dan akan menyertakan situs scm. Ada tantangan dengan model tersebut, termasuk; mengelola sertifikat TLS/SSL default, kurangnya akses menyeluruh dengan situs scm, dan persyaratan untuk menggunakan sertifikat kartubebas. Proses peningkatan sertifikat default ILB ASE juga dapat mengganggu dan menyebabkan aplikasi dihidupkan ulang. Untuk mengatasi masalah ini, perilaku ILB ASE diubah untuk menggunakan akhiran domain berdasarkan nama ASE dan dengan akhiran milik Microsoft. Perubahan perilaku ILB ASE hanya memengaruhi ILB ASE yang dibuat setelah Mei 2019. ILB ASE yang sudah ada sebelumnya masih harus mengelola sertifikat default ASE dan konfigurasi DNS-nya. Jika ILB ASE V2 Anda dibuat setelah Mei 2019, Anda tidak perlu mengelola sertifikat default ILB karena dikelola oleh Microsoft.

Memublikasikan

Di ASE, seperti halnya App Service multitenant, Anda dapat menerbitkan dengan metode berikut:

  • Penyebaran web
  • FTP
  • Integrasi berkelanjutan (CI)
  • Seret dan hilangkan di konsol Kudu
  • IDE, seperti Visual Studio, Eclipse, atau IntelliJ IDEA

Dengan ASE Eksternal, opsi penerbitan ini semuanya berfungsi dengan cara yang sama. Untuk informasi selengkapnya, lihat Penyebaran di Azure App Service.

Dengan ILB ASE, titik akhir penerbitan hanya tersedia melalui ILB. ILB berada pada IP privat di subnet ASE di jaringan virtual. Jika Anda tidak memiliki akses jaringan ke ILB, Anda tidak dapat memublikasikan aplikasi apa pun di ASE tersebut. Seperti yang tercatat dalam Membuat dan menggunakan ILB ASE, Anda harus mengonfigurasi DNS untuk aplikasi dalam sistem. Persyaratan itu termasuk titik akhir SCM. Jika titik akhir tidak ditentukan dengan benar, Anda tidak dapat menerbitkan. IDE Anda juga harus memiliki akses jaringan ke ILB untuk menerbitkannya secara langsung.

Tanpa perubahan tambahan, sistem CI berbasis internet seperti GitHub dan Azure DevOps tidak berfungsi dengan ILB ASE karena titik akhir penerbitan tidak dapat diakses internet. Anda dapat mengaktifkan penerbitan ke ILB ASE dari Azure DevOps dengan menginstal agen rilis yang dihosting sendiri di jaringan virtual yang berisi ILB ASE. Atau, Anda juga dapat menggunakan sistem CI yang menggunakan pull model, seperti Dropbox.

Titik akhir penerbitan untuk aplikasi di ILB ASE menggunakan domain dibuatnya ILB ASE. Anda dapat melihatnya di profil penerbitan aplikasi dan di panel portal aplikasi (di Gambaran Umum>Esensial dan juga di Properti).

Penyimpanan

ASE memiliki penyimpanan 1 TB untuk semua aplikasi di ASE. Paket App Service dalam SKU harga Terisolasi memiliki batas 250 GB. Dalam ASE, penyimpanan 250 GB ditambahkan per paket App Service hingga batas 1 TB. Anda dapat memiliki lebih dari empat paket App Service, tetapi tidak ada lagi penyimpanan yang ditambahkan di luar batas 1 TB.

Pemantauan

Sebagai pelanggan, Anda harus memantau paket App Service dan masing-masing aplikasi yang berjalan dan mengambil tindakan yang sesuai. Untuk App Service Environment v2, Anda juga harus memperhatikan metrik di sekitar infrastruktur platform. Metrik ini akan memberi Anda wawasan tentang bagaimana infrastruktur platform dan server frontend (multiRole) lakukan, dan Anda dapat mengambil tindakan jika banyak digunakan dan Anda tidak mendapatkan throughput maksimum.

Melalui portal Microsoft Azure dan CLI, Anda dapat mengonfigurasi rasio skala server frontend Anda antara 5 dan 15 (default 15) instans paket App Service per server frontend. Lingkungan Azure App Service akan selalu memiliki minimal dua server frontend. Anda juga dapat meningkatkan ukuran server frontend.

Cakupan metrik yang digunakan untuk memantau infrastruktur platform disebut Microsoft.Web/hostingEnvironments/multiRolePools.

Anda akan melihat cakupan yang disebut Microsoft.Web/hostingEnvironments/workerPools. Metrik di sini hanya berlaku untuk Lingkungan App Service v1.

Pencatatan

Anda dapat mengintegrasikan ASE anda dengan Azure Monitor untuk mengirim log tentang ASE ke Azure Storage, Azure Event Hubs, atau Analitik Log. Item ini dicatat saat ini:

Situasi Pesan
ASE tidak sehat ASE yang ditentukan tidak sehat karena konfigurasi jaringan virtual yang tidak valid. ASE akan ditangguhkan jika status tidak sehat berlanjut. Pastikan pedoman yang didefinisikan di sini diikuti: Pertimbangan jaringan untuk Lingkungan App Service.
Subnet ASE hampir kehabisan ruang ASE yang ditentukan berada dalam subnet yang hampir kehabisan ruang. Ada {0} alamat yang tersisa. Setelah alamat ini habis, ASE tidak akan dapat menskalakan.
ASE mendekati batas total instans ASE yang ditentukan mendekati batas total instans ASE. Saat ini berisi {0} instans Paket App Service dari 201 instans maksimum.
ASE tidak dapat mencapai dependensi ASE yang ditentukan tidak dapat mencapai {0}. Pastikan pedoman yang didefinisikan di sini diikuti: Pertimbangan jaringan untuk Lingkungan App Service.
ASE ditangguhkan ASE yang ditentukan ditangguhkan. Penangguhan ASE mungkin disebabkan oleh kekurangan akun atau konfigurasi jaringan virtual yang tidak valid. Atasi akar penyebab dan lanjutkan ASE untuk terus melayani lalu lintas.
Peningkatan ASE telah dimulai Peningkatan platform ke ASE yang ditentukan telah dimulai. Penundaan mungkin terjadi dalam operasi penskalaan.
Peningkatan ASE telah selesai Peningkatan platform ke ASE yang ditentukan telah selesai.
Operasi penskalaan telah dimulai Paket App Service ({0}) telah mulai diskalakan. Status yang diinginkan: {1} I{2} pekerja.
Operasi penskalaan telah selesai Paket App Service ({0}) telah selesai diskalakan. Status saat ini: {1} I{2} pekerja.
Operasi penskalaan gagal Paket App Service ({0}) gagal diskalakan. Status saat ini: {1} I{2} pekerja.

Untuk mengaktifkan pengelogan di ASE Anda:

  1. Di portal, buka Pengaturan diagnostik.
  2. Pilih Menambahkan pengaturan diagnostik.
  3. Berikan nama untuk integrasi log.
  4. Pilih dan konfigurasikan tujuan log yang Anda inginkan.
  5. Pilih AppServiceEnvironmentPlatformLogs.

ASE diagnostic log settings

Jika Anda berintegrasi dengan Analitik Log, Anda dapat melihat log dengan memilih Logs dari portal ASE dan membuat kueri terhadap AppServiceEnvironmentPlatformLogs. Log hanya dikeluarkan saat ASE Anda memiliki peristiwa yang akan memicunya. Jika ASE Anda tidak memiliki peristiwa tersebut, tidak akan ada log apa pun. Untuk melihat contoh log di ruang kerja Analitik Log Anda dengan cepat, lakukan operasi penskalaan dengan salah satu paket App Service di ASE Anda. Kemudian Anda dapat menjalankan kueri terhadap AppServiceEnvironmentPlatformLogs untuk melihat log tersebut.

Membuat pemberitahuan

Untuk membuat pemberitahuan terhadap log Anda, ikuti petunjuk di Membuat, menampilkan, dan mengelola pemberitahuan log menggunakan Azure Monitor. Singkatnya:

  • Buka halaman Pemberitahuan di portal ASE Anda
  • Pilih Aturan pemberitahuan baru
  • Pilih Sumber Daya Anda untuk dijadikan ruang kerja Analitik Log
  • Atur kondisi Anda dengan pencarian log kustom untuk menggunakan kueri, seperti "AppServiceEnvironmentPlatformLogs | di mana ResultDescription berisi "telah mulai penskalaan" atau apa pun yang Anda inginkan. Atur ambang sebagaimana mestinya.
  • Tambahkan atau buat grup tindakan seperti yang diinginkan. Grup tindakan adalah tempat Anda menentukan respons terhadap pemberitahuan seperti mengirim email atau pesan SMS
  • Beri nama pada pemberitahuan Anda dan simpan.

Preferensi peningkatan

Jika Anda memiliki beberapa ASE, Anda mungkin ingin beberapa ASE ditingkatkan sebelum yang lain. Perilaku ini dapat diaktifkan melalui portal ASE Anda. Pada Konfigurasi, Anda memiliki opsi untuk menetapkan Tingkatkan preferensi. Tiga nilai yang mungkin adalah:

  • None: Azure akan meningkatkan ASE Anda dalam batch tertentu. Ini adalah nilai default.
  • Early: ASE Anda akan ditingkatkan pada paruh pertama peningkatan App Service.
  • Late: ASE Anda akan ditingkatkan pada paruh kedua peningkatan App Service.

Pilih nilai yang diinginkan dan pilih Simpan. Default untuk ASE adalah Tidak Ada.

ASE configuration portal

Fitur upgradePreferences paling masuk akal ketika Anda memiliki beberapa ASE karena ASE "Awal" Anda akan ditingkatkan lebih awal daripada ASE "Akhir" Anda. Ketika Anda memiliki beberapa ASE, Anda harus menetapkan pengembangan dan pengujian ASE jadi "Awal" dan ASE produksi jadi "Akhir".

Harga

Harga SKU yang disebut Terisolasi hanya untuk digunakan dengan ASE. Semua paket App Service yang dihosting di ASE berada di SKU harga terisolasi. Tarif terisolasi untuk paket App Service dapat bervariasi menurut wilayah.

Selain harga paket App Service Anda, ada tarif tetap untuk ASE itu sendiri. Tarif tetap tidak berubah terlepas dari ukuran ASE Anda. Tarif ini seharga infrastruktur ASE pada tingkat skala default dari satu ujung depan tambahan untuk setiap 15 instans paket App Service.

Jika tingkat skala default dari satu ujung depan untuk setiap 15 instans paket App Service tidak cukup cepat, Anda dapat menyesuaikan rasio di mana ujung depan ditambahkan atau ukuran ujung depan. Saat menyesuaikan rasio atau ukuran, Anda membayar inti ujung depan yang tidak akan ditambahkan secara default.

Misalnya, jika Anda menyesuaikan rasio skala menjadi 10, ujung depan akan ditambahkan untuk setiap 10 instans dalam paket App Service Anda. Tarif tetap mencakup tingkat skala satu ujung depan untuk setiap 15 instans. Dengan rasio skala 10, Anda membayar tarif untuk ujung depan ketiga yang ditambahkan untuk 10 instans paket App Service. Anda tidak perlu membayarnya ketika Anda mencapai 15 instans karena ditambahkan secara otomatis.

Jika Anda menyesuaikan ukuran ujung depan ke dua inti tetapi tidak menyesuaikan rasio, Anda perlu membayar untuk inti tambahan. ASE dibuat dengan dua ujung depan, jadi bahkan di bawah ambang penskalaan otomatis Anda perlu membayar dua inti tambahan jika Anda meningkatkan ukuran ke ujung depan dua inti.

Untuk informasi selengkapnya, lihat Harga Azure App Service.

Menghapus ASE

Untuk menghapus ASE:

  1. Pilih Hapus di bagian atas panel App Service Environment.

  2. Masukkan nama ASE Anda untuk mengonfirmasi bahwa Anda ingin menghapusnya. Saat menghapus ASE, Anda juga menghapus semua konten di dalamnya.

    ASE deletion

  3. Pilih OK.

ASE CLI

Ada kemampuan baris perintah untuk mengelola ke ASE. Perintah az cli dicantumkan di bawah ini.

C:\>az appservice ase --help

Group
    az appservice ase : Manage App Service Environments v2.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    create         : Create app service environment.
    delete         : Delete app service environment.
    list           : List app service environments.
    list-addresses : List VIPs associated with an app service environment.
    list-plans     : List app service plans associated with an app service environment.
    show           : Show details of an app service environment.
    update         : Update app service environment.

For more specific examples, use: az find "az appservice ase"