Architektur - Instance Scheduler auf AWS

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.

Architektur

Dieser Abschnitt enthält ein Referenzdiagramm zur Implementierungsarchitektur, Überlegungen zum AWS Well-Architected-Design, Sicherheitskomponenten, Scheduler-Konfigurationen und AWS-Services, die in dieser Lösung verwendet werden.

Architekturdiagramm

Durch die Bereitstellung dieser Lösung werden die folgenden Komponenten in Ihrem AWS-Konto bereitgestellt.

Instance Scheduler in der AWS-Cloud

InstanceScheduler Architektur
  1. Eine EventBridge Amazon-Regel löst die Orchestrierungs-Lambda-Funktion in konfigurierbaren Intervallen aus (Standard: alle 5 Minuten).

  2. Die EventBridge Regel ruft eine AWS Lambda Lambda-Orchestrierungsfunktion auf, die die DynamoDB-Konfigurationstabelle abfragt, um aktive Scheduling-Ziele zu identifizieren. Der Orchestrator ruft dann Lambda-Funktionen parallel Planung für jedes aktive Ziel auf.

  3. Zeitplandefinitionen und Zeiträume werden in einer Amazon DynamoDB DynamoDB-Konfigurationstabelle gespeichert. Sie können in dieser Tabelle eine beliebige Anzahl von Zeitplänen und Zeiträumen definieren, um zu kontrollieren, wann Ihre Instances gestartet und beendet werden.

  4. Eine DynamoDB-Registrierungstabelle verfolgt automatisch alle verwalteten Ressourcen. Wenn Ressourcen für die Planung markiert sind, werden sie als Reaktion auf AWS-Tagging-Ereignisse in dieser Tabelle registriert.

  5. Jede Scheduling-Lambda-Funktion beschreibt markierte Ressourcen, wertet ihre Zeitpläne anhand der aktuellen Uhrzeit aus und führt die entsprechenden Start- oder Stoppaktionen aus.

    1. Wenn bei EC2-Instances ein Startvorgang aufgrund unzureichender Kapazität fehlschlägt, kann die Lösung so konfiguriert werden, dass versucht wird, die Größe der Instance an alternative Instance-Typen anzupassen, bevor der Startvorgang erneut versucht wird.

  6. Die Zeitplanverwaltung ist über die DynamoDB-Konsole, das Scheduler-CLI-Tool oder benutzerdefinierte CloudFormation AWS-Ressourcen verfügbar. Die Lösung wird mit mehreren vorkonfigurierten Beispielzeitplänen bereitgestellt.

  7. Kontoübergreifende Bereitstellungen verwenden eine Hub-Spoke-Architektur, bei der sich Spoke-Konten automatisch selbst beim Hub-Konto registrieren. Spoke-Stacks müssen in derselben Region wie der Hub-Stack bereitgestellt werden und müssen entweder vom Hub-Stack oder von Mitgliedern derselben AWS-Organisation vorab genehmigt werden.

  8. Die Lösung veröffentlicht Planungs- und Registrierungsereignisse für EventBridge Busse im Hub-Konto (globale Ereignisse) und Spoke-Konten (lokale Ereignisse pro Region).

Anmerkung

CloudFormation AWS-Ressourcen werden aus (AWS CDK-) Konstrukten erstellt.

Alle von dieser Lösung verwendeten Lambda-Funktionen nutzen AWS IAM für die Berechtigungsanforderungen für Ihre Ressourcen und AWS KMS für die Verschlüsselung von Amazon Simple Notification Service (Amazon SNS SNS-Thema) und DynamoDB-Tabellen.

Jedes Mal, wenn die Lösung ein Planungsintervall durchführt, vergleicht sie den aktuellen Status jeder entsprechend markierten Instance mit dem Zielstatus (definiert durch einen oder mehrere Perioden in einem Zeitplan im Instance-Tag) im zugehörigen Zeitplan. Das Zeitplanintervall wendet dann je nach Bedarf die entsprechende Start- oder Stoppaktion an.

Wenn die Lambda-Funktion beispielsweise an einem Freitag um 9 Uhr (ET) aufgerufen wird und sie eine gestoppte EC2- oder RDS-DB-Instance mit dem Tag schedule=office-hours identifiziert, sucht sie in Amazon DynamoDB nach den Konfigurationsdetails für den Bürozeitplan. Wenn der Bürozeitplan einen Zeitraum enthält, der angibt, dass die Instance montags bis freitags von 9.00 Uhr ET bis 17.00 Uhr ET ausgeführt werden soll, startet die Lambda-Funktion diese Instanz.

Die Lambda-Funktion zeichnet auch Informationen über Ihre Ressourcen auf und zeigt sie in einem optionalen Amazon CloudWatch Custom-Dashboard an. Zu den aufgezeichneten Informationen gehören die Anzahl der für jeden Zeitplan markierten Instances, die Größe dieser Instances und ob sich diese Instances derzeit in einem laufenden oder gestoppten Zustand befinden oder nicht. Weitere Informationen zu diesem benutzerdefinierten Dashboard finden Sie unter Operational Insights Dashboard.

Anmerkung

Das Stoppen einer Amazon EC2 EC2-Instance unterscheidet sich vom Beenden einer Amazon EC2 EC2-Instance. Standardmäßig sind Amazon EC2 EC2-Instances so konfiguriert, dass sie beim Herunterfahren gestoppt und nicht beendet werden. Sie können dieses Verhalten jedoch ändern. Bevor Sie diese Lösung verwenden, stellen Sie sicher, dass die Instances so eingestellt sind, dass sie je nach Bedarf gestoppt oder beendet werden.