Como trabalhar com Reservas de Capacidade - Amazon Elastic Compute Cloud

Como trabalhar com Reservas de Capacidade

Para começar a usar as Reservas de Capacidade, crie a reserva de capacidade na zona de disponibilidade exigida. Depois, é possível executar instâncias na capacidade reservada, visualizar a utilização da capacidade em tempo real e aumentar ou diminuir a capacidade conforme necessário.

Por padrão, as Reservas de Capacidade correspondem automaticamente a novas instâncias e instâncias em execução que têm atributos correspondentes (tipo de instância, plataforma e zona de disponibilidade). Isso significa que qualquer instância com atributos correspondentes são automaticamente executadas na Reserva de capacidade. No entanto, também é possível destinar uma Reserva de capacidade para workloads específicas. Isso permite que você controle explicitamente quais instâncias têm permissão para executar na capacidade reservada.

É possível especificar como a reserva termina. É possível escolher cancelar o(a) Reserva de capacidade ou encerrá-lo(a) automaticamente em um horário especificado. Se você especificar um horário de término, a Reserva de capacidade será cancelada dentro de uma hora do horário especificado. Por exemplo, se você especificar, 5/31/2019, 13:30:55, a Reserva de capacidade será encerrada entre 13:30:55 e 14:30:55 em 5/31/2019. Após o término da reserva, você não poderá mais destinar instâncias à Reserva de capacidade. Instâncias em execução na capacidade reservada continuam a executar sem interrupção. Se as instâncias que estão destinando uma Reserva de capacidade forem interrompidas, você não poderá reiniciá-las até que a preferência de destino na Reserva de capacidade seja removida ou que você as configure para destinar uma Reserva de capacidade diferente.

Criar uma Reserva de capacidade

Se sua solicitação para criar uma reserva de capacidade for bem-sucedida, a capacidade será disponibilizada imediatamente. A capacidade permanece reservada para seu uso enquanto a Reserva de capacidade estiver ativa, e é possível executar instâncias nela a qualquer momento. Se a Reserva de capacidade estiver aberta, as novas instâncias e as instâncias existentes que tiverem atributos correspondentes serão executadas automaticamente na capacidade da Reserva de capacidade. Se a Reserva de capacidade for targeted, as instâncias deverão usá-la como destino especificamente para executar na capacidade reservada.

Sua solicitação de criação de uma Reserva de capacidade poderá falhar se uma das seguintes opções for verdadeira:

  • O Amazon EC2 não tem capacidade suficiente para realizar a solicitação. Tente novamente mais tarde, tente uma zona de disponibilidade diferente ou tente uma solicitação menor. Se a sua aplicação for flexível entre tipos e tamanhos de instâncias, tente diferentes atributos de instância.

  • A quantidade solicitada excede o limite de instância sob demanda para a família de instâncias selecionada. Aumente o limite de instância sob demanda para a família de instâncias e tente novamente. Para ter mais informações, consulte Cotas de instância sob demanda.

