Panggil CreateAutoProvisioningGroup untuk membuat instance ECS pay-as-you-go secara batch di berbagai zona, tipe instans, dan metode penagihan.
Latar Belakang
RunInstances adalah operasi API paling umum untuk membuat instance ECS pay-as-you-go. Satu panggilan RunInstances dapat membuat hingga 100 instans, tetapi penggunaan RunInstances untuk membuat lebih dari 100 instans di lingkungan produksi dapat menyebabkan bottleneck. Lihat Masalah saat membuat instans dengan RunInstances.
Jika Anda sudah memahami bottleneck RunInstances untuk pembuatan batch, lewati bagian Masalah saat membuat instans dengan RunInstances.
Alibaba Cloud menyediakan auto provisioning groups untuk pembuatan instans skala besar. Panggil CreateAutoProvisioningGroup untuk menerapkan kluster instans di berbagai metode penagihan, zona, dan tipe instans dalam satu aksi. Dibandingkan dengan RunInstances, CreateAutoProvisioningGroup lebih cocok untuk skenario yang memerlukan banyak instance ECS. Lihat Perbandingan RunInstances dan CreateAutoProvisioningGroup dan Manfaat auto provisioning groups.
Bandingkan RunInstances dan CreateAutoProvisioningGroup
Tabel berikut membandingkan operasi API RunInstances dan CreateAutoProvisioningGroup untuk membantu Anda memilih metode yang tepat.
|
Item |
RunInstances |
CreateAutoProvisioningGroup |
|
Jumlah maksimum instans per batch |
100 |
1.000 (hingga 10.000 vCPU) |
|
Metode pengiriman kapasitas |
Jumlah instans |
Jumlah instans, core vCPU, bobot tipe instans, dan lainnya. |
|
Dukungan multi-zona |
Tidak |
Ya |
|
Dukungan beberapa tipe instans |
Tidak |
Ya |
|
Dukungan beberapa tipe disk |
Tidak |
Ya |
|
Kebijakan pembuatan instans |
Tidak |
Ya. Kebijakan berikut disediakan:
|
|
Stabilitas pengiriman |
Sangat dipengaruhi oleh inventaris sumber daya |
Beberapa zona dan tipe instans mengurangi dampak ketersediaan inventaris |
|
Format respons API |
Sinkron |
Sinkron |
Contoh skenario migrasi dari RunInstances ke CreateAutoProvisioningGroup:
-
Jika Anda menggunakan
RunInstancesuntuk membuat instans dengan satu tipe di satu zona, beralihlah keCreateAutoProvisioningGroupdan konfigurasikan kombinasi beberapa tipe instans dan zona. -
Jika Anda menggunakan rencana penerapan manual dengan
RunInstances, beralihlah keCreateAutoProvisioningGroupuntuk penerapan satu klik di berbagai zona, tipe instans, dan konfigurasi disk dengan kebijakan pembuatan bawaan.Misalnya, jika sebelumnya Anda melakukan traversed pada beberapa tipe instans dan zona dengan
RunInstancesuntuk meningkatkan tingkat keberhasilan pembuatan,CreateAutoProvisioningGroupmenanganinya secara otomatis — cukup konfigurasikan kombinasinya, pilih kebijakan, dan grup akan membuat instans.
Auto provisioning groups dapat membuat hingga 1.000 instans sekaligus. Jika Anda menentukan WeightedCapacity untuk tipe instans, kapasitas total tertimbang maksimum per pembuatan adalah 10.000.
Masalah dengan RunInstances untuk pembuatan batch
Operasi RunInstances memiliki keterbatasan berikut saat membuat banyak instans.
|
Masalah |
Deskripsi |
Solusi |
|
Kapasitas batch terbatas |
Satu panggilan RunInstances hanya dapat membuat hingga 100 instans. |
Panggil operasi tersebut beberapa kali dalam loop atau secara konkuren. |
|
Stabilitas batch tidak mencukupi |
RunInstances hanya mendukung satu zona dan satu tipe instans, sehingga pembuatan batch dapat gagal karena:
|
|
|
Kebijakan pembuatan terlalu sederhana |
RunInstances hanya mendukung satu zona dan satu tipe instans. Pemulihan bencana multi-zona atau pembuatan dengan biaya terendah memerlukan rencana penerapan mandiri, yang memiliki masalah berikut:
|
Selesaikan sendiri masalah tersebut atau hubungi Alibaba Cloud untuk bantuan. |
Manfaat auto provisioning groups
Auto provisioning groups mengatasi keterbatasan RunInstances dengan mendukung penerapan satu klik di berbagai metode penagihan, zona, dan tipe instans. Grup ini menyediakan daya komputasi yang stabil, mengurangi risiko reclamation spot instans, dan menghilangkan pembuatan manual berulang.
|
Manfaat |
Deskripsi |
|
Batas batch lebih tinggi |
Hingga 1.000 instans per batch. |
|
Beberapa zona, tipe instans, dan tipe disk |
Konfigurasikan hingga 10 kombinasi tipe instans atau zona dan hingga 5 tipe disk untuk pembuatan batch dengan ketersediaan tinggi. Contoh: Dengan kebijakan distribusi seimbang, instans didistribusikan secara merata di berbagai zona. Jika pembuatan gagal di satu zona, grup akan membuat instans yang tertunda di zona lain yang tersedia. Dengan beberapa tipe disk yang ditentukan, grup menggunakannya sesuai urutan prioritas. Jika satu tipe tidak tersedia, sistem secara otomatis beralih ke tipe berikutnya. Catatan
Jika semua tipe disk yang ditentukan tidak tersedia, grup akan beralih ke metode pembuatan lain. |
|
Beberapa kebijakan pembuatan |
Kebijakan pembuatan yang tersedia:
|
|
Ketersediaan spot instans yang lebih baik |
Spot instans menawarkan harga rendah tetapi rentan terhadap fluktuasi harga dan reclamation. Auto provisioning groups meningkatkan ketersediaan spot instans sekaligus menjaga biaya tetap rendah:
|
Praktik terbaik untuk CreateAutoProvisioningGroup
Contoh kode Java berikut menunjukkan cara memanggil CreateAutoProvisioningGroup.
-
Instal ECS SDK untuk Java dan pustaka inti Alibaba Cloud.
Lihat Ikhtisar SDK.
-
Panggil CreateAutoProvisioningGroup dengan Java.
Contoh kode:
import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.CreateAutoProvisioningGroupRequest; import com.aliyun.ecs20140526.models.CreateAutoProvisioningGroupResponse; import com.aliyun.teaopenapi.models.Config; import com.aliyun.teautil.models.RuntimeOptions; import com.google.gson.Gson; public class Test { public static void main(String[] args_) throws Exception { Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) .setEndpoint("ecs.cn-heyuan.aliyuncs.com"); Client client = new Client(config); CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchTemplateConfig launchTemplateConfig = new CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchTemplateConfig() .setVSwitchId("vsw-f8zadqudz*********") .setInstanceType("ecs.s6-c1m1.small") .setWeightedCapacity(1.0); CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchConfiguration launchConfiguration = new CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchConfiguration() .setSecurityGroupId("sg-f8zf6vg51*********") .setImageId("aliyun_3_x64_20G_alibase_20250629.vhd") .setSystemDiskCategory("cloud_ssd") .setSystemDiskSize(40); CreateAutoProvisioningGroupRequest createAutoProvisioningGroupRequest = new CreateAutoProvisioningGroupRequest() .setAutoProvisioningGroupType("instant") .setRegionId("cn-heyuan") // Tetapkan kebijakan pembuatan untuk spot instans. .setSpotAllocationStrategy("lowest-price") // Tetapkan kebijakan pembuatan untuk instans pay-as-you-go. .setPayAsYouGoAllocationStrategy("prioritized") .setTotalTargetCapacity("5") .setPayAsYouGoTargetCapacity("3") .setSpotTargetCapacity("2") .setLaunchConfiguration(launchConfiguration) .setLaunchTemplateConfig(java.util.Arrays.asList( launchTemplateConfig )) .setClientToken("0c593ea1-3bea******************"); RuntimeOptions runtime = new RuntimeOptions(); CreateAutoProvisioningGroupResponse response = client.createAutoProvisioningGroupWithOptions(createAutoProvisioningGroupRequest, runtime); System.out.println(new Gson().toJson(response.getBody())); } }Contoh respons JSON:
{ "autoProvisioningGroupId": "apg-**************", "launchResults": { "launchResult": [ { "amount": 0, "errorCode": "NoInstanceStock", "errorMsg": "The instanceTypes are out of usage", "instanceType": "ecs.s6-c1m1.small", "spotStrategy": "NoSpot", "zoneId": "cn-heyuan-b" }, { "amount": 2, "instanceIds": { "instanceId": [ "i-f8z8**************icn5", "i-f8z8**************icn6" ] }, "instanceType": "ecs.s6-c1m1.small", "spotStrategy": "SpotAsPriceGo", "zoneId": "cn-heyuan-b" } ] }, "requestId": "CDA21119-7CFD-5B40-A2D0-******8" }Dengan CreateAutoProvisioningGroup, Anda mengonfigurasi parameter pembuatan batch dan grup menangani proses pembuatan berdasarkan prinsip best-effort.
CatatanPengiriman best-effort berarti bahwa jika beberapa kombinasi sumber daya tidak dapat membuat instans, grup secara otomatis beralih ke kombinasi lain yang tersedia. Proses ini memerlukan waktu dan hasil aktual mungkin sedikit berbeda dari kebijakan yang ditentukan.