Amazon EC2 拓撲的運作方式 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EC2 拓撲的運作方式

AWS 網路以分層階層排列。EC2 執行個體會連接至位於或低於第三層的網路,視執行個體類型而定。執行個體的拓撲由一組節點描述,網路的每一層都有一個節點。DescribeInstanceTopologyDescribeCapacityReservationTopology API 回應中的節點集提供網路階層的由上而下檢視,並將底部節點連接到執行個體。

注意

有些執行個體類型在節點集中包含 4 個網路節點,代表網路中的 4 個層,而其他則包含 3 個網路節點,代表網路中的 3 個層。如需支援的執行個體類型,請參閱 執行個體類型

根據容量保留的類型,您可能只會看到 1、2 或 3 個網路節點。

下圖提供視覺化呈現,您可以用來了解 EC2 拓撲。網路節點識別為 NN1NN7。數字 iiiiii 在此範例中代表不同的網路層。數字 1234 在此範例中代表 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) 因此較遠。

考量此圖中所有執行個體的鄰近性時,比起與執行個體 4 之間的距離,執行個體 1、2 和 3 彼此的距離更接近,因為這幾個執行個體的網路節點集中都有 NN2。

一般而言,如果連接到任何兩個執行個體的網路節點相同,這兩個執行個體實際位置彼此相近,就像執行個體 1 和 2 的情況一樣。此外,網路節點之間的躍點數越少,執行個體彼此之間的距離就越接近。例如,執行個體 1 和 3 到共同網路節點 (NN2) 的躍點,少於與執行個體 4 的共同網路節點 (NN1) 之間的躍點,因此它們之間的距離比執行個體 4 更近。

在此範例中,沒有在網路節點 7 (NN7) 下執行的執行個體,因此 API 輸出不會包含 NN7。

如何解譯 DescribeInstanceTopology 輸出

您可以使用 DescribeInstanceTopology API 描述執行個體拓撲。API 的輸出提供執行個體基礎網路拓撲的階層式檢視。

下列輸出範例對應上圖中四個執行個體的網路拓撲資訊。為了說明本範例,輸出範例中會包含註解。

輸出中的以下資訊非常重要:

  • 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-1111111111example 位於 ,nn-2222222222examplecr-2222222222example 位於 nn-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 和 DescribeCapacityReservationTopology APIs之間的主要差異:

比較點 DescribeInstanceTopology DescribeCapacityReservationTopology
用量階段 啟動後 (執行模式) 啟動前 (規劃和管理模式)
主要用途 在執行中的執行個體上最佳化工作負載

執行個體啟動前的容量規劃和容量保留管理 (合併、分割、指派)

網路節點數量

顯示執行中執行個體的所有節點。如果執行個體位於容量保留中,則第一個節點將符合對應的容量保留拓撲,後面接著要連線至執行個體的其他節點。

顯示一組部分節點,這些節點會根據容量保留狀態 (pendingactive) 和類型而有所不同。*

State

執行個體必須處於 running 狀態

容量保留必須處於 pendingactive 狀態

使用案例
  • 工作負載最佳化

  • 效能調校

  • 執行時間拓撲分析

  • 容量規劃

  • 容量保留管理 (merge/split/assign)

  • 啟動前拓撲評估

* 對於 Ultraservers 的容量區塊,描述active容量保留或其執行中執行個體的拓撲時,網路節點集相同。