Como administrador de nube, puede aprovechar el complemento de Amazon Web Services (AWS) para aprovisionar instancias de EC2 basadas en complementos a medida que crea la infraestructura. También puede utilizar las aplicaciones auxiliares de asignación para proporcionar lógica de asignación para las instancias.

Puede configurar fácilmente las instancias de EC2 para que se adapten a sus necesidades de infraestructura mediante las propiedades de AWS más recientes. Por ejemplo, si desea recuperar automáticamente una instancia si se produce un error en una comprobación de estado, puede utilizar la propiedad auto_recovery_enabled en la plantilla durante el aprovisionamiento.

Para obtener más información sobre los complementos y la asignación en VMware Aria Automation, consulte Diseños e implementaciones basados en complementos en Automation Assembler.

Propiedades de instancia EC2

Las siguientes propiedades son obligatorias para los recursos de instancias de EC2 basadas en complementos.

Propiedad Descripción
name El nombre de la instancia.
region La región en la que se implementará la instancia.
account

La cuenta de nube de AWS para la que el equipo implementa plantillas. Para obtener más información, consulte Crear una cuenta de nube de Amazon Web Services en VMware Aria Automation.

image_id El identificador de la AMI que se utilizará para la instancia.

La siguiente sección contiene plantillas de ejemplo para el aprovisionamiento instancias de EC2.

Aprovisionar una instancia de EC2 simple

La siguiente plantilla muestra cómo puede aprovisionar una instancia de EC2 con valores configurados estáticamente para todas sus propiedades.

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

Aprovisionar una instancia de EC2 con aplicaciones auxiliares de asignación

La siguiente plantilla muestra cómo puede aprovisionar una instancia de EC2 con varias aplicaciones auxiliares de asignación.

Puede utilizar aplicaciones auxiliares en una configuración de uno a varios, donde una aplicación auxiliar proporciona la lógica de asignación, como la colocación de zonas, para varios recursos. A continuación, puede personalizar aún más los recursos de acuerdo con su lista completa de propiedades según la definición del proveedor de nube y la compatibilidad con el complemento asociado.

En este ejemplo, se utiliza una aplicación auxiliar de recursos informáticos, una aplicación auxiliar de tipo, una aplicación auxiliar de imagen y una aplicación auxiliar de red.

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}

Aprovisionar una instancia de EC2 con un volumen de AWS

La siguiente plantilla muestra cómo puede aprovisionar una instancia de EC2 con un volumen asociado. En este ejemplo, se aprovisionan dos instancias basadas en complementos y un volumen de AWS basado en complemento. El volumen de AWS está asociado a una de las instancias de y se cifra con una clave de KMS clásica.

El volumen de AWS y la clave de KMS hacen referencia a las mismas aplicaciones auxiliares de asignación mediante el uso de enlaces de propiedades. El uso de enlaces de propiedades garantiza que los recursos se aprovisionen en la cuenta y la región correctas.

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}