Tentukan atribut untuk pemilihan jenis contoh untuk EC2 Armada atau Armada Spot - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tentukan atribut untuk pemilihan jenis contoh untuk EC2 Armada atau Armada Spot

Saat membuat EC2 Armada atau Armada Spot, Anda harus menentukan satu atau beberapa jenis instans untuk mengonfigurasi Instans Sesuai Permintaan dan Instans Spot di armada. Sebagai alternatif untuk menentukan jenis instance secara manual, Anda dapat menentukan atribut yang harus dimiliki instance, dan Amazon EC2 akan mengidentifikasi semua jenis instance dengan atribut tersebut. Hal ini dikenal sebagai pemilihan tipe instans berbasis atribut. Misalnya, Anda dapat menentukan jumlah minimum dan maksimum yang vCPUs diperlukan untuk instans Anda, dan armada akan meluncurkan instans menggunakan jenis instans yang tersedia yang memenuhi persyaratan v CPU tersebut.

Pemilihan tipe instans berbasis atribut sangat ideal untuk beban kerja dan kerangka kerja yang fleksibel dalam menentukan tipe instans yang digunakan, seperti ketika menjalankan kontainer atau armada web, memproses big data, dan mengimplementasikan alat integrasi dan deployment berkelanjutan (CI/CD).

Keuntungan

Pemilihan tipe instans berbasis atribut memiliki keuntungan berikut:

  • Mudah menggunakan jenis instans yang tepat — 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 instance 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 tipe instans baru — Saat Anda menentukan atribut instance daripada tipe instans, armada Anda dapat menggunakan tipe instance generasi yang lebih baru saat dirilis, “pemeriksaan masa depan” konfigurasi armada.

  • Fleksibilitas tipe instans — Saat Anda menentukan atribut instance daripada tipe instans, armada dapat memilih dari berbagai jenis instans untuk meluncurkan Instans Spot, yang mengikuti praktik terbaik Spot dari fleksibilitas tipe instans.

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. EC2Armada atau Armada Spot akan meluncurkan instans pada setiap jenis instans yang tersedia yang memiliki atribut instance tertentu.

Tipe atribut instans

Ada beberapa atribut instance yang dapat Anda tentukan untuk mengekspresikan persyaratan komputasi Anda, seperti:

  • v CPU count — Jumlah minimum dan maksimum vCPUs per instance.

  • Memori — Minimum dan GiBs maksimum memori per instance.

  • Penyimpanan lokal — Apakah akan menggunakan EBS atau volume penyimpanan instance untuk penyimpanan lokal.

  • Kinerja burstable — Apakah akan menggunakan keluarga instans T, termasuk tipe T4G, T3a, T3, dan T2.

Untuk deskripsi setiap atribut dan nilai default, lihat InstanceRequirementsdi EC2APIReferensi Amazon.

Tempat mengonfigurasi pemilihan tipe instans berbasis atribut

Bergantung pada apakah Anda menggunakan konsol atau konsol 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 Armada Spot) Dalam permintaan armada

Dalam AWS CLI, Anda dapat menentukan atribut instance dalam 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 instance yang menggunakan berbedaAMIs, Anda dapat menentukan atribut instance dalam beberapa penggantian template peluncuran. Misalnya, tipe instans yang berbeda dapat menggunakan prosesor berbasis x86 dan Arm.

  • (Hanya Armada Spot) Dalam spesifikasi peluncuran

Bagaimana EC2 Armada atau Armada Spot menggunakan pemilihan tipe instans berbasis atribut saat menyediakan armada

