Funcionamento da topologia do Amazon EC2 - Amazon Elastic Compute Cloud

Funcionamento da topologia do Amazon EC2

A rede da AWS é organizada em uma hierarquia de camadas. As instâncias do EC2 se conectam à rede na terceira camada ou abaixo dela, dependendo do tipo de instância. A topologia de uma instância é descrita por um conjunto de nós, com um nó em cada camada da rede. O conjunto de nós na resposta das APIs DescribeInstanceTopology ou DescribeCapacityReservationTopology fornece uma representação hierárquica da rede de cima para baixo, com o nó inferior conectado a uma instância.

nota

Alguns tipos de instâncias incluem quatro nós de rede em um conjunto de nós, representando quatro camadas na rede, enquanto outros compreendem três nós de rede, representando três camadas da rede. Para obter os tipos de instância compatíveis, consulte Tipos de instância.

Conforme o tipo de reserva de capacidade, podem ser exibidos apenas um, dois ou três nós de rede.

O diagrama apresentado a seguir fornece uma representação visual que você pode usar para compreender a topologia do EC2. Os nós da rede são identificados como NN1NN7. Os números i, ii e iii identificam as camadas de rede. Os números 1, 2, 3 e 4 identificam as instâncias do EC2. As instâncias se conectam a um nó na camada inferior, identificado por iii no diagrama a seguir. Mais de uma instância podem se conectar ao mesmo nó.

Representação gráfica da topologia da instância.

Neste exemplo:

  • A instância 1 se conecta ao nó de rede 4 (NN4) na camada iii. O NN4 se conecta ao nó de rede 2 (NN2) na camada ii e o NN2 se conecta ao nó de rede 1 (NN1) na camada i, que é o topo da hierarquia da rede neste exemplo. O conjunto de nós de rede compreende NN1, NN2 e NN4, expressos hierarquicamente das camadas superiores até a camada mais inferior.

  • A instância 2 também se conecta ao nó de rede 4 (NN4). A instância 1 e a instância 2 compartilham o mesmo conjunto de nós de rede: NN1, NN2 e NN4.

  • A instância 3 se conecta ao nó de rede 5 (NN5). O nó NN5 se conecta ao nó NN2, e o nó NN2 se conecta ao nó NN1. O conjunto de nós de rede para a instância 3 é NN1, NN2 e NN5.

  • A instância 4 se conecta ao nó de rede 6 (NN6). Seu conjunto de nós de rede é NN1, NN3 e NN6.

Ao considerar a proximidade das instâncias 1, 2 e 3, as instâncias 1 e 2 estão mais próximas uma da outra porque se conectam ao mesmo nó de rede (NN4), enquanto a instância 3 está mais distante porque se conecta a um nó de rede diferente (NN5).

Ao considerar a proximidade de todas as instâncias neste diagrama, as instâncias 1, 2 e 3 estão mais próximas umas das outras do que da instância 4 porque compartilham NN2 em seu conjunto de nós de rede.

Como regra geral, se o nó de rede conectado a quaisquer duas instâncias for o mesmo, essas instâncias estarão fisicamente próximas uma da outra, como é o caso das instâncias 1 e 2. Além disso, quanto menor o número de saltos entre os nós de rede, mais próximas umas das outras as instâncias estão. Por exemplo, as instâncias 1 e 3 têm menos saltos para um nó de rede comum (NN2) do que para o nó de rede (NN1) que têm em comum com a instância 4 e, portanto, estão mais próximas umas das outras do que da instância 4.

Não há instâncias sendo executadas no nó de rede 7 (NN7) neste exemplo e, portanto, a saída da API não incluirá NN7.

Como interpretar a saída DescribeInstanceTopology

É possível descrever a topologia da instância usando a API DescribeInstanceTopology. A saída fornece uma visão hierárquica da topologia de rede subjacente de uma instância.

O exemplo de saída a seguir corresponde às informações de topologia de rede das quatro instâncias no diagrama anterior. Os comentários são incluídos na saída do exemplo para os propósitos deste exemplo.

É importante observar as seguintes informações na saída:

  • NetworkNodes descreve o conjunto de nós de rede de uma única instância.

  • Em cada conjunto de nós de rede, os nós de rede são listados em ordem hierárquica de cima para baixo.

  • O nó de rede conectado à instância é o último nó de rede na lista (a camada inferior).

  • Para descobrir quais instâncias estão próximas umas das outras, primeiro encontre os nós de rede comuns na camada inferior. Se não houver nós de rede comuns na camada inferior, encontre nós de rede comuns nas camadas superiores.

Na saída de exemplo a seguir, i-1111111111example e i-2222222222example estão localizadas mais próximas uma da outra em comparação com as outras instâncias neste exemplo porque elas têm o nó de rede nn-4444444444example em comum na camada inferior.

nota

A resposta contém três nós de rede ou mais. Para obter informações sobre o número de nós de rede na resposta para cada tipo de instância compatível, consulte Tipos de instância.

