

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.

# Skalierung von verwalteten Lambda-Instanzen
<a name="lambda-managed-instances-scaling"></a>

Lambda Managed Instances skaliert nicht, wenn Aufrufe eintreffen, und unterstützt keine Kaltstarts. Stattdessen wird es asynchron mithilfe von Signalen zum Ressourcenverbrauch skaliert. Managed Instances wird derzeit auf der Grundlage der CPU-Ressourcenauslastung und der Auslastung mehrerer Parallelitäten skaliert.

**Die wichtigsten Unterschiede:**
+ **Lambda (Standard):** Skaliert, wenn es keine freie Ausführungsumgebung gibt, um einen eingehenden Aufruf zu verarbeiten (Kaltstart)
+ **Lambda Managed Instances:** Skaliert asynchron auf der Grundlage der CPU-Ressourcenauslastung und der Mehrparallelität von Ausführungsumgebungen

Wenn sich Ihr Traffic innerhalb von 5 Minuten mehr als verdoppelt, kann es zu Drosselungen kommen, wenn Lambda Instances und Ausführungsumgebungen entsprechend der Nachfrage skaliert.

## Der Skalierungslebenszyklus
<a name="lambda-managed-instances-scaling-lifecycle"></a>

Lambda Managed Instances verwendet eine verteilte Architektur, um die Skalierung zu verwalten:

**Komponenten:**
+ **Verwaltete Instanzen** — Werden in Ihrem Konto in den von Ihnen bereitgestellten Subnetzen ausgeführt
+ **Router and Scaler** — Gemeinsam genutzte Lambda-Komponenten, die Aufrufe weiterleiten und die Skalierung verwalten
+ **Lambda Agent — Wird** auf jeder verwalteten Instanz ausgeführt, um den Lebenszyklus der Ausführungsumgebung zu verwalten und den Ressourcenverbrauch zu überwachen

**So funktioniert es:**

1. Wenn Sie eine Funktionsversion mit einem Kapazitätsanbieter veröffentlichen, startet Lambda Managed Instances in Ihrem Konto. Aus Gründen der AZ-Resilienz werden standardmäßig drei und drei Ausführungsumgebungen gestartet, bevor Ihre Funktionsversion als AKTIV markiert wird.

1. Jede verwaltete Instanz kann Ausführungsumgebungen für mehrere Funktionen ausführen, die demselben Kapazitätsanbieter zugeordnet sind.

1. Wenn der Datenverkehr in Ihre Anwendung fließt, verbrauchen Ausführungsumgebungen Ressourcen. Der Lambda-Agent benachrichtigt den Scaler, der entscheidet, ob neue Ausführungsumgebungen oder verwaltete Instances skaliert werden sollen.

1. Wenn der Router versucht, einen Aufruf an eine Ausführungsumgebung mit hohem Ressourcenverbrauch zu senden, benachrichtigt ihn der Lambda-Agent auf dieser Instanz, es auf einer anderen erneut zu versuchen.

1. Wenn der Traffic abnimmt, benachrichtigt der Lambda Agent den Scaler, der entscheidet, die Ausführungsumgebungen herunterzufahren und in verwalteten Instanzen zu skalieren.

## Anpassung des Skalierungsverhaltens
<a name="lambda-managed-instances-adjusting-scaling"></a>

Sie können das Skalierungsverhalten von Managed Instances mithilfe von fünf Steuerelementen anpassen:

### Steuerungen auf Funktionsebene
<a name="lambda-managed-instances-function-level-controls"></a>

#### 1. Funktionsspeicher und vCPUs
<a name="lambda-managed-instances-function-memory-vcpus"></a>

Wählen Sie die Speichergröße und die vCPU-Zuweisung für Ihre Funktion. Die kleinste unterstützte Funktionsgröße ist 2 GB und 1 vCPU.

**Überlegungen**:
+ Wählen Sie eine Speicher- und vCPU-Einstellung, die mehrere gleichzeitige Ausführungen Ihrer Funktion unterstützt
+ Sie können keine Funktion mit weniger als 1 vCPU konfigurieren, da Funktionen, die auf verwalteten Instances ausgeführt werden, mehrere gleichzeitige Workloads unterstützen sollten
+ Sie können nicht weniger als 2 GB wählen, da dies dem Verhältnis von 2 zu 1 Arbeitsspeicher zu vCPU von c Instances entspricht, die das niedrigste Verhältnis aufweisen.
+ Für Python-Anwendungen müssen Sie möglicherweise ein höheres Verhältnis von Arbeitsspeicher zu vCPUs wählen, z. B. 4 zu 1 oder 8 zu 1, da Python Multiparallelität handhabt
+ Wenn Sie CPU-intensive Operationen ausführen oder wenig I/O ausführen, sollten Sie mehr als eine vCPU wählen

