Grupos de posicionamento - Amazon Elastic Compute Cloud

Grupos de posicionamento

Ao executar uma nova instância do EC2, o serviço do EC2 tenta posicionar a instância de forma que todas as suas instâncias estejam distribuídas pelo hardware subjacente para minimizar falhas correlacionadas. É possível usar placement groups para influenciar o posicionamento de um grupo de instâncias interdependentes para atender às necessidades de sua carga de trabalho. Dependendo do tipo de carga de trabalho, você pode criar um placement group com uma das seguintes estratégias de posicionamento:

  • Cluster – agrupa instâncias em uma zona de disponibilidade. Essa estratégia permite que as cargas de trabalho atinjam o desempenho de rede de baixa latência necessário para a comunicação de nó a nó totalmente acoplada que é típica dos aplicativos HPC.

  • Partição – distribui instâncias entre partições lógicas, de tal modo que instâncias em uma partição não compartilhem o hardware subjacente com grupos de instâncias em diferentes partições. Essa estratégia é normalmente usada por grandes cargas de trabalho distribuídas e replicadas, como Hadoop, Cassandra e Kafka.

  • Disseminar – posiciona estritamente um pequeno grupo de instâncias por hardware subjacente distinto a fim de reduzir falhas correlacionadas.

Não há custo para a criação de um placement group.

Placement groups de cluster

Um placement group de cluster é um agrupamento lógico de instâncias dentro de uma única zona de disponibilidade. Um placement group de cluster pode abranger VPCs emparelhadas na mesma região. As instâncias no mesmo placement group de cluster dispõem de um limite de taxa de transferência por fluxo superior para tráfego TCP/IP e são colocadas no mesmo segmento de largura de banda de bisseção alta da rede.

A imagem a seguir mostra instâncias colocadas em um placement group de cluster.


                Um placement group de cluster

Os placement groups de cluster são recomendados para aplicativos que se beneficiam de baixa latência de rede, alta taxa de transferência de rede ou ambos. Eles também são recomendados quando a maioria do tráfego de rede está entre as instâncias no grupo. Para fornecer a menor latência possível e o melhor desempenho de rede de pacote por segundo para seu placement group, escolha um tipo de instância que comporte rede avançada. Para obter mais informações, consulte Redes aprimoradas.

Recomendamos executar suas instâncias da seguinte maneira:

  • Use uma única solicitação de execução para executar o número de instâncias necessárias no placement group.

  • Use o mesmo tipo de instância para todas as instâncias no placement group.

Se você tentar adicionar mais instâncias ao placement group depois ou se tentar executar mais de um tipo de instância no placement group, aumentará as possibilidades de ocorrer um erro de capacidade insuficiente.

Se você interrompe uma instância em um placement group e depois a inicia novamente, ela ainda é executada no placement group. Contudo, ocorrerá uma falha na inicialização se não houver capacidade suficiente para a instância.

Se você receber um erro de capacidade ao executar uma instância em um placement group que já tenha instâncias em execução, interrompa e inicie todas as instâncias no placement group e tente executá-lo novamente. Iniciar as instâncias pode migrá-las para o hardware com capacidade para todas as instâncias solicitadas.

Placement groups de partição

Os placement groups de partição ajudam a reduzir a probabilidade de falhas de hardware correlacionadas do aplicativo. Ao usar placement groups de partição, o Amazon EC2 divide cada grupo em segmentos lógicos chamados de partições. O Amazon EC2 garante que cada partição em um placement group tenha seu próprio conjunto de racks. Cada rack tem sua própria rede e fonte de energia. Não há duas partições em um placement group que compartilhem os mesmos racks, permitindo que você isole o impacto da falha de hardware no aplicativo.

A imagem a seguir é uma representação visual simples de um placement group de partição em uma única zona de disponibilidade. Ela mostra instâncias que são colocadas em um placement group de partição com três partições — Partition 1 (Partição 1), Partition 2 (Partição 2) e Partition 3 (Partição 3). Cada partição é composta por várias instâncias. As instâncias em cada partição não compartilham racks com as instâncias nas outras partições, contendo o impacto de uma única falha de hardware apenas na partição associada.


                Um placement group de partição com três partições

