Usar vários modelos de execução
Além de usar vários tipos de instância, você também pode usar vários modelos de execução.
Por exemplo, digamos que você configure um grupo do Auto Scaling para aplicações de computação intensiva e queira incluir uma combinação de tipos de instância C5, C5a e C6g. No entanto, as instâncias C6g apresentam um processador Graviton da AWS baseado na arquitetura Arm de 64 bits, enquanto as instâncias C5 e C5a são executadas em processadores Intel x86 de 64 bits. A AMI para instâncias C5 e C5a funciona para cada uma dessas instâncias, mas não em instâncias C6g. Para resolver o problema, use um modelo de execução diferente para as instâncias C6g. Você ainda pode usar o mesmo modelo de execução para instâncias C5 e C5a.
Esta seção contém procedimentos de uso do AWS CLI para realizar tarefas relacionadas aos vários modelos de execução. No momento, esse recurso estará disponível somente se você usar a AWS CLI ou um SDK, e não está disponível no console.
Conteúdo
Configurar um grupo do Auto Scaling para usar vários modelos de execução
Você pode configurar um grupo do Auto Scaling para usar vários modelos de execução, conforme mostrado nos exemplos a seguir.
Para configurar um novo grupo do Auto Scaling para usar vários modelos de execução (AWS CLI)
Use o comando create-auto-scaling-groupc5.large, c5a.large, e c6g.large e define um novo modelo de execução para o tipo de instância c6g.large para garantir que uma AMI apropriada seja usada para iniciar instâncias Arm. O Amazon EC2 Auto Scaling usa a ordem de tipos de instâncias para determinar qual tipo de instância usar primeiro ao atender à capacidade sob demanda.
aws autoscaling create-auto-scaling-group --cli-input-jsonfile://~/config.json
O arquivo config.json contém o conteúdo a seguir.
{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateName":"my-launch-template-for-x86", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c6g.large", "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-arm", "Version": "$Latest" } }, { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" } ] }, "InstancesDistribution":{ "OnDemandBaseCapacity":1, "OnDemandPercentageAboveBaseCapacity":50, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":3, "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags":[ ] }
Para configurar um grupo do Auto Scaling existente para usar vários modelos de execução (AWS CLI)
Use o comando update-auto-scaling-group ao tipo de instância my-launch-template-for-arm do grupo do Auto Scaling chamado c6g.large.my-asg
aws autoscaling update-auto-scaling-group --cli-input-jsonfile://~/config.json
O arquivo config.json contém o conteúdo a seguir.
{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "Overrides":[ { "InstanceType":"c6g.large", "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-arm", "Version": "$Latest" } }, { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" } ] } } }
Para configurar um novo grupo do Auto Scaling para usar vários modelos de execução com seleção de tipo de instância baseada em atributos (AWS CLI)
Use o comando create-auto-scaling-group
aws autoscaling create-auto-scaling-group --cli-input-jsonfile://~/config.json
O arquivo config.json contém o conteúdo a seguir.
{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateName":"my-launch-template-for-arm", "Version":"$Latest" }, "Overrides":[ { "InstanceRequirements": { "VCpuCount": {"Min":2}, "MemoryMiB": {"Min":2048}, "CpuManufacturers": ["amazon-web-services"] } }, { "InstanceRequirements": { "VCpuCount": {"Min":2}, "MemoryMiB": {"Min":2048}, "CpuManufacturers": ["intel", "amd"] }, "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-x86", "Version": "$Latest" } } ] }, "InstancesDistribution":{ "OnDemandPercentageAboveBaseCapacity":0, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize":1, "MaxSize":10, "DesiredCapacity":6, "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags":[ ] }
Para verificar os modelos de execução de um grupo do Auto Scaling
Use um dos seguintes comandos:
-
describe-auto-scaling-groups
(AWS CLI) -
Get-ASAutoScalingGroup (AWS Tools for Windows PowerShell)