Amazon EC2 토폴로지의 작동 방식 - Amazon Elastic Compute Cloud

Amazon EC2 토폴로지의 작동 방식

AWS 네트워크는 계층 구조로 정렬됩니다. EC2 인스턴스는 인스턴스 유형에 따라 세 번째 계층 또는 그 아래의 네트워크에 연결됩니다. 인스턴스의 토폴로지는 네트워크의 각 계층에 하나의 노드가 있는 노드 집합으로 설명됩니다. DescribeInstanceTopology 또는 DescribeCapacityReservationTopology API 응답에 설정된 노드는 인스턴스에 연결된 하단 노드와 함께 네트워크 계층 구조의 하향 보기를 제공합니다.

참고

일부 인스턴스 유형은 네트워크의 4개 계층을 나타내는 노드 세트의 네트워크 노드 4개로 구성되고, 다른 인스턴스 유형은 네트워크의 3개 계층을 나타내는 네트워크 노드 3개로 구성됩니다. 지원되는 인스턴스 유형은 인스턴스 타입 섹션을 참조하세요.

용량 예약 유형에 따라 1, 2 또는 3개의 네트워크 노드만 표시될 수 있습니다.

다음 다이어그램은 EC2 토폴로지를 이해하는 데 사용할 수 있는 시각적 표현을 제공합니다. 네트워크 노드는 NN1~NN7로 식별됩니다. 숫자 i, ii, iii는 네트워크 계층을 식별합니다. 숫자 1, 2, 3, 4는 EC2 인스턴스를 식별합니다. 인스턴스는 다음 다이어그램의 iii로 식별되는 하단 계층의 노드에 연결됩니다. 둘 이상의 인스턴스가 동일한 노드에 연결할 수 있습니다.

인스턴스 토폴로지를 그래픽으로 표현한 것입니다.

이 예시에서는 다음이 적용됩니다.

  • 인스턴스 1은 계층 iii의 네트워크 노드 4(NN4)에 연결됩니다. 이 예제에서 NN4는 계층 ii의 네트워크 노드 2(NN2)에 연결되고, NN2는 네트워크 계층의 최상위인 계층 i의 네트워크 노드 1(NN1)에 연결됩니다. 네트워크 노드 세트는 상위 계층에서 하위 계층까지 계층적으로 표현되는 NN1, NN2, NN4로 구성됩니다.

  • 인스턴스 2는 네트워크 노드 4(NN4)에도 연결됩니다. 인스턴스 1과 인스턴스 2는 동일한 네트워크 노드 세트(NN1, NN2, NN4)를 공유합니다.

  • 인스턴스 3은 네트워크 노드 5(NN5)에 연결됩니다. NN5는 NN2에 연결되고 NN2는 NN1에 연결됩니다. 인스턴스 3의 네트워크 노드 세트는 NN1, NN2, NN5입니다.

  • 인스턴스 4는 네트워크 노드 6(NN6)에 연결됩니다. 네트워크 노드 세트는 NN1, NN3, NN6입니다.

인스턴스 1, 2, 3의 근접성을 고려할 때 인스턴스 1과 2는 동일한 네트워크 노드(NN4)에 연결되기 때문에 서로 더 가깝고, 인스턴스 3은 다른 네트워크 노드(NN5)에 연결되기 때문에 더 멀리 떨어져 있습니다.

이 다이어그램에 있는 모든 인스턴스의 근접성을 고려할 때 인스턴스 1, 2, 3은 네트워크 노드 세트에서 NN2를 공유하므로 인스턴스 4보다 서로 더 가깝습니다.

일반적으로 두 인스턴스에 연결된 네트워크 노드가 같으면 인스턴스 1과 2의 경우처럼 이러한 인스턴스는 물리적으로 서로 가깝습니다. 또한 네트워크 노드 간 홉 수가 적을수록 인스턴스는 서로 더 가까워집니다. 예를 들어, 인스턴스 1과 인스턴스 3은 인스턴스 4와 공통으로 사용하는 네트워크 노드(NN1)보다 공통 네트워크 노드(NN2)에 대한 홉 수가 적기 때문에 인스턴스 4보다 서로 더 가깝습니다.

이 예제에서는 네트워크 노드 7(NN7)에서 실행되는 인스턴스가 없으므로 API 출력에 NN7이 포함되지 않습니다.

DescribeInstanceTopology 출력을 해석하는 방법

DescribeInstanceTopology API를 사용하여 인스턴스 토폴로지를 설명할 수 있습니다. 출력에서는 인스턴스의 기본 네트워크 토폴로지에 대한 계층 보기를 제공합니다.