EC2Armada atau Armada Spot menyediakan armada dengan cara berikut:

  • Ini mengidentifikasi jenis instance yang memiliki atribut tertentu.

  • Ini menggunakan perlindungan harga untuk menentukan jenis instance mana yang akan dikecualikan.

  • Ini menentukan kumpulan kapasitas dari mana ia akan mempertimbangkan untuk meluncurkan instance berdasarkan AWS Wilayah atau Zona Ketersediaan yang memiliki jenis instans yang cocok.

  • Ini menerapkan strategi alokasi yang ditentukan untuk menentukan dari kumpulan kapasitas mana untuk meluncurkan instance.

    Perhatikan bahwa pemilihan jenis instans berbasis atribut tidak memilih kumpulan kapasitas untuk menyediakan armada; itulah tugas strategi 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 kapasitas harga yang dioptimalkan, dioptimalkan kapasitas, dan strategi alokasi harga terendah. Perhatikan bahwa kami tidak merekomendasikan strategi alokasi Spot harga terendah karena memiliki risiko interupsi tertinggi untuk Instans Spot Anda.

    • Untuk Instans Sesuai Permintaan, 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 EC2 Armada atau Armada Spot Anda menggunakan jenis instans yang Anda anggap terlalu mahal meskipun sesuai dengan atribut yang Anda tentukan. Untuk menggunakan perlindungan harga, Anda menetapkan ambang harga. Kemudian, saat Amazon EC2 memilih jenis instans dengan atribut Anda, Amazon mengecualikan jenis instance dengan harga 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 Instans On-Demand 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.

Bagaimana jenis instans dengan harga terendah diidentifikasi

Amazon EC2 menentukan harga untuk mendasarkan 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 kali melihat jenis instance C, M, atau R generasi saat ini yang cocok dengan atribut Anda. Jika menemukan kecocokan, itu mengidentifikasi jenis instance dengan harga terendah.

  • Jika tidak ada kecocokan, maka akan terlihat jenis instance generasi saat ini yang cocok dengan atribut Anda. Jika menemukan kecocokan, itu mengidentifikasi jenis instance dengan harga terendah.

  • Jika tidak ada kecocokan, maka akan melihat jenis instance generasi sebelumnya yang cocok dengan atribut Anda, dan mengidentifikasi jenis instance dengan harga terendah.

Perlindungan harga Instans Sesuai Permintaan

Ambang batas perlindungan harga untuk jenis instans On-Demand dihitung sebagai persentase yang lebih tinggi daripada jenis instans On-Demand 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 instans On-Demand yang teridentifikasi adalah0.4271, dan Anda tentukan25, maka ambang harga 25% lebih tinggi dari0.4271. Itu dihitung sebagai berikut:0.4271 * 1.25 = 0.533875. Harga yang dihitung adalah maksimum yang bersedia Anda bayarkan untuk Instans Sesuai Permintaan, dan, dalam contoh ini, Amazon EC2 akan mengecualikan jenis instans On-Demand yang harganya lebih dari. 0.533875

Perlindungan harga Spot Instance

Secara default, Amazon EC2 akan secara otomatis menerapkan perlindungan harga Instans Spot yang optimal untuk secara konsisten memilih 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 secara manual mengatur perlindungan harga, kami sarankan menggunakan opsi pertama.

  • Persentase dari jenis instans On-Demand dengan harga terendah yang diidentifikasi [] MaxSpotPriceAsPercentageOfOptimalOnDemandPrice

    Misalnya, jika harga jenis instans On-Demand yang diidentifikasi adalah0.4271, dan Anda tentukan60, maka ambang harga adalah 60% dari. 0.4271 Itu dihitung sebagai berikut:0.4271 * 0.60 = 0.25626. Harga yang dihitung adalah maksimum yang bersedia Anda bayarkan untuk Instans Spot, dan, dalam contoh ini, Amazon EC2 akan mengecualikan jenis instans Spot apa pun yang harganya lebih dari0.25626.

  • Persentase lebih tinggi dari jenis instans Spot dengan harga terendah yang diidentifikasi [] SpotMaxPricePercentageOverLowestPrice

    Misalnya, jika harga jenis instans Spot yang diidentifikasi adalah0.1808, dan Anda tentukan25, maka ambang harga 25% lebih tinggi dari harga0.1808. Itu dihitung sebagai berikut:0.1808 * 1.25 = 0.226. Harga yang dihitung adalah maksimum yang bersedia Anda bayarkan untuk Instans Spot, dan, dalam contoh ini, Amazon EC2 akan mengecualikan jenis instans Spot apa pun yang harganya lebih dari0.266. Kami tidak menyarankan menggunakan parameter ini karena harga Spot dapat berfluktuasi, dan oleh karena itu ambang batas perlindungan harga Anda mungkin juga berfluktuasi.

Tentukan ambang batas perlindungan harga

Untuk menentukan ambang perlindungan harga menggunakan AWS CLI

