Como administrador de nuvem, você pode aproveitar o plug-in do Amazon Web Services (AWS) para provisionar instâncias do EC2 baseadas em plug-ins à medida que cria sua infraestrutura. Você também pode usar auxiliares de alocação para fornecer lógica de alocação para suas instâncias do.
Você pode configurar facilmente suas instâncias do EC2 para oferecer suporte às suas necessidades de infraestrutura usando as propriedades mais recentes da AWS. Por exemplo, se você quiser recuperar automaticamente uma instância se uma verificação de status falhar, poderá usar a propriedade auto_recovery_enabled
no seu modelo durante o provisionamento.
Para saber mais sobre plug-ins e alocação no VMware Aria Automation, consulte Designs e implantações baseados em plug-in no Automation Assembler.
Propriedades da instância do EC2
As propriedades a seguir são necessárias para recursos de instância do EC2 baseados em plug-in.
Propriedade | Descrição |
---|---|
name |
O nome da instância. |
region |
A região em que a instância do será implantada. |
account |
A conta de nuvem da AWS para a qual sua equipe implanta modelos. Para obter mais informações, consulte Criar uma conta de nuvem do Amazon Web Services no VMware Aria Automation. |
image_id |
O ID da AMI a ser usada para a instância do. |
A seção a seguir contém modelos de exemplo para o provisionamento de instâncias do EC2.
Provisionando uma instância de EC2 simples
O modelo a seguir mostra como você pode provisionar uma instância do EC2 com valores estaticamente configurados para todas as suas propriedades.
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
Provisionamento de uma instância do EC2 com auxiliares de alocação
O modelo a seguir mostra como você pode provisionar uma instância do EC2 com vários auxiliares de alocação.
Você pode usar auxiliares em uma configuração de um-para-muitos, em que um auxiliar fornece uma lógica de alocação, como o posicionamento de zonas para vários recursos. Em seguida, personalize ainda mais os recursos de acordo com sua lista completa de propriedades, conforme definido pelo provedor de nuvem e compatível com o plug-in associado.
Neste exemplo, você usa um auxiliar de processamento, um auxiliar de tipo, um auxiliar de imagem e um auxiliar de rede.
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}
Provisionando uma instância EC2 com um volume da AWS
O modelo a seguir mostra como você pode provisionar uma instância do EC2 com um volume anexado. Neste exemplo, você provisiona duas instâncias baseadas em plug-in e um volume do AWS baseado em plug-in. O volume do AWS é anexado a uma das instâncias do e é criptografado com uma chave clássica do KMS.
O volume da AWS e a chave do KMS fazem referência aos mesmos auxiliares de alocação por meio do uso de associações de propriedade. Usar associações de propriedade garante que seus recursos sejam provisionados na conta e na região corretas.
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}