#### 2. Maximale Parallelität
<a name="lambda-managed-instances-maximum-concurrency"></a>

Legen Sie die maximale Parallelität pro Ausführungsumgebung fest.

**Standardverhalten:** Lambda wählt sinnvolle Standardwerte, die den Ressourcenverbrauch und den Durchsatz in Einklang bringen und für eine Vielzahl von Anwendungen geeignet sind.

**Richtlinien für Anpassungen:**
+ **Erhöhen Sie die Parallelität:** Wenn Ihre Funktionsaufrufen nur sehr wenig CPU verbrauchen, können Sie die maximale Parallelität auf maximal 64 pro vCPU erhöhen.
+ **Gleichzeitigkeit verringern: Wenn Ihre Anwendung viel Arbeitsspeicher und sehr wenig CPU beansprucht, können Sie die maximale Parallelität** reduzieren

**Wichtig:** Da Lambda Managed Instances für Anwendungen mit mehreren gleichzeitigen Vorgängen konzipiert sind, kann es in Ausführungsumgebungen mit sehr geringer Parallelität zu Drosselungen bei der Skalierung kommen.

#### 3. Ausführungsumgebungen pro Funktion
<a name="lambda-managed-instances-execution-environments-per-function"></a>

Legen Sie die minimale und maximale Anzahl von Ausführungsumgebungen für Ihre Funktion fest.

**Standardverhalten:** Lambda unterhält standardmäßig mindestens 3 Ausführungsumgebungen, um eine hohe Verfügbarkeit in allen Availability Zones sicherzustellen.

**Richtlinien für Anpassungen:**
+ **Legen Sie das Minimum fest:** Stellen Sie Kapazität für den Basisdatenverkehr bereit und reduzieren Sie Drosselungen bei plötzlichen Datenausbrüchen.
+ **Legen Sie das Maximum fest: Beschränken** Sie die Anzahl der Ausführungsumgebungen, um Scale-Out zu kontrollieren und Probleme mit störenden Nachbarn zu vermeiden, wenn sich mehrere Funktionen einen Kapazitätsanbieter teilen.
+ **Funktion deaktivieren: Setzen Sie sowohl das** Minimum als auch das Maximum auf 0, um eine Funktion zu deaktivieren, ohne sie zu löschen.

**Beispiel:**

```
aws lambda put-function-scaling-config \
  --function-name my-lmi-function \
  --qualifier '$LATEST.PUBLISHED' \
  --function-scaling-config MinExecutionEnvironments=5,MaxExecutionEnvironments=20 \
  --region us-east-1
```

**Wichtige Hinweise:**
+ **Geltungsbereich des Qualifizierers:** Diese Konfigurationen gelten auf Funktionsebene für jeden qualifizierten ARN. Wenn diese Option aktiviert `$LATEST.PUBLISHED` ist, wird die Konfiguration auf future `$LATEST.PUBLISHED` Versionen übertragen. Wenn diese Einstellung für eine bestimmte Version festgelegt ist, werden neu veröffentlichte Versionen auf die Standardwerte zurückgesetzt.
+ **Gepaarte Konfiguration:** Sie müssen sowohl die Minimal- als auch die Maximalwerte zusammen festlegen. Jede nicht angegebene Einstellung wird auf ihren Standardwert zurückgesetzt. Gültige Werte für beide `MinExecutionEnvironments` liegen im `MaxExecutionEnvironments` Bereich von 0 bis 15000.

### Kontrollen auf Ebene des Kapazitätsanbieters
<a name="lambda-managed-instances-capacity-provider-level-controls"></a>

#### 4. Nutzung der Zielressourcen
<a name="lambda-managed-instances-target-resource-utilization"></a>

Wählen Sie Ihr eigenes Ziel für den CPU-Nutzungsverbrauch.

**Standardverhalten:** Lambda behält genügend Headroom bei, sodass sich Ihr Traffic ohne Drosselungen innerhalb von 5 Minuten verdoppeln kann.