Para criar uma Reserva de capacidade usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Selecione Reservas de Capacidade e Create Reserva de capacidade (Criar Reserva de capacidade).

  3. Na página Create a Reserva de capacidade (Criar uma Reserva de capacidade), defina as seguintes configurações na seção Instance details (Detalhes da instância): O tipo de instância, a plataforma e a zona de disponibilidade das instâncias iniciadas devem corresponder ao tipo de instância, à plataforma e à zona de disponibilidade especificadas aqui ou a Reserva de capacidade não será aplicada. Por exemplo, se uma Reserva de capacidade aberta não corresponder, a execução de uma instância que for destinada a essa Reserva de capacidade explicitamente falhará.

    1. Instance Type (Tipo de instância) — o tipo de instância a ser executada na capacidade reservada.

    2. Launch EBS-optimized instances (Executar instâncias otimizadas para EBS) — especifique se deseja reservar a capacidade para instâncias otimizadas para EBS. Essa opção é selecionada por padrão para alguns tipos de instância. Para ter mais informações, consulte Instâncias otimizadas para Amazon EBS.

    3. Platform (Plataforma) — o sistema operacional das suas instâncias. Para ter mais informações, consulte Plataformas compatíveis. Para obter mais informações sobre as plataformas Windows compatíveis, consulte Plataformas compatíveis no Guia do usuário do Amazon EC2 para instâncias do Windows.

    4. Availability Zone (Zona de disponibilidade) — a zona de disponibilidade na qual reservar a capacidade.

    5. Tenancy (Locação) — especifique se você quer executar em hardware compartilhado (padrão) ou em uma instância dedicada.

    6. (Opcional) Placement group ARN (ARN do grupo de posicionamento): o ARN do grupo de posicionamento de cluster no qual criar a nova reserva de capacidade.

      Para ter mais informações, consulte As reservas de capacidade não podem ser criadas em grupos de posicionamento de cluster.

    7. Quantity (Quantidade) — o número de instâncias para as quais reservar a capacidade. Se você especificar uma quantidade que exceda seu limite de instância sob demanda restante para o tipo de instância selecionado, a solicitação será negada.

  4. Defina as seguintes configurações na seção Reservation details (Detalhes da reserva):

    1. Reservation Ends (Término da reserva) — escolha somente uma das duas opções a seguir:

      • Manually (Manualmente) — reserve a capacidade até que você a cancele explicitamente.

      • Specific time (Horário específico) — cancele a reserva de capacidade automaticamente na data e na hora especificadas.

    2. Instance eligibility (Qualificação de instância) — escolha uma das seguintes opções:

      • open (aberta) — (padrão) a Reserva de capacidade corresponde a qualquer instância que tenha atributos correspondentes (tipo, plataforma e zona de disponibilidade da instância). Se você executar uma instância com atributos correspondentes, ela será colocada na capacidade reservada automaticamente.

      • targeted (destinada) — a Reserva de capacidade só aceita instâncias que tenham atributos correspondentes (tipo de instância, plataforma e zona de disponibilidade) e estejam explicitamente destinadas para a reserva.

  5. Escolha Request reservation (Solicitar reserva).

Para criar uma reserva de capacidade usando a AWS CLI

Use o comando create-capacity-reservation. Para ter mais informações, consulte Plataformas compatíveis. Para obter mais informações sobre as plataformas Windows compatíveis, consulte Plataformas compatíveis no Guia do usuário do Amazon EC2 para instâncias do Windows.

Por exemplo, o comando a seguir cria uma Reserva de capacidade que reserva capacidade para três instâncias m5.2xlarge, executando AMIs do Red Hat Enterprise Linux na zona de disponibilidade us-east-1a.

aws ec2 create-capacity-reservation --instance-type m5.2xlarge --instance-platform Red Hat Enterprise Linux --availability-zone us-east-1a --instance-count 3

Iniciar instâncias em uma Reserva de capacidade existente

Ao executar uma instância, é possível especificar se deseja executá-la em qualquer Reserva de capacidade open, em uma Reserva de capacidade específica ou em um grupo de Reservas de Capacidade. Você só pode executar uma instância em uma Reserva de capacidade que tenha atributos correspondentes (tipo de instância, plataforma e zona de disponibilidade) e capacidade suficiente. Se preferir, configure a instância para evitar a execução em um Reserva de capacidade, mesmo que você tenha uma Reserva de capacidade open com atributos correspondentes e capacidade disponível.

A execução de uma instância em uma Reserva de capacidade reduz a capacidade disponível pelo número de instâncias executadas. Por exemplo, se você executar três instâncias, a capacidade disponível da Reserva de capacidade será reduzida em três.