Placement groups de partição podem ser usados para implantar grandes cargas de trabalho distribuídas e replicadas, como HDFS, HBase e Cassandra, em racks distintos. Ao executar instâncias em um placement group de partição, o Amazon EC2 tenta distribuir as instâncias uniformemente pelo número de partições especificado por você. Também é possível executar instâncias em uma partição específica para ter mais controle sobre onde as instâncias são colocadas.

Um placement group de partição pode ter partições em várias zonas de disponibilidade na mesma região. Um placement group de partição pode ter, no máximo, sete partições por zona de disponibilidade. O número de instâncias que podem ser executadas em um placement group de partição é limitado somente pelos limites da sua conta.

Além disso, placement groups de partição oferecem visibilidade nas partições — é possível ver quais instâncias estão em quais partições. Você pode compartilhar essas informações com aplicativos que reconhecem a topologia, como HDFS, HBase e Cassandra. Esses aplicativos usam essas informações para tomar decisões inteligentes de replicação de dados para aumentar a disponibilidade e a durabilidade dos dados.

Se você iniciar ou executar uma instância em um placement group de partição e não houver uma quantidade suficiente de hardware exclusivo para atender à solicitação, ocorrerá uma falha. O Amazon EC2 disponibilizará mais hardware distinto ao longo do tempo para que você possa reenviar sua solicitação mais tarde.

Placement groups de distribuição

Um placement group de distribuição é um grupo de instâncias que são colocadas cada uma em racks distintos, sendo que cada rack tem sua própria rede e fonte de energia.

A imagem a seguir mostra sete instâncias em uma única zona de disponibilidade que são colocadas em um placement group de distribuição. As sete instâncias são colocadas em sete racks diferentes.


                Um placement group de distribuição

Os placement groups de distribuição são recomendados para aplicativos com uma pequena quantidade de instâncias críticas que devem ser mantidas separadas umas das outras. Executar instâncias em um placement group de distribuição reduz o risco de falhas simultâneas que podem ocorrer quando as instâncias compartilham os mesmos racks. Os placement groups de distribuição concedem acesso a racks distintos e, portanto, são adequados para combinar tipos de instâncias ou executar instâncias ao longo do tempo.

Um placement group de distribuição pode abranger várias zonas de disponibilidade na mesma região. Você pode ter no máximo sete instâncias em execução por zona de disponibilidade por grupo.

Se você iniciar ou executar uma instância em um placement group de distribuição e não houver uma quantidade suficiente de hardware exclusivo para atender à solicitação, ocorrerá uma falha. O Amazon EC2 disponibiliza mais hardware distinto ao longo do tempo, portanto, tente reenviar sua solicitação mais tarde.

Regras e limitações do placement group

Regras e limitações gerais

Antes de usar os placement groups, esteja ciente das seguintes regras:

  • O nome especificado para um placement group deve ser exclusivo na conta da AWS para a região em questão.

  • Não é possível mesclar placement groups.

  • Uma instância pode ser executada em um placement group por vez; ela não pode abranger vários placement groups.

  • O Reservas de capacidade sob demanda e as Instâncias reservadas de zona fornecem uma reserva de capacidade para instâncias do EC2 em uma zona de disponibilidade específica. A reserva de capacidade pode ser usada por instâncias em um placement group. Contudo, não é possível reservar explicitamente a capacidade de um placement group.

  • Não é possível iniciar o Hosts dedicados em placement groups.

Regras e limitações do placement group de cluster

