Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat Armada EC2
Untuk membuat Armada EC2, tentukan konfigurasi armada dalam file JSON dan referensi file dengan perintah create- fleet. Dalam file JSON, Anda harus menentukan kapasitas target total untuk armada, kapasitas target terpisah untuk Instans Spot dan On-Demand Instans, dan template peluncuran yang menentukan konfigurasi untuk instans dalam armada, seperti AMI, jenis instans, subnet atau Zona Ketersediaan, dan satu atau beberapa grup keamanan. Secara opsional, Anda dapat menentukan konfigurasi tambahan, seperti parameter untuk mengganti konfigurasi template peluncuran, strategi alokasi untuk memilih Instans Spot dan On-Demand Instans dari kumpulan kapasitas EC2, dan jumlah maksimum yang bersedia Anda bayar untuk armada tersebut. Untuk informasi selengkapnya, lihat Opsi konfigurasi untuk Armada EC2 atau Spot Fleet.
Armada EC2 meluncurkan On-Demand Instans saat kapasitas tersedia, dan meluncurkan Instans Spot saat harga maksimum melebihi harga Spot dan kapasitas yang tersedia.
Jika armada Anda menyertakan Instans Spot dan jenisnyamaintain, Amazon EC2 akan mencoba mempertahankan kapasitas target armada Anda saat Instans Spot terganggu.
Batasan Armada EC2
Batasan berikut berlaku untuk Armada EC2:
-
Membuat Armada EC2 hanya tersedia melalui Amazon EC2 API,, AWS SDK AWS CLI, dan. CloudFormation
-
Permintaan Armada EC2 tidak dapat menjangkau Wil AWS ayah. Anda perlu membuat Armada EC2 terpisah untuk setiap Wilayah.
-
Permintaan Armada EC2 tidak dapat menjangkau subnet yang berbeda dari Zona Ketersediaan yang sama.
Membuat Armada EC2
Untuk meluncurkan armada instans menggunakan EC2 Fleet, Anda hanya perlu menentukan parameter berikut dalam permintaan armada Anda, dan armada akan menggunakan nilai default untuk parameter lainnya:
-
LaunchTemplateIdatauLaunchTemplateName— Menentukan template peluncuran yang akan digunakan (yang berisi parameter untuk instance yang akan diluncurkan, seperti jenis instans dan Zona Ketersediaan) -
TotalTargetCapacity– Menentukan total kapasitas target untuk armada -
DefaultTargetCapacityType— Menentukan apakah opsi pembelian default adalah On-Demand atau Spot
Untuk mengganti parameter yang ditentukan dalam template peluncuran, Anda dapat menentukan satu atau lebih penggantian. Setiap penggantian dapat bervariasi menurut jenis instans, Zona Ketersediaan, subnet, dan harga maksimum, dan dapat menyertakan kapasitas tertimbang yang berbeda. Sebagai alternatif untuk menentukan jenis instans, Anda dapat menentukan atribut yang harus dimiliki instans, dan Amazon EC2 akan mengidentifikasi semua jenis instans dengan atribut tersebut. Untuk informasi selengkapnya, lihat Tentukan atribut untuk pemilihan tipe instans untuk EC2 Fleet atau Spot Fleet.
Untuk tipe Armada EC2instant, Anda juga dapat mengganti parameter template peluncuran berikut:
-
IamInstanceProfile- Profil instance IAM untuk dikaitkan dengan instance. Untuk informasi selengkapnya, lihat IAM role untuk Amazon EC2. -
KeyName— Nama pasangan kunci yang akan digunakan untuk instance. Untuk informasi selengkapnya, lihat Pasangan kunci Amazon EC2 dan instans Amazon EC2. -
MetadataOptions— Konfigurasi layanan metadata instance untuk instance. Untuk informasi selengkapnya, lihat Menggunakan Layanan Metadata Instance untuk mengakses metadata instance.
Untuk jenis Armada EC2instant, Anda dapat menentukan parameter Manajer Sistem alih-alih ID AMI. Anda dapat menentukan parameter Manajer Sistem di override atau di template peluncuran. Untuk informasi selengkapnya, lihat Gunakan parameter Systems Manager alih-alih ID AMI.
Untuk jenis Armada EC2instant, Anda juga dapat menentukan data pengguna pada tingkat spesifikasi template peluncuran menggunakan parameter. LaunchTemplateSpecificationUserData Dengan parameter ini, Anda dapat memberikan data pengguna yang dikodekan base64 tanpa memasukkannya ke dalam template peluncuran itu sendiri. Data pengguna tidak boleh melebihi 16 KB sebelum pengkodean base64.
Anda dapat menentukan parameter armada dalam file JSON. Untuk informasi tentang semua parameter yang mungkin dapat Anda tentukan, lihatLihat semua opsi konfigurasi Armada EC2.
Untuk contoh konfigurasi armada, lihatContoh konfigurasi CLI untuk Armada EC2.
Saat ini tidak ada dukungan konsol untuk membuat Armada EC2.
Untuk membuat Armada EC2
Gunakan perintah create-fleet untuk membuat armada dan menentukan file JSON yang berisi parameter konfigurasi armada.
aws ec2 create-fleet --cli-input-json file://file_name.json
Berikut adalah contoh output untuk armada tipe request atau maintain.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE"
}
Berikut adalah contoh output untuk tipe armada instant yang meluncurkan kapasitas target.
Respons mencakup ID Zona Ketersediaan, nama Zona Ketersediaan, dan ID subnet untuk setiap set instans yang diluncurkan.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
"Errors": [],
"Instances": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c5.large",
"AvailabilityZone": "us-east-1a"
}
},
"Lifecycle": "on-demand",
"InstanceIds": [
"i-1234567890abcdef0",
"i-9876543210abcdef9"
],
"InstanceType": "c5.large",
"Platform": null,
"AvailabilityZoneId": "use1-az1",
"AvailabilityZone": "us-east-1a",
"SubnetId": "subnet-0123456789abcdefEXAMPLE"
},
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c4.large",
"AvailabilityZone": "us-east-1a"
}
},
"Lifecycle": "on-demand",
"InstanceIds": [
"i-5678901234abcdef0",
"i-5432109876abcdef9"
],
"AvailabilityZoneId": "use1-az1",
"AvailabilityZone": "us-east-1a",
"SubnetId": "subnet-0123456789abcdefEXAMPLE"
}
]
}
Berikut adalah contoh output untuk armada tipe instant yang meluncurkan sebagian kapasitas target dengan kesalahan untuk instans yang tidak diluncurkan.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
"Errors": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c4.xlarge",
"AvailabilityZone": "us-east-1a",
}
},
"Lifecycle": "on-demand",
"ErrorCode": "InsufficientInstanceCapacity",
"ErrorMessage": ""
},
],
"Instances": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c5.large",
"AvailabilityZone": "us-east-1a"
}
},
"Lifecycle": "on-demand",
"InstanceIds": [
"i-1234567890abcdef0",
"i-9876543210abcdef9"
]
]
}
Berikut adalah contoh output untuk armada tipe instant yang tidak meluncurkan instans.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
"Errors": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c4.xlarge",
"AvailabilityZone": "us-east-1a",
}
},
"Lifecycle": "on-demand",
"ErrorCode": "InsufficientCapacity",
"ErrorMessage": ""
},
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c5.large",
"AvailabilityZone": "us-east-1a",
}
},
"Lifecycle": "on-demand",
"ErrorCode": "InsufficientCapacity",
"ErrorMessage": ""
},
],
"Instances": []
}
Membuat Armada EC2 yang menggantikan Instans Spot yang tidak sehat
Armada EC2 memeriksa status kondisi instans di armada setiap dua menit. Status kondisi instans adalah healthy atau unhealthy.
Armada EC2 menentukan status kondisi instans dengan menggunakan pemeriksaan status yang disediakan oleh Amazon EC2. Sebuah instans ditentukan sebagai unhealthy jika status pemeriksaan status instans atau pemeriksaan status sistemnya impaired dalam tiga kali pemeriksaan kondisi secara berturut-turut. Untuk informasi selengkapnya, lihat Pemeriksaan status untuk instans Amazon EC2.
Anda dapat mengonfigurasi armada untuk mengganti Instans Spot yang tidak sehat. Setelah mengatur ReplaceUnhealthyInstances ke true, Instans Spot diganti ketika dilaporkan sebagai unhealthy. Armada tersebut dapat berada di bawah kapasitas targetnya selama beberapa menit saat Instans Spot yang tidak sehat sedang diganti.
Persyaratan
-
Penggantian pemeriksaan kondisi hanya didukung untuk Armada EC2 yang mempertahankan kapasitas target (armada tipe
maintain), dan bukan untuk armada tiperequestatauinstant. -
Penggantian pemeriksaan kondisi hanya didukung untuk Instans Spot. Fitur ini tidak didukung untuk On-Demand Instans.
-
Anda dapat mengonfigurasi Armada EC2 untuk mengganti instans yang tidak sehat hanya saat Anda membuatnya.
-
Pengguna dapat menggunakan penggantian pemeriksaan kondisi hanya jika memiliki izin untuk memanggil tindakan
ec2:DescribeInstanceStatus.
Untuk mengonfigurasi Armada EC2 guna mengganti Instans Spot yang tidak sehat
-
Gunakan informasi untuk membuat Armada EC2 diMembuat Armada EC2.
-
Untuk mengonfigurasi armada untuk menggantikan Instans Spot yang tidak sehat, dalam file JSON, for
ReplaceUnhealthyInstances, tentukantrue.
Lihat semua opsi konfigurasi Armada EC2
Untuk melihat daftar lengkap parameter konfigurasi Armada EC2, Anda dapat membuat file JSON. Untuk deskripsi setiap parameter, lihat create-fleet.
Untuk menghasilkan file JSON dengan semua parameter Armada EC2 yang mungkin
Gunakan perintah create-fleet (AWS CLI) dan parameter --generate-cli-skeleton untuk membuat file JSON Armada EC2, dan arahkan output ke file untuk menyimpannya.
aws ec2 create-fleet \ --generate-cli-skeleton input >ec2createfleet.json
Berikut ini adalah output contoh.
{
"DryRun": true,
"ClientToken": "",
"SpotOptions": {
"AllocationStrategy": "price-capacity-optimized",
"MaintenanceStrategies": {
"CapacityRebalance": {
"ReplacementStrategy": "launch"
}
},
"InstanceInterruptionBehavior": "hibernate",
"InstancePoolsToUseCount": 0,
"SingleInstanceType": true,
"SingleAvailabilityZone": true,
"MinTargetCapacity": 0,
"MaxTotalPrice": ""
},
"OnDemandOptions": {
"AllocationStrategy": "prioritized",
"CapacityReservationOptions": {
"UsageStrategy": "use-capacity-reservations-first"
},
"SingleInstanceType": true,
"SingleAvailabilityZone": true,
"MinTargetCapacity": 0,
"MaxTotalPrice": ""
},
"ExcessCapacityTerminationPolicy": "termination",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateId": "",
"LaunchTemplateName": "",
"Version": ""
},
"Overrides": [
{
"InstanceType": "r5.metal",
"MaxPrice": "",
"SubnetId": "",
"AvailabilityZone": "",
"WeightedCapacity": 0.0,
"Priority": 0.0,
"Placement": {
"AvailabilityZone": "",
"Affinity": "",
"GroupName": "",
"PartitionNumber": 0,
"HostId": "",
"Tenancy": "dedicated",
"SpreadDomain": "",
"HostResourceGroupArn": ""
},
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 0
},
"MemoryMiB": {
"Min": 0,
"Max": 0
},
"CpuManufacturers": [
"amd"
],
"MemoryGiBPerVCpu": {
"Min": 0.0,
"Max": 0.0
},
"ExcludedInstanceTypes": [
""
],
"InstanceGenerations": [
"previous"
],
"SpotMaxPricePercentageOverLowestPrice": 0,
"OnDemandMaxPricePercentageOverLowestPrice": 0,
"BareMetal": "included",
"BurstablePerformance": "required",
"RequireHibernateSupport": true,
"NetworkInterfaceCount": {
"Min": 0,
"Max": 0
},
"LocalStorage": "excluded",
"LocalStorageTypes": [
"ssd"
],
"TotalLocalStorageGB": {
"Min": 0.0,
"Max": 0.0
},
"BaselineEbsBandwidthMbps": {
"Min": 0,
"Max": 0
},
"AcceleratorTypes": [
"inference"
],
"AcceleratorCount": {
"Min": 0,
"Max": 0
},
"AcceleratorManufacturers": [
"amd"
],
"AcceleratorNames": [
"a100"
],
"AcceleratorTotalMemoryMiB": {
"Min": 0,
"Max": 0
}
}
}
]
}
],
"TargetCapacitySpecification": {
"TotalTargetCapacity": 0,
"OnDemandTargetCapacity": 0,
"SpotTargetCapacity": 0,
"DefaultTargetCapacityType": "on-demand",
"TargetCapacityUnitType": "memory-mib"
},
"TerminateInstancesWithExpiration": true,
"Type": "instant",
"ValidFrom": "1970-01-01T00:00:00",
"ValidUntil": "1970-01-01T00:00:00",
"ReplaceUnhealthyInstances": true,
"TagSpecifications": [
{
"ResourceType": "fleet",
"Tags": [
{
"Key": "",
"Value": ""
}
]
}
],
"Context": ""
}