Para executar instâncias em uma Reserva de capacidade existente usando o console
  1. Siga o procedimento para executar uma instância, mas não execute a instância até concluir as etapas a seguir para especificar as configurações para o grupo de posicionamento e a reserva de capacidade.

  2. Expanda os Detalhes avançados e faça o seguinte:

    1. Em Grupo de posicionamento, selecione o grupo de posicionamento de cluster no qual deseja executar a instância.

    2. Em Capacity Reservation (Reserva de capacidade), escolha uma das seguintes opções dependendo da configuração da reserva de capacidade:

      • Nenhuma: impede que as instâncias sejam executadas em uma reserva de capacidade. As instâncias são executadas na capacidade sob demanda.

      • Aberta: executa as instâncias em qualquer reserva de capacidade que tenha atributos correspondentes e capacidade suficiente para o número de instâncias selecionadas. Se você não tiver uma Reserva de capacidade correspondente com capacidade suficiente, a instância usará a capacidade sob demanda.

      • Destino por ID: executa as instâncias na reserva de capacidade selecionada. Se a Reserva de capacidade selecionada não tiver capacidade suficiente para o número de instâncias selecionadas, a execução da instância falhará.

      • Destino por grupo: executa as instâncias em qualquer reserva de capacidade com atributos correspondentes e capacidade disponível no grupo de reserva de capacidade selecionado. Se o grupo selecionado não tiver uma Reserva de capacidade com atributos correspondentes e capacidade disponível, as instâncias serão executadas na capacidade sob demanda.

  3. No painel Summary (Resumo), analise a configuração da instância e selecione Launch instance (Iniciar instância). Para ter mais informações, consulte Iniciar uma instância usando o novo assistente de inicialização de instância, versão beta.

Para iniciar uma instância em uma reserva de capacidade existente usando a AWS CLI

Use o comando run-instances e especifique o parâmetro --capacity-reservation-specification.

O exemplo a seguir executa uma instância t2.micro em qualquer Reserva de capacidade aberta que tenha atributos correspondentes e capacidade disponível:

aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --subnet-id subnet-1234567890abcdef1 --capacity-reservation-specification CapacityReservationPreference=open

O exemplo a seguir executa uma instância t2.micro em uma Reserva de capacidade targeted:

aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --subnet-id subnet-1234567890abcdef1 --capacity-reservation-specification CapacityReservationTarget={CapacityReservationId=cr-a1234567}

O exemplo a seguir executa uma instância t2.micro em um grupo de Reserva de capacidade:

aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --subnet-id subnet-1234567890abcdef1 --capacity-reservation-specification CapacityReservationTarget={CapacityReservationResourceGroupArn=arn:aws:resource-groups:us-west-1:123456789012:group/my-cr-group}

Modifique uma Reserva de capacidade

É possível alterar os atributos de uma Reserva de capacidade ativa depois de criá-la. Não é possível modificar uma Reserva de capacidade depois que ela expirar ou depois de você cancelá-la explicitamente.

Ao modificar uma Reserva de capacidade, você só pode aumentar ou diminuir a quantidade e alterar a maneira como ela é lançada. Não é possível alterar o tipo de instância, a otimização de EBS, a plataforma, a zona de disponibilidade nem a qualificação de instâncias de uma reserva de capacidade. Se for necessário modificar qualquer um desses atributos, recomendamos cancelar a reserva e, em seguida, criar uma nova com os atributos necessários.

Se você especificar uma nova quantidade que exceda seu limite de instância sob demanda restante para o tipo de instância selecionada, a atualização falhará.

Para modificar uma Reserva de capacidade usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Escolha Reservas de Capacidade, selecione a Reserva de capacidade a ser modificada e, em seguida, escolha Edit (Editar).

  3. Modifique as opções Quantity (Quantidade) ou Reservation ends (Término da reserva) conforme necessário e escolha Save changes (Salvar alterações).

Para modificar uma reserva de capacidade usando a AWS CLI

Use o comando modify-capacity-reservation:

Por exemplo, o comando a seguir modifica uma Reserva de capacidade para reservar capacidade para oito instâncias.

aws ec2 modify-capacity-reservation --capacity-reservation-id cr-1234567890abcdef0 --instance-count 8