다음 예제 출력은 위 다이어그램에 있는 4개 인스턴스의 네트워크 토폴로지 정보에 해당합니다. 이 예제의 목적을 위해 예제 출력에 설명이 포함되어 있습니다.

출력의 다음 정보에 유의해야 합니다.

  • NetworkNodes는 단일 인스턴스의 네트워크 노드 세트를 설명합니다.

  • 각 네트워크 노드 세트에서 네트워크 노드는 위에서 아래의 계층적 순서로 나열됩니다.

  • 인스턴스에 연결된 네트워크 노드는 목록의 마지막 네트워크 노드(맨 아래 계층)입니다.

  • 어떤 인스턴스가 서로 가까운지 알아보려면 먼저 맨 아래 계층에서 공통 네트워크 노드를 찾습니다. 하위 계층에 공통 네트워크 노드가 없는 경우 상위 계층에서 공통 네트워크 노드를 찾습니다.

다음 예제 출력에서 i-1111111111examplei-2222222222example은 맨 아래 계층에 공통된 네트워크 노드 nn-4444444444example이 있기 때문에 이 예제의 다른 인스턴스에 비해 서로 가장 가깝게 위치합니다.

참고

응답에는 3개 이상의 네트워크 노드가 포함됩니다. 지원되는 각 인스턴스 유형에 대한 응답의 네트워크 노드 수에 대한 자세한 내용은 인스턴스 타입 섹션을 참조하세요.

{ "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" }

DescribeCapacityReservationTopology 출력을 해석하는 방법

DescribeCapacityReservationTopology API를 사용하여 용량 예약 토폴로지를 설명할 수 있습니다. 출력에서는 예약 용량의 기본 네트워크 토폴로지를 계층적으로 보여줍니다.

다음 예제 출력은 위 다이어그램에 있는 네트워크 토폴로지 정보에 해당합니다. 이 예제의 목적을 위해 예제 출력에 설명이 포함되어 있습니다.

출력의 다음 정보에 유의해야 합니다.

  • NetworkNodes는 단일 용량 예약의 네트워크 노드 세트를 설명합니다.

  • 각 네트워크 노드 세트에서 네트워크 노드는 위에서 아래의 계층적 순서로 나열됩니다.

  • 용량 예약에 연결된 네트워크 노드는 목록의 마지막 네트워크 노드(맨 아래 계층)입니다.

  • 용량 예약이 서로 가까이 배치될지 여부를 확인하려면 먼저 출력의 하단 계층에서 공통 네트워크 노드를 찾습니다. 하위 계층에 공통 네트워크 노드가 없는 경우 상위 계층에서 공통 네트워크 노드를 찾습니다.

다음 예제 출력에서 cr-1111111111examplenn-2222222222example에 있고 cr-2222222222examplenn-3333333333example에 있습니다. 용량 예약이 layer ii의 서로 다른 네트워크 노드에 있으므로 한 용량 예약의 인스턴스에서 다른 용량 예약의 인스턴스로 통신하는 것은 비효율적입니다.

참고

응답에는 용량 예약 유형에 따라 1, 2 또는 3개의 네트워크 노드가 포함됩니다.

{ "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" }

DescribeInstanceTopology와 DescribeCapacityReservationTopology의 차이점

다음 표에서는 DescribeInstanceTopology API와 DescribeCapacityReservationTopology API의 주요 차이점을 비교합니다.

비교 요점 DescribeInstanceTopology DescribeCapacityReservationTopology
사용 단계 시작 후(실행 모드) 시작 전(계획 및 관리 모드)
기본 용도 실행 중인 인스턴스에서 워크로드 최적화

인스턴스 시작 전 용량 계획 및 용량 예약 관리(병합, 분할, 할당)

네트워크 노드 수

실행 중인 인스턴스의 모든 노드를 표시합니다. 인스턴스가 용량 예약에 포함된 경우 첫 번째 노드는 해당 용량 예약 토폴로지와 일치하고, 그 뒤에 인스턴스에 연결할 추가 노드가 이어집니다.

용량 예약 상태(pending 또는 active) 및 유형에 따라 달라지는 부분 노드 세트를 표시합니다.*

State

인스턴스는 running 상태여야 합니다.

용량 예약은 pending 또는 active 상태여야 합니다.

사용 사례
  • 워크로드 최적화

  • 성능 튜닝

  • 런타임 토폴로지 분석

  • 용량 계획

  • 용량 예약 관리(병합/분할/할당)

  • 시작 전 토폴로지 평가

* Ultraserver용 용량 블록의 경우 active 용량 예약 또는 실행 중인 인스턴스의 토폴로지를 설명할 때 네트워크 노드 세트는 동일합니다.