**Optimierungsoptionen:**
+ Wenn Ihre Arbeitslast sehr konstant ist oder wenn Ihre Anwendung nicht empfindlich auf Drosselungen reagiert, können Sie das Ziel auf ein hohes Niveau setzen, um eine höhere Auslastung und niedrigere Kosten zu erreichen
+ Wenn Sie genügend Spielraum für hohe Datenmengen haben möchten, können Sie die Ressourcenziele auf ein niedriges Niveau setzen, was wiederum mehr Kapazität erfordert

#### 5. Auswahl des Instance-Typs
<a name="lambda-managed-instances-instance-type-selection"></a>

Legen Sie zulässige oder ausgeschlossene Instance-Typen fest.

**Standardverhalten:** Lambda wählt die besten Instance-Typen für Ihren Workload aus. Es wird empfohlen, Lambda Managed Instances die Wahl der Instanztypen zu überlassen, da eine Beschränkung der Anzahl möglicher Instanztypen zu einer geringeren Verfügbarkeit führen kann.

**Benutzerdefinierte Konfiguration:**
+ **Spezifische Hardwareanforderungen:** Legen Sie für zulässige Instanztypen eine Liste kompatibler Instanzen fest. Wenn Sie beispielsweise eine Anwendung haben, die eine hohe Netzwerkbandbreite benötigt, können Sie mehrere n-Instance-Typen auswählen
+ **Kostenoptimierung:** Für Test- oder Entwicklungsumgebungen können Sie kleinere Instance-Typen wie m7a.large-Instance-Typen wählen

## Geplante Skalierung
<a name="lambda-managed-instances-scheduled-scaling"></a>

Verwenden Sie [Amazon EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), um die minimalen und maximalen Ausführungsumgebungen Ihrer Funktion nach einem wiederkehrenden oder einmaligen Zeitplan anzupassen. Dies ist nützlich für vorhersehbare Verkehrsmuster, wie z. B. das Hochskalieren vor Hauptverkehrszeiten und das Herunterskalieren während der Nebenzeiten.

**Scheduler-Konfiguration:**
+ Erstellen Sie eine EventBridge Scheduler-Ausführungsrolle oder verwenden Sie eine vorhandene Rolle, die die Berechtigung `lambda:PutFunctionScalingConfig` zum Aufrufen Ihrer Zielfunktion erteilt.
+ Erstellen Sie mithilfe eines Cron- oder Rate-Ausdrucks einen Zeitplan, der auf die `PutFunctionScalingConfig` API als universelles Ziel abzielt. Geben Sie die neuen `MaxExecutionEnvironments` Werte `MinExecutionEnvironments` und in der Eingabe-Payload an.

**Beispiel 1: Skalierung zur Bewältigung des geplanten Spitzenverkehrs**

Erstellen Sie zwei Zeitpläne, um vor den Hauptverkehrszeiten nach oben zu skalieren und danach nach unten zu skalieren. Jeder Zeitplan zielt mit aktualisierten `MaxExecutionEnvironments` Werten auf die `PutFunctionScalingConfig` API `MinExecutionEnvironments` ab.

Um 8:00 Uhr UTC hochskalieren (min=100, max=1000):

```
aws scheduler create-schedule \
  --name "ScaleUpLambdaManagedInstances" \
  --schedule-expression "cron(0 8 * * ? *)" \
  --flexible-time-window '{"Mode": "OFF"}' \
  --target '{
    "Arn": "arn:aws:scheduler:::aws-sdk:lambda:PutFunctionScalingConfig",
    "RoleArn": "arn:aws:iam::<account-id>:role/eventbridge-scheduler-role",
    "Input": "{\"FunctionName\": \"my-lmi-function\", \"Qualifier\": \"$LATEST.PUBLISHED\", \"FunctionScalingConfig\": {\"MinExecutionEnvironments\": 100, \"MaxExecutionEnvironments\": 1000}}"
  }'
```

Um 18:00 Uhr UTC herunterskalieren (min=5, max=20):

```
aws scheduler create-schedule \
  --name "ScaleDownLambdaManagedInstances" \
  --schedule-expression "cron(0 18 * * ? *)" \
  --flexible-time-window '{"Mode": "OFF"}' \
  --target '{
    "Arn": "arn:aws:scheduler:::aws-sdk:lambda:PutFunctionScalingConfig",
    "RoleArn": "arn:aws:iam::<account-id>:role/eventbridge-scheduler-role",
    "Input": "{\"FunctionName\": \"my-lmi-function\", \"Qualifier\": \"$LATEST.PUBLISHED\", \"FunctionScalingConfig\": {\"MinExecutionEnvironments\": 5, \"MaxExecutionEnvironments\": 20}}"
  }'
```