Saat membuat EC2 Armada atau Armada Spot menggunakan AWS CLI, konfigurasikan armada untuk pemilihan jenis instans berbasis atribut, lalu lakukan hal berikut:

  • Untuk menentukan ambang perlindungan harga Instans Sesuai Permintaan, dalam file JSON konfigurasi, dalam InstanceRequirements struktur, untukOnDemandMaxPricePercentageOverLowestPrice, masukkan ambang perlindungan harga sebagai persentase.

  • Untuk menentukan ambang perlindungan harga Instans Spot, dalam file JSON konfigurasi, dalam InstanceRequirements struktur, tentukan salah satu parameter berikut:

    • UntukMaxSpotPriceAsPercentageOfOptimalOnDemandPrice, masukkan ambang perlindungan harga sebagai persentase.

    • UntukSpotMaxPricePercentageOverLowestPrice, masukkan ambang perlindungan harga sebagai persentase.

Untuk informasi selengkapnya, lihat Membuat EC2 Armada dengan pemilihan tipe instans berbasis atribut atau Buat Armada Spot dengan pemilihan tipe instans berbasis atribut.

(Hanya Armada Spot) Untuk menentukan ambang perlindungan harga menggunakan konsol

Saat membuat Armada Spot di konsol, konfigurasikan armada untuk pemilihan jenis instans berbasis atribut, lalu lakukan hal berikut:

  • Untuk menentukan ambang perlindungan harga Instans Sesuai Permintaan, di bawah atribut Instans tambahan, pilih Perlindungan harga sesuai permintaan, pilih Tambah atribut, lalu masukkan ambang perlindungan harga sebagai persentase.

  • Untuk menentukan ambang perlindungan harga Instans Spot, atribut instance tambahan, pilih Perlindungan harga Spot, pilih Tambah atribut, pilih nilai dasar yang menjadi dasar harga Anda, lalu masukkan ambang perlindungan harga sebagai persentase.

catatan

Saat membuat armada, jika Anda menyetel TargetCapacityUnitType ke vcpu ataumemory-mib, ambang batas perlindungan harga diterapkan berdasarkan harga per-v CPU atau per-memori, bukan harga per instans.

Pertimbangan

  • Anda dapat menentukan jenis instans atau atribut instance di EC2 Armada Armada atau Armada Spot, tetapi tidak keduanya pada saat yang bersamaan.

    Saat menggunakanCLI, penggantian template peluncuran akan mengganti template 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 menggunakanCLI, saat Anda menentukan atribut instance sebagai penggantian, Anda juga tidak dapat menentukan bobot atau prioritas.

  • Anda dapat menentukan maksimum empat struktur InstanceRequirements dalam konfigurasi permintaan.

Membuat EC2 Armada dengan pemilihan tipe instans berbasis atribut

Anda dapat mengonfigurasi EC2 Armada untuk menggunakan pemilihan jenis instans berbasis atribut dengan menggunakan. AWS CLI

Untuk membuat EC2 Armada dengan pemilihan tipe instans berbasis atribut ()AWS CLI

Gunakan perintah create-fleet (AWS CLI) untuk membuat Armada. EC2 Tentukan konfigurasi armada dalam JSON file.

aws ec2 create-fleet \ --region us-east-1 \ --cli-input-json file://file_name.json

Contoh file file_name.json

Contoh berikut berisi parameter yang mengkonfigurasi EC2 Armada untuk menggunakan pemilihan tipe instans berbasis atribut, dan diikuti dengan penjelasan teks.

{ "SpotOptions": { "AllocationStrategy": "price-capacity-optimized" }, "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min": 2 }, "MemoryMiB": { "Min": 4 } } }] }], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

Atribut untuk pemilihan tipe instans berbasis atribut ditentukan dalam struktur InstanceRequirements. Dalam contoh ini, dua atribut ditentukan:

  • VCpuCount— Minimal 2 vCPUs ditentukan. Karena tidak ada jumlah maksimum yang ditentukan, maka tidak ada batas maksimum.

  • MemoryMiB – Minimum 4 MiB memori ditentukan. Karena tidak ada jumlah maksimum yang ditentukan, maka tidak ada batas maksimum.

Setiap jenis instance yang memiliki 2 atau lebih vCPUs dan 4 MiB atau lebih memori akan diidentifikasi. Namun, perlindungan harga dan strategi alokasi mungkin mengecualikan beberapa jenis instance ketika EC2Armada menyediakan armada.