As seguintes regras se aplicam aos placement groups de cluster:

  • Para instâncias em um placement group de cluster, você deve usar os seguintes tipos de instância compatíveis:

    • Instâncias da geração atual.

    • As seguintes instâncias da geração anterior: C3 cc2.8xlarge, cr1.8xlarge, G2 hs1.8xlarge, I2 e R3.

  • Um placement group de cluster não pode abranger várias zonas de disponibilidade.

  • A velocidade máxima de taxa de transferência de rede do tráfego entre duas instâncias em um placement group de cluster é limitada pela instância mais lenta. Para aplicativos com requisitos de taxa de transferência alta, escolha um tipo de instância com conectividade de rede que atenda a suas necessidades.

  • Para instâncias ativadas para a rede avançada, as seguintes regras se aplicam:

    • As instâncias dentro de um placement group de cluster podem usar até 10 Gbps para tráfego de fluxo único. As instâncias que não estiverem dentro de um placement group de cluster poderão usar até 5 Gbps para tráfego de fluxo único.

    • O tráfego para e de buckets do Amazon S3 dentro da mesma região pelo espaço de endereço IP público ou por um VPC endpoint pode usar toda a largura de banda agregada da instância disponível.

  • Você pode executar vários tipos de instâncias em um placement group de cluster. No entanto, isso reduz a probabilidade de a capacidade necessária estar disponível para que a execução seja realizada com sucesso. Recomendamos usar o mesmo tipo de instância para todas as instâncias em um placement group de cluster.

  • O tráfego de rede para a Internet e por uma conexão da AWS Direct Connect para recursos no local é limitado a 5 Gbps.

Regras e limitações do placement group de partição

As seguintes regras se aplicam aos placement groups de partição:

  • Um placement group de partição oferece suporte a, no máximo, sete partições por zona de disponibilidade. O número de instâncias que podem ser executadas em um placement group de partição é limitado somente pelos limites da sua conta.

  • Quando instâncias são executadas em um placement group de partição, o Amazon EC2 tenta distribuir uniformemente as instâncias em todas as partições. O Amazon EC2 não garante uma distribuição uniforme de instâncias em todas as partições.

  • Um placement group de partição com Instâncias dedicadas pode ter, no máximo, duas partições.

Regras e limitações do placement group de distribuição

As seguintes regras se aplicam aos placement groups de distribuição:

  • Um placement group de distribuição suporta, no máximo, sete instâncias em execução por zona de disponibilidade. Por exemplo, em uma região com três zonas de disponibilidade, você pode executar um total de 21 instâncias no grupo (sete por zona). Se você tentar iniciar uma oitava instância na mesma zona de disponibilidade e no mesmo placement group de distribuição, ela não será executada. Se você precisa de mais de sete instâncias em uma zona de disponibilidade, recomendamos usar vários placement groups de distribuição. O uso de vários placement groups de dispersão não fornece garantias sobre a disseminação de instâncias entre grupos, mas garante a dispersão para cada grupo, limitando assim o impacto de certas classes de falhas.

  • Os placement groups de distribuição não são compatíveis com o Instâncias dedicadas.

Criar um placement group

É possível criar um placement group usando um dos métodos a seguir.

nota

Você pode marcar um placement group na criação usando apenas as ferramentas de linha de comando.

Novo console

Para criar um placement group usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Placement Groups e Create placement group (Criar placement group).

  3. Especifique um nome para o grupo.

  4. Escolha a estratégia de posicionamento para o grupo. Se você escolher Partition (Partição), selecione o número de partições no grupo.

  5. Escolha Create group (Criar grupo).

Console antigo

Para criar um placement group usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Placement Groups e Create Placement Group.

  3. Especifique um nome para o grupo.

  4. Escolha a estratégia de posicionamento para o grupo. Se você escolher Partition (Partição), especifique o número de partições no grupo.

  5. Escolha Criar.

AWS CLI

Como criar um placement group usando a AWS CLI

Use o comando create-placement-group. O exemplo a seguir cria um placement group chamado my-cluster que usa a estratégia de colocação do cluster e aplica uma tag com uma chave de purpose e um valor de production.

aws ec2 create-placement-group --group-name my-cluster --strategy cluster --tag-specifications 'ResourceType=placement-group,Tags={Key=purpose,Value=production}'

Como criar um placement group de partição usando a AWS CLI

