Untuk membuat banyak instans Elastic Compute Service (ECS) dengan metode bayar sesuai penggunaan secara efisien, Anda dapat memanggil operasi API CreateAutoProvisioningGroup. Topik ini menjelaskan cara menggunakan kode Java untuk memanggil operasi API ini guna membuat instans secara batch. Topik ini juga membandingkan fitur, manfaat, dan kekurangan dari operasi API RunInstances dan CreateAutoProvisioningGroup.
Informasi latar belakang
Dalam skenario yang memerlukan instans ECS dengan metode bayar sesuai penggunaan, operasi API RunInstances adalah yang paling sering digunakan. Satu kali pemanggilan operasi RunInstances dapat membuat maksimal 100 instans ECS. Namun, dalam lingkungan produksi, menggunakan RunInstances untuk membuat lebih dari 100 instans sekaligus dapat menyebabkan hambatan teknis. Untuk informasi lebih lanjut, lihat Masalah saat membuat instans dengan RunInstances.
Jika Anda sudah familiar dengan hambatan teknis menggunakan operasi RunInstances untuk membuat instans secara batch, Anda dapat melewati bagian Masalah Saat Membuat Instans dengan RunInstances.
Untuk memenuhi permintaan pembuatan banyak instans ECS, Alibaba Cloud menyediakan kelompok penyediaan otomatis. Anda dapat memanggil operasi API CreateAutoProvisioningGroup untuk membuat kelompok penyediaan otomatis. Ini memungkinkan Anda menerapkan kluster instans di berbagai metode penagihan, zona, dan tipe instans dengan satu tindakan. Dibandingkan dengan RunInstances, CreateAutoProvisioningGroup lebih cocok untuk skenario yang memerlukan pembuatan banyak instans ECS. Untuk perbandingan fitur mereka dan analisis manfaatnya, lihat Perbandingan RunInstances dan CreateAutoProvisioningGroup dan Manfaat Kelompok Penyediaan Otomatis.
Perbandingan RunInstances dan CreateAutoProvisioningGroup
Bagian ini membandingkan beberapa fitur dari operasi API RunInstances dan CreateAutoProvisioningGroup. Perbandingan ini membantu Anda dengan cepat memahami perbedaan mereka dan memilih metode yang tepat untuk membuat instans.
Item | RunInstances | CreateAutoProvisioningGroup |
Jumlah maksimum instans per pembuatan batch | 100 | 1.000 (hingga 10.000 vCPU) |
Metode pengiriman kapasitas | Jumlah instans | Jumlah instans, jumlah inti vCPU, bobot tipe instans, dan lainnya. |
Dukungan multi-zona | Tidak | Ya |
Dukungan tipe instans ganda | Tidak | Ya |
Dukungan tipe disk ganda | Tidak | Ya |
Kebijakan pembuatan instans | Tidak | Ya. Kebijakan berikut disediakan:
|
Stabilitas pengiriman | Sangat dipengaruhi oleh inventaris sumber daya. | Konfigurasi dengan beberapa zona dan tipe instans secara efektif mengurangi dampak dari inventaris sumber daya. |
Format tanggapan API | Mengembalikan hasil pembuatan secara sinkron. | Mengembalikan hasil pembuatan secara sinkron. |
Berikut adalah contoh skenario untuk beralih dari operasi RunInstances ke operasi CreateAutoProvisioningGroup untuk membuat instans:
Jika sebelumnya Anda menggunakan
RunInstancesuntuk membuat instans secara batch dari satu tipe instans di satu zona, Anda dapat beralih keCreateAutoProvisioningGroup. Setelah beralih, Anda hanya perlu mengonfigurasi kombinasi tipe instans dan zona untuk membuat instans secara batch.Jika sebelumnya Anda mengonfigurasi rencana penerapan manual saat menggunakan
RunInstances, Anda dapat beralih keCreateAutoProvisioningGroup. Operasi ini memberikan kemampuan penerapan satu klik di berbagai zona, tipe instans, dan konfigurasi disk. Ini juga menawarkan berbagai kebijakan pembuatan instans untuk Anda pilih.Sebagai contoh, Anda mungkin sebelumnya membuat rencana yang melintasi beberapa tipe instans dan zona saat memanggil
RunInstancesuntuk meningkatkan tingkat keberhasilan pembuatan instans. Setelah Anda beralih keCreateAutoProvisioningGroup, Anda hanya perlu mengonfigurasi beberapa kombinasi tipe instans dan zona serta memilih kebijakan pembuatan yang sesuai. Kelompok penyediaan otomatis kemudian secara otomatis membuat instans secara batch.
Kebijakan pembuatan kelompok penyediaan otomatis memiliki batasan. Anda dapat membuat maksimal 1.000 instans sekaligus. Jika Anda menentukan bobot untuk tipe instans (WeightedCapacity), total kapasitas tertimbang maksimum untuk setiap pembuatan adalah 10.000.
Masalah saat membuat instans dengan RunInstances
Karena batasan operasi RunInstances, Anda mungkin menghadapi masalah yang dijelaskan dalam tabel berikut saat membuat banyak instans.
Masalah | Deskripsi | Solusi |
Kemampuan pembuatan batch terbatas | Satu kali pemanggilan operasi RunInstances dapat membuat maksimal 100 instans ECS. | Untuk membuat lebih dari 100 instans ECS, panggil operasi API ini beberapa kali dalam loop atau secara bersamaan untuk memenuhi kebutuhan bisnis Anda. |
Stabilitas pembuatan batch tidak cukup | Pemanggilan operasi RunInstances hanya mendukung satu zona dan satu tipe instans. Oleh karena itu, saat Anda membuat instans ECS secara batch, masalah seperti inventaris tidak mencukupi, penghentian penjualan, atau batasan penggunaan untuk tipe instans tertentu dapat terjadi. Hal ini dapat menyebabkan situasi berikut:
|
|
Kebijakan pembuatan terlalu sederhana | Operasi RunInstances hanya mendukung satu zona dan satu tipe instans. Jika bisnis Anda memerlukan penerapan multi-zona untuk pemulihan bencana atau memerlukan pembuatan instans ECS dengan biaya terendah, Anda harus membangun rencana penerapan sendiri untuk memastikan penerapan instans berhasil. Rencana penerapan yang dibangun sendiri memiliki masalah berikut:
| Selesaikan masalah sendiri atau hubungi Alibaba Cloud untuk bantuan. |
Manfaat grup penyediaan otomatis
Untuk mengatasi masalah yang terjadi saat Anda menggunakan operasi API RunInstances untuk membuat instans ECS secara batch, Alibaba Cloud menyediakan kelompok penyediaan otomatis. Kelompok penyediaan otomatis mendukung penerapan satu klik kluster instans di berbagai metode penagihan, zona, dan tipe instans. Anda dapat menggunakan kelompok penyediaan otomatis untuk menyediakan daya komputasi yang stabil, mengurangi ketidakstabilan yang disebabkan oleh mekanisme penarikan kembali instans spot, dan menghilangkan kebutuhan untuk membuat instans secara manual berulang kali. Bagian ini menjelaskan manfaat kelompok penyediaan otomatis.
Manfaat | Deskripsi |
Jumlah Maksimum Instans ECS yang Lebih Tinggi untuk Pembuatan Batch | Kelompok penyediaan otomatis mendukung pembuatan hingga 1.000 instans ECS sekaligus. |
Dukungan untuk Beberapa Zona, Tipe Instans, dan Tipe Disk | Kelompok penyediaan otomatis memungkinkan Anda mengonfigurasi hingga 10 kombinasi tipe instans atau zona dan memilih hingga 5 tipe disk. Ini membantu Anda mencapai ketersediaan tinggi saat membuat instans ECS secara batch. Contoh skenario: Saat Anda menggunakan kebijakan distribusi seimbang yang disediakan oleh kelompok penyediaan otomatis untuk membuat instans ECS, Anda dapat mengonfigurasi beberapa zona dan tipe instans. Menurut kebijakan ini, jumlah instans yang dibuat harus relatif merata di seluruh zona. Namun, jika pembuatan gagal di salah satu zona, kelompok penyediaan otomatis mencoba membuat instans yang tertunda di zona lain yang tersedia. Jika Anda menentukan beberapa tipe disk, kelompok penyediaan otomatis menggunakan urutan yang ditentukan sebagai prioritas untuk setiap tipe disk. Jika tipe disk tidak tersedia, kelompok penyediaan otomatis secara otomatis beralih ke tipe disk berikutnya. Catatan Jika semua tipe disk yang ditentukan tidak tersedia, kelompok penyediaan otomatis beralih ke metode pembuatan lain dan tidak lagi mencoba menggunakan metode saat ini. |
Dukungan untuk Beberapa Kebijakan Pembuatan Instans | Kebijakan pembuatan berikut disediakan untuk instans bayar sesuai penggunaan dan instans spot:
|
Peningkatan Ketersediaan Instans Spot | Instans spot semakin banyak digunakan karena harganya yang murah. Namun, ketidakstabilan harga dan fitur penarikan kembali membuatnya sulit dikelola. Anda dapat menggunakan kelompok penyediaan otomatis untuk meningkatkan ketersediaan instans spot sambil menjaga biaya tetap rendah. Anda dapat melakukannya dengan cara berikut:
|
Praktik terbaik untuk CreateAutoProvisioningGroup
Bagian ini memberikan contoh kode Java untuk operasi API CreateAutoProvisioningGroup untuk membantu Anda dengan cepat memahami cara menggunakannya.
Instal SDK ECS untuk Java dan pustaka inti Alibaba Cloud.
Untuk informasi lebih lanjut, lihat Ikhtisar SDK.
Tulis kode Java untuk memanggil operasi API CreateAutoProvisioningGroup.
Berikut adalah 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") // Set kebijakan pembuatan untuk instans spot. .setSpotAllocationStrategy("lowest-price") // Set kebijakan pembuatan untuk instans bayar sesuai penggunaan. .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())); } }Berikut adalah contoh tanggapan 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" }Saat Anda membuat kelompok penyediaan otomatis dengan memanggil CreateAutoProvisioningGroup, Anda hanya perlu menyetel item konfigurasi untuk pembuatan instans secara batch dan tidak perlu mengelola proses pembuatan. Kelompok penyediaan otomatis membuat instans berdasarkan usaha terbaik.
CatatanPengiriman usaha terbaik berarti bahwa jika instans tidak dapat dibuat dengan beberapa kombinasi sumber daya yang Anda konfigurasikan, kelompok penyediaan otomatis secara otomatis beralih ke kombinasi sumber daya lain yang tersedia untuk melanjutkan proses pembuatan. Metode pembuatan ini memerlukan waktu dan hasil aktual mungkin memiliki sedikit bias dari kebijakan pembuatan yang ditentukan.