So funktioniert die Amazon-EC2-Topologie
Das AWS-Netzwerk ist in einer Hierarchie von Schichten angeordnet. EC2-Instances stellen je nach Instance-Typ eine Verbindung zum Netzwerk auf oder unter der dritten Schicht her. Die Topologie einer Instance wird durch eine Gruppe von Knoten beschrieben, wobei sich in jeder Netzwerkschicht ein Knoten befindet. Der Knoten in der API-Antwort von DescribeInstanceTopology oder DescribeCapacity ReservationTopology bietet eine Übersicht der Netzwerkhierarchie, wobei der unterste Knoten mit einer Instance verbunden ist.
Anmerkung
Einige Instance-Typen bestehen aus 4 Netzwerkknoten in einem Knotensatz, der 4 Schichten im Netzwerk repräsentiert, während andere aus 3 Netzwerkknoten bestehen, die 3 Schichten im Netzwerk repräsentieren. Weitere Informationen zu den unterstützten Instance-Typen finden Sie unter Instance-Typen.
Je nach der Art der Kapazitätsreservierung werden möglicherweise nur 1, 2 oder 3 Netzwerkknoten angezeigt.
Das folgende Diagramm enthält eine visuelle Darstellung, anhand derer Sie die EC2-Topologie nachvollziehen können. Die Netzwerkknoten werden als NN1 – NN7 identifiziert. Die Angaben i, ii und iii identifizieren die verschiedenen Netzwerkschichten. Die Ziffern 1, 2, 3 und 4 identifizieren die EC2-Instances. Instances stellen eine Verbindung mit einem Knoten in der untersten Schicht her, wie im folgenden Diagramm als iii identifiziert. Mehrere Instances können eine Verbindung mit dem gleichen Knoten herstellen.
In diesem Beispiel:
-
Instance 1 stellt eine Verbindung mit dem Netzwerkknoten 4 (NN4) in der Schicht iii her. NN4 stellt eine Verbindung mit dem Netzwerkknoten 2 (NN2) in der Schicht ii her und NN2 stellt eine Verbindung mit dem Netzwerkknoten 1 (NN1) in der Schicht i her, die in diesem Beispiel die oberste Schicht der Netzwerkhierarchie darstellt. Der Netzwerkknotensatz umfasst NN1, NN2 und NN4, die hierarchisch von den oberen Schichten bis zur unteren Schicht ausgedrückt werden.
-
Instance 2 stellt auch eine Verbindung mit dem Netzwerkknoten 4 (NN4) her. Die Instances 1 und 2 teilen sich den gleichen Netzwerkknotensatz: NN1, NN2 und NN4.
-
Instance 3 stellt eine Verbindung mit dem Netzwerkknoten 5 (NN5) her. NN5 stellt eine Verbindung mit NN2 her und NN2 stellt eine Verbindung mit NN1 her. Der Netzwerkknotensatz für Instance 3 ist NN1, NN2 und NN5.
-
Instance 4 stellt eine Verbindung mit dem Netzwerkknoten 6 (NN6) her. Der zugehörige Netzwerkknotensatz ist NN1, NN3 und NN6.
Bei der Betrachtung der Nähe der Instances 1, 2 und 3 wird deutlich, dass sich die Instances 1 und 2 näher beieinander befinden, weil sie mit dem gleichen Netzwerkknoten (NN4) verbunden sind. Instance 3 ist dagegen weiter entfernt, weil sie eine Verbindung mit einem anderen Netzwerkknoten (NN5) herstellt.
Bei der Betrachtung der Nähe aller Instances in diesem Diagramm wird deutlich, dass die Instances 1, 2 und 3 näher beieinander sind und die Entfernung zu Instance 4 jeweils größer ist, da sich die Instances 1, 2 und 3 den Netzwerkknoten 2 (NN2) in ihrer Netzwerkknotengruppe teilen.
Faustregel: Wenn zwei beliebige Instances mit dem gleichen Netzwerkknoten verbunden sind, befinden sie sich physisch nahe beieinander (wie bei den Instances 1 und 2). Außerdem gilt: Je weniger Hops zwischen Netzwerkknoten liegen, desto näher sind die Instances beieinander. So sind es beispielsweise bei den Instances 1 und 3 weniger Hops zu einem gemeinsamen Netzwerkknoten (NN2) als zu dem Netzwerkknoten (NN1), den sie mit Instance 4 gemeinsam haben. Daher ist die Entfernung zwischen ihnen geringer als zu Instance 4.
Da in diesem Beispiel keine Instances auf dem Netzwerkknoten 7 (NN7) ausgeführt werden, ist NN7 in der API-Ausgabe nicht enthalten.
So interpretieren Sie die Ausgabe von DescribeInstanceTopology
Sie können die Instance-Topologie mithilfe der DescribeInstanceTopology-API beschreiben. Die Ausgabe enthält eine hierarchische Ansicht der zugrunde liegenden Netzwerktopologie für eine Instance.
Die folgende Beispielausgabe entspricht den Netzwerktopologie-Informationen der vier Instances aus dem vorherigen Diagramm. Für dieses Beispiel wurden der Beispielausgabe Kommentare hinzugefügt.
Beachten Sie folgende wichtige Informationen in der Ausgabe:
-
NetworkNodesbeschreibt den Netzwerkknotensatz einer einzelnen Instance. -
In jedem Netzwerkknotensatz sind die Netzwerkknoten absteigend in hierarchischer Reihenfolge aufgeführt.
-
Der mit der Instance verbundene Netzwerkknoten ist der letzte Netzwerkknoten in der Liste (die unterste Schicht).
-
Um zu ermitteln, welche Instances nahe beieinander liegen, suchen Sie zuerst nach gemeinsamen Netzwerkknoten in der untersten Schicht. Wenn es in der untersten Schicht keine gemeinsamen Netzwerkknoten gibt, suchen Sie nach gemeinsamen Netzwerkknoten in den oberen Schichten.
In der folgenden Beispielausgabe befinden sich i-1111111111example und i-2222222222example am nächsten beieinander (verglichen mit den anderen Instances des Beispiels), da sie den Netzwerkknoten nn-4444444444example in der untersten Schicht gemeinsam haben.
Anmerkung
Die Antwort enthält 3 oder mehr Netzwerkknoten. Mehr Informationen zur Anzahl der Netzwerkknoten in der Antwort für jeden unterstützten Instance-Typ finden Sie unter Instance-Typen.
{
"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"
}
So interpretieren Sie die Ausgabe von DescribeCapacityReservationTopology
Sie können die Topologie der Kapazitätsreservierung mithilfe der DescribeCapacityReservationTopology-API beschreiben. Die Ausgabe enthält eine hierarchische Ansicht der zugrunde liegenden Netzwerktopologie für die reservierte Kapazität.
Die folgende Beispielausgabe entspricht den Netzwerktopologie-Informationen aus dem vorherigen Diagramm. Für dieses Beispiel wurden der Beispielausgabe Kommentare hinzugefügt.
Beachten Sie folgende wichtige Informationen in der Ausgabe:
-
NetworkNodesbeschreibt den Netzwerkknotensatz einer einzelnen Kapazitätsreservierung. -
In jedem Netzwerkknotensatz sind die Netzwerkknoten absteigend in hierarchischer Reihenfolge aufgeführt.
-
Der mit der Kapazitätsreservierung verbundene Netzwerkknoten ist der letzte Netzwerkknoten in der Liste (die unterste Schicht).
-
Um zu ermitteln, ob Kapazitätsreservierungen nahe beieinander liegen, suchen Sie zuerst nach gemeinsamen Netzwerkknoten in der untersten Schicht in der Ausgabe. Wenn es in der untersten Schicht keine gemeinsamen Netzwerkknoten gibt, suchen Sie nach gemeinsamen Netzwerkknoten in den oberen Schichten.
In der folgenden Beispielsausgabe befindet sich cr-1111111111example am Standort nn-2222222222example und cr-2222222222example befindet sich auf nn-3333333333example. Da sich die Kapazitätsreservierungen auf verschiedenen Netzwerkknoten in layer ii befinden, ist die Kommunikation von Instances in einer Kapazitätsreservierung zu Instances in der anderen Kapazitätsreservierung ineffizient.
Anmerkung
Die Antwort enthält je nach Art der Kapazitätsreservierung 1, 2 oder 3 Netzwerkknoten.
{
"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"
}
Unterschiede zwischen DescribeInstanceTopology und DescribeCapacityReservationTopology
Die folgende Tabelle vergleicht die wichtigsten Unterschiede zwischen den APIs DescribeInstanceTopology und DescribeCapacityReservationTopology:
| Vergleichspunkt | DescribeInstanceTopology | DescribeCapacityReservationTopology |
|---|---|---|
| Nutzungsphase | Nach dem Start (Ausführungsmodus) | Vor dem Start (Planungs- und Verwaltungsmodus) |
| Hauptzweck | Workloads auf laufenden Instances optimieren |
Kapazitätsplanung und Verwaltung der Kapazitätsreservierung (Zusammenführen, Teilen, Zuweisen) vor dem Start der Instance |
| Anzahl der Netzwerkknoten |
Zeigt alle Knoten für eine laufende Instance an. Wenn sich die Instance in einer Kapazitätsreservierung befindet, entsprechen die ersten Knoten der entsprechenden Kapazitätsreservierungs-Topologie, gefolgt von weiteren Knoten, die eine Verbindung zur Instance herstellen. |
Zeigt einen Teil der Knoten an, die je nach Status ( |
| Status |
Instances müssen sich im Status |
Kapazitätsreservierungen müssen im Status |
| Anwendungsfälle |
|
|
* Bei Kapazitätsblöcken für Ultraserver ist der Netzwerkknotensatz derselbe wie bei der Beschreibung der Topologie für eine active-Kapazitätsreservierung oder deren laufende Instance.