Calcular a pontuação de posicionamento spot - Amazon Elastic Compute Cloud

Calcular a pontuação de posicionamento spot

Você pode calcular uma pontuação de posicionamento spot com base na capacidade de destino e nos requisitos de computação. Para ter mais informações, consulte Como funciona a pontuação de posicionamento de spot.

Permissões obrigatórias

Certifique-se de que você tenha as permissões necessárias. Para ter mais informações, consulte Permissões necessárias para pontuação de posicionamento spot.

Deseja uma solução automatizada? Em vez de seguir as etapas manuais deste guia do usuário, você pode criar um painel de rastreamento de pontuação de posicionamento spot que captura e armazena automaticamente as pontuações no Amazon CloudWatch. Para obter mais informações, consulte Guidance for Building a Spot Placement Score Tracker Dashboard on AWS.

Calcular usando atributos de instância

Para calcular uma pontuação de posicionamento de spot especificando atributos de instância
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Solicitações spot.

  3. Escolha a seta para baixo ao lado de Request Spot Instances e escolha Calculate Spot Placement Score.

  4. Escolha Enter requirements (Inserir requisitos).

  5. Em Target capacity (Capacidade-alvo), insira a capacidade desejada em termos do número de instances (instâncias) ou vCPUs, ou quantidade de memory (MiB) (memória).

  6. Em Instance type requirements (Requisitos de tipo de instância), para especificar seus requisitos de computação e deixar que o Amazon EC2 identifique os tipos de instância ideais com esses requisitos, escolha Specify instance attributes that match your compute requirements (Especificar atributos de instância que correspondam aos requisitos de computação).

  7. Em vCPUs, insira o número mínimo e máximo desejado de vCPUs. Para não especificar nenhum limite, selecione No minimum (Sem mínimo), No maximum (Sem máximo) ou ambos.

  8. Em Memory (GiB) (Memória), insira a quantidade mínima e máxima de memória desejada. Para não especificar nenhum limite, selecione No minimum (Sem mínimo), No maximum (Sem máximo) ou ambos.

  9. Em CPU architecture (Arquitetura da CPU), selecione a arquitetura de instância requisitada.

  10. (Opcional) Em Additional instance attributes (Atributos de instância adicionais), é possível, opcionalmente, especificar um ou mais atributos para expressar seus requisitos de computação com mais detalhes. Cada atributo adicional inclui mais uma restrição à solicitação. É possível omitir os atributos adicionais; quando omitidos, os valores padrão são usados. Para obter uma descrição de cada atributo e seus valores padrão, consulte get-spot-placement-scores na Referência da linha de comando do Amazon EC2.

  11. (Opcional) Para visualizar os tipos de instância com os atributos especificados, expanda Preview matching instance types (Previsualizar os tipos de instância correspondentes). Para excluir os tipos de instância de serem usados na avaliação do posicionamento, selecione as instâncias e escolha Exclude selected instance types (Excluir tipos de instância selecionados).

  12. Escolha Load placement scores (Carregar pontuações de posicionamento) e analise os resultados.

  13. (Opcional) Para exibir a pontuação de posicionamento de spot para regiões específicas, em Regions to evaluate (Regiões a serem avaliadas), selecione as regiões a serem avaliadas e, em seguida, escolha Calculate placement scores (Calcular pontuações de posicionamento).

  14. (Opcional) Para exibir a pontuação de posicionamento de spot para as zonas de disponibilidade nas regiões que a ferramenta exibe, marque a caixa de seleção Provide placement scores per Availability Zone (Fornecer pontuação de posicionamento por zona de disponibilidade). Uma lista de zonas de disponibilidade pontuadas é útil se você quiser iniciar toda a sua capacidade de spot em uma única zona de disponibilidade.

  15. (Opcional) Para editar seus requisitos de computação e obter uma nova pontuação de posicionamento, escolha Edit (Editar), faça os ajustes necessários e, em seguida, escolha Calculate placement scores (Calcular pontuações de posicionamento).

Calcular usando tipos de instância

Para calcule uma pontuação de posicionamento de spot especificando tipos de instância
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Solicitações spot.

  3. Escolha a seta para baixo ao lado de Request Spot Instances e escolha Calculate Spot Placement Score.

  4. Escolha Enter requirements (Inserir requisitos).

  5. Em Target capacity (Capacidade-alvo), insira a capacidade desejada em termos do número de instances (instâncias) ou vCPUs, ou quantidade de memory (MiB) (memória).

  6. Em Instance type requirements (Requisitos de tipo de instância), para especificar os tipos de instância a serem usados, escolha Manually select instance types (Selecionar manualmente os tipos de instância).

  7. Escolha Select instance types (Selecionar tipos de instância), selecione os tipos de instância a serem usados e escolha Select (Selecionar). Para localizar rapidamente tipos de instância, é possível usar a barra de filtro para filtrar os tipos de instância por diferentes propriedades.

  8. Escolha Load placement scores (Carregar pontuações de posicionamento) e analise os resultados.

  9. (Opcional) Para exibir a pontuação de posicionamento de spot para regiões específicas, em Regions to evaluate (Regiões a serem avaliadas), selecione as regiões a serem avaliadas e, em seguida, escolha Calculate placement scores (Calcular pontuações de posicionamento).

  10. (Opcional) Para exibir a pontuação de posicionamento de spot para as zonas de disponibilidade nas regiões que a ferramenta exibe, marque a caixa de seleção Provide placement scores per Availability Zone (Fornecer pontuação de posicionamento por zona de disponibilidade). Uma lista de zonas de disponibilidade pontuadas é útil se você quiser iniciar toda a sua capacidade de spot em uma única zona de disponibilidade.

  11. (Opcional) Para editar a lista de tipos de instância e obter uma nova pontuação de posicionamento, escolha Edit (Editar), faça os ajustes necessários e, em seguida, escolha Calculate placement scores (Calcular pontuações de posicionamento).

