В ходе создания инфраструктуры администратор облачных служб может использовать подключаемый модуль Amazon Web Services (AWS) для подготовки экземпляров EC2 на основе подключаемого модуля. Для предоставления логики выделения своим экземплярам можно использовать помощники по выделению.
Чтобы экземпляры EC2 обеспечивали потребности инфраструктуры, их можно легко настроить с помощью новых свойств AWS. Например, чтобы автоматически восстановить экземпляр в случае сбоя проверки состояния, вы можете использовать в шаблоне свойство auto_recovery_enabled
во время подготовки.
Дополнительные сведения о подключаемых модулях и выделении в VMware Aria Automation см. в разделе Проекты и развертывания в Automation Assembler на основе подключаемого модуля.
Свойства экземпляров EC2
Для ресурсов экземпляра EC2 на основе подключаемого модуля обязательными являются следующие свойства.
Свойство | Описание |
---|---|
name |
Имя экземпляра. |
region |
Регион, в котором будет развернут экземпляр. |
account |
Облачная учетная запись AWS, для которой ваша рабочая группа развертывает шаблоны. Дополнительные сведения см. в разделе Создание облачной учетной записи Amazon Web Services в VMware Aria Automation. |
image_id |
Идентификатор AMI-образа, который будет использоваться для экземпляра. |
В следующем разделе приведены примеры шаблонов для подготовки экземпляров EC2.
Подготовка простого экземпляра EC2
В следующем шаблоне представлен способ подготовки экземпляра EC2 со статически настроенными значениями для всех его свойств.
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
Подготовка экземпляра EC2 с помощью помощников по выделению
В следующем шаблоне представлен способ подготовки экземпляра EC2.
Помощники можно использовать в конфигурации «один ко многим», где один помощник предоставляет логику выделения, например размещение в зоне, нескольким ресурсам. Затем ресурсы нужно дополнительно настроить в соответствии с их полным списком свойств, определенных поставщиком облачных служб и поддерживаемых в соответствующем подключаемом модуле.
В этом примере используются помощник по вычислительным ресурсам, помощник по конфигурации ресурсов, помощник по образам и сетевой помощник.
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}
Подготовка экземпляра EC2 с помощью тома AWS
В следующем шаблоне представлен способ подготовки экземпляра EC2 с подключенным томом. В этом примере подготавливаются два экземпляра на основе подключаемого модуля и том AWS на основе подключаемого модуля. Том AWS подключается к одному из экземпляров и шифруется с помощью классического ключа KMS.
Том AWS и ключ KMS ссылаются на одни и те же помощники по выделению при помощи привязок свойств. Привязки свойств обеспечивают подготовку ресурсов в нужной учетной записи и нужном регионе.
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}