Untuk daftar dan deskripsi semua kemungkinan atribut yang dapat Anda tentukan, lihat InstanceRequirementsdi EC2APIReferensi Amazon.

catatan

Jika InstanceRequirements disertakan dalam konfigurasi armada, InstanceType dan WeightedCapacity harus dikecualikan; keduanya tidak dapat menentukan konfigurasi armada pada saat yang sama sebagai atribut instans.

JSONJuga berisi konfigurasi armada berikut:

  • "AllocationStrategy": "price-capacity-optimized" – Strategi alokasi untuk Instans Spot di armada.

  • "LaunchTemplateName": "my-launch-template", "Version": "1" – Templat peluncuran berisi beberapa informasi konfigurasi instans, tetapi jika ada tipe instans yang ditentukan, tipe instans tersebut akan diganti oleh atribut yang ditentukan dalam InstanceRequirements.

  • "TotalTargetCapacity": 20 – Kapasitas target adalah 20 instans.

  • "DefaultTargetCapacityType": "spot" – Kapasitas default adalah Instans Spot.

  • "Type": "instant" – Tipe permintaan untuk armada adalah instant.

Buat Armada Spot dengan pemilihan tipe instans berbasis atribut

Anda dapat mengonfigurasi armada untuk menggunakan pemilihan jenis instans berbasis atribut menggunakan EC2 konsol Amazon atau. AWS CLI

Membuat Armada Spot menggunakan konsol

Guna mengonfigurasi Armada Spot untuk pemilihan tipe instans berbasis atribut (konsol)
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Di panel navigasi, pilih Permintaan Spot, lalu pilih Minta Instans Spot.

  3. Ikuti langkah-langkah ini untuk membuat Armada Spot. Untuk informasi selengkapnya, lihat Buat permintaan Armada Spot menggunakan parameter yang ditentukan (konsol).

    Saat membuat Armada Spot, konfigurasikan armada untuk pemilihan tipe instans berbasis atribut sebagai berikut:

    1. Untuk Persyaratan tipe instans, pilih Tentukan atribut instans yang sesuai dengan persyaratan komputasi Anda.

    2. Untuk vCPUs, masukkan jumlah minimum dan maksimum yang diinginkanvCPUs. Untuk menentukan tanpa batasan, pilih Tanpa minimum, Tanpa maksimum, atau keduanya.

    3. Untuk Memori (GiB), masukkan jumlah memori minimum dan maksimum yang diinginkan. Untuk menentukan tanpa batasan, pilih Tanpa minimum, Tanpa maksimum, atau keduanya.

    4. (Opsional) Untuk atribut instans Tambahan, Anda dapat secara opsional menentukan satu atau lebih atribut untuk mengekspresikan kebutuhan komputasi Anda secara lebih mendetail. Setiap atribut tambahan menambahkan batasan lebih lanjut untuk permintaan Anda.

    5. (Opsional) Perluas Pratinjau tipe instans yang cocok untuk melihat tipe instans yang memiliki atribut yang Anda tentukan.

Membuat Armada Spot menggunakan AWS CLI

Untuk mengonfigurasi Armada Spot guna pemilihan tipe instans berbasis atribut (AWS CLI)

Gunakan perintah request-spot-fleet(AWS CLI) untuk membuat Armada Spot. Tentukan konfigurasi armada dalam JSON file.

aws ec2 request-spot-fleet \ --region us-east-1 \ --spot-fleet-request-config file://file_name.json

Contoh file file_name.json

Contoh berikut ini berisi parameter yang mengonfigurasi Armada Spot untuk menggunakan pemilihan tipe instans berbasis atribut, dan diikuti dengan penjelasan teks.

{ "AllocationStrategy": "priceCapacityOptimized", "TargetCapacity": 20, "Type": "request", "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min": 2 }, "MemoryMiB": { "Min": 4 } } }] }] }

Atribut untuk pemilihan tipe instans berbasis atribut ditentukan dalam struktur InstanceRequirements. Dalam contoh ini, dua atribut ditentukan:

  • VCpuCount— Minimal 2 vCPUs ditentukan. Karena tidak ada jumlah maksimum yang ditentukan, maka tidak ada batas maksimum.

  • MemoryMiB – Minimum 4 MiB memori ditentukan. Karena tidak ada jumlah maksimum yang ditentukan, maka tidak ada batas maksimum.