Calcular usando a AWS CLI

Para calcular uma pontuação de posicionamento de spot
  1. (Opcional) Para gerar todos os parâmetros possíveis que podem ser especificados para a configuração de pontuação de posicionamento de spot, use o comando get-spot-placement-scores e o parâmetro --generate-cli-skeleton.

    aws ec2 get-spot-placement-scores \ --region us-east-1 \ --generate-cli-skeleton

    O seguinte é um exemplo de saída.

    { "InstanceTypes": [ "" ], "TargetCapacity": 0, "TargetCapacityUnitType": "vcpu", "SingleAvailabilityZone": true, "RegionNames": [ "" ], "InstanceRequirementsWithMetadata": { "ArchitectureTypes": [ "x86_64_mac" ], "VirtualizationTypes": [ "hvm" ], "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 0 }, "MemoryMiB": { "Min": 0, "Max": 0 }, "CpuManufacturers": [ "amd" ], "MemoryGiBPerVCpu": { "Min": 0.0, "Max": 0.0 }, "ExcludedInstanceTypes": [ "" ], "InstanceGenerations": [ "previous" ], "SpotMaxPricePercentageOverLowestPrice": 0, "OnDemandMaxPricePercentageOverLowestPrice": 0, "BareMetal": "excluded", "BurstablePerformance": "excluded", "RequireHibernateSupport": true, "NetworkInterfaceCount": { "Min": 0, "Max": 0 }, "LocalStorage": "included", "LocalStorageTypes": [ "hdd" ], "TotalLocalStorageGB": { "Min": 0.0, "Max": 0.0 }, "BaselineEbsBandwidthMbps": { "Min": 0, "Max": 0 }, "AcceleratorTypes": [ "fpga" ], "AcceleratorCount": { "Min": 0, "Max": 0 }, "AcceleratorManufacturers": [ "amd" ], "AcceleratorNames": [ "vu9p" ], "AcceleratorTotalMemoryMiB": { "Min": 0, "Max": 0 } } }, "DryRun": true, "MaxResults": 0, "NextToken": "" }
  2. Crie um arquivo de configuração JSON usando a saída da etapa anterior e configure-o da seguinte forma:

    1. Em TargetCapacity, insira a capacidade desejada em termos do número de instâncias ou vCPUs, ou quantidade de memória (MiB).

    2. Em TargetCapacityUnitType, insira a unidade para a capacidade-alvo. Se você omitir esse parâmetro, ele assumirá o padrão units.

      Valores válidos: units (o que se traduz em número de instâncias) | vcpu | memory-mib

    3. Em SingleAvailabilityZone, especifique true para uma resposta que retorna uma lista de zonas de disponibilidade pontuadas. Uma lista de zonas de disponibilidade pontuadas é útil se você quiser iniciar toda a sua capacidade de spot em uma única zona de disponibilidade. Se você omitir esse parâmetro, ele assumirá o padrão false, e a resposta retornará uma lista de regiões pontuadas.

    4. (Opcional) Em RegionNames, especifique as regiões que deseja usar como filtro. É necessário especificar o código de região, por exemplo, us-east-1.

      Com um filtro de região, a resposta retorna apenas as regiões que você especificou. Se tiver especificado true para SingleAvailabilityZone, a resposta retornará apenas as zonas de disponibilidade nas regiões que você especificou.

    5. É possível incluir um InstanceTypes ou InstanceRequirements, mas não ambos na mesma configuração.

      Especifique uma das seguintes opções na configuração de JSON:

      • Para especificar uma lista de tipos de instância, especifique os tipos de instância no parâmetro InstanceTypes. Especifique pelo menos três tipos de instância diferentes. Se você especificar apenas um ou dois tipos de instância, a pontuação de posicionamento de spot retornará uma pontuação baixa. Para obter uma lista dos tipos de instância , consulte Tipos de instância do Amazon EC2.

      • Para especificar os atributos da instância para que o Amazon EC2 identifique os tipos de instância que correspondem a esses atributos, especifique os atributos localizados na estrutura InstanceRequirements.

        É necessário fornecer valores para VCpuCount, MemoryMiB e CpuManufacturers. É possível omitir os outros atributos; quando omitidos, os valores padrão são usados. Para obter uma descrição de cada atributo e seus valores padrão, consulte get-spot-placement-scores na Referência da linha de comando do Amazon EC2.

      Para obter configurações de exemplo, consulte Exemplos de configuração.

  3. Para obter a pontuação de posicionamento de spot para os requisitos especificados no arquivo JSON, use o comando get-spot-placement-scores e especifique o nome e o caminho do arquivo JSON usando o parâmetro --cli-input-json.

    aws ec2 get-spot-placement-scores \ --region us-east-1 \ --cli-input-json file://file_name.json

    Exemplo de saída se SingleAvailabilityZone for definido como false ou omitido (se omitido, o padrão false será usado); uma lista pontuada de regiões será retornada.

    "SpotPlacementScores": [ { "Region": "us-east-1", "Score": 7 }, { "Region": "us-west-1", "Score": 5 }, ...

    Exemplo de saída se SingleAvailabilityZone for definido como true; uma lista pontuada de zonas de disponibilidade será retornada.

    "SpotPlacementScores": [ { "Region": "us-east-1", "AvailabilityZoneId": "use1-az1", "Score": 8 }, { "Region": "us-east-1", "AvailabilityZoneId": "usw2-az3", "Score": 6 }, ...

Exemplos de configuração

Quando usar a AWS CLI, será possível usar os exemplos de configurações as seguir.

Exemplo: especificar tipos de instância e capacidade-alvo

O exemplo de configuração a seguir especifica três tipos de instância diferentes e uma capacidade-alvo de spot de 500 instâncias spot.

{ "InstanceTypes": [ "m5.4xlarge", "r5.2xlarge", "m4.4xlarge" ], "TargetCapacity": 500 }

Exemplo: especificar tipos de instância e capacidade-alvo em termos de memória

O exemplo de configuração a seguir especifica três tipos de instância diferentes e uma capacidade-alvo de spot de 500.000 MiB de memória, em que o número de Instâncias spot a serem iniciadas deve fornecer um total de 500.000 MiB de memória.

{ "InstanceTypes": [ "m5.4xlarge", "r5.2xlarge", "m4.4xlarge" ], "TargetCapacity": 500000, "TargetCapacityUnitType": "memory-mib" }

Exemplo: especificar atributos para seleção de tipo de instância baseada em atributos

O exemplo de configuração a seguir é configurado para seleção de tipo de instância baseada em atributos e é seguido de um texto explicativo do exemplo de configuração.

{ "TargetCapacity": 5000, "TargetCapacityUnitType": "vcpu", "InstanceRequirementsWithMetadata": { "ArchitectureTypes": ["arm64"], "VirtualizationTypes": ["hvm"], "InstanceRequirements": { "VCpuCount": { "Min": 1, "Max": 12 }, "MemoryMiB": { "Min": 512 } } } }
InstanceRequirementsWithMetadata

Para usar a seleção do tipo de instância baseada em atributo, é necessário incluir a estrutura InstanceRequirementsWithMetadata na configuração e especificar os atributos desejados para as Instâncias spot.

No exemplo anterior, os seguintes atributos de instância necessários são especificados:

  • ArchitectureTypes: o tipo de arquitetura dos tipos de instância deve ser arm64.

  • VirtualizationTypes: o tipo de virtualização dos tipos de instância deve ser hvm.

  • VCpuCount: os tipos de instância devem ter no mínimo 1 e no máximo 12 vCPUs.

  • MemoryMiB: os tipos de instância devem ter no mínimo 512 MiB de memória. Omitindo o parâmetro Max, você está indicando que não há limite máximo.

Observe que existem vários outros atributos opcionais que é possível especificar. Para obter a lista de atributos, consulte get-spot-placement-scores na Referência de comandos da AWS CLI.

TargetCapacityUnitType

O parâmetro TargetCapacityUnitType especifica a unidade da capacidade-alvo. No exemplo, a capacidade-alvo é 5000 e o tipo de unidade de capacidade-alvo é vcpu, que juntos especificam uma capacidade-alvo desejada de 5000 vCPUs, em que o número de instâncias spot a serem iniciadas deve fornecer um total de 5000 vCPUs.

Exemplo: especificar atributos para seleção de tipo de instância baseada em atributos e retornar uma lista pontuada de zonas de disponibilidade

O exemplo de configuração a seguir é configurado para seleção de tipo de instância baseada em atributos. Especificando "SingleAvailabilityZone": true, a resposta retornará uma lista de zonas de disponibilidade pontuadas.

{ "TargetCapacity": 1000, "TargetCapacityUnitType": "vcpu", "SingleAvailabilityZone": true, "InstanceRequirementsWithMetadata": { "ArchitectureTypes": ["arm64"], "VirtualizationTypes": ["hvm"], "InstanceRequirements": { "VCpuCount": { "Min": 1, "Max": 12 }, "MemoryMiB": { "Min": 512 } } } }