All Products
Search
Document Center

Auto Scaling:Penerbitan aplikasi

Last Updated:Jan 24, 2026

Fitur penerbitan aplikasi Auto Scaling memungkinkan Anda menerapkan aplikasi bisnis secara berkelanjutan ke Instance ECS dalam grup penskalaan. Fitur ini mengotomatiskan proses penerbitan aplikasi dan terintegrasi dengan kait siklus hidup Auto Scaling untuk mengaktifkan penerbitan otomatis serta shutdown yang mulus.

Ikhtisar

Fitur penerbitan aplikasi Auto Scaling (ESS) membungkus file sumber aplikasi serta skrip start dan stop ke dalam sebuah deployment. Deployment tersebut kemudian diterbitkan ke instans dalam grup penskalaan melalui proses standar.

Jenis deployment yang didukung

Anda dapat memilih jenis deployment berdasarkan lokasi penyimpanan file sumber aplikasi:

Type

Description

Scenarios

OSS file

File aplikasi, seperti paket JAR atau ZIP, disimpan di OSS. Selama penerbitan, file tersebut diunduh secara otomatis dan skrip dieksekusi.

Deployment aplikasi tradisional, seperti aplikasi Java.

ECS image

Aplikasi telah dipra-instal dalam citra ECS. Selama penerbitan, disk sistem instans diganti.

Aplikasi yang memerlukan startup cepat atau memiliki lingkungan kompleks.

Docker image

Gambar aplikasi disimpan di Container Registry (ACR). Selama penerbitan, gambar tersebut ditarik secara otomatis dan kontainer dijalankan.

Deployment aplikasi terkontainerisasi.

Command execution only

Tidak ada file sumber yang ditentukan. Hanya skrip shell yang dieksekusi.

Deployment berbasis skrip fleksibel atau penggunaan sumber pihak ketiga.

Kemampuan rilis

  • Mode Rilis: Mendukung full release untuk menerbitkan ke semua instans dan canary release untuk menerbitkan ke instans tertentu guna validasi.

  • Kontrol batch: Anda dapat mengatur jumlah batch rilis dan mengonfigurasi jeda antar batch untuk mengurangi risiko selama rilis.

  • Integrasi Auto Scaling:

    • Penerbitan otomatis saat scale-out: Instans baru yang dibuat selama scale-out secara otomatis menerapkan versi aplikasi terbaru untuk memastikan konsistensi versi.

    • Shutdown yang mulus saat scale-in: Sebelum scale-in, skrip stop dieksekusi untuk memastikan proses bisnis selesai sebelum instans dilepas.

Batasan

  • Sistem operasi: Hanya mendukung Instance ECS Linux.

  • Bahasa skrip: Hanya skrip shell yang didukung untuk skrip start dan stop.

  • Alur deployment: Alur deployment mengikuti prinsip Stop-before-start. Untuk setiap deployment, skrip stop dieksekusi terlebih dahulu untuk memastikan aplikasi dari deployment sebelumnya dihentikan, lalu skrip start dieksekusi.

  • Risiko data: Saat menggunakan tipe deployment ECS image, disk sistem instans akan diganti. Anda harus melakukan backup data penting terlebih dahulu.