Setiap jenis instance yang memiliki 2 atau lebih vCPUs dan 4 MiB atau lebih memori akan diidentifikasi. Namun, perlindungan harga dan strategi alokasi mungkin akan mengecualikan beberapa tipe instans jika Armada Spot menyediakan armada.

Untuk daftar dan deskripsi semua kemungkinan atribut yang dapat Anda tentukan, lihat InstanceRequirementsdi EC2APIReferensi Amazon.

catatan

Jika InstanceRequirements disertakan dalam konfigurasi armada, InstanceType dan WeightedCapacity harus dikecualikan; keduanya tidak dapat menentukan konfigurasi armada pada saat yang sama sebagai atribut instans.

JSONJuga berisi konfigurasi armada berikut:

  • "AllocationStrategy": "priceCapacityOptimized" – Strategi alokasi untuk Instans Spot di armada.

  • "LaunchTemplateName": "my-launch-template", "Version": "1" – Templat peluncuran berisi beberapa informasi konfigurasi instans, tetapi jika ada tipe instans yang ditentukan, tipe instans tersebut akan diganti oleh atribut yang ditentukan dalam InstanceRequirements.

  • "TargetCapacity": 20 – Kapasitas target adalah 20 instans.

  • "Type": "request" – Tipe permintaan untuk armada adalah request.

Contoh konfigurasi EC2 Armada yang valid dan tidak valid

Jika Anda menggunakan AWS CLI untuk membuat EC2 Armada, 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 Overrides tunggal dengan InstanceRequirements maupun InstanceType

  • Dua struktur Overrides, satu dengan InstanceRequirements dan yang lainnya dengan InstanceType

  • Dua struktur InstanceRequirements dengan nilai atribut yang tumpang tindih dalam LaunchTemplateSpecification yang sama

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— Jenis instance harus memiliki minimal 2 dan maksimal 8vCPUs.

  • MemoryMiB – Tipe instans harus memiliki memori maksimum 10240 MiB. Minimum 0 menunjukkan bahwa tidak ada batas minimum.

  • MemoryGiBPerVCpuJenis instans harus memiliki maksimum 10.000 GiB memori per v. CPU Parameter Min bersifat opsional. Dengan menghilangkannya, Anda mengindikasikan tidak ada batas minimum.

TargetCapacityUnitType

Parameter TargetCapacityUnitType menentukan unit untuk kapasitas target. Dalam contoh, kapasitas target adalah 5000 dan tipe unit kapasitas target adalahvcpu, yang bersama-sama menentukan kapasitas target yang diinginkan 5.000vCPUs. EC2Armada akan meluncurkan cukup banyak contoh sehingga jumlah total vCPUs armada adalah 5.000vCPUs.

Konfigurasi yang valid: Template peluncuran tunggal dengan banyak InstanceRequirements

Konfigurasi berikut ini valid. Konfigurasi ini berisi satu templat peluncuran dan satu struktur Overrides yang berisi dua struktur InstanceRequirements. Atribut yang InstanceRequirements ditentukan dalam valid karena nilainya tidak tumpang tindih — InstanceRequirements struktur pertama menentukan 0-2vCPUs, sedangkan VCpuCount struktur kedua menentukan 4-8. InstanceRequirements vCPUs

