Kombinasikan grup penskalaan Elastic Container Instance (ECI) dengan Application Load Balancer (ALB) untuk mendeploy layanan inferensi large language model (LLM) yang tersedia lintas zona dan berdaya tinggi.
Ikhtisar solusi
Solusi ini mendeploy instans inferensi berbasis ECI di beberapa zona dalam satu wilayah untuk pemulihan bencana tingkat zona. ALB menangani distribusi lalu lintas, dan Object Storage Service (OSS) menyimpan file model. Gambar berikut menunjukkan arsitektur tersebut.
Manfaat
-
Ketersediaan tinggi: Mendistribusikan workload ke beberapa server untuk menghilangkan titik kegagalan tunggal dan mencegah gangguan layanan.
-
Penskalaan elastis: Grup penskalaan mengelola kluster inferensi. Lakukan skala keluar dengan cepat dengan menyesuaikan jumlah instans ECI atau konfigurasikan penskalaan otomatis untuk menyediakan sumber daya sesuai permintaan berdasarkan beban kerja.
Prosedur
-
Rencanakan jaringan kluster. Buat VPC dan vSwitch di beberapa zona.
-
Buat bucket OSS. Simpan file bobot model.
-
Konfigurasikan peran RAM instans. Berikan akses instans ECI ke bucket OSS dari Langkah 2.
-
Siapkan cache gambar. Buat cache gambar untuk mempercepat startup dan unduh bobot model ke OSS.
-
Buat instans ALB. Instans ALB berfungsi sebagai titik akhir layanan.
-
Buat grup penskalaan. Kaitkan dengan instans ALB agar instans ECI baru secara otomatis ditambahkan ke kelompok server backend.
-
Jalankan layanan. Atur jumlah instans yang diharapkan dalam grup penskalaan untuk menjalankan layanan.
1. Rencanakan jaringan kluster
Buat Virtual Private Cloud (VPC) dan vSwitches di beberapa zona. Contoh ini menggunakan satu VPC dan dua vSwitch di zona berbeda untuk ketersediaan tinggi.
Anda dapat menggunakan kembali VPC yang sudah ada dan melewati langkah ini.
-
Di console, buat satu VPC dan dua vSwitch seperti petunjuk berikut.
①②: Di panel navigasi sebelah kiri, klik Virtual Private Cloud, lalu klik Create VPC.
③: Region. China (Hangzhou).
④: Name.
vpc-ess-hangzhou.⑤: IPv4 CIDR. Pilih 192.168.0.0/16.
vSwitch 1:
⑥: Name.
vSwitch-j.⑦: Zone. Zone J.
⑧: IPv4 CIDR. 192.168.0.0/24.
⑨: Klik Add untuk membuat vSwitch 2.
vSwitch 2:
⑩: Name.
vSwitch-k.⑪: Zone. Zone K.
⑫: IPv4 CIDR. 192.168.1.0/24.
-
Klik OK dan tunggu hingga VPC dibuat.
2. Buat bucket OSS
Buat bucket Object Storage Service (OSS) untuk menyimpan file bobot model. Instans ECI membaca file dari bucket ini.
Anda dapat menggunakan kembali bucket OSS yang sudah ada dan melewati langkah ini.
-
Klik OK.
3. Buat peran RAM instans
Buat peran RAM instans yang memungkinkan instans ECI membaca file bobot model dari bucket OSS Anda.
-
Di console, buat peran RAM instans dengan pengaturan berikut.
①: Klik Create Role.
Di panel navigasi sebelah kiri konsol RAM, pilih Identities > Roles.
②: Principal Type. Pilih Cloud Service.
③: Principal Name. Pilih ECS.
4. Klik OK dan atur nama untuk peran RAM instans sesuai permintaan.
-
Di console, buat kebijakan berikut.
①: Klik Create Policy.
②: Klik JSON Editor.
③: Kebijakan ini memberikan izin penuh untuk bucket tertentu. Gunakan skrip kebijakan berikut.
PentingSaat mengonfigurasi kebijakan ini, ganti
<bucket_name>dengan Bucket dari bucket yang telah Anda buat.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:<bucket_name>", "acs:oss:*:*:<bucket_name>/*" ] } ] }Klik OK dan atur nama untuk kebijakan sesuai permintaan.
-
Di console, berikan izin kepada peran RAM instans.
①②: Klik Grant Permission.
③: Principal. Pilih peran RAM instans yang telah Anda buat.
④: Policies. Pilih kebijakan yang telah Anda buat.
Klik OK.
4. Siapkan cache gambar dan file model
Buat image cache untuk mempercepat startup instans ECI, dan unduh file bobot model ke OSS.
-
Di console, buat cache gambar ECI.
①②: Klik Create Image Cache.
Di panel navigasi sebelah kiri konsol Elastic Container Instance, klik Image Cache.
③④: Region and Zone. Harus sesuai dengan wilayah VPC dari Langkah 1. Zona harus sesuai dengan salah satu vSwitch dari Langkah 1.
⑤⑥: Network. Pilih VPC dan salah satu vSwitch yang Anda buat di Langkah 1.
⑦: Elastic IP Addresses. Pilih EIP yang sudah ada. Jika belum ada, klik EIP console untuk membuatnya, lalu kembali, klik ikon refresh
, dan pilih EIP tersebut.⑧: Security Group. Pilih grup keamanan. Jika belum ada, klik Create Security Group untuk membuatnya, lalu kembali dan pilih.
⑨: Image Cache Name. vllm.
⑩: Cache Size. 100 GB.
⑪: Image.
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm.⑫: Version.
0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04.⑬: Centang kotak Elastic Container Instance ECI Service Agreement. ⑭: Klik OK.
Tunggu hingga cache gambar selesai dibuat (~15 menit). Periksa progres di halaman cache gambar di console.
Setelah cache gambar dibuat, kolom Status menampilkan Preparing dengan persentase penyelesaian (misalnya 0%), yang menunjukkan bahwa pembuatan sedang berlangsung.
-
Di console, luncurkan instans ECI sementara untuk mengunduh file bobot model ke bucket OSS.
①②: Di panel navigasi sebelah kiri, klik Container Groups, lalu klik Create Container Group.
③: Billing Method. pay-as-you-go.
④: Region. Harus sesuai dengan wilayah VPC dari Langkah 1. Tutorial ini menggunakan China (Hangzhou).
⑤: VPC. Pilih VPC yang Anda buat di Langkah 1.
⑥: vSwitch. Pilih vSwitch yang Anda buat di Langkah 1.
⑦: Security Group. Atur parameter sesuai petunjuk di halaman.
Konfigurasi kelompok kontainer:
⑧: CPU. 2 vCPU.
⑨: Memory. 4 GiB.
⑩: After containers run and exit. Pilih Upon Failure.
Pengaturan lanjutan:
⑪: Buka Advanced Configuration.
⑫: Aktifkan Automatically Match Image Cache.
⑬: Pilih dan tambahkan OSS Persistence.
⑭: Name.
oss-data.⑮: Bucket. Pilih bucket yang Anda buat di Langkah 2.
⑯: RAM Role. Pilih peran RAM instans yang Anda buat di Langkah 3.
⑰: Ephemeral Storage Size. Atur nilainya menjadi 100 GiB.
Konfigurasi kontainer:
⑱: Image.
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm.: Tag Gambar.
0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04.⑳: Startup Command. Salin perintah berikut ke bidang yang sesuai.
/bin/bash -c git-lfs clone https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git /oss-data/DeepSeek-R1-Distill-Qwen-7BPerintah ini menggunakan git-lfs untuk mengkloning model dari repositori komunitas ModelScope ke direktori
/oss-data/DeepSeek-R1-Distill-Qwen-7B.Pengaturan lanjutan kontainer:
㉑: Buka container-1 advanced settings.
㉒: CPU. 2 vCPU.
㉓: Memory. 4 GiB.
㉔: Aktifkan Storage dan Add volume mount.
㉕: Pilih
oss-data.㉖: Mount Path.
/oss-data.㉗: Klik Next: Other Settings.
㉘: Elastic IP Addresses. Pilih Auto Create.
㉙: Maximum Bandwidth. Atur nilainya menjadi 200 Mbit/s.
㉚: Klik Confirm Configuration dan selesaikan pembuatan instans ECI sesuai petunjuk.
Pengunduhan file bobot model dimulai secara otomatis setelah instans ECI dibuat. Lanjutkan ke Langkah 5 dan Langkah 6 selagi pengunduhan berlangsung.
5. Buat instans ALB
Buat instans Application Load Balancer (ALB) sebagai titik akhir layanan.
-
Di console, buat instans ALB.
①②: Klik Create ALB.
Di panel navigasi sebelah kiri, pilih ALB > Instances.
③: Region. Pilih China (Hangzhou) agar konsisten dengan VPC yang Anda buat di Langkah 1.
④: Network Type. Pilih Public untuk menyediakan layanan melalui internet.
⑤: VPC. Pilih VPC yang Anda buat di Langkah 1.
⑥: Zone dan vSwitch. Pilih vSwitch yang Anda buat di Langkah 1.
⑦: Instance Name.
alb-eci-deepseek-7B.⑧: Klik Buy Now lalu selesaikan pembuatan instans ALB sesuai petunjuk.
-
Di console, buat listener dan kelompok server backend untuk instans ALB.
①②: Temukan instans ALB yang telah Anda buat dan klik Create Listener di kolom Actions.
Jika Anda tidak menemukan instans ALB, ganti ke wilayah berbeda di pojok kiri atas halaman.
③: Pilih HTTP sebagai protokol.
④: Atur port listener ke 80.
⑤: Klik Next.
⑥: Klik Create Server Group.
⑦: Server Group Type. Pilih Server.
⑧: Server Group Name.
eci-deepseek-7B.⑨: VPC. Pilih VPC yang Anda buat di Langkah 1. Parameter ini dipilih secara otomatis.
⑩: Select Backend Server Protocol. HTTP.
⑪⑫: Aktifkan Health Check.
⑬: Health check method. Pilih GET.
⑭: Jalur pemeriksaan kesehatan. Atur nilainya menjadi
/health. Setelah layanan inferensi dimulai, ALB menggunakan jalur/healthuntuk menentukan status layanan.⑮⑯⑰: Klik Create, klik Next, lalu klik Submit. Tunggu hingga pembuatan selesai.
6. Buat grup penskalaan
Buat grup penskalaan yang dikaitkan dengan instans ALB. Grup ini secara otomatis mengelola instans ECI dan menambahkannya ke kelompok server backend ALB.
-
Di Auto Scaling console, buat grup penskalaan dan kaitkan dengan instans ALB.
①②③: Klik Create Scaling Group.
Di panel navigasi sebelah kiri, klik Scaling Groups. Di bilah navigasi atas, pilih wilayah target (misalnya China (Hangzhou)).
④: Scaling Group Name.
deepseek-7B-servers.⑤: Type. Pilih ECI.
⑥: Instance Configuration Source. Pilih Create from Scratch.
⑦: Minimum Number of Instances. Atur parameter ini ke 0. Ini adalah jumlah minimum instans dalam grup penskalaan.
⑧: Maximum Number of Instances. Atur parameter ini ke 10. Ini adalah jumlah maksimum instans dalam grup penskalaan.
⑨: VPC. Pilih VPC yang Anda buat di Langkah 1.
⑩: vSwitch. Pilih semua vSwitch yang Anda buat di Langkah 1.
⑪: Klik Show Advanced Settings.
Pengaturan lanjutan:
⑫⑬: Aktifkan Expected Number of Instances dan atur nilainya ke 0. Ini akan membuat grup penskalaan kosong.
⑭: Klik Add Server Group dan atur Type ke ALB.
⑮: Server Group. Pilih kelompok server yang Anda buat di Langkah 5.
⑯: Port. Pilih
30000. Layanan inferensi yang dideploy di instans ECI akan menggunakan port ini untuk menyediakan layanan.⑰: Klik Create. Tunggu hingga grup penskalaan dibuat. Kemudian, Anda dapat membuat konfigurasi penskalaan sesuai petunjuk.
-
Di Auto Scaling console, buat konfigurasi penskalaan.
Konfigurasi penskalaan adalah templat untuk membuat instans selama peristiwa skala keluar.
①②③: Temukan grup penskalaan yang telah Anda buat dan klik ID-nya untuk membuka halaman detail.
Di panel navigasi sebelah kiri, klik Scaling Groups. Di bilah navigasi atas, pilih China (Hangzhou), lalu temukan grup penskalaan target dalam daftar.
④⑤⑥: Klik .
⑦: Billing Method. Pilih Pay-As-You-Go.
⑧: Pilih Security Group.
Konfigurasi kelompok kontainer:
⑨: Pilih Specify Instance Type.
⑩: Instance Type.
ecs.gn7i-c8g1.2xlarge.⑪: Pilih Automatically Match Image Cache.
⑫: Buka Advanced Configuration.
⑬⑭⑮⑯: Pilih OSS Persistence. Konfigurasikan Bucket dan RAM Role instans.
⑰: Ephemeral Storage Size. 100 GiB.
⑱: GPU Driver Version.
tesla=550.Atur Name penyimpanan persisten OSS menjadi
oss-data, dan atur RAM Role menjadiEciOssRole.Konfigurasi kontainer:
: Image.
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm.⑳: Image Tag.
0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04.㉑: Startup Command. Salin perintah berikut ke bidang yang sesuai.
/bin/bash -c vllm serve /oss-data/DeepSeek-R1-Distill-Qwen-7B --port 30000 --served-model-name DeepSeek-R1-Distill-Qwen-7B --tensor-parallel-size 1 --max-model-len=16384 --enforce-eager --dtype=half --api-key api-key-example-abc123Perintah ini membaca file bobot model dari OSS dan menjalankan layanan inferensi pada port
30000. Kunci API diatur keapi-key-example-abc123.㉒: Buka container-1 advanced settings.
㉓: CPU. Atur nilainya menjadi 8 vCPU.
㉔: Memory. Atur nilainya menjadi 30 GiB.
㉕: GPU. Atur nilainya menjadi 1.
㉖㉗: Aktifkan Storage dan Add penyimpanan.
㉘: Mount Path. /oss-data
㉙: Klik Next: Other Settings.
㉚: Elastic IP Addresses. Pilih Auto Create.
㉛: Maximum Bandwidth. 200 Mbit/s.
㉜: Klik Confirm Configuration dan selesaikan pembuatan konfigurasi penskalaan sesuai petunjuk.
㉝㉞㉟: Aktifkan konfigurasi penskalaan dan jalankan grup penskalaan sesuai petunjuk.
7. Jalankan layanan
Sebelum melanjutkan, pastikan file bobot model dari Langkah 4 telah selesai diunduh.
Picu skala keluar dengan mengatur jumlah instans yang diharapkan. Contoh ini menskalakan ke lima instans ECI.
Setelah Anda menyesuaikan jumlah instans yang diharapkan, terdapat jeda sebelum instans baru dibuat. Anda dapat memantau progres di tab Scaling Activities.
-
Di halaman detail grup penskalaan, pada tab Basic Information, di bagian Instance Scaling Overview, ubah nilai Expected Number of Instances.
-
Di kotak dialog Modify Instance Scaling Overview, aktifkan sakelar Expected Number of Instances, atur Expected Number of Instances in Group menjadi
5, lalu klik OK.
Langkah selanjutnya
Integrasi Dify
Bersihkan sumber daya
Pertimbangan untuk lingkungan produksi
Pertimbangkan peningkatan berikut untuk lingkungan produksi.
-
Atur penskalaan otomatis: Skalakan instans berdasarkan beban kerja untuk mengoptimalkan biaya. Konfigurasikan tugas berbasis peristiwa untuk penskalaan berbasis memori GPU, atau skalakan secara otomatis berdasarkan metrik permintaan per detik (QPS) dari satu instans ALB.
-
Gunakan gerbang NAT: Alih-alih menetapkan EIP ke setiap instans, gunakan NAT gateway untuk menyediakan akses internet bersama bagi instans ECI.
-
Tambahkan domain kustom dan HTTPS: Gunakan nama domain kustom untuk titik akhir layanan dan konfigurasikan listener HTTPS demi keamanan. Konfigurasikan rekaman CNAME untuk instans ALB dan Tambahkan listener HTTPS.