Buat deployment

  1. Masuk ke Konsol Auto Scaling.

  2. Di panel navigasi sebelah kiri, klik Scaling Groups.

  3. Di bilah navigasi atas, pilih wilayah tempat Auto Scaling diaktifkan.

  4. Klik Scaling Group ID untuk masuk ke halaman detail grup penskalaan. Pada tab Application Publishing, pilih Deployment > Create Deployment.

  5. Pilih dan konfigurasikan jenis deployment sesuai skenario Anda.

    OSS file

    Gunakan tipe ini ketika paket aplikasi Anda, seperti file JAR, WAR, atau ZIP, disimpan di OSS. Selama penerbitan, sistem secara otomatis mengunduh file tersebut ke direktori kerja yang ditentukan, mengeksekusi skrip stop untuk menghentikan versi aplikasi sebelumnya (jika ada), lalu mengeksekusi skrip start untuk menjalankan aplikasi baru.

    • Item konfigurasi:

      • OSS Information: Atur OSS Region dan OSS Bucket. Di bidang OSS File, masukkan path file di bucket tersebut, misalnya apps/sample-spring-1.0-SNAPSHOT.jar.

      • Download over internal network: Jika Instance ECS dan Bucket OSS Anda berada di wilayah yang sama, Anda dapat mengaktifkan opsi ini untuk meningkatkan kecepatan unduhan.

    • Start/Stop Script Contoh:

      Application start script:

      start_application() {
        set -e
        yum install -y maven-3.5.4
        java -jar ./sample-spring-1.0-SNAPSHOT.jar &
      }
      
      start_application

      Application stop script:

      Penting

      Jika Anda tidak perlu melakukan operasi stop apa pun, Anda dapat mengosongkan skrip stop. Skrip stop akan dilewati selama deployment.

      ### Hentikan aplikasi (jika ada)
      stop_application() {
        PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}')
        if [ -n "$PID" ]; then
          kill -9 $PID
        fi
      }
      
      stop_application

    ECS image

    Gunakan tipe ini untuk aplikasi dengan lingkungan kompleks atau yang memerlukan startup cepat. Selama penerbitan, sistem mengganti disk sistem instans dalam grup penskalaan dengan citra yang ditentukan.

    Jika Anda memilih ECS image sebagai tipe deployment, klik Add dan pilih citra dari wilayah yang sama dengan grup penskalaan Anda.

    • Item konfigurasi:

      • Region: Pilih wilayah yang sama dengan grup penskalaan.

      • Image ID: Pilih gambar kustom yang berisi aplikasi yang telah diterapkan dan berada di wilayah yang sama dengan grup penskalaan.

    Penting

    Deployment ECS image tidak mendukung Skrip start/stop aplikasi. Untuk menjalankan aplikasi secara otomatis, Anda dapat konfigurasikan aplikasi agar start saat boot atau konfigurasikan kait siklus hidup secara manual.

    Docker image

    Gunakan tipe ini untuk aplikasi terkontainerisasi. Selama penerbitan, sistem secara otomatis menarik gambar dari ACR, mengeksekusi skrip stop untuk menghentikan versi kontainer sebelumnya (jika ada), lalu mengeksekusi skrip start untuk menjalankan kontainer baru.

    Penting

    Hanya gambar Docker dari Container Registry (ACR) Edisi Perusahaan yang didukung. Untuk gambar dari ACR Edisi Personal atau repository gambar pihak ketiga, gunakan tipe deployment Command execution only.

    • Item konfigurasi:

      • Docker Image Information: Anda dapat mengatur Container Registry Region, Container Registry Instance ID, Namespace, Repository Name, dan Image Version.

      • Pull over internal network: Untuk menarik gambar melalui jaringan internal, pastikan repository gambar dan Instance ECS Anda berada di VPC yang sama. Untuk informasi lebih lanjut, lihat Konfigurasikan kontrol akses untuk VPC.

    • Startup and Shutdown Script:

      Skrip mulai aplikasi:

      Penting
      • Pastikan Docker telah diinstal pada mesin target.

      • Selama penerbitan, gambar Docker secara otomatis ditarik ke Instance ECS sebelum skrip dieksekusi. Anda tidak perlu menyertakan operasi pull gambar dalam skrip.

      ### Selama penerbitan, gambar Docker secara otomatis ditarik ke Instance ECS. Anda dapat langsung menjalankan kontainer.
      ### Jalankan versi kontainer saat ini
      ### Saat menggunakan, ganti <image_name> dengan alamat gambar aktual
      start_application() {
        image_name="<image_name>"
        container_name="my-container"
        docker run -d -p 8080:8080 --name ${container_name} ${image_name}
      }
      
      start_application

      Skrip penghentian aplikasi:

      Penting

      Jika Anda tidak perlu melakukan operasi stop apa pun, Anda dapat mengosongkan skrip stop. Skrip stop akan dilewati selama deployment.

      stop_application() {
        # Cari kontainer berdasarkan nama. Jika ada, hapus.
        container_name="my-container"
        container_id=$(docker ps -aq -f name=${container_name}) 
        if [ -n "$container_id" ]; then
          docker rm -f $container_id
        fi
      }
      
      stop_application

    Command execution only

    Gunakan tipe ini untuk deployment yang hanya memerlukan skrip shell tanpa file sumber tertentu, seperti mengunduh kode dari sumber pihak ketiga. Selama penerbitan, sistem mengeksekusi skrip stop untuk menghentikan versi aplikasi sebelumnya (jika ada), lalu mengeksekusi skrip start untuk menjalankan aplikasi baru.

    • Item konfigurasi: Anda tidak perlu mengonfigurasi sumber deployment. Anda hanya perlu menentukan Working Directory.

    • Start/Stop Script Contoh (menarik gambar publik):

      Application start script:

      ### Jalankan versi aplikasi saat ini           
      start_application() {
         repo="<repo>"
         image="<image>"
         container_name="my-container"
         docker login --username=${username} --password=${password} $repo
         docker pull $image
         docker run -d -p 8080:8080 --name $container_name $image
      }
      
      start_application

      Application stop script:

      Penting

      Jika Anda tidak perlu melakukan operasi stop apa pun, Anda dapat mengosongkan skrip stop. Skrip stop akan dilewati selama deployment.

      ### Hentikan kontainer (jika ada)
      stop_application() {
        # Cari kontainer berdasarkan nama dan hapus jika ada.
        container_name="my-container"
        container_id=$(docker ps -aq -f name=${container_name}) 
        if [ -n "$container_id" ]; then
          docker rm -f $container_id
        fi
      }
      
      stop_application
  6. Setelah menyelesaikan konfigurasi, klik Create and Publish atau Create Only.

    Jika Anda mengklik Create and Publish, Anda akan diarahkan ke konfigurasi Deployment Publishing.

