Als Cloud-Administrator können Sie das AWS-Plug-In (Amazon Web Services) nutzen, um beim Aufbau Ihrer Infrastruktur Plug-In-basierte EC2-Instanzen bereitzustellen. Sie können auch Zuteilungs-Helper verwenden, um Zuteilungslogik für Ihre Instanzen bereitzustellen.

Sie können Ihre EC2-Instanzen zur Unterstützung Ihrer Infrastrukturanforderungen ganz einfach mithilfe der aktuellen AWS-Eigenschaften konfigurieren. Wenn Sie beispielsweise eine Instanz beim Fehlschlagen der Statusprüfung automatisch wiederherstellen möchten, können Sie während der Bereitstellung die auto_recovery_enabled-Eigenschaft in Ihrer Vorlage verwenden.

Weitere Informationen zu Plug-Ins und Zuteilung in VMware Aria Automation finden Sie unter Plug-In-basierte Designs und Bereitstellungen in Automation Assembler.

Eigenschaften der EC2-Instanz

Die folgenden Eigenschaften sind für Plug-In-basierte EC2-Instanzressourcen erforderlich.

Eigenschaft Beschreibung
name Der Name für die Instanz.
region Die Region, in der die Instanz bereitgestellt wird.
account

Das AWS-Cloud-Konto für Kontoregionen, in denen Ihr Team Vorlagen bereitstellt. Weitere Informationen finden Sie unter Erstellen eines Amazon Web Services-Cloud-Kontos in VMware Aria Automation.

image_id Die ID des AMI (Amazon Machine Image), das für die Instanz verwendet werden soll.

Der folgende Abschnitt enthält Beispielvorlagen für die Bereitstellung von EC2-Instanzen.

Bereitstellen einer einfachen EC2-Instanz

Die folgende Vorlage zeigt, wie Sie eine EC2-Instanz mit statisch konfigurierten Werten für alle zugehörigen Eigenschaften bereitstellen können.

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

Bereitstellen einer EC2-Instanz mit Zuteilungshelfern

Die folgende Vorlage zeigt, wie Sie eine EC2-Instanz mithilfe von mehreren Hilfsprogrammen für die Zuteilung bereitstellen können.

Sie können Hilfsprogramme in einer 1:n-Konfiguration verwenden, in der ein Hilfsprogramm eine Zuteilungslogik für mehrere Ressourcen bereitstellt, z. B. die Zonenplatzierung. Anschließend passen Sie die Ressourcen entsprechend der vollständigen Liste ihrer Eigenschaften (wie vom Cloud-Anbieter definiert und vom zugehörigen Plug-In unterstützt) weiter an.

In diesem Beispiel verwenden Sie einen Computing-Hilfsdienst, einen Typ-Hilfsdienst, einen Image-Hilfsdienst und einen Netzwerk-Hilfsdienst.

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}

Bereitstellen einer EC2-Instanz mit einem AWS-Volume

Die folgende Vorlage zeigt, wie Sie eine EC2-Instanz mit einem angehängten Volume bereitstellen können. In diesem Beispiel stellen Sie zwei Plug-In-basierte Instanzen und ein Plug-In-basiertes AWS-Volume bereit. Das AWS-Volume ist an eine der Instanzen angehängt und mit einem klassischen KMS-Schlüssel verschlüsselt.

Das AWS-Volume und der KMS-Schlüssel verweisen durch die Verwendung von Eigenschaftsbindungen beide auf dieselben Hilfsprogramme für die Zuteilung. Durch die Verwendung von Eigenschaftsbindungen wird sichergestellt, dass Ihre Ressourcen im richtigen Konto und in der richtigen Region bereitgestellt werden.

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}