L'amministratore del cloud può utilizzare il plug-in Amazon Web Services (AWS) per eseguire il provisioning delle risorse delle istanze EC2 basate su plug-in durante la creazione dell'infrastruttura. È inoltre possibile utilizzare gli helper di allocazione per specificare la logica di allocazione per le risorse delle istanze.
È possibile configurare facilmente le istanze di EC2 per supportare le esigenze dell'infrastruttura utilizzando le proprietà di AWS più recenti. Ad esempio, se si desidera ripristinare automaticamente un'istanza se il controllo dello stato non riesce, è possibile utilizzare la proprietà auto_recovery_enabled
nel modello durante il provisioning.
Per ulteriori informazioni sui plug-in e sull'allocazione in VMware Aria Automation, vedere Progettazioni e distribuzioni basate su plug-in in Automation Assembler.
Proprietà dell'istanza di EC2
Per le risorse delle istanze di EC2 basate su plug-in, sono necessarie le proprietà seguenti.
Proprietà | Descrizione |
---|---|
name |
Il nome dell'istanza. |
region |
La regione in cui verrà distribuita l'istanza di. |
account |
Account cloud di AWS in cui il team distribuisce i modelli. Per ulteriori informazioni, vedere Creazione di un account cloud di Amazon Web Services in VMware Aria Automation. |
image_id |
ID dell'AMI da utilizzare per l'istanza. |
La sezione seguente contiene modelli di esempio per il provisioning delle istanze di EC2.
Provisioning di un'istanza di EC2 semplice
Il modello seguente illustra come eseguire il provisioning di un'istanza di EC2 con valori configurati staticamente per tutte le relative proprietà.
formatVersion: 1 inputs: {} resources: Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: my-instance-1 region: us-east-1 account: AWS image_id: ami-0aa7d40eeae50c9a9 availability_zone: us-east-1a instance_type: t2.small subnet_id: subnet-07d2c529b6336bd0e
Provisioning di un'istanza di EC2 con gli helper di allocazione
Il modello seguente illustra come eseguire il provisioning di un'istanza di EC2 utilizzando gli helper di allocazione.
È possibile utilizzare helper in una configurazione one-to-many in cui un helper fornisce la logica di allocazione, ad esempio il posizionamento della zona, per diverse risorse. È quindi possibile personalizzare ulteriormente le risorse in base all'elenco completo delle proprietà definite dal provider di cloud e supportate dal plug-in associato.
In questo esempio, viene utilizzato un helper di elaborazione, un helper di caratteristiche, un helper di immagini e un helper di rete.
formatVersion: 1 inputs: instance_name: type: string resources: Allocations_Compute_1: type: Allocations.Compute properties: constraints: - tag: env:dev Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: small Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Allocations_Network_1: type: Allocations.Network properties: networkType: existing constraints: - tag: alternative-net Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: ${input.instance_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} image_id: ${resource.Allocations_Image_1.selectedImageId} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} instance_type: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} subnet_id: ${resource.Allocations_Network_1.selectedSubnet.id}
Provisioning di un'istanza di EC2 con un volume AWS
Il modello seguente illustra come eseguire il provisioning di un'istanza di EC2 con un volume collegato. In questo esempio viene eseguito il provisioning di due istanze basate su plug-in e un volume AWS basato su plug-in. Il volume AWS è collegato a una delle istanze e viene crittografato con una chiave KMS classica.
Il volume AWS e la chiave KMS fanno entrambi riferimento agli stessi helper di allocazione tramite l'uso di binding di proprietà. L'utilizzo di binding di proprietà garantisce che le risorse vengano sottoposte a provisioning nell'area di accesso e nella regione corrette.
formatVersion: 1 inputs: instance_name: type: string instance2_name: type: string volume_name: type: string resources: Allocations_Compute_1: type: Allocations.Compute properties: constraints: - tag: env:dev Allocations_Flavor_1: type: Allocations.Flavor properties: flavor: small Allocations_Image_1: type: Allocations.Image properties: image: ubuntu Allocations_Network_1: type: Allocations.Network properties: networkType: existing constraints: - tag: alternative-net Idem_AWS_EC2_INSTANCE_1: type: Idem.AWS.EC2.INSTANCE properties: name: ${input.instance_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} image_id: ${resource.Allocations_Image_1.selectedImageId} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} instance_type: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} subnet_id: ${resource.Allocations_Network_1.selectedSubnet.id} Idem_AWS_EC2_INSTANCE_2: type: Idem.AWS.EC2.INSTANCE properties: name: ${input.instance2_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} image_id: ${resource.Allocations_Image_1.selectedImageId} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} instance_type: ${resource.Allocations_Flavor_1.selectedInstanceTypeName} subnet_id: ${resource.Allocations_Network_1.selectedSubnet.id} block_device_mappings: - volume_id: ${resource.Idem_AWS_EC2_VOLUME_1.resource_id} device_name: /dev/sdb Idem_AWS_EC2_VOLUME_1: type: Idem.AWS.EC2.VOLUME properties: name: ${input.volume_name} region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name} availability_zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id} size: 10 volume_type: io2 iops: 100 encrypted: true kms_key_id: ${resource.Cloud_Service_AWS_KMS_Key_1.key_id} Cloud_Service_AWS_KMS_Key_1: type: Cloud.Service.AWS.KMS.Key properties: region: ${resource.Allocations_Compute_1.selectedRegion.id} account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}