Modificar as configurações da Reserva de capacidade de uma instância

É possível modificar as configurações da Reserva de capacidade a seguir para uma instância interrompida a qualquer momento:

  • Comece em qualquer Reserva de capacidade que tenha atributos correspondentes (tipo de instância, plataforma e zona de disponibilidade) e capacidade disponível.

  • Execute a instância em uma Reserva de capacidade específica.

  • Inicie em qualquer reserva de capacidade que tenha atributos correspondentes e capacidade disponível em um grupo de reserva de capacidade

  • Impeça que a instância seja iniciada em uma Reserva de capacidade.

Para modificar as configurações da Reserva de capacidade de uma instância usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Escolha Instances (Instâncias) e selecione a instância a ser modificada. Interrompa a instância se ela ainda não tiver sido interrompida.

  3. Escolha Actions (Ações), Modify Reserva de capacidade Settings (Modificar configurações da Reserva de capacidade).

  4. Para Reserva de capacidade, selecione uma das seguintes opções:

    • Open (Aberta) — executa as instâncias em qualquer Reserva de capacidade que tenha atributos correspondentes e capacidade suficiente para o número de instâncias selecionadas. Se você não tiver uma Reserva de capacidade correspondente com capacidade suficiente, a instância usará a capacidade sob demanda.

    • None (Nenhuma) — impede que as instâncias sejam executadas em uma Reserva de capacidade. As instâncias são executadas na capacidade sob demanda.

    • Specify Capacity Reservation (Especificar reserva de capacidade) — executa as instâncias na Reserva de capacidade selecionada. Se a Reserva de capacidade selecionada não tiver capacidade suficiente para o número de instâncias selecionadas, a execução da instância falhará.

    • Specify Capacity Reservation group (Especificar grupo de reserva de capacidade) — executa as instâncias em qualquer Reserva de capacidade com atributos correspondentes e capacidade disponível no grupo de Reserva de capacidade selecionado. Se o grupo selecionado não tiver uma Reserva de capacidade com atributos correspondentes e capacidade disponível, as instâncias serão executadas na capacidade sob demanda.

Para modificar as configurações da reserva de capacidade de uma instância usando a AWS CLI

Use o comando modify-instance-capacity-reservation-attributes.

Por exemplo, o comando a seguir altera a configuração da Reserva de capacidade de uma instância para open ou none.

aws ec2 modify-instance-capacity-reservation-attributes --instance-id i-1234567890abcdef0 --capacity-reservation-specification CapacityReservationPreference=none|open

Por exemplo, o comando a seguir modifica uma instância para ter como destino uma Reserva de capacidade específica.

aws ec2 modify-instance-capacity-reservation-attributes --instance-id i-1234567890abcdef0 --capacity-reservation-specification CapacityReservationTarget={CapacityReservationId=cr-1234567890abcdef0}

Por exemplo, o comando a seguir modifica uma instância para ter como destino um grupo de Reserva de capacidade específico.

aws ec2 modify-instance-capacity-reservation-attributes --instance-id i-1234567890abcdef0 --capacity-reservation-specification CapacityReservationTarget={CapacityReservationResourceGroupArn=arn:aws:resource-groups:us-west-1:123456789012:group/my-cr-group}

Visualizar uma Reserva de capacidade

As Reservas de Capacidade têm estes estados possíveis:

  • active — a capacidade está disponível para uso.

  • expired — a Reserva de capacidade expirou automaticamente na data e hora especificadas em sua solicitação de reserva. A capacidade reservada não está mais disponível para uso.

  • cancelled—O(A) Reserva de capacidade foi cancelado(a). A capacidade reservada não está mais disponível para uso.

  • pending — a solicitação de Reserva de capacidade foi bem-sucedida, mas o provisionamento da capacidade ainda está pendente.

  • failed — a solicitação da Reserva de capacidade falhou. Uma solicitação pode falhar devido a parâmetros de solicitação que não são válidos, restrições da capacidade ou restrições de limite da instância. É possível visualizar uma solicitação com falha por 60 minutos.