{ "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 InstanceRequirements ditentukan dalam valid karena nilainya tidak tumpang tindih — InstanceRequirements struktur pertama menentukan 0-2vCPUs, sedangkan VCpuCount struktur kedua menentukan 4-8. InstanceRequirements vCPUs

{ "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: Overrides berisi InstanceRequirements dan 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 Overrides berisi InstanceRequirements dan 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 Armada Spot yang valid dan tidak valid

Jika Anda menggunakan AWS CLI untuk membuat Armada Spot, 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 Overrides tunggal dengan InstanceRequirements maupun InstanceType

  • Dua struktur Overrides, satu dengan InstanceRequirements dan yang lainnya dengan InstanceType

  • Dua struktur InstanceRequirements dengan nilai atribut yang tumpang tindih dalam LaunchTemplateSpecification yang sama

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::000000000000: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— Jenis instance harus memiliki minimal 2 dan maksimal 8vCPUs.

  • MemoryMiB – Tipe instans harus memiliki memori maksimum 10240 MiB. Minimum 0 menunjukkan bahwa tidak ada batas minimum.

  • MemoryGiBPerVCpuJenis instans harus memiliki maksimum 10.000 GiB memori per v. CPU Parameter Min bersifat opsional. Dengan menghilangkannya, Anda mengindikasikan tidak ada batas minimum.

TargetCapacityUnitType

Parameter TargetCapacityUnitType menentukan unit untuk kapasitas target. Dalam contoh, kapasitas target adalah 5000 dan tipe unit kapasitas target adalahvcpu, yang bersama-sama menentukan kapasitas target yang diinginkan 5.000vCPUs. Armada Spot akan meluncurkan instance yang cukup sehingga jumlah total vCPUs armada adalah 5.000vCPUs.

Konfigurasi yang valid: Template peluncuran tunggal dengan banyak InstanceRequirements

Konfigurasi berikut ini valid. Konfigurasi ini berisi satu templat peluncuran dan satu struktur Overrides yang berisi dua struktur InstanceRequirements. Atribut yang InstanceRequirements ditentukan dalam valid karena nilainya tidak tumpang tindih — InstanceRequirements struktur pertama menentukan 0-2vCPUs, sedangkan VCpuCount struktur kedua menentukan 4-8. InstanceRequirements vCPUs

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::000000000000: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::000000000000: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 InstanceRequirements ditentukan dalam valid karena nilainya tidak tumpang tindih — InstanceRequirements struktur pertama menentukan 0-2vCPUs, sedangkan VCpuCount struktur kedua menentukan 4-8. InstanceRequirements vCPUs

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::000000000000: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: Overrides berisi InstanceRequirements dan 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::000000000000: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 Overrides berisi InstanceRequirements dan 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::000000000000: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::000000000000: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 AWS CLI 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 tipe instans dengan menentukan atribut menggunakan AWS CLI
  1. (Opsional) Untuk menghasilkan semua atribut yang mungkin 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 menggunakan input > attributes.json.

    aws ec2 get-instance-types-from-instance-requirements \ --region us-east-1 \ --generate-cli-skeleton input > attributes.json

    Output 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": "" }
  2. Buat file JSON konfigurasi menggunakan output dari langkah sebelumnya, dan konfigurasikan sebagai berikut:

    catatan

    Anda harus memberikan nilai untuk ArchitectureTypes, VirtualizationTypes, VCpuCount, dan MemoryMiB. Anda dapat menghilangkan atribut lainnya; saat dihilangkan, nilai default digunakan.

    Untuk deskripsi setiap atribut dan nilai defaultnya, lihat get-instance-types-from-instance-requirements di Referensi Baris Perintah Amazon EC2.

    1. Untuk ArchitectureTypes, tentukan satu atau lebih tipe arsitektur prosesor.

    2. Untuk VirtualizationTypes, tentukan satu atau lebih tipe virtualisasi.

    3. UntukVCpuCount, tentukan jumlah minimum dan maksimumvCPUs. Untuk menentukan tidak ada batas minimum, untuk Min, tentukan 0. Untuk menentukan tidak ada batas maksimum, hilangkan parameter Max.

    4. Untuk MemoryMiB, tentukan jumlah memori minimum dan maksimum dalam MiB. Untuk menentukan tidak ada batas minimum, untuk Min, tentukan 0. Untuk menentukan tidak ada batas maksimum, hilangkan parameter Max.

    5. Anda dapat secara opsional menentukan satu atau lebih atribut lainnya untuk lebih membatasi daftar tipe instans yang dikembalikan.

  3. Untuk melihat pratinjau jenis instance yang memiliki atribut yang Anda tentukan dalam JSON file, gunakan perintah get-instance-types-from-instance-requirements, dan tentukan nama dan path ke JSON file 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 table

    Contoh attributes.json file

    Dalam contoh ini, atribut yang diperlukan disertakan dalam JSON file. Atribut tersebut adalah ArchitectureTypes, VirtualizationTypes, VCpuCount, dan MemoryMiB. Selain itu, atribut InstanceGenerations opsional juga disertakan. Perhatikan bahwa untuk MemoryMiB, nilai Max dapat 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 || ...
  4. Setelah mengidentifikasi tipe instans yang memenuhi kebutuhan Anda, catatlah atribut instans yang Anda gunakan sehingga Anda dapat menggunakannya saat mengonfigurasi permintaan armada.