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
Kapazitätsanbieter-Konfiguration
Trennen Sie die 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 die Kapazitätsanbieter als Sicherheitsgrenze dienen.
Verwenden Sie aussagekräftige Namen. Benennen Sie Kapazitätsanbieter, um deren Verwendungszweck und Vertrauensstufe deutlich 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 Subnetze für mehrere Availability Zones an, wenn Sie Kapazitätsanbieter erstellen. Lambda startet standardmäßig drei Instances, um die AZ-Resilienz zu gewährleisten und eine hohe Verfügbarkeit Ihrer Funktionen sicherzustellen.
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 Beschrä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 die zulässigen Instance-Typen auf eine Liste kompatibler Instances fest. Beispiel:
-
Wählen Sie für Anwendungen, die eine hohe Netzwerkbandbreite benötigen, 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 die mehrfache Ausführung 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 Arbeitsspeicher zu vCPUs (z. B. 4 zu 1 oder 8 zu 1), da Python mehrere Parallelitäten so handhabt
-
Wählen Sie für CPU-intensive Operationen oder Funktionen, die wenig I/O ausführen, mehr als eine vCPU
-
Für IO-heavy Anwendungen wie Webdienste oder Batch-Jobs bietet die Mehrfachparallelität den größten Vorteil
Konfigurieren Sie die maximale Parallelität entsprechend. Lambda wählt sinnvolle Standardwerte für maximale Parallelität, die Ressourcenverbrauch und Durchsatz ausgleichen. 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 sehr wenig CPU verbrauchen
-
Verringern Sie die maximale Parallelität, wenn Ihre Anwendung viel Arbeitsspeicher und sehr wenig CPU verbraucht
Beachten Sie, dass es in Ausführungsumgebungen mit sehr geringer Parallelität zu Drosselungen und Skalierungsschwierigkeiten kommen kann.
Skalierungskonfiguration
Legen Sie eine angemessene Zielressourcenauslastung fest. Standardmäßig bietet Lambda genügend Headroom, sodass sich Ihr Traffic innerhalb von 5 Minuten ohne Drosselung verdoppeln kann. Passen Sie dies auf der Grundlage Ihrer Workload-Merkmale an:
-
Legen Sie bei sehr gleichbleibenden Workloads oder Anwendungen, die nicht auf Drosselungen reagieren, das Ziel auf ein hohes Niveau fest, um eine höhere Auslastung und niedrigere Kosten zu erzielen
-
Setzen Sie bei Workloads mit potenziellen Datenverkehrsspitzen die Ressourcenziele auf ein niedriges Niveau, um zusätzlichen Spielraum zu erhalten
Planen Sie das Verkehrswachstum ein. Wenn sich Ihr Traffic innerhalb von 5 Minuten mehr als verdoppelt, treten möglicherweise Drosselungen auf, wenn Lambda Instances und Ausführungsumgebungen hochskaliert. Entwerfen Sie Ihre Anwendung so, dass sie potenzielle Drosselungen in Zeiten schneller Skalierung bewältigt.
Sicherheit
Wenden Sie für Berechtigungen die geringste Zugriffsrechte 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 des Kapazitätsanbieters. Wird verwendet AWS CloudTrail , um Zuweisungen und Zugriffsmuster von Kapazitätsanbietern zu überwachen. Dies hilft bei der Identifizierung unberechtigter Zugriffsversuche und gewährleistet die Einhaltung der 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
Verwenden Sie die EC2-Preisoptionen. Nutzen Sie EC2-Sparpläne und Reserved Instances, um Ihre Kosten zu senken. Diese Preisoptionen gelten für die zugrunde liegende EC2-Rechenleistung (die Verwaltungsgebühr von 15% ist nicht ermäßigt).
Optimieren Sie für stationäre Workloads. Lambda Managed Instances eignen sich am besten für Steady-State-Funktionen mit vorhersehbarem hohem Datenvolumen. Bei stark frequentierten Datenverkehrsmustern könnte Lambda (Standard) kostengünstiger sein.
Überwachen Sie die Ressourcenauslastung. Verfolgen Sie CloudWatch Kennzahlen, 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 von Kapazitätsanbietern. Verfolgen Sie Kennzahlen auf Ebene des Kapazitätsanbieters, einschließlich CPUUtilization MemoryUtilization, vCPUAvailable, und stellen Sie sicher, dass genügend Ressourcen MemoryAvailable für Ihre Workloads verfügbar sind.
Überwachen Sie die Kennzahlen der Ausführungsumgebung. Verfolgen Sie Kennzahlen auf der Ebene der Ausführungsumgebung, einschließlich ExecutionEnvironmentConcurrency und ExecutionEnvironmentConcurrencyLimit um das Skalierungsverhalten zu verstehen und potenzielle 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
-
Annäherung an die Parallelitätsgrenzen
Language-specific Überlegungen
Folgen Sie den sprachspezifischen Best Practices. Jede Programmiersprache behandelt mehrere Parallelitäten unterschiedlich. In den sprachspezifischen Leitfäden finden Sie ausführliche Empfehlungen:
-
Java: Verwenden Sie threadsichere Sammlungen und für den anforderungsspezifischen
AtomicIntegerStatusThreadLocal -
Node.js: Verwenden Sie es InvokeStore für alle anforderungsspezifischen Zustände und vermeiden Sie globale Variablen
-
Python: Verwenden Sie eindeutige Dateinamen
/tmpzusammen mit Anforderungs-IDs und ziehen Sie eine prozessbasierte Speicherisolierung in Betracht -
Rust: Verwenden Sie
run_concurrentanstelle vonrun, wenn dieconcurrency-tokioFunktion aktiviert ist. Der Handler mussClone+ seinSend.
Testen Sie auf Thread-Sicherheits- und Parallelitätsprobleme. Testen Sie Ihre Funktionen vor der Bereitstellung in der Produktion gründlich auf Thread-Sicherheitsprobleme, Rennbedingungen und die korrekte Zustandsisolierung unter gleichzeitiger Last.
Nächste Schritte
-
Erfahren Sie mehr über Kapazitätsanbieter für Lambda Managed Instances
-
Machen Sie sich mit der Skalierung für Lambda Managed Instances vertraut
-
Lesen Sie die laufzeitspezifischen Anleitungen für Java und Python Node.js Python-Laufzeit für Lambda Managed Instances
-
Konfigurieren Sie die VPC-Konnektivität für Ihre Kapazitätsanbieter
-
Überwachen Sie von Lambda verwaltete Instances mit Metriken CloudWatch