View a markdown version of this page

Starten Sie Instances synchron - Amazon EC2 Auto Scaling

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Starten Sie Instances synchron

Amazon EC2 Auto Scaling bietet zwei Methoden zum Starten von Instances in Ihrer Auto Scaling-Gruppe: asynchrones Skalierungsverhalten und synchrone Bereitstellung mithilfe der API. LaunchInstances

Bei synchroner Bereitstellung verwenden Sie die LaunchInstances API, um eine bestimmte Anzahl von Instances in einer bestimmten Availability Zone anzufordern. Synchrone Bereitstellung bietet die folgenden Vorteile:

  • Sofortiges Feedback zur Kapazitätsverfügbarkeit in bestimmten Availability Zones

  • Präzise Kontrolle darüber, in welchen Availability Zone-Instances gestartet werden

  • Deterministische Instanz-IDs zur sofortigen Verwendung in Orchestrierungssystemen

  • Real-time Skalierung von Entscheidungen auf der Grundlage der tatsächlichen Kapazitätsbeschränkungen

  • Schnellere Skalierung durch Wegfall der Wartezeiten für asynchrone Auto Scaling-Starts

Bei asynchronem Auto Scaling verarbeitet Amazon EC2 Auto Scaling die Skalierungsanforderung und startet Instances im Hintergrund, wenn Sie die gewünschte Kapazität ändern oder wenn eine Skalierungsrichtlinie ausgelöst wird. Sie müssen die Skalierungsaktivitäten überwachen oder Ihre Auto Scaling-Gruppe beschreiben, um festzustellen, wann Instances erfolgreich gestartet wurden.

Anmerkung
  • Die LaunchInstances API funktioniert nur mit Auto Scaling-Gruppen, die Startvorlagen verwenden. Auto Scaling-Gruppen, die Startkonfigurationen verwenden, werden nicht unterstützt. Wenn Ihre Auto Scaling-Gruppe eine Startkonfiguration verwendet, müssen Sie zu einer Startvorlage migrieren, bevor Sie synchrones Provisioning verwenden können.

  • Die LaunchInstances API unterstützt Richtlinien für gemischte Instances und bietet nur vollständige On-Demand oder vollständige Spot-Kaufoptionen. Gemischte Richtlinien, die beides On-Demand und Spot-Instances kombinieren, werden nicht unterstützt.

  • Für Auto Scaling-Gruppen, die mehrere Availability Zones abdecken, müssen Sie die Ziel-Availability Zone oder das Ziel-Subnetz angeben. Für Single-AZ-Gruppen ist dieser Parameter optional.

Synchrone Bereitstellung und asynchrone Skalierung

Synchrone Bereitstellung

Wenn Sie die LaunchInstances API verwenden, Amazon EC2 Auto Scaling:

  • Versucht sofort, die angeforderten Instances zu starten mit CreateFleet

  • Wartet darauf, Instanz-IDs CreateFleet zurückzugeben, bevor geantwortet wird

  • Gibt bei Erfolg Instanz-IDs, Instanztypen und Availability Zone-Informationen zurück

  • Gibt bestimmte Fehlercodes und Details zum Ausfall zurück

  • Bietet sofortiges Feedback und ermöglicht Skalierungsentscheidungen in Echtzeit

Asynchrone Skalierung

Wenn Sie asynchrone Auto Scaling-Methoden verwenden, wie z. B. die Änderung der gewünschten Kapazität oder die Verwendung von Skalierungsrichtlinien, bietet Amazon EC2 Auto Scaling:

  • Aktualisiert die gewünschte Kapazität in der API, gibt Instances jedoch nicht sofort zurück

  • Plant Instanzstarts automatisch in allen Availability Zones

  • Startet Instanzen über Hintergrund-Workflows

  • Verteilt die Kapazität automatisch auf mehrere Availability Zones, um ein ausgewogenes Verhältnis zu gewährleisten

  • Behandelt Startfehler mit integrierter Wiederholungslogik

Sie müssen Skalierungsaktivitäten abfragen oder Ihre Auto Scaling-Gruppe beschreiben, um den Status der Startvorgänge zu überprüfen.

Einschränkungen und Überlegungen