**Beispiel 2: Außerhalb der Spitzenzeiten deaktivieren und erneut aktivieren**

Wenn `MinExecutionEnvironments` sowohl als auch `MaxExecutionEnvironments` auf 0 gesetzt werden, wird die Funktionsversion deaktiviert, ohne sie zu löschen. Eine deaktivierte Funktion wird nicht automatisch mit dem Verkehr wieder hochskaliert. Sie müssen sie explizit reaktivieren, indem Sie im Rahmen einer anderen geplanten Aktion Werte festlegen, die ungleich Null sind.

Um 22:00 Uhr UTC deaktivieren (min=0, max=0):

```
aws scheduler create-schedule \
  --name "DeactivateLambdaManagedInstances" \
  --schedule-expression "cron(0 22 * * ? *)" \
  --flexible-time-window '{"Mode": "OFF"}' \
  --target '{
    "Arn": "arn:aws:scheduler:::aws-sdk:lambda:PutFunctionScalingConfig",
    "RoleArn": "arn:aws:iam::<account-id>:role/eventbridge-scheduler-role",
    "Input": "{\"FunctionName\": \"my-lmi-function\", \"Qualifier\": \"$LATEST.PUBLISHED\", \"FunctionScalingConfig\": {\"MinExecutionEnvironments\": 0, \"MaxExecutionEnvironments\": 0}}"
  }'
```

Um 7:00 Uhr UTC reaktivieren (min=10, max=20):

```
aws scheduler create-schedule \
  --name "ReactivateLambdaManagedInstances" \
  --schedule-expression "cron(0 7 * * ? *)" \
  --flexible-time-window '{"Mode": "OFF"}' \
  --target '{
    "Arn": "arn:aws:scheduler:::aws-sdk:lambda:PutFunctionScalingConfig",
    "RoleArn": "arn:aws:iam::<account-id>:role/eventbridge-scheduler-role",
    "Input": "{\"FunctionName\": \"my-lmi-function\", \"Qualifier\": \"$LATEST.PUBLISHED\", \"FunctionScalingConfig\": {\"MinExecutionEnvironments\": 10, \"MaxExecutionEnvironments\": 20}}"
  }'
```

**Richtlinien für Anpassungen:**
+ Für Workloads mit vorhersehbaren Spitzenzeiten sollten Sie mehrere Zeitpläne erstellen, die Ihrem Verkehrsmuster entsprechen: einen, um Ihre Funktion vor Spitzenzeiten hochzuskalieren, und einen anderen, um nach Spitzenzeiten herunterzufahren. Jeder Zeitplan folgt demselben Muster mit aktualisierten `MinExecutionEnvironments` `MaxExecutionEnvironments` Werten.
+ Bei der geplanten Skalierung werden die bereitgestellten Unter- und Obergrenzen der Ausführungsumgebungen angepasst, aber die tatsächliche Skalierung zwischen Mindest- und Höchstwert entspricht immer noch der CPU-Auslastung und der Parallelitätssättigung.
+ Wenn sich Ihr Datenverkehr innerhalb von 5 Minuten nach einer geplanten Skalierung mehr als verdoppelt, kann es dennoch zu Drosselungen kommen, wenn Kapazität bereitgestellt wird.
+ Denken Sie bei der Skalierung auf Null zur Deaktivierung einer Funktion daran, dass für die Reaktivierung ein expliziter Aufruf mit Werten ungleich Null erforderlich ist. `PutFunctionScalingConfig`

## Nächste Schritte
<a name="lambda-managed-instances-scaling-next-steps"></a>
+ Erfahren Sie mehr über [Kapazitätsanbieter für Lambda Managed Instances](lambda-managed-instances-capacity-providers.md)
+ Lesen Sie die laufzeitspezifischen Anleitungen zum Umgang mit Mehrfachparallelität
+ Konfigurieren Sie die [VPC-Konnektivität für Ihre Kapazitätsanbieter](lambda-managed-instances-networking.md)
+ Überwachen Sie Skalierungskennzahlen, um das Skalierungsverhalten zu optimieren