Deployment publishing

  1. Pada tab Application Publishing, pilih Deployment Publishing > Publish.

  2. Anda dapat memilih Deployment ID yang akan diterbitkan.

  3. Konfigurasikan kebijakan rilis:

    • Release Mode:

      • Full Release: Menerbitkan ke semua instans dalam grup.

      • Canary Release: Menerbitkan ke instans yang dipilih secara manual.

    • Batch Policy: Atur Number of Batches (misalnya, 2) dan pilih Batch Mode (No Pause, Pause After First Batch, atau Pause After Each Batch).

    • Scaling Scenarios: Biarkan pengaturan default tetap aktif untuk Auto-publish on scale-out dan Graceful shutdown on scale-in.

      • Auto-publish on scale-out: Jika opsi ini diaktifkan, aplikasi secara otomatis diterbitkan ke Instance ECS baru yang dibuat selama scale-out. Kait siklus hidup scale-out dikonfigurasi secara otomatis selama proses penerbitan.

      • Graceful shutdown on scale-in: Jika opsi ini diaktifkan, skrip penghentian Penerapan akan dieksekusi pada Instance ECS yang sedang diskalakan masuk sebelum proses skala-masuk selesai. Kait siklus hidup skala-masuk dikonfigurasi secara otomatis selama proses penerbitan.

  4. Klik OK untuk memulai penerbitan. Anda dapat melihat status eksekusi dan log output dengan mengklik Details dalam daftar.

Penggunaan di lingkungan produksi

Untuk memastikan stabilitas di lingkungan produksi Anda, ikuti praktik terbaik berikut:

  • Kurangi risiko rilis:

    • Pertama, gunakan canary release untuk memverifikasi versi baru pada sejumlah kecil instans.

    • Untuk melakukan full release secara bertahap, aktifkan phased release dan pilih Pause After First Batch. Setelah batch pertama diterbitkan dan diverifikasi, Anda dapat melanjutkan ke batch berikutnya.

  • Jamin kelangsungan bisnis: Aktifkan Graceful shutdown on scale-in. Buat skrip stop untuk deployment Anda yang menunggu permintaan selesai diproses dan menutup koneksi guna mencegah gangguan bisnis selama scale-in.

  • Jamin konsistensi versi: Mengaktifkan Auto-publish on scale-out mencegah instans baru yang dibuat oleh grup penskalaan menjalankan versi aplikasi yang kedaluwarsa.

FAQ

  • Apakah fitur penerbitan aplikasi mendukung instans Windows?

    Tidak. Hanya mendukung Instance ECS Linux.

  • Selama proses penerbitan, apakah grup penskalaan tetap memicu aktivitas penskalaan?

    Ya. Proses penerbitan aplikasi tidak memblokir aktivitas penskalaan.

  • Bagaimana cara melihat log dan hasil penerbitan aplikasi?

    Setelah tugas penerbitan dimulai, Anda dapat mengklik Execution ID dalam daftar Deployment Publishing dan melihat status eksekusi serta log output skrip detail untuk setiap instans.

  • Jika deployment gagal, apa dampaknya terhadap instans yang ada?

    Jika skrip gagal dijalankan, status penerbitan untuk instans tersebut ditetapkan sebagai Failed. Untuk phased release dengan Pause After Each Batch atau Pause After First Batch diaktifkan, batch berikutnya tidak akan dijalankan. Hal ini membatasi dampaknya. Anda dapat memverifikasi deployment pada sejumlah kecil instans menggunakan canary release sebelum melakukan full release.

  • Di mana direktori eksekusi untuk skrip start/stop aplikasi?

    Skrip dieksekusi di Working Directory yang Anda tentukan saat membuat deployment.