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.
Bewährte Methoden für Lambda Managed Instances
Konfiguration des Kapazitätsanbieters
Separate Kapazitätsanbieter nach Vertrauensstufe. Erstellen Sie verschiedene Kapazitätsanbieter für Workloads mit unterschiedlichen Sicherheitsanforderungen. Alle Funktionen, die demselben Kapazitätsanbieter zugewiesen sind, müssen gegenseitig vertrauenswürdig sein, da Kapazitätsanbieter als Sicherheitsgrenze dienen.
Verwenden Sie aussagekräftige Namen. Benennen Sie Kapazitätsanbieter, um deren Verwendungszweck und Vertrauensstufe eindeutig anzugeben (z. B.production-trusted,dev-sandbox). Dies hilft den Teams, den Zweck und die Sicherheitslage der einzelnen Kapazitätsanbieter zu verstehen.
Verwenden Sie mehrere Availability Zones. Geben Sie bei der Erstellung von Kapazitätsanbietern Subnetze für mehrere Availability Zones an. Lambda startet aus Gründen der AZ-Resilienz standardmäßig drei Instances und gewährleistet so eine hohe Verfügbarkeit Ihrer Funktionen.
Auswahl des Instance-Typs
Lassen Sie Lambda die Instanztypen auswählen. Standardmäßig wählt Lambda die besten Instance-Typen für Ihren Workload aus. Wir empfehlen, Lambda Managed Instances die Instanztypen für Sie auswählen zu lassen, da eine Einschränkung der Anzahl möglicher Instanztypen zu einer geringeren Verfügbarkeit führen kann.
Geben Sie Instanztypen für bestimmte Anforderungen an. Wenn Sie bestimmte Hardwareanforderungen haben, legen Sie für zulässige Instanztypen eine Liste kompatibler Instanzen fest. Beispiel:
-
Wählen Sie für Anwendungen, die eine hohe Netzwerkbandbreite erfordern, mehrere n-Instance-Typen aus
-
Wählen Sie für Test- oder Entwicklungsumgebungen mit Kostenbeschränkungen kleinere Instance-Typen wie m7a.large
Konfiguration der Funktionen
Wählen Sie die entsprechenden Speicher- und vCPU-Einstellungen. Wählen Sie Speicher- und vCPU-Konfigurationen aus, die mehrere gleichzeitige Ausführungen Ihrer Funktion unterstützen. Die unterstützte Mindestfunktionsgröße beträgt 2 GB und 1 vCPU.
-
Wählen Sie für Python-Anwendungen ein höheres Verhältnis von Speicher zu V CPUs (z. B. 4 zu 1 oder 8 zu 1), da Python Multiparallelität so handhabt
-
Wählen Sie für CPU-intensive Operationen oder Funktionen mit wenig I/O mehr als eine vCPU
-
Für IO-intensive Anwendungen wie Webservices oder Batch-Jobs bietet die Mehrfachparallelität den größten Vorteil
Konfigurieren Sie die maximale Parallelität entsprechend. Lambda wählt vernünftige Standardwerte für maximale Parallelität, die den Ressourcenverbrauch und den Durchsatz in Einklang bringen. Passen Sie diese Einstellung an die Ressourcennutzung Ihrer Funktion an:
-
Erhöhen Sie die maximale Parallelität (bis zu 64 pro vCPU), wenn Ihre Funktionsaufrufe nur sehr wenig CPU verbrauchen
-
Verringern Sie die maximale Parallelität, wenn Ihre Anwendung viel Speicher und sehr wenig CPU verbraucht
Beachten Sie, dass in Ausführungsumgebungen mit sehr geringer Parallelität Drosselungen und Skalierungsschwierigkeiten auftreten können.
Skalierungskonfiguration
Stellen Sie die entsprechende Zielressourcennutzung ein. Standardmäßig bietet Lambda genügend Spielraum, sodass sich Ihr Traffic ohne Drosselungen innerhalb von 5 Minuten verdoppeln kann. Passen Sie dies an Ihre Workload-Merkmale an:
-
Bei sehr gleichbleibenden Workloads oder Anwendungen, die nicht empfindlich auf Drosselungen reagieren, sollten Sie das Ziel auf einen hohen Wert setzen, um eine höhere Auslastung und niedrigere Kosten zu erreichen
-
Setzen Sie sich bei Workloads mit potenziellen Datenverkehrsspitzen niedrige Ressourcenziele, um zusätzlichen Spielraum zu haben
Planen Sie das Verkehrswachstum ein. Wenn sich Ihr Traffic innerhalb von 5 Minuten mehr als verdoppelt, kann es zu Drosselungen kommen, wenn Lambda Instances und Ausführungsumgebungen skaliert. Entwerfen Sie Ihre Anwendung so, dass sie potenziellen Drosselungen in Zeiten schneller Skalierung begegnet.
Sicherheit
Wenden Sie die geringsten Rechte für Berechtigungen an. PassCapacityProvider Erteilen lambda:PassCapacityProvider Sie Berechtigungen nur für die erforderlichen Kapazitätsanbieter. Verwenden Sie Berechtigungen auf Ressourcenebene, um einzuschränken, welche Kapazitätsanbieter Benutzer Funktionen zuweisen können.
Überwachen Sie die Nutzung von Kapazitätsanbietern. Wird verwendet AWS CloudTrail , um die Zuweisungen und Zugriffsmuster von Kapazitätsanbietern zu überwachen. Dies hilft bei der Identifizierung unberechtigter Zugriffsversuche und gewährleistet die Einhaltung von Sicherheitsrichtlinien.
Trennen Sie nicht vertrauenswürdige Workloads. Verlassen Sie sich bei der Sicherheitsisolierung zwischen nicht vertrauenswürdigen Workloads nicht auf Container. Verwenden Sie verschiedene Kapazitätsanbieter, um Workloads zu trennen, denen nicht gegenseitig vertraut wird.
Kostenoptimierung
Nutzen Sie EC2 Preisoptionen. Nutzen Sie EC2 Savings Plans und Reserved Instances, um die Kosten zu senken. Diese Preisoptionen gelten für die zugrunde liegende EC2 Rechenleistung (die Verwaltungsgebühr von 15% wird nicht rabattiert).
Optimieren Sie für stationäre Workloads. Lambda Managed Instances eignen sich am besten für Steady-State-Funktionen mit vorhersehbarem hohem Verkehrsaufkommen. Bei stark frequentierten Datenverkehrsmustern kann Lambda (Standard) kostengünstiger sein.
Überwachen Sie die Ressourcennutzung. Verfolgen Sie CloudWatch Metriken, um die CPU- und Speicherauslastung zu verstehen. Passen Sie die Funktionsspeicherzuweisung und die Auswahl des Instanztyps an die tatsächlichen Nutzungsmuster an, um die Kosten zu optimieren.
Überwachung und Beobachtbarkeit
Überwachen Sie die Kennzahlen der Kapazitätsanbieter. Verfolgen Sie Kennzahlen auf Ebene der Kapazitätsanbieter CPUUtilization MemoryUtilization, einschließlich,CPUAvailable, und, MemoryAvailable um sicherzustellen, dass genügend Ressourcen für Ihre Workloads verfügbar sind.
Überwachen Sie die Kennzahlen der Ausführungsumgebung. Verfolgen Sie Metriken auf der Ebene der Ausführungsumgebung, einschließlich ExecutionEnvironmentConcurrency und ExecutionEnvironmentConcurrencyLimit um das Skalierungsverhalten zu verstehen und mögliche Drosselungen zu identifizieren.
Richten Sie Alarme ein. CloudWatch Erstellen Sie CloudWatch Alarme für wichtige Kennzahlen, um Probleme proaktiv zu identifizieren:
-
Hohe CPU- oder Speicherauslastung
-
Niedrige verfügbare Kapazität
-
Wir nähern uns den Grenzwerten für Parallelität
Laufzeitspezifische Überlegungen
Folgen Sie laufzeitspezifischen Best Practices. Jede Laufzeit behandelt Multiparallelität unterschiedlich. Ausführliche Empfehlungen finden Sie in den laufzeitspezifischen Leitfäden:
-
Java: Verwenden Sie Thread-sichere Sammlungen und für anforderungsspezifische
AtomicIntegerStatusmeldungenThreadLocal -
Node.js: Wird InvokeStore für alle anforderungsspezifischen Zustände verwendet und globale Variablen vermieden
-
Python: Verwenden Sie eindeutige Dateinamen in der
/tmpAnfrage IDs und ziehen Sie die prozessbasierte Speicherisolierung in Betracht
Testen Sie, ob Thread-Sicherheits- und Parallelitätsprobleme bestehen. Testen Sie Ihre Funktionen vor der Bereitstellung in der Produktion gründlich auf Thread-Sicherheitsprobleme, Race-Bedingungen und die korrekte Zustandsisolierung bei gleichzeitiger Last.
Nächste Schritte
-
Erfahren Sie mehr über Kapazitätsanbieter für Lambda Managed Instances
-
Skalierung für Lambda Managed Instances verstehen
-
Lesen Sie laufzeitspezifische Anleitungen für Java, Node.js und Python
-
Konfigurieren Sie die VPC-Konnektivität für Ihre Kapazitätsanbieter
-
Überwachen Sie Lambda Managed Instances mit Metriken CloudWatch