Amazon Elastic Compute Cloud
User Guide for Linux Instances

Placement groups

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 pode abranger VPCs emparelhadas na mesma região. O principal benefício de um placement group de cluster, além de um limite de fluxo de 10 Gbps, é a característica de não bloquear, não sobrecarregar e de ser totalmente bidirecional da conectividade. Em outras palavras, todos os nós do placement group podem se comunicar com todos os outros nós do placement group na taxa completa de 10 Gbps e 25 agregados sem qualquer lentidão devido à inscrição excessiva.

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 uma baixa latência de rede, de uma alta taxa de transferência de rede ou de ambas, e se a maior parte do tráfego de rede for entre 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 que você execute o número de instâncias necessário no placement group em uma única solicitação de execução e que use o mesmo tipo de instância para todas as instâncias do 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. Reiniciar as instâncias pode migrá-las para o hardware que tenha 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 — você pode 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 que você especificar para um placement group deve ser exclusivo dentro da sua 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.

  • As instâncias com uma locação de host não podem ser executadas em placement groups.

  • Para instâncias ativadas para a rede avançada, o tráfego entre instâncias dentro da mesma região da endereçada usando-se endereços IPv4 ou IPv6 pode usar até 5 Gbps para o tráfego de fluxo único e até 25 Gbps para o tráfego multifluxo. Um fluxo representa uma única conexão de rede ponto a ponto.

Regras e limitações do placement group de cluster

As seguintes regras se aplicam aos placement groups de cluster:

  • A seguir, temos os únicos tipos de instância que você pode usar quando executar uma instância em um placement group de cluster:

    • Uso geral: A1, M4, M5, M5a, M5ad e M5d

    • Computação otimizada: C3, C4, C5, C5d, C5n e cc2.8xlarge

    • Memória otimizada: cr1.8xlarge, R3, R4, R5, R5a, R5ad, R5d, X1, X1e e z1d

    • Armazenamento otimizado: D2, H1, hs1.8xlarge, I2, I3 e I3en

    • Computação acelerada: F1, G2, G3, P2 e P3

  • 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.

    • 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.

  • Não há suporte para placement groups de partição em Hosts dedicados.

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. Isso não fornece garantias sobre a distribuição das instâncias entre os grupos, mas assegura que a distribuição para cada grupo seja feita de forma a limitar o impacto de determinadas categorias de falha.

  • Não há suporte para placement groups de distribuição em Instâncias dedicadas ou Hosts dedicados.

Criação de um placement group

Você pode criar um placement group usando o console do Amazon EC2 ou a linha de comando.

Para criar um placement group (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 para o grupo. Se você escolher Partition (Partição), especifique o número de partições no grupo.

  5. Escolha Criar.

Para criar um placement group (linha de comando)

Para criar um placement group de partição (AWS CLI)

  • Use o comando create-placement-group e especifique o parâmetro --strategy com o valor partition e o parâmetro --partition-count. 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

Execução de instâncias em um placement group

Você pode criar uma AMI especificamente para as instâncias a serem executadas em um placement group. Para fazer isso, execute uma instância e instale o software e os aplicativos necessários nela. Em seguida, crie uma AMI a partir da instância. Para obter mais informações, consulte Criação de uma AMI do Linux com Amazon EBS.

Para executar instâncias em um placement group (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 Amazon Machine Image (AMI), selecione uma AMI. Para selecionar uma AMI que você criou, escolha My AMIs.

    • 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 a lista Placement group não for exibida nessa página, verifique se você selecionou um tipo de instância que pode 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), Target partition (Partição de destino), selecione Auto distribution (Distribuição automática) para que o Amazon EC2 se esforce ao máximo para distribuir as instâncias igualmente por todas as partições do grupo; ou especifique a partição na qual executar as instâncias.

Para executar instâncias em um placement group (linha de comando)

  1. Crie uma AMI para suas instâncias usando um dos seguintes comandos:

  2. Execute instâncias em seu placement group usando uma das seguintes opções:

Para executar instâncias em uma partição específica de um placement group de partição (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"

Descrever instâncias em um placement group

Você pode visualizar informações de posicionamento de suas instâncias usando a linha de comando ou o console do Amazon EC2. O placement group pode ser visualizado usando o console. No momento, o número da partição para instâncias em um placement group de partição pode ser visualizado somente usando a API ou AWS CLI.

Para visualizar o placement group de uma instância (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).

Para visualizar o número da partição para uma instância em um placement group de partição (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" }

Para filtrar instâncias para um placement group de partição e número de partição específicos (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" } ],

Como alterar o placement group de uma instância

Você pode mover uma instância existente para um placement group, mover uma instância de um placement group para outro ou remover uma instância de um placement group. Antes de começar, a instância deve estar no estado stopped.

Você pode alterar o placement group para uma instância usando a linha de comando ou o AWS SDK.

Para mover uma instância para um placement group (linha de comando)

  1. Pare a instância usando um dos seguintes comandos:

  2. Use o comando modify-instance-placement (AWS CLI) 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

    Você também pode usar o comando Edit-EC2InstancePlacement (AWS Tools para Windows PowerShell).

  3. Reinicie a instância usando um dos seguintes comandos:

Para remover uma instância de um placement group (linha de comando)

  1. Pare a instância usando um dos seguintes comandos:

  2. Use o comando modify-instance-placement (AWS CLI) e especifique uma string vazia para o nome do grupo.

    aws ec2 modify-instance-placement --instance-id i-0123a456700123456 --group-name ""

    Você também pode usar o comando Edit-EC2InstancePlacement (AWS Tools para Windows PowerShell).

  3. Reinicie a instância usando um dos seguintes comandos:

Exclusão de um placement group

Se precisar substituir um placement group ou se não precisar mais dele, você poderá excluí-lo. Para excluir o placement group, você deve encerrar todas as instâncias executadas no placement group ou movê-las para outro placement group.

Para encerrar ou mover instâncias e excluir um placement group (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 e encerre todas as instâncias no placement group. Você pode ver se a instância está em um placement group antes de encerrá-la verificando o valor de Placement Group no painel Details.

    Você também pode seguir as etapas em Como alterar o placement group de uma instância para mover as instâncias para outro placement group.

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

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

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

Para encerrar instâncias e excluir um placement group (linha de comando)

Você pode usar um dos seguintes conjuntos de comandos. Para obter mais informações sobre essas interfaces de linha de comando, consulte Acessando o Amazon EC2.