Beachten Sie bei der Arbeit mit synchroner Bereitstellung die folgenden Hinweise und Einschränkungen:

  • Instanzstatus nach dem Start — Instances, die von der API zurückgegeben werden, befinden sich im Status Ausstehend. Sie können bei nachfolgenden Workflow-Prozessen oder Lifecycle-Hooks immer noch fehlschlagen. Eine erfolgreiche API-Antwort bedeutet, dass EC2 die Startanforderung akzeptiert und die Instance-IDs zurückgegeben hat. Instances gelten nicht automatisch als vollständig bereit für Workloads und müssen die standardmäßigen EC2- und Auto Scaling-Lebenszyklusprozesse abschließen.

  • Warm-Pool-Beschränkung — Auto Scaling-Gruppen mit Warm-Pools werden derzeit nicht unterstützt. Wenn Sie versuchen, die LaunchInstances API für eine Auto Scaling-Gruppe aufzurufen, für die ein Warm-Pool konfiguriert ist, führt die API einen Kaltstart durch, anstatt Warm-Pool-Instances zu verwenden, und gibt einen UnsupportedOperation Fehler zurück. Weitere Informationen zu Kaltstarts finden Sie unter Einschränkungen von Warm-Pools.

  • API-Timeout und Wiederholungsversuche — Wenn der zugrunde liegende CreateFleet Vorgang länger als erwartet dauert, läuft die API möglicherweise ab und gibt ein Idempotenz-Token zurück. Sie können erneut versuchen, dasselbe ClientToken zu verwenden, um den ursprünglichen Startvorgang zu verfolgen, oder describe-instances mit dem Client-Token verwenden, um gestartete Instanzen zu überprüfen.

  • Einschränkungen der Availability Zone — Wenn sich Ihre Auto Scaling-Gruppe über mehrere Availability Zones erstreckt und das Rebalancing der Availability Zone aktiviert ist, kann das synchrone Starten von Instances zu Betriebskonflikten führen:

    • Einzelne AZ-Beschränkung pro Aufruf — Jeder LaunchInstances API-Aufruf kann nur auf eine Availability Zone abzielen, auch wenn sich Ihre Auto Scaling-Gruppe über mehrere Zonen erstreckt.

    • Konflikte beim AZ-Rebalancing — Wenn für Ihre Auto Scaling-Gruppe das AZ-Rebalancing aktiviert ist, können sequentielle Aufrufe verschiedener AZs zusätzliche asynchrone Starts auslösen, was zu mehr Instances als beabsichtigt führt. Erwägen Sie, das AZ-Rebalancing für eine präzise Kapazitätssteuerung auszusetzen. Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling-Prozesse aussetzen und wieder aufnehmen.

  • Teilweise Erfolgsszenarien — Die LaunchInstances API gibt möglicherweise einen teilweisen Erfolg zurück, wenn nur ein Teil der angeforderten Kapazität verfügbar ist, was dem normalen EC2-Verhalten entspricht. Die API gibt erfolgreich gestartete Instances zusammen mit Fehlerdetails für fehlgeschlagene Starts zurück. In Anwendungsfällen, in denen alle Instances zusammen gestartet werden müssen (z. B. Anwendungen, die wegen niedriger Latenz alle Instances in derselben AZ benötigen), müssen Sie teilweise gestartete Instances beenden und es in einer anderen AZ erneut versuchen. Berücksichtigen Sie dieses Verhalten, wenn Sie eine Wiederholungslogik für kapazitätssensible Workloads entwerfen.

  • Instanzgewichtungen — Wenn Ihre Auto Scaling-Gruppe Instance-Gewichtungen verwendet, steht der RequestedCapacity Parameter für gewichtete Kapazitätseinheiten, nicht für die Anzahl der Instances. Die tatsächliche Anzahl der gestarteten Instances hängt von den ausgewählten Instance-Typen und ihren konfigurierten Gewichtungen ab. EC2 Auto Scaling begrenzt Starts auf 100 Instances pro API-Aufruf, unabhängig von der angeforderten gewichteten Kapazität.

  • Gemischte Instance-Typen — Die LaunchInstances API verwendet die bestehende Richtlinie für gemischte Instances Ihrer Auto Scaling-Gruppe, um zu bestimmen, welche Instance-Typen gestartet werden sollen. Die API startet Instances gemäß der Zuweisungsstrategie und den Prioritäten der Instance-Typen Ihrer Gruppe.