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}