Als cloudbeheerder kunt u gebruikmaken van de Amazon Web Services-plug-in (AWS) om EC2-instanties op basis van de plug-in in te richten wanneer u uw infrastructuur bouwt. U kunt ook toewijzingshelpers gebruiken om toewijzingslogica voor uw instanties te leveren.

U kunt eenvoudig uw EC2-instanties configureren om uw infrastructuurbehoeften te ondersteunen met behulp van de nieuwste AWS-eigenschappen. Als u bijvoorbeeld een instantie automatisch wilt herstellen als een statuscontrole mislukt, kunt u tijdens de inrichting de eigenschap auto_recovery_enabled in uw sjabloon gebruiken.

Zie Ontwerpen en implementaties op basis van plug-ins in Automation Assembler voor meer informatie over plug-ins en toewijzing in VMware Aria Automation.

Eigenschappen voor EC2-instanties

De volgende eigenschappen zijn vereist voor EC2-instantieresources op basis van de plug-in.

Eigenschap Beschrijving
name De naam voor de instantie.
region De regio waar de instantie wordt geïmplementeerd.
account

Het AWS-cloudaccount waarvoor uw team sjablonen implementeert. Zie Een Amazon Web Services-cloudaccount maken in VMware Aria Automation voor meer informatie.

image_id De ID van de AMI die u wilt gebruiken voor de instantie.

Het volgende gedeelte bevat voorbeeldsjablonen voor het inrichten van EC2-instanties.

Een eenvoudige EC2-instantie inrichten

In de volgende sjabloon ziet u hoe u een EC2-instantie kunt inrichten met statisch geconfigureerde waarden voor alle bijbehorende eigenschappen.

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

Een EC2-instantie met toewijzingshelpers inrichten

In de volgende sjabloon ziet u hoe u een EC2-instantie met meerdere toewijzingshelpers kunt inrichten.

U kunt helpers gebruiken in een een-op-veel configuratie, waarbij een helper toewijzingslogica, zoals zoneplaatsing, voor verschillende resources biedt. Vervolgens past u de resources verder aan op basis van hun volledige lijst met eigenschappen, zoals gedefinieerd door de cloudprovider en ondersteund door de gekoppelde plug-in.

In dit voorbeeld gebruikt u een computerhelper, een soorthelper, een imagehelper en een netwerkhelper.

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}

Een EC2-instantie met een AWS-volume inrichten

In de volgende sjabloon ziet u hoe u een EC2-instantie met een gekoppeld volume kunt inrichten. In dit voorbeeld richt u twee instanties op basis van de plug-in en een AWS-volume op basis van de plug-in in. Het AWS-volume wordt gekoppeld aan een van de instanties en wordt versleuteld met een klassieke KMS-sleutel.

Het AWS-volume en de KMS-sleutel verwijzen beide naar dezelfde toewijzingshelpers bij het gebruik van eigenschapsbindingen. Door eigenschapsbindingen te gebruiken, zorgt u ervoor dat uw resources in het juiste account en de juiste regio worden ingericht.

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}