nota

Devido ao modelo de consistência eventual seguido pelas APIs do Amazon EC2, depois de criar uma reserva de capacidade, pode levar até cinco minutos para o console e o describe-capacity-reservations responder indicando que a reserva de capacidade está no estado active. Durante esse tempo, o console e a resposta describe-capacity-reservations podem indicar que a Reserva de capacidade está no estado pending. No entanto, a Reserva de capacidade pode já estar disponível para uso e é possível tentar iniciar instâncias nela.

Para visualizar as Reservas de Capacidade usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Escolha Reservas de Capacidade e selecione uma Reserva de capacidade para visualizar.

  3. Escolha View launched instances for this reservation (Visualizar instâncias executadas para essa reserva)

Para visualizar as Reservas de Capacidade usando a AWS CLI

Use o comando describe-capacity-reservations:

Por exemplo, o comando a seguir descreve todas as Reservas de Capacidade.

aws ec2 describe-capacity-reservations

Saída de exemplo.

{ "CapacityReservations": [ { "CapacityReservationId": "cr-1234abcd56EXAMPLE ", "EndDateType": "unlimited", "AvailabilityZone": "eu-west-1a", "InstanceMatchCriteria": "open", "Tags": [], "EphemeralStorage": false, "CreateDate": "2019-08-16T09:03:18.000Z", "AvailableInstanceCount": 1, "InstancePlatform": "Linux/UNIX", "TotalInstanceCount": 1, "State": "active", "Tenancy": "default", "EbsOptimized": true, "InstanceType": "a1.medium", "PlacementGroupArn": "arn:aws:ec2:us-east-1:123456789012:placement-group/MyPG" }, { "CapacityReservationId": "cr-abcdEXAMPLE9876ef ", "EndDateType": "unlimited", "AvailabilityZone": "eu-west-1a", "InstanceMatchCriteria": "open", "Tags": [], "EphemeralStorage": false, "CreateDate": "2019-08-07T11:34:19.000Z", "AvailableInstanceCount": 3, "InstancePlatform": "Linux/UNIX", "TotalInstanceCount": 3, "State": "cancelled", "Tenancy": "default", "EbsOptimized": true, "InstanceType": "m5.large" } ] }

Cancelar uma Reserva de capacidade

É possível cancelar uma Reserva de capacidade a qualquer momento se não precisar mais da capacidade reservada. Quando você cancela uma Reserva de capacidade, a capacidade é liberada imediatamente e não é mais reservada para seu uso.

É possível cancelar Reservas de Capacidade vazias e Reservas de Capacidade que têm instâncias em execução. Se você cancelar uma reserva de capacidade que tenha instâncias em execução, as instâncias continuarão a ser executadas normalmente fora da reserva da capacidade em tarifas padrão de instância sob demanda ou em uma tarifa com desconto, se você tiver um Savings Plan ou uma instância reservada regional correspondente.

Depois que você cancela uma Reserva de capacidade, as instâncias que a usavam como destino não podem mais ser executadas. Modifique essas instâncias para que elas tenham outra Reserva de capacidade como destino, sejam executadas em uma Reserva de capacidade aberta com atributos correspondentes e capacidade suficiente ou evitem a execução em uma Reserva de capacidade. Para ter mais informações, consulte Modificar as configurações da Reserva de capacidade de uma instância.

Para cancelar uma Reserva de capacidade usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Escolha Reservas de Capacidade e selecione a Reserva de capacidade a ser cancelada.

  3. Escolha Cancel reservation (Cancelar reserva), Cancel reservation (Cancelar reserva).

Para cancelar uma reserva de capacidade usando a AWS CLI

Use o comando cancel-capacity-reservation:

Por exemplo, o comando a seguir cancela uma Reserva de capacidade com um ID cr-1234567890abcdef0.

aws ec2 cancel-capacity-reservation --capacity-reservation-id cr-1234567890abcdef0