{ "Instances": [ { "InstanceId": "i-1111111111example", //Corresponds to instance 1 "InstanceType": "p4d.24xlarge", "GroupName": "ML-group", "NetworkNodes": [ "nn-1111111111example", //Corresponds to NN1 in layer i "nn-2222222222example", //Corresponds to NN2 in layer ii "nn-4444444444example" //Corresponds to NN4 in layer iii - bottom layer, connected to the instance ], "CapacityBlockId": "null", "ZoneId": "usw2-az2", "AvailabilityZone": "us-west-2a" }, { "InstanceId": "i-2222222222example", //Corresponds to instance 2 "InstanceType": "p4d.24xlarge", "NetworkNodes": [ "nn-1111111111example", //Corresponds to NN1 - layer i "nn-2222222222example", //Corresponds to NN2 - layer ii "nn-4444444444example" //Corresponds to NN4 - layer iii - connected to instance ], "CapacityBlockId": "null", "ZoneId": "usw2-az2", "AvailabilityZone": "us-west-2a" }, { "InstanceId": "i-3333333333example", //Corresponds to instance 3 "InstanceType": "trn1.32xlarge", "NetworkNodes": [ "nn-1111111111example", //Corresponds to NN1 - layer i "nn-2222222222example", //Corresponds to NN2 - layer ii "nn-5555555555example" //Corresponds to NN5 - layer iii - connected to instance ], "CapacityBlockId": "null", "ZoneId": "usw2-az2", "AvailabilityZone": "us-west-2a" }, { "InstanceId": "i-444444444example", //Corresponds to instance 4 "InstanceType": "trn1.2xlarge", "NetworkNodes": [ "nn-1111111111example", //Corresponds to NN1 - layer i "nn-3333333333example", //Corresponds to NN3 - layer ii "nn-6666666666example" //Corresponds to NN6 - layer iii - connected to instance ], "CapacityBlockId": "null", "ZoneId": "usw2-az2", "AvailabilityZone": "us-west-2a" } ], "NextToken": "SomeEncryptedToken" }

Como interpretar a saída DescribeCapacityReservationTopology

É possível descrever a topologia da reserva de capacidade usando a API DescribeCapacityReservationTopology. A saída fornece uma visão hierárquica da topologia de rede subjacente para a capacidade reservada.

A saída do exemplo a seguir corresponde às informações da topologia de rede no diagrama anterior. Os comentários são incluídos na saída do exemplo para os propósitos deste exemplo.

É importante observar as seguintes informações na saída:

  • NetworkNodes descreve o conjunto de nós de rede de uma única reserva de capacidade.

  • Em cada conjunto de nós de rede, os nós de rede são listados em ordem hierárquica de cima para baixo.

  • O nó de rede conectado à reserva de capacidade é o último nó apresentado na lista, representando a camada mais baixa da hierarquia.

  • Para avaliar a proximidade entre as reservas de capacidade, identifique primeiro os nós de rede que aparecem em comum na camada mais baixa da saída. Se não houver nós de rede comuns na camada inferior, encontre nós de rede comuns nas camadas superiores.

Na saída de exemplo a seguir, cr-1111111111example está localizado em nn-2222222222example e cr-2222222222example está localizado em nn-3333333333example. Como essas reservas de capacidade residem em diferentes nós de rede na camada layer ii, a comunicação entre suas instâncias será prejudicada em termos de eficiência.

nota

A resposta contém um, dois ou três nós de rede, dependendo do tipo de reserva de capacidade.

{ "CapacityReservations": [ { "CapacityReservationId": "cr-1111111111example", "CapacityBlockId": "null", "State": "active", "InstanceType": "p4d.24xlarge", "NetworkNodes": [ "nn-1111111111example", //Corresponds to NN1 - layer i "nn-2222222222example" //Corresponds to NN2 - layer ii // Visibility of additional nodes requires an instance launch and // the DescribeInstanceTopology API ], "AvailabilityZone": "us-west-2a" }, { "CapacityReservationId": "cr-2222222222example", "CapacityBlockId": "null", "State": "active", "InstanceType": "trn1.2xlarge", "NetworkNodes": [ "nn-1111111111example", //Corresponds to NN1 - layer i "nn-3333333333example" //Corresponds to NN3 - layer ii // Visibility of additional nodes requires an instance launch and // the DescribeInstanceTopology API ], "AvailabilityZone": "us-west-2a" } ], "NextToken": "SomeEncryptedToken" }

Diferenças entre DescribeInstanceTopology e DescribeCapacityReservationTopology

A tabela abaixo apresenta uma comparação das principais diferenças entre as APIs DescribeInstanceTopology e DescribeCapacityReservationTopology:

Ponto de comparação DescribeInstanceTopology DescribeCapacityReservationTopology
Fase de uso Após a inicialização (modo de execução) Antes da inicialização (modo de planejamento e gerenciamento)
Propósito principal Otimizar workloads em instâncias em execução

Realizar o planejamento de capacidade e o gerenciamento da reserva de capacidade, incluindo mesclar, dividir, atribuir, antes da inicialização da instância

Número de nós de rede

Mostra todos os nós de uma instância em execução. Se a instância estiver em uma reserva de capacidade, os primeiros nós coincidem com a topologia da reserva de capacidade correspondente, seguidos pelos nós adicionais para estabelecer conexão com a instância.

Mostra um conjunto parcial de nós, que varia conforme o estado (pending ou active) e o tipo da reserva de capacidade.*

Estado

As instâncias devem estar no estado running

As reservas de capacidade devem estar no estado pending ou active

Casos de uso
  • Otimização da workload

  • Ajuste de performance

  • Análise de topologia em runtime

  • Planejamento de capacidade

  • Gerenciamento da reserva de capacidade (que inclui mesclar, dividir e atribuir)

  • Avaliação da topologia antes da inicialização

* Nos blocos de capacidade para UltraServers, o conjunto de nós de rede é idêntico ao descrever a topologia de uma reserva de capacidade active ou da instância correspondente em execução.