Use o comando create-placement-group. Especifique o parâmetro --strategy com o valor partition e especifique o parâmetro --partition-count com o número desejado de partições. Neste exemplo, o placement group de partição é chamado de HDFS-Group-A e criado com cinco partições.

aws ec2 create-placement-group --group-name HDFS-Group-A --strategy partition --partition-count 5
PowerShell

Como criar um placement group usando o AWS Tools para Windows PowerShell

Use o comando New-EC2PlacementGroup.

Marcar um placement group

Para categorizar e gerenciar placement groups existentes, você pode marcá-los com metadados personalizados. Para obter mais informações sobre como as tags funcionam, consulte Marcar recursos do Amazon EC2.

Quando você marca um placement group, as instâncias executadas no placement group não são marcadas automaticamente. É necessário marcar explicitamente as instâncias que são executadas no placement group. Para obter mais informações, consulte Adicionar uma tag ao executar uma instância.

Você pode exibir, adicionar e excluir tags usando o novo console e as ferramentas da linha de comando.

Novo console

Como exibir, adicionar ou excluir uma tag para um placement group existente

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Placement Groups.

  3. Selecione um placement group e escolha Actions (Ações), Manage tags (Gerenciar tags).

  4. A seção Manage tags (Gerenciar tags) exibe todas as tags atribuídas ao placement group. Para adicionar ou remover tags, siga estas etapas:

    • Para adicionar uma tag, escolha Add tag (Adicionar tag), e insira a chave e o valor da tag. Você pode adicionar até 50 tags por placement group. Para obter mais informações, consulte Restrições de tags.

    • Para excluir uma tag, escolha Remove (Remover) ao lado da tag que você deseja excluir.

  5. Selecione Save changes (Salvar alterações).

AWS CLI

Como exibir tags de placement group

Use o comando describe-tags para exibir as tags para o recurso especificado. No exemplo a seguir, descreva as tags para todos os placement groups.

aws ec2 describe-tags \ --filters Name=resource-type,Values=placement-group
{ "Tags": [ { "Key": "Environment", "ResourceId": "pg-0123456789EXAMPLE", "ResourceType": "placement-group", "Value": "Production" }, { "Key": "Environment", "ResourceId": "pg-9876543210EXAMPLE", "ResourceType": "placement-group", "Value": "Production" } ] }

Você também pode usar o comando describe-tags para visualizar as tags de um placement group especificando seu ID. No exemplo a seguir, descreva as tags para pg-0123456789EXAMPLE.

aws ec2 describe-tags \ --filters Name=resource-id,Values=pg-0123456789EXAMPLE
{ "Tags": [ { "Key": "Environment", "ResourceId": "pg-0123456789EXAMPLE", "ResourceType": "placement-group", "Value": "Production" } ] }

Você também pode exibir as tags de um placement group descrevendo o placement group.

Use o comando describe-placement-groups para exibir a configuração do placement group especificado, que inclui todas as tags especificadas para o placement group.

aws ec2 describe-placement-groups \ --group-name my-cluster
{ "PlacementGroups": [ { "GroupName": "my-cluster", "State": "available", "Strategy": "cluster", "GroupId": "pg-0123456789EXAMPLE", "Tags": [ { "Key": "Environment", "Value": "Production" } ] } ] }

Como marcar um placement group existente usando o comando da AWS CLI

Você pode usar o comando create-tags para marcar os recursos existentes. No exemplo a seguir, o placement group existente é marcado com Key=Cost-Center e Value=CC-123.

aws ec2 create-tags \ --resources pg-0123456789EXAMPLE \ --tags Key=Cost-Center,Value=CC-123

Como excluir a tag de um placement group usando o comando da AWS CLI

Você pode usar o comando delete-tags para excluir tags de recursos existentes. Para obter exemplos, consulte Exemplos no AWS CLI Command Reference.

PowerShell

Como exibir tags de placement group

Use o comando Get-EC2Tag.

Como descrever as tags de um placement group específico

Use o comando Get-EC2PlacementGroup.

Como marcar um placement group existente

Use o comando New-EC2Tag.

Como excluir a tag de um placement group

Use o comando Remove-EC2Tag.

Executar instâncias em um placement group

É possível executar uma instância em um placement group se as regras e limitações do placement group forem atendidas usando um dos métodos a seguir.

Console

Para executar instâncias em um placement group usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Escolha Launch Instance (Executar instância). Conclua o assistente conforme direcionado, tendo o cuidado de fazer o seguinte:

    • Na página Choose an Instance Type, selecione um tipo de instância que possa ser executado em um placement group.

    • Na página Configure Instance Details (Configurar detalhes da instância), os campos a seguir serão aplicáveis aos placement groups:

      • Em Number of instances (Número de instâncias), insira o número total de instâncias que serão necessárias nesse placement group, pois talvez você não possa adicionar instâncias ao placement group posteriormente.

      • Em Placement group, marque a caixa de seleção Add instance to placement group (Adicionar instância ao placement group). Se Placement group não for exibido nessa página, verifique se você selecionou um tipo de instância que possa ser executado em um placement group. Caso contrário, essa opção não estará disponível.

      • Em Placement group name (Nome do placement group), é possível optar por adicionar as instâncias a um placement group existente ou a um novo placement group que você criar.

      • Em Placement group strategy (Estratégia do placement group), escolha a estratégia apropriada. Se você escolher partition (partição), para Target partition (Destino partição), escolha Auto distribution (Distribuição automática) para que o Amazon EC2 faça o melhor esforço para distribuir as instâncias uniformemente em todas as partições do grupo. Como alternativa, especifique a partição na qual executar as instâncias.

AWS CLI

Como executar instâncias em um placement group usando a AWS CLI

Use o comando run-instances e especifique o nome do placement group usando o parâmetro --placement "GroupName = my-cluster". Neste exemplo, o placement group é chamado de my-cluster.

aws ec2 run-instances --placement "GroupName = my-cluster"

Como executar instâncias em uma partição específica de um placement group de partição usando a AWS CLI

Use o comando run-instances e especifique a partição e o nome do placement group usando o parâmetro --placement "GroupName = HDFS-Group-A, PartitionNumber = 3". Neste exemplo, o placement group de partição é chamado de HDFS-Group-A e o número de partição é 3.

aws ec2 run-instances --placement "GroupName = HDFS-Group-A, PartitionNumber = 3"
PowerShell

Como executar instâncias em um placement group usando o AWS Tools para Windows PowerShell

Use o comando New-EC2Instance e especifique o nome do placement group usando o parâmetro -Placement_GroupName.

Descrever instâncias em um placement group

É possível exibir as informações de posicionamento de suas instâncias usando um dos métodos a seguir. Você também pode filtrar placement groups de partição pelo número de partição usando a AWS CLI.

Console

Como exibir o placement group e o número de partição de uma instância usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância e, no painel de detalhes, inspecione Placement group. Se a instância não estiver em um placement group, o campo estará vazio. Caso contrário, o nome do placement group será exibido. Se o placement group for um placement group de partição, inspecione o número de partição da instância em Partition number (Número de partição).

AWS CLI

Como visualizar o número da partição para uma instância em um placement group de partição usando a AWS CLI

Use o comando describe-instances e especifique o parâmetro --instance-id.

aws ec2 describe-instances --instance-id i-0123a456700123456

A resposta contém as informações de posicionamento, o que inclui o nome do placement group e o número da partição da instância.

"Placement": { "AvailabilityZone": "us-east-1c", "GroupName": "HDFS-Group-A", "PartitionNumber": 3, "Tenancy": "default" }

Como filtrar instâncias para um placement group de partição e número de partição específicos usando a AWS CLI

Use o comando describe-instances e especifique o parâmetro --filters com os filtros placement-group-name e placement-partition-number. Neste exemplo, o placement group de partição é chamado de HDFS-Group-A e o número de partição é 7.

aws ec2 describe-instances --filters "Name = placement-group-name, Values = HDFS-Group-A" "Name = placement-partition-number, Values = 7"

A resposta lista todas as instâncias que estão na partição especificada dentro do placement group especificado. A seguir está um exemplo de saída mostrando somente o ID da instância, o tipo de instância e informações de posicionamento das instâncias retornadas.

"Instances": [ { "InstanceId": "i-0a1bc23d4567e8f90", "InstanceType": "r4.large", }, "Placement": { "AvailabilityZone": "us-east-1c", "GroupName": "HDFS-Group-A", "PartitionNumber": 7, "Tenancy": "default" } { "InstanceId": "i-0a9b876cd5d4ef321", "InstanceType": "r4.large", }, "Placement": { "AvailabilityZone": "us-east-1c", "GroupName": "HDFS-Group-A", "PartitionNumber": 7, "Tenancy": "default" } ],

Alterar o placement group de uma instância

É possível alterar o placement group de uma instância de qualquer uma das seguintes maneiras:

  • Mova uma instância existente para um placement group

  • Mova uma instância de um placement group para outro

  • Remova uma instância de um placement group

Antes de mover ou remover a instância, ela deve estar no estado stopped. É possível mover ou remover uma instância usando a AWS CLI ou um AWS SDK.

AWS CLI

Como mover uma instância para um placement group usando a AWS CLI

  1. Interrompa a instância usando o comando stop-instances.

  2. Use o comando modify-instance-placement e especifique o nome do placement group para o qual mover a instância.

    aws ec2 modify-instance-placement --instance-id i-0123a456700123456 --group-name MySpreadGroup
  3. Inicie a instância usando o comando start-instances.

PowerShell

Como mover uma instância para um placement group usando o AWS Tools para Windows PowerShell

  1. Interrompa a instância usando o comando Stop-EC2Instance.

  2. Use o comando Edit-EC2InstancePlacement e especifique o nome do placement group para o qual mover a instância.

  3. Inicie a instância usando o comando Start-EC2Instance.

 

AWS CLI

Como remover uma instância de um placement group usando a AWS CLI

  1. Interrompa a instância usando o comando stop-instances.

  2. Use o comando modify-instance-placement e especifique uma string vazia para o nome do placement group.

    aws ec2 modify-instance-placement --instance-id i-0123a456700123456 --group-name ""
  3. Inicie a instância usando o comando start-instances.

PowerShell

Como remover uma instância de um placement group usando o AWS Tools para Windows PowerShell

  1. Interrompa a instância usando o comando Stop-EC2Instance.

  2. Use o comando Edit-EC2InstancePlacement e especifique uma string vazia para o nome do placement group.

  3. Inicie a instância usando o comando Start-EC2Instance.

Excluir um placement group

Se precisar substituir um placement group ou se não precisar mais dele, você poderá excluí-lo. É possível excluir um placement group usando um dos métodos a seguir.

Importante

Para excluir um placement group, ele não deve conter instâncias. É possível encerrar todas as instâncias executadas no placement group, movê-las para outro placement group ou removê-las do placement group. Você pode verificar se uma instância está em um placement group antes de encerrá-la ou movê-la selecionando a instância na tela Instances (Instâncias) e verificando o valor de Placement group no painel de detalhes.

Novo console

Para excluir um placement group usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Placement Groups.

  3. Selecione o placement group e escolha Delete (Excluir).

  4. Quando a confirmação for solicitada, insira Delete e escolha Delete (Excluir).

Console antigo

Para excluir um placement group usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Placement Groups.

  3. Selecione o placement group e escolha Delete Placement Group.

  4. Quando a confirmação for solicitada, escolha Excluir.

AWS CLI

Como excluir um placement group usando a AWS CLI

Use o comando delete-placement-group e especifique o nome do placement group para excluí-lo. Neste exemplo, o nome do placement group é my-cluster.

aws ec2 delete-placement-group --group-name my-cluster
PowerShell

Como excluir um placement group usando o AWS Tools para Windows PowerShell

Use o comando Remove-EC2PlacementGroup para excluir o placement group.