Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tentukan atribut untuk pemilihan tipe instans untuk EC2 Fleet atau Spot Fleet
Saat membuat Armada EC2 atau Spot Fleet, Anda harus menentukan satu atau beberapa jenis instans untuk mengonfigurasi Instans dan On-Demand Instans Spot dalam armada. Sebagai alternatif untuk menentukan tipe instans secara manual, Anda dapat menentukan atribut yang harus dimiliki instans, dan Amazon EC2 akan mengidentifikasi semua tipe instans dengan atribut tersebut. Hal ini dikenal sebagai pemilihan tipe instans berbasis atribut. Misalnya, Anda dapat menentukan jumlah minimum dan maksimum vCPU yang diperlukan untuk instans Anda, dan armada akan meluncurkan instans menggunakan jenis instans yang tersedia yang memenuhi persyaratan vCPU tersebut.
Attribute-based pemilihan tipe instance sangat ideal untuk beban kerja dan kerangka kerja yang dapat fleksibel tentang jenis instans apa yang mereka gunakan, seperti saat menjalankan wadah atau flet web, memproses data besar, dan menerapkan integrasi berkelanjutan dan perkakas penerapan ()CI/CD.
Keuntungan
Attribute-based pemilihan jenis instance memiliki manfaat sebagai berikut:
-
Gunakan jenis instans yang tepat dengan mudah — Dengan begitu banyak jenis instans yang tersedia, menemukan jenis instans yang tepat untuk beban kerja Anda dapat memakan waktu. Saat Anda menentukan atribut instans, tipe instans akan secara otomatis memiliki atribut yang diperlukan untuk beban kerja Anda.
-
Konfigurasi yang disederhanakan — Untuk menentukan beberapa jenis instans secara manual untuk armada, Anda harus membuat penggantian template peluncuran terpisah untuk setiap jenis instans. Namun, dengan pemilihan tipe instans berbasis atribut, untuk menyediakan banyak tipe instans, Anda hanya perlu menentukan atribut instans dalam templat peluncuran atau dalam penimpaan templat peluncuran.
-
Penggunaan otomatis jenis instans baru — Saat Anda menentukan atribut instans daripada tipe instans, armada Anda dapat menggunakan jenis instans generasi yang lebih baru saat dirilis, “pemeriksaan masa depan” konfigurasi armada.
-
Fleksibilitas tipe instans — Saat Anda menentukan atribut instans daripada tipe instans, armada dapat memilih dari berbagai jenis instans untuk meluncurkan Instans Spot, yang mematuhi praktik terbaik Spot tentang fleksibilitas jenis instans.
Topik
Cara kerja pemilihan tipe instans berbasis atribut
Untuk menggunakan pemilihan tipe instans berbasis atribut dalam konfigurasi armada, Anda mengganti daftar tipe instans dengan daftar atribut instans yang dibutuhkan oleh instans Anda. EC2 Fleet atau Spot Fleet akan meluncurkan instans pada semua jenis instans yang tersedia yang memiliki atribut instans yang ditentukan.
Topik
Tipe atribut instans
Ada beberapa atribut instance yang dapat Anda tentukan untuk mengekspresikan persyaratan komputasi Anda, seperti:
-
Jumlah vCPU — Jumlah minimum dan maksimum vCPU per instans.
-
Mem ori — Minimum dan GiBs maksimum memori per instance.
-
Penyimpanan lokal — Apakah menggunakan EBS atau volume penyimpanan instans untuk penyimpanan lokal.
-
Kinerja burstable — Apakah akan menggunakan keluarga instance T, termasuk tipe T4g, T3a, T3, dan T2.
Untuk deskripsi setiap atribut dan nilai default, lihat InstanceRequirements di Refer ensi API Amazon EC2.
Tempat mengonfigurasi pemilihan tipe instans berbasis atribut
Bergantung pada apakah Anda menggunakan konsol atau AWS CLI, Anda dapat menentukan atribut instance untuk pemilihan jenis instans berbasis atribut sebagai berikut:
Di konsol, Anda dapat menentukan atribut instance dalam komponen konfigurasi armada berikut:
-
Dalam templat peluncuran, lalu referensikan templat peluncuran dalam permintaan armada
-
(Hanya Spot Fleet) Dalam permintaan armada
Di dalam AWS CLI, Anda dapat menentukan atribut instance di satu atau semua komponen konfigurasi armada berikut:
-
Dalam templat peluncuran, lalu referensikan templat peluncuran dalam permintaan armada
-
Dalam penimpaan templat peluncuran
Jika Anda menginginkan campuran instans yang menggunakan AMI yang berbeda, Anda dapat menentukan atribut instans dalam banyak penimpaan templat peluncuran. Misalnya, jenis instance yang berbeda dapat menggunakan x86 dan Arm-based prosesor.
-
(Hanya Spot Fleet) Dalam spesifikasi peluncuran
Cara EC2 Fleet atau Spot Fleet menggunakan pemilihan jenis instans berbasis atribut saat menyediakan armada
EC2 Fleet atau Spot Fleet menyediakan armada dengan cara berikut:
-
Ini mengidentifikasi jenis instance yang memiliki atribut yang ditentukan.
-
Ini menggunakan perlindungan harga untuk menentukan jenis instans mana yang akan dikecualikan.
-
Ini menentukan kumpulan kapasitas dari mana ia akan mempertimbangkan untuk meluncurkan instans berdasarkan Wil AWS ayah atau Zona Ketersediaan yang memiliki jenis instans yang cocok.
-
Ini menerapkan strategi alokasi yang ditentukan untuk menentukan dari kumpulan kapasitas mana untuk meluncurkan instans.
Perhatikan bahwa pemilihan jenis instans berbasis atribut tidak memilih kumpulan kapasitas untuk menyediakan armada; itulah tugas strategi Gunakan strategi alokasi untuk menentukan bagaimana EC2 Fleet atau Spot Fleet memenuhi Spot dan kapasitas On-Demand alokasi.
Jika Anda menentukan strategi alokasi, armada akan meluncurkan instance sesuai dengan strategi alokasi yang ditentukan.
-
Untuk Instans Spot, pemilihan jenis instans berbasis atribut mendukung strategi alokasi harga yang dioptimalkan, kapasitas yang dioptimalkan, dan harga terendah. Perhatikan bahwa kami tidak merekomendasikan strategi alokasi Spot harga terendah karena strategi ini memiliki risiko gangguan tertinggi untuk Instans Spot Anda.
-
Untuk On-Demand Instans, pemilihan jenis instans berbasis atribut mendukung strategi alokasi harga terendah.
-
-
Jika tidak ada kapasitas untuk tipe instans dengan atribut instans yang ditentukan, tidak ada instans yang dapat diluncurkan, dan armada akan mengembalikan kesalahan.
Perlindungan harga
Perlindungan harga adalah fitur yang mencegah Armada EC2 atau Armada Spot menggunakan jenis instans yang menurut Anda terlalu mahal meskipun sesuai dengan atribut yang Anda tentukan. Untuk menggunakan perlindungan harga, Anda menetapkan ambang harga. Kemudian, ketika Amazon EC2 memilih jenis instans dengan atribut Anda, itu tidak termasuk jenis instans yang dihargai di atas ambang batas Anda.
Cara Amazon EC2 menghitung ambang harga adalah sebagai berikut:
-
Amazon EC2 pertama-tama mengidentifikasi jenis instans dengan harga terendah dari yang cocok dengan atribut Anda.
-
Amazon EC2 kemudian mengambil nilai (dinyatakan sebagai persentase) yang Anda tentukan untuk parameter perlindungan harga dan mengalikannya dengan harga jenis instans yang diidentifikasi. Hasilnya adalah harga yang digunakan sebagai ambang harga.
Ada ambang harga terpisah untuk On-Demand Instans dan Instans Spot.
Saat Anda membuat armada dengan pemilihan jenis instans berbasis atribut, perlindungan harga diaktifkan secara default. Anda dapat menyimpan nilai default, atau Anda dapat menentukan sendiri.
Anda juga dapat mematikan perlindungan harga. Untuk menunjukkan tidak ada ambang perlindungan harga, tentukan nilai persentase tinggi, seperti999999.
Topik
Cara mengidentifikasi jenis instans dengan harga terendah
Amazon EC2 menentukan harga yang menjadi dasar ambang harga dengan mengidentifikasi jenis instans dengan harga terendah dari yang cocok dengan atribut yang Anda tentukan. Ia melakukan ini dengan cara berikut:
-
Ini pertama melihat jenis instance C, M, atau R generasi saat ini yang cocok dengan atribut Anda. Jika menemukan kecocokan, ia mengidentifikasi jenis instance dengan harga terendah.
-
Jika tidak ada kecocokan, maka akan melihat jenis instance generasi saat ini yang cocok dengan atribut Anda. Jika menemukan kecocokan, ia mengidentifikasi jenis instance dengan harga terendah.
-
Jika tidak ada kecocokan, maka akan melihat jenis instans generasi sebelumnya yang cocok dengan atribut Anda, dan mengidentifikasi jenis instans dengan harga terendah.
On-Demand Perlindungan harga instans
Ambang batas perlindungan harga untuk jenis On-Demand instans dihitung sebagai persentase yang lebih tinggi dari jenis On-Demand instans dengan harga terendah yang diidentifikasi (OnDemandMaxPricePercentageOverLowestPrice). Anda menentukan persentase yang lebih tinggi yang bersedia Anda bayar. Jika Anda tidak menentukan parameter ini, maka nilai default 20 digunakan untuk menghitung ambang perlindungan harga 20% lebih tinggi dari harga yang diidentifikasi.
Misalnya, jika harga On-Demand instans yang diidentifikasi adalah0.4271, dan Anda tent 25 ukan, maka ambang harga 25% lebih tinggi dari0.4271. Hal ini dihitung sebagai berikut:0.4271 * 1.25 =
0.533875. Harga yang dihitung adalah maksimum yang bersedia Anda bayar untuk On-Demand Instans, dan, dalam contoh ini, Amazon EC2 akan mengecualikan semua jenis On-Demand instans yang harganya lebih 0.533875 mahal dari.
Perlindungan harga Instance Spot
Secara default, Amazon EC2 akan secara otomatis menerapkan perlindungan harga Instans Spot yang optimal untuk memilih secara konsisten dari berbagai jenis instans. Anda juga dapat mengatur sendiri perlindungan harga secara manual. Namun, membiarkan Amazon EC2 melakukannya untuk Anda dapat meningkatkan kemungkinan kapasitas Spot Anda terpenuhi.
Anda dapat menentukan perlindungan harga secara manual menggunakan salah satu opsi berikut. Jika Anda mengatur perlindungan harga secara manual, sebaiknya gunakan opsi pertama.
-
Per sentase jenis On-Demand instans dengan harga terendah yang diidentifikasi [
MaxSpotPriceAsPercentageOfOptimalOnDemandPrice]Misalnya, jika harga jenis On-Demand instans yang diidentifikasi adalah
0.4271, dan Anda tent60ukan, maka ambang harga adalah 60% dari0.4271. Hal ini dihitung sebagai berikut:0.4271 * 0.60 = 0.25626. Harga yang dihitung adalah maksimum yang bersedia Anda bayar untuk Instans Spot, dan, dalam contoh ini, Amazon EC2 akan mengecualikan semua jenis instans Spot yang harganya lebih0.25626mahal dari. -
Per sentase lebih tinggi dari jenis instans Spot dengan harga terendah yang diidentifikasi [
SpotMaxPricePercentageOverLowestPrice]Misalnya, jika harga jenis instans Spot yang diidentifikasi adalah
0.1808, dan Anda tent25ukan, maka ambang harga 25% lebih tinggi dari0.1808. Hal ini dihitung sebagai berikut:0.1808 * 1.25 = 0.226. Harga yang dihitung adalah maksimum yang bersedia Anda bayar untuk Instans Spot, dan, dalam contoh ini, Amazon EC2 akan mengecualikan semua jenis instans Spot yang harganya lebih0.266mahal dari. Kami tidak menyarankan menggunakan parameter ini karena harga Spot dapat berfluktuasi, dan oleh karena itu ambang perlindungan harga Anda mungkin juga berfluktuasi.
Tentukan ambang perlindungan harga
Untuk menentukan ambang perlindungan harga menggunakan AWS CLI
Saat membuat Armada EC2 atau Spot Fleet menggunakan AWS CLI, konfigurasikan armada untuk pemilihan jenis instans berbasis atribut, lalu lakukan hal berikut:
-
Untuk menentukan ambang perlindungan harga On-Demand Instans, dalam file konfigurasi JSON, dalam
InstanceRequirementsstruktur, forOnDemandMaxPricePercentageOverLowestPrice, masukkan ambang perlindungan harga sebagai persentase. -
Untuk menentukan ambang perlindungan harga Instance Spot, dalam file konfigurasi JSON, dalam
InstanceRequirementsstruktur, tent ukan salah satu parameter berikut:-
Untuk
MaxSpotPriceAsPercentageOfOptimalOnDemandPrice, masukkan ambang perlindungan harga sebagai persentase. -
Untuk
SpotMaxPricePercentageOverLowestPrice, masukkan ambang perlindungan harga sebagai persentase.
-
Untuk informasi selengkapnya, lihat Membuat Armada EC2 dengan pemilihan tipe instans berbasis atribut atau Buat Armada Spot dengan pemilihan tipe instans berbasis atribut.
(Hanya Spot Fleet) Untuk menentukan ambang perlindungan harga menggunakan konsol
Saat membuat Spot Fleet di konsol, konfigurasikan armada untuk pemilihan jenis instans berbasis atribut, lalu lakukan hal berikut:
-
Untuk menentukan ambang perlindungan harga On-Demand Instans, di bawah atribut instans tambahan, pilih perlindungan On-demand harga, pilih Tam bah atribut, lalu masukkan ambang perlindungan harga sebagai persentase.
-
Untuk menentukan ambang perlindungan harga Instans Spot, atribut instans tambahan, pilih Perlindungan harga spot, pilih Tam bah atribut, pilih nilai dasar yang menjadi dasar harga, lalu masukkan ambang perlindungan harga sebagai persentase.
catatan
Saat membuat armada, jika Anda menyetel TargetCapacityUnitType ke vcpu ataumemory-mib, ambang perlindungan harga diterapkan berdasarkan harga per vCPU atau per memori, bukan harga per instans.
Perlindungan kinerja
Perlindungan kinerja adalah fitur yang memastikan Armada EC2 atau Spot Fleet Anda menggunakan jenis instans yang mirip atau melebihi dasar kinerja yang ditentukan. Untuk menggunakan perlindungan kinerja, Anda menentukan keluarga instance sebagai referensi dasar. Kemampuan keluarga instance yang ditentukan menetapkan tingkat kinerja terendah yang dapat diterima. Saat Amazon EC2 memilih jenis instans untuk armada Anda, Amazon EC2 mempertimbangkan atribut yang Anda tentukan dan dasar kinerja. Jenis instans yang berada di bawah garis dasar kinerja secara otomatis dikecualikan dari pemilihan, bahkan jika mereka cocok dengan atribut yang Anda tentukan lainnya. Ini memastikan bahwa semua jenis instans yang dipilih menawarkan kinerja yang serupa atau lebih baik dari baseline yang ditetapkan oleh keluarga instans yang ditentukan. Amazon EC2 menggunakan baseline ini untuk memandu pemilihan jenis instans, tetapi tidak ada jaminan bahwa jenis instans yang dipilih akan selalu melebihi baseline untuk setiap aplikasi.
Saat ini, fitur ini hanya mendukung kinerja CPU sebagai faktor kinerja dasar. Kinerja CPU dari prosesor CPU keluarga instans tertentu berfungsi sebagai dasar kinerja, memastikan bahwa jenis instans yang dipilih serupa atau melebihi baseline ini. Keluarga instans dengan prosesor CPU yang sama menghasilkan hasil pemfilteran yang sama, bahkan jika kinerja jaringan atau disk mereka berbeda. Misalnya, menentukan salah satu c6in atau c6i sebagai referensi dasar akan menghasilkan hasil pemfilteran berbasis kinerja yang identik karena kedua keluarga instance menggunakan prosesor CPU yang sama.
Keluarga instans yang tidak didukung
Keluarga instance berikut tidak didukung untuk perlindungan kinerja:
-
Tujuan umum: Mac1 | Mac2 | | Mac2-m1ultra | Mac2-m2 | M1 Mac2-m2pro | M2 | T1
-
Komputasi dioptimalkan: C1
-
Memori dioptimalkan: U-3tb1 | U-6tb1 | U-9tb1 | | U-12tb1 U-18tb1 | u-24tb1 | | | | U7i-12tb U7in-16tb U7in-24tb U7in-32tb
-
Komputasi yang dipercepat: G3 | G3s | P3dN | P4d | P5
-
High-performance komputasi: HPC7g
Jika Anda mengaktifkan perlindungan kinerja dengan menentukan keluarga instans yang didukung, jenis instans yang dikembalikan akan mengecualikan keluarga instans yang tidak didukung di atas.
Jika Anda menentukan keluarga instans yang tidak didukung sebagai nilai untuk kinerja dasar, API mengembalikan respons kosong untuk GetInstanceTypesFromInstanceRequirements dan pengecualian untuk CreateFleet,, RequestSpotFleet ModifyFleet, dan ModifySpotFleetRequest.
Contoh: Menetapkan baseline kinerja CPU
Dalam contoh berikut, persyaratan instans adalah meluncurkan dengan tipe instance yang memiliki inti CPU yang berkinerja sama dengan keluarga c6i instance. Ini akan menyaring jenis instans dengan prosesor CPU yang kurang berkinerja, bahkan jika mereka memenuhi persyaratan instans tertentu lainnya seperti jumlah vCPU. Misalnya, jika atribut instans yang Anda tentukan menyertakan 4 vCPU dan memori 16 GB, jenis instans dengan atribut ini tetapi dengan kinerja CPU yang lebih rendah daripada c6i akan dikecualikan dari pemilihan.
"BaselinePerformanceFactors": { "Cpu": { "References": [ { "InstanceFamily": "c6i" } ] }
Pertimbangan-pertimbangan
-
Anda dapat menentukan jenis instans atau atribut instans di Armada EC2 atau Spot Fleet, tetapi tidak keduanya secara bersamaan.
Saat menggunakan CLI, penimpaan templat peluncuran akan menimpa templat peluncuran. Misalnya, jika templat peluncuran berisi tipe instans dan penimpaan templat peluncuran berisi atribut instans, instans yang diidentifikasi oleh atribut instans akan menimpa tipe instans dalam templat peluncuran.
-
Saat menggunakan CLI, saat Anda menentukan atribut instans sebagai penimpaan, Anda juga tidak dapat menentukan bobot atau prioritas.
-
Anda dapat menentukan maksimum empat struktur
InstanceRequirementsdalam konfigurasi permintaan.
Membuat Armada EC2 dengan pemilihan tipe instans berbasis atribut
Anda dapat mengonfigurasi Armada EC2 untuk menggunakan pemilihan jenis instans berbasis atribut. Tidak mungkin membuat Armada EC2 menggunakan konsol Amazon EC2.
Atribut untuk pemilihan tipe instans berbasis atribut ditentukan dalam struktur InstanceRequirements. Ketika InstanceRequirements disertakan dalam konfigurasi armada, InstanceType dan WeightedCapacity harus dikecualikan; mereka tidak dapat menentukan konfigurasi armada pada saat yang sama dengan atribut instance.
Dalam PowerShell contoh AWS CLI dan, atribut berikut ditentukan:
-
VCpuCount- Minimal 2 vCPU dan maksimal 4 vCPU. Jika Anda tidak memerlukan batas maksimum, Anda dapat menghilangkan nilai maksimum. -
MemoryMiB- Minimal 8 GiB memori dan maksimum 16 GiB. Jika Anda tidak memerlukan batas maksimum, Anda dapat menghilangkan nilai maksimum.
Konfigurasi ini mengidentifikasi semua jenis instance dengan 2 hingga 4 vCPU dan 8 hingga 16 GiB memori. Namun, perlindungan harga dan strategi alokasi mungkin akan mengecualikan beberapa tipe instans jika Armada EC2 menyediakan armada.
Buat Armada Spot dengan pemilihan tipe instans berbasis atribut
penting
Spot Fleet menggunakan API lama tanpa investasi yang direncanakan. Sebaiknya gunakan EC2 Fleet atau grup Auto Scaling sebagai gantinya. Untuk informasi selengkapnya, lihat Metode armada mana yang terbaik untuk digunakan?.
Anda dapat mengonfigurasi armada untuk menggunakan pemilihan jenis instans berbasis atribut.
Atribut untuk pemilihan tipe instans berbasis atribut ditentukan dalam struktur InstanceRequirements. Ketika InstanceRequirements disertakan dalam konfigurasi armada, InstanceType dan WeightedCapacity harus dikecualikan; mereka tidak dapat menentukan konfigurasi armada pada saat yang sama dengan atribut instance.
Dalam PowerShell contoh AWS CLI dan, atribut berikut ditentukan:
-
VCpuCount- Minimal 2 vCPU dan maksimal 4 vCPU. Jika Anda tidak memerlukan batas maksimum, Anda dapat menghilangkan nilai maksimum. -
MemoryMiB- Minimal 8 GiB memori dan maksimum 16 GiB. Jika Anda tidak memerlukan batas maksimum, Anda dapat menghilangkan nilai maksimum.
Konfigurasi ini mengidentifikasi setiap jenis instance yang memiliki 2 hingga 4 vCPU dan 8 hingga 16 GiB memori. Namun, perlindungan harga dan strategi alokasi mungkin akan mengecualikan beberapa tipe instans jika Armada Spot menyediakan armada.
Contoh konfigurasi Armada EC2 yang valid dan tidak valid
Jika Anda menggunakan AWS CLI untuk membuat Armada EC2, Anda harus memastikan bahwa konfigurasi armada Anda valid. Contoh berikut menunjukkan konfigurasi yang valid dan tidak valid.
Konfigurasi dianggap tidak valid jika berisi hal berikut:
-
Struktur
Overridestunggal denganInstanceRequirementsmaupunInstanceType -
Dua struktur
Overrides, satu denganInstanceRequirementsdan yang lainnya denganInstanceType -
Dua struktur
InstanceRequirementsdengan nilai atribut yang tumpang tindih dalamLaunchTemplateSpecificationyang sama
Contoh konfigurasi
Konfigurasi yang valid: Templat peluncuran tunggal dengan penimpaan
Konfigurasi yang valid: Template peluncuran tunggal dengan beberapa InstanceRequirements
Konfigurasi yang valid: Dua templat peluncuran, masing-masing dengan penimpaan
Konfigurasi tidak valid: Override berisi dan InstanceRequirements InstanceType
Konfigurasi tidak valid: Dua Override berisi dan InstanceRequirements InstanceType
Konfigurasi yang valid: Templat peluncuran tunggal dengan penimpaan
Konfigurasi berikut ini valid. Konfigurasi ini berisi satu templat peluncuran dan satu struktur Overrides yang berisi satu struktur InstanceRequirements. Berikut ini adalah penjelasan teks mengenai contoh konfigurasi.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "My-launch-template", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 2, "Max": 8 }, "MemoryMib": { "Min": 0, "Max": 10240 }, "MemoryGiBPerVCpu": { "Max": 10000 }, "RequireHibernateSupport": true } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 5000, "DefaultTargetCapacityType": "spot", "TargetCapacityUnitType": "vcpu" } } }
InstanceRequirements
Untuk menggunakan pemilihan instans berbasis atribut, Anda harus menyertakan struktur InstanceRequirements dalam konfigurasi armada, dan menentukan atribut yang diinginkan untuk instans tersebut di armada.
Pada contoh sebelumnya, atribut instans berikut ini ditentukan:
-
VCpuCount– Tipe instans harus memiliki minimum 2 dan maksimum 8 vCPU. -
MemoryMiB– Tipe instans harus memiliki memori maksimum 10240 MiB. Minimum 0 menunjukkan bahwa tidak ada batas minimum. -
MemoryGiBPerVCpu– Tipe instans harus memiliki memori maksimum 10.000 GiB per vCPU. ParameterMinbersifat opsional. Dengan menghilangkannya, Anda mengindikasikan tidak ada batas minimum.
TargetCapacityUnitType
Parameter TargetCapacityUnitType menentukan unit untuk kapasitas target. Dalam contoh, kapasitas targetnya adalah 5000 dan tipe unit kapasitas targetnya adalah vcpu, yang bersama-sama menentukan kapasitas target yang diinginkan sebesar 5.000 vCPU. Armada EC2 akan meluncurkan instans yang cukup sehingga jumlah total vCPU dalam armada adalah 5.000 vCPU.
Konfigurasi yang valid: Template peluncuran tunggal dengan beberapa InstanceRequirements
Konfigurasi berikut ini valid. Konfigurasi ini berisi satu templat peluncuran dan satu struktur Overrides yang berisi dua struktur InstanceRequirements. Atribut yang ditentukan di InstanceRequirements valid karena nilainya tidak tumpang tindih—InstanceRequirements struktur pertama menentukan VCpuCount 0-2 vCPU, sedangkan struktur InstanceRequirements kedua menentukan 4-8 vCPU.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } }, { "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 8 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }
Konfigurasi yang valid: Dua templat peluncuran, masing-masing dengan penimpaan
Konfigurasi berikut ini valid. Konfigurasi ini berisi dua templat peluncuran, masing-masing dengan satu struktur Overrides yang berisi satu struktur InstanceRequirements. Konfigurasi ini berguna untuk dukungan arsitektur arm dan x86 dalam armada yang sama.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "armLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } }, { "LaunchTemplateSpecification": { "LaunchTemplateName": "x86LaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }
Konfigurasi yang valid: Hanya InstanceRequirements yang ditentukan, tidak ada nilai atribut yang tumpang tindih
Konfigurasi berikut ini valid. Konfigurasi ini berisi dua struktur LaunchTemplateSpecification, masing-masing dengan templat peluncuran dan struktur Overrides yang berisi struktur InstanceRequirements. Atribut yang ditentukan di InstanceRequirements valid karena nilainya tidak tumpang tindih—InstanceRequirements struktur pertama menentukan VCpuCount 0-2 vCPU, sedangkan struktur InstanceRequirements kedua menentukan 4-8 vCPU.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } } ] }, { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyOtherLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 8 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }
Konfigurasi tidak valid: Override berisi dan InstanceRequirements InstanceType
Konfigurasi berikut ini tidak valid. Struktur Overrides berisi InstanceRequirements danInstanceType. Untuk Overrides, Anda dapat menentukan antara InstanceRequirements atau InstanceType, tetapi tidak keduanya.
{
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
},
{
"InstanceType": "m5.large"
}
]
}
],
"TargetCapacitySpecification": {
"TotalTargetCapacity": 1,
"DefaultTargetCapacityType": "spot"
}
}
}
Konfigurasi tidak valid: Dua Override berisi dan InstanceRequirements InstanceType
Konfigurasi berikut ini tidak valid. Struktur Overrides berisi InstanceRequirements danInstanceType. Anda dapat menentukan antara InstanceRequirements atau InstanceType, tetapi tidak keduanya, meskipun berada dalam struktur Overrides yang berbeda.
{
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
}
]
},
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyOtherLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceType": "m5.large"
}
]
}
],
"TargetCapacitySpecification": {
"TotalTargetCapacity": 1,
"DefaultTargetCapacityType": "spot"
}
}
}
Konfigurasi tidak valid: Nilai atribut tumpang tindih
Konfigurasi berikut ini tidak valid. Dua struktur InstanceRequirements masing-masing berisi "VCpuCount":
{"Min": 0, "Max": 2}. Nilai untuk atribut ini tumpang tindih, yang akan mengakibatkan kolam kapasitas ganda.
{
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
},
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
}
}
]
}
],
"TargetCapacitySpecification": {
"TotalTargetCapacity": 1,
"DefaultTargetCapacityType": "spot"
}
}
}
Contoh konfigurasi Spot Fleet yang valid dan tidak valid
Jika Anda menggunakan AWS CLI untuk membuat Spot Fleet, Anda harus memastikan bahwa konfigurasi armada Anda valid. Contoh berikut menunjukkan konfigurasi yang valid dan tidak valid.
Konfigurasi dianggap tidak valid jika berisi hal berikut:
-
Struktur
Overridestunggal denganInstanceRequirementsmaupunInstanceType -
Dua struktur
Overrides, satu denganInstanceRequirementsdan yang lainnya denganInstanceType -
Dua struktur
InstanceRequirementsdengan nilai atribut yang tumpang tindih dalamLaunchTemplateSpecificationyang sama
Contoh konfigurasi
Konfigurasi yang valid: Templat peluncuran tunggal dengan penimpaan
Konfigurasi yang valid: Template peluncuran tunggal dengan beberapa InstanceRequirements
Konfigurasi yang valid: Dua templat peluncuran, masing-masing dengan penimpaan
Konfigurasi tidak valid: Override berisi dan InstanceRequirements InstanceType
Konfigurasi tidak valid: Dua Override berisi dan InstanceRequirements InstanceType
Konfigurasi yang valid: Templat peluncuran tunggal dengan penimpaan
Konfigurasi berikut ini valid. Konfigurasi ini berisi satu templat peluncuran dan satu struktur Overrides yang berisi satu struktur InstanceRequirements. Berikut ini adalah penjelasan teks mengenai contoh konfigurasi.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "My-launch-template", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 2, "Max": 8 }, "MemoryMib": { "Min": 0, "Max": 10240 }, "MemoryGiBPerVCpu": { "Max": 10000 }, "RequireHibernateSupport": true } } ] } ], "TargetCapacity": 5000, "OnDemandTargetCapacity": 0, "TargetCapacityUnitType": "vcpu" } }
InstanceRequirements
Untuk menggunakan pemilihan instans berbasis atribut, Anda harus menyertakan struktur InstanceRequirements dalam konfigurasi armada, dan menentukan atribut yang diinginkan untuk instans tersebut di armada.
Pada contoh sebelumnya, atribut instans berikut ini ditentukan:
-
VCpuCount– Tipe instans harus memiliki minimum 2 dan maksimum 8 vCPU. -
MemoryMiB– Tipe instans harus memiliki memori maksimum 10240 MiB. Minimum 0 menunjukkan bahwa tidak ada batas minimum. -
MemoryGiBPerVCpu– Tipe instans harus memiliki memori maksimum 10.000 GiB per vCPU. ParameterMinbersifat opsional. Dengan menghilangkannya, Anda mengindikasikan tidak ada batas minimum.
TargetCapacityUnitType
Parameter TargetCapacityUnitType menentukan unit untuk kapasitas target. Dalam contoh, kapasitas targetnya adalah 5000 dan tipe unit kapasitas targetnya adalah vcpu, yang bersama-sama menentukan kapasitas target yang diinginkan sebesar 5.000 vCPU. Armada Spot akan meluncurkan instans yang cukup sehingga jumlah total vCPU dalam armada adalah 5.000 vCPU.
Konfigurasi yang valid: Template peluncuran tunggal dengan beberapa InstanceRequirements
Konfigurasi berikut ini valid. Konfigurasi ini berisi satu templat peluncuran dan satu struktur Overrides yang berisi dua struktur InstanceRequirements. Atribut yang ditentukan di InstanceRequirements valid karena nilainya tidak tumpang tindih—InstanceRequirements struktur pertama menentukan VCpuCount 0-2 vCPU, sedangkan struktur InstanceRequirements kedua menentukan 4-8 vCPU.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } }, { "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 8 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacity": 1, "OnDemandTargetCapacity": 0, "Type": "maintain" } }
Konfigurasi yang valid: Dua templat peluncuran, masing-masing dengan penimpaan
Konfigurasi berikut ini valid. Konfigurasi ini berisi dua templat peluncuran, masing-masing dengan satu struktur Overrides yang berisi satu struktur InstanceRequirements. Konfigurasi ini berguna untuk dukungan arsitektur arm dan x86 dalam armada yang sama.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "armLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } }, { "LaunchTemplateSpecification": { "LaunchTemplateName": "x86LaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacity": 1, "OnDemandTargetCapacity": 0, "Type": "maintain" } }
Konfigurasi yang valid: Hanya InstanceRequirements yang ditentukan, tidak ada nilai atribut yang tumpang tindih
Konfigurasi berikut ini valid. Konfigurasi ini berisi dua struktur LaunchTemplateSpecification, masing-masing dengan templat peluncuran dan struktur Overrides yang berisi struktur InstanceRequirements. Atribut yang ditentukan di InstanceRequirements valid karena nilainya tidak tumpang tindih—InstanceRequirements struktur pertama menentukan VCpuCount 0-2 vCPU, sedangkan struktur InstanceRequirements kedua menentukan 4-8 vCPU.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } } ] }, { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyOtherLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 8 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacity": 1, "OnDemandTargetCapacity": 0, "Type": "maintain" } }
Konfigurasi tidak valid: Override berisi dan InstanceRequirements InstanceType
Konfigurasi berikut ini tidak valid. Struktur Overrides berisi InstanceRequirements danInstanceType. Untuk Overrides, Anda dapat menentukan antara InstanceRequirements atau InstanceType, tetapi tidak keduanya.
{
"SpotFleetRequestConfig": {
"AllocationStrategy": "priceCapacityOptimized",
"ExcessCapacityTerminationPolicy": "default",
"IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
},
{
"InstanceType": "m5.large"
}
]
}
],
"TargetCapacity": 1,
"OnDemandTargetCapacity": 0,
"Type": "maintain"
}
}
Konfigurasi tidak valid: Dua Override berisi dan InstanceRequirements InstanceType
Konfigurasi berikut ini tidak valid. Struktur Overrides berisi InstanceRequirements danInstanceType. Anda dapat menentukan antara InstanceRequirements atau InstanceType, tetapi tidak keduanya, meskipun berada dalam struktur Overrides yang berbeda.
{
"SpotFleetRequestConfig": {
"AllocationStrategy": "priceCapacityOptimized",
"ExcessCapacityTerminationPolicy": "default",
"IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
}
]
},
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyOtherLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceType": "m5.large"
}
]
}
],
"TargetCapacity": 1,
"OnDemandTargetCapacity": 0,
"Type": "maintain"
}
}
Konfigurasi tidak valid: Nilai atribut tumpang tindih
Konfigurasi berikut ini tidak valid. Dua struktur InstanceRequirements masing-masing berisi "VCpuCount":
{"Min": 0, "Max": 2}. Nilai untuk atribut ini tumpang tindih, yang akan mengakibatkan kolam kapasitas ganda.
{
"SpotFleetRequestConfig": {
"AllocationStrategy": "priceCapacityOptimized",
"ExcessCapacityTerminationPolicy": "default",
"IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
},
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
}
}
]
}
],
"TargetCapacity": 1,
"OnDemandTargetCapacity": 0,
"Type": "maintain"
}
}
Melihat pratinjau tipe instans dengan atribut tertentu
Anda dapat menggunakan perintah get-instance-types-from-instance-requirements untuk melihat pratinjau jenis instance yang cocok dengan atribut yang Anda tentukan. Hal ini sangat berguna untuk mengetahui atribut yang akan ditentukan dalam konfigurasi permintaan Anda tanpa meluncurkan instans apa pun. Perhatikan bahwa perintah tidak mempertimbangkan kapasitas yang tersedia.
Untuk melihat daftar jenis instance dengan menentukan atribut menggunakan AWS CLI
-
(Opsional) Untuk menghasilkan semua kemungkinan atribut yang dapat ditentukan, gunakan perintah get-instance-types-from-instance-requirements dan parameter
--generate-cli-skeleton. Anda dapat secara opsional mengarahkan output ke file untuk menyimpannya dengan menggunakaninput >.attributes.jsonaws ec2 get-instance-types-from-instance-requirements \ --region us-east-1 \ --generate-cli-skeleton input >attributes.jsonOutput yang diharapkan
{ "DryRun": true, "ArchitectureTypes": [ "i386" ], "VirtualizationTypes": [ "hvm" ], "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 0 }, "MemoryMiB": { "Min": 0, "Max": 0 }, "CpuManufacturers": [ "intel" ], "MemoryGiBPerVCpu": { "Min": 0.0, "Max": 0.0 }, "ExcludedInstanceTypes": [ "" ], "InstanceGenerations": [ "current" ], "SpotMaxPricePercentageOverLowestPrice": 0, "OnDemandMaxPricePercentageOverLowestPrice": 0, "BareMetal": "included", "BurstablePerformance": "included", "RequireHibernateSupport": true, "NetworkInterfaceCount": { "Min": 0, "Max": 0 }, "LocalStorage": "included", "LocalStorageTypes": [ "hdd" ], "TotalLocalStorageGB": { "Min": 0.0, "Max": 0.0 }, "BaselineEbsBandwidthMbps": { "Min": 0, "Max": 0 }, "AcceleratorTypes": [ "gpu" ], "AcceleratorCount": { "Min": 0, "Max": 0 }, "AcceleratorManufacturers": [ "nvidia" ], "AcceleratorNames": [ "a100" ], "AcceleratorTotalMemoryMiB": { "Min": 0, "Max": 0 }, "NetworkBandwidthGbps": { "Min": 0.0, "Max": 0.0 }, "AllowedInstanceTypes": [ "" ] }, "MaxResults": 0, "NextToken": "" } -
Buat file konfigurasi JSON menggunakan output dari langkah sebelumnya, dan konfigurasikan sebagai berikut:
catatan
Anda harus memberikan nilai untuk
ArchitectureTypes,VirtualizationTypes,VCpuCount, danMemoryMiB. Anda dapat menghilangkan atribut lainnya; saat dihilangkan, nilai default digunakan.Untuk deskripsi setiap atribut dan nilai defaultnya, lihat get- instance-types-from-instance-requirements.
-
Untuk
ArchitectureTypes, tentukan satu atau lebih tipe arsitektur prosesor. -
Untuk
VirtualizationTypes, tentukan satu atau lebih tipe virtualisasi. -
Untuk
VCpuCount, tentukan jumlah minimum dan maksimum vCPU. Untuk menentukan tidak ada batas minimum, untukMin, tentukan0. Untuk menentukan tidak ada batas maksimum, hilangkan parameterMax. -
Untuk
MemoryMiB, tentukan jumlah memori minimum dan maksimum dalam MiB. Untuk menentukan tidak ada batas minimum, untukMin, tentukan0. Untuk menentukan tidak ada batas maksimum, hilangkan parameterMax. -
Anda dapat secara opsional menentukan satu atau lebih atribut lainnya untuk lebih membatasi daftar tipe instans yang dikembalikan.
-
-
Untuk melihat pratinjau tipe instans yang memiliki atribut yang Anda tentukan dalam file JSON, gunakan perintah get-instance-types-from-instance-requirements, dan tentukan nama serta jalur ke file JSON Anda dengan menggunakan parameter
--cli-input-json. Anda dapat secara opsional memformat output untuk muncul dalam format tabel.aws ec2 get-instance-types-from-instance-requirements \ --cli-input-json file://attributes.json\ --output tableContoh file
attributes.jsonDalam contoh ini, atribut yang diperlukan disertakan dalam file JSON. Atribut tersebut adalah
ArchitectureTypes,VirtualizationTypes,VCpuCount, danMemoryMiB. Selain itu, atributInstanceGenerationsopsional juga disertakan. Perhatikan bahwa untukMemoryMiB, nilaiMaxdapat dihilangkan untuk menunjukkan bahwa tidak ada batasan.{ "ArchitectureTypes": [ "x86_64" ], "VirtualizationTypes": [ "hvm" ], "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 6 }, "MemoryMiB": { "Min": 2048 }, "InstanceGenerations": [ "current" ] } }Contoh output
------------------------------------------ |GetInstanceTypesFromInstanceRequirements| +----------------------------------------+ || InstanceTypes || |+--------------------------------------+| || InstanceType || |+--------------------------------------+| || c4.xlarge || || c5.xlarge || || c5a.xlarge || || c5ad.xlarge || || c5d.xlarge || || c5n.xlarge || || d2.xlarge || ... -
Setelah mengidentifikasi tipe instans yang memenuhi kebutuhan Anda, catatlah atribut instans yang Anda gunakan sehingga Anda dapat menggunakannya saat mengonfigurasi permintaan armada.