

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.

# Implementieren Sie die Anwendungsskalierung in Managed Service für Apache Flink
<a name="how-scaling"></a>

Sie können die parallele Ausführung von Aufgaben und die Zuweisung von Ressourcen für Amazon Managed Service für Apache Flink konfigurieren, um die Skalierung zu implementieren. Informationen darüber, wie Apache Flink parallel Instanzen von Aufgaben plant, finden Sie unter [Parallele Ausführung](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/execution/parallel/) in der Apache Flink-Dokumentation.

**Topics**
+ [Konfigurieren Sie Anwendungsparallelität und KPU ParallelismPer](#how-parallelism)
+ [Kinesis-Verarbeitungseinheiten zuweisen](#how-scaling-kpus)
+ [Aktualisieren Sie die Parallelität Ihrer Anwendung](#how-scaling-howto)
+ [Verwenden Sie die automatische Skalierung in Managed Service für Apache Flink](how-scaling-auto.md)
+ [Überlegungen zu maxParallelism](#how-scaling-auto-max-parallelism)

## Konfigurieren Sie Anwendungsparallelität und KPU ParallelismPer
<a name="how-parallelism"></a>

Sie konfigurieren die parallele Ausführung der Aufgaben Ihrer mit Managed Service für Apache Flink erstellten Anwendung (wie das Lesen aus einer Quelle oder das Ausführen eines Operators) mithilfe der folgenden [https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_ApplicationConfiguration.html](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_ApplicationConfiguration.html)-Eigenschaften: 
+ `Parallelism` – Verwenden Sie diese Eigenschaft, um die Standardparallelität der Apache-Flink-Anwendung festzulegen. Alle Operatoren, Quellen und Senken werden mit dieser Parallelität ausgeführt, sofern sie nicht im Anwendungscode überschrieben werden. Der Standardwert beträgt `1`; der voreingestellte Maximalwert beträgt `256`.
+ `ParallelismPerKPU` – Verwenden Sie diese Eigenschaft, um die Anzahl der parallelen Aufgaben festzulegen, die pro Kinesis Processing Unit (KPU) Ihrer Anwendung geplant werden können. Der Standardwert ist `1` und der Maximalwert ist `8`. Bei Anwendungen mit blockierenden Vorgängen (z. B. E/A) führt ein höherer `ParallelismPerKPU`-Wert zu einer Vollauslastung der KPU-Ressourcen.

**Anmerkung**  
Der Grenzwert für `Parallelism` entspricht dem `ParallelismPerKPU` Mehrfachen des Grenzwerts für KPUs (der standardmäßig 64 ist). Das KPUs Limit kann erhöht werden, indem eine Erhöhung des Limits beantragt wird. Anweisungen zum Anfordern einer Erhöhung dieses Grenzwerts finden Sie unter „So fordern Sie eine Erhöhung des Grenzwerts an“ unter [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

Informationen zum Einstellen der Aufgabenparallelität für einen bestimmten Operator finden Sie unter [Setting the Parallelism: Operator](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/execution/parallel/#operator-level) in der Apache Flink-Dokumentation.

## Kinesis-Verarbeitungseinheiten zuweisen
<a name="how-scaling-kpus"></a>

Managed Service für Apache Flink stellt Kapazität bereit als. KPUs Eine einzelne KPU bietet Ihnen 1 vCPU und 4 GB Arbeitsspeicher. Für jede zugewiesene KPU werden außerdem 50 GB Speicher für laufende Anwendungen bereitgestellt. 

Managed Service for Apache Flink berechnet KPUs die für die Ausführung Ihrer Anwendung erforderlichen Werte anhand der `ParallelismPerKPU` Eigenschaften `Parallelism` und wie folgt:

```
Allocated KPUs for the application = Parallelism/ParallelismPerKPU
```

Managed Service für Apache Flink stellt Ihren Anwendungen schnell Ressourcen zur Verfügung, um auf Spitzen im Durchsatz oder bei der Verarbeitungsaktivität zu reagieren. Es entfernt Ressourcen schrittweise aus Ihrer Anwendung, nachdem die Aktivitätsspitze vorüber ist. Um die automatische Zuweisung von Ressourcen zu deaktivieren, setzen Sie den Wert von `AutoScalingEnabled` auf `false`, wie weiter unten unter [Aktualisieren Sie die Parallelität Ihrer Anwendung](#how-scaling-howto) beschrieben. 

Das Standardlimit KPUs für Ihre Anwendung ist 64. Anweisungen zum Anfordern einer Erhöhung dieses Grenzwerts finden Sie unter „So fordern Sie eine Erhöhung des Grenzwerts an“ unter [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

**Anmerkung**  
Für Orchestrierungszwecke wird eine zusätzliche KPU berechnet. Weitere Informationen finden Sie unter [Managed Service für Apache Flink – Preise](https://aws.amazon.com/kinesis/data-analytics/pricing/).

## Aktualisieren Sie die Parallelität Ihrer Anwendung
<a name="how-scaling-howto"></a>

Dieser Abschnitt enthält Beispielanfragen für API-Aktionen, die die Parallelität einer Anwendung festlegen. Weitere Beispiele und Anweisungen zur Verwendung von Anforderungsblöcken mit API-Aktionen finden Sie unter [Beispielcode für Managed Service für Apache Flink API](api-examples.md).

Die folgende Beispielanforderung für die [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html)-Aktion legt die Parallelität fest, wenn Sie eine Anwendung erstellen:

```
{
   "ApplicationName": "string",
   "RuntimeEnvironment":"FLINK-1_18",
   "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole",
   "ApplicationConfiguration": { 
      "ApplicationCodeConfiguration":{
      "CodeContent":{
         "S3ContentLocation":{
            "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket",
            "FileKey":"myflink.jar",
            "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345"
            }
         },
      "CodeContentType":"ZIPFILE"
   },   
      "FlinkApplicationConfiguration": { 
         "ParallelismConfiguration": { 
            "AutoScalingEnabled": "true",
            "ConfigurationType": "CUSTOM",
            "Parallelism": 4,
            "ParallelismPerKPU": 4
         }
      }
   }
}
```

Die folgende Beispielanforderung für die [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html)-Aktion legt die Parallelität für eine bestehende Anwendung fest:

```
{
   "ApplicationName": "MyApplication",
   "CurrentApplicationVersionId": 4,
   "ApplicationConfigurationUpdate": { 
      "FlinkApplicationConfigurationUpdate": { 
         "ParallelismConfigurationUpdate": { 
            "AutoScalingEnabledUpdate": "true",
            "ConfigurationTypeUpdate": "CUSTOM",
            "ParallelismPerKPUUpdate": 4,
            "ParallelismUpdate": 4
         }
      }
   }
}
```

Die folgende Beispielanforderung für die [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html)-Aktion deaktiviert die Parallelität für eine bestehende Anwendung:

```
{
   "ApplicationName": "MyApplication",
   "CurrentApplicationVersionId": 4,
   "ApplicationConfigurationUpdate": { 
      "FlinkApplicationConfigurationUpdate": { 
         "ParallelismConfigurationUpdate": { 
            "AutoScalingEnabledUpdate": "false"
         }
      }
   }
}
```

# Verwenden Sie die automatische Skalierung in Managed Service für Apache Flink
<a name="how-scaling-auto"></a>

Managed Service für Apache Flink skaliert die Parallelität Ihrer Anwendung elastisch, um dem Datendurchsatz Ihrer Quelle und der Komplexität Ihres Operators in den meisten Szenarien Rechnung zu tragen. Die automatische Skalierung ist standardmäßig aktiviert. Managed Service für Apache Flink überwacht die Ressourcenauslastung (CPU-Auslastung) Ihrer Anwendung und skaliert die Parallelität Ihrer Anwendung entsprechend elastisch nach oben oder unten:
+ Ihre Anwendung `containerCPUUtilization` wird skaliert (erhöht die Parallelität), wenn das CloudWatch metrische Maximum 15 Minuten lang mehr als 75 Prozent oder mehr beträgt. Das bedeutet, dass die `ScaleUp` Aktion ausgelöst wird, wenn es 15 aufeinanderfolgende Datenpunkte mit einem Zeitraum von 1 Minute gibt, der 75 Prozent oder mehr entspricht. Eine `ScaleUp` Aktion verdoppelt den Wert Ihrer Anwendung`CurrentParallelism`. `ParallelismPerKPU`wird nicht geändert. Infolgedessen verdoppelt sich KPUs auch die Anzahl der zugewiesenen Personen. 
+ Ihre Anwendung wird herunterskaliert (Parallelität wird verringert), wenn die CPU-Auslastung sechs Stunden lang unter 10 Prozent bleibt. Das bedeutet, dass die `ScaleDown` Aktion ausgelöst wird, wenn 360 aufeinanderfolgende Datenpunkte mit einem Zeitraum von 1 Minute weniger als 10 Prozent vorhanden sind. Eine `ScaleDown` Aktion halbiert (aufgerundet) die Parallelität der Anwendung. `ParallelismPerKPU`wird nicht verändert, und die Anzahl der zugewiesenen Personen halbiert sich KPUs ebenfalls (aufgerundet). 

**Anmerkung**  
Es kann auf ein Maximum von `containerCPUUtilization` mehr als 1 Minute verwiesen werden, um die Korrelation mit einem Datenpunkt zu ermitteln, der für die Skalierungsaktion verwendet wird. Es ist jedoch nicht erforderlich, den genauen Zeitpunkt wiederzugeben, zu dem die Aktion initialisiert wird.

Managed Service für Apache Flink reduziert den `CurrentParallelism`-Wert Ihrer Anwendung nicht auf weniger als die `Parallelism`-Einstellung Ihrer Anwendung.

Wenn der Service von Managed Service für Apache Flink Ihre Anwendung skaliert, befindet er sich im Status `AUTOSCALING`. Sie können Ihren aktuellen Anwendungsstatus mithilfe der [ DescribeApplication](https://docs.aws.amazon.com//managed-flink/latest/apiv2/API_DescribeApplication.html)Aktionen oder überprüfen. [ ListApplications](https://docs.aws.amazon.com//managed-flink/latest/apiv2/API_ListApplications.html) Während der Service Ihre Anwendung skaliert, können Sie die einzige gültige API-Aktion verwenden, wenn der `Force` Parameter auf gesetzt ist [ StopApplication](https://docs.aws.amazon.com//managed-flink/latest/apiv2/API_ListApplications.html)`true`.

Sie können die Eigenschaft `AutoScalingEnabled` (Teil von [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_FlinkApplicationConfiguration.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_FlinkApplicationConfiguration.html) ) verwenden, um das Auto-Scaling-Verhalten zu aktivieren oder zu deaktivieren. Ihr AWS Konto wird für KPUs die Bereitstellung von Managed Service for Apache Flink belastet, was von Ihren Anwendungen `parallelism` und `parallelismPerKPU` Einstellungen abhängt. Eine Aktivitätsspitze erhöht Ihre Kosten für Managed Service für Apache Flink.

Weitere Informationen finden Sie unter [Amazon Managed Service für Apache Flink – Preise](https://aws.amazon.com/kinesis/data-analytics/pricing/). 

Beachten Sie Folgendes im Zusammenhang mit der Anwendungsskalierung:
+ Die automatische Skalierung ist standardmäßig aktiviert.
+ Skalierung gilt nicht für Studio-Notebooks. Wenn Sie ein Studio-Notebook jedoch als Anwendung mit dauerhaftem Zustand bereitstellen, gilt die Skalierung für die bereitgestellte Anwendung.
+ Ihre Anwendung hat ein Standardlimit von KPUs 64. Weitere Informationen finden Sie unter [Managed Service für Apache Flink und Studio Notebook-Kontingent](limits.md).
+ Wenn Auto Scaling die Anwendungsparallelität aktualisiert, kommt es bei der Anwendung zu Ausfallzeiten. Gehen Sie wie folgt vor, um diese Ausfallzeit zu vermeiden:
  + Deaktivieren der automatischen Skalierung
  + Konfigurieren Sie das `parallelism` und `parallelismPerKPU` mit der [UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)Aktion Ihrer Anwendung. Weitere Informationen zum Festlegen der Parallelitätseinstellungen Ihrer Anwendung finden Sie unter. [Aktualisieren Sie die Parallelität Ihrer Anwendung](how-scaling.md#how-scaling-howto)
  + Überwachen Sie regelmäßig den Ressourcenverbrauch Ihrer Anwendung, um sicherzustellen, dass Ihre Anwendung über die richtigen Parallelitätseinstellungen für ihren Workload verfügt. Weitere Informationen über die Überwachung des Ressourcenverbrauchs finden Sie unter [Metriken und Dimensionen in Managed Service für Apache Flink](metrics-dimensions.md).

## Implementieren Sie benutzerdefiniertes Autoscaling
<a name="how-scaling-custom-autoscaling"></a>

Wenn Sie eine genauere Kontrolle über die automatische Skalierung wünschen oder andere Trigger-Metriken als verwenden möchten`containerCPUUtilization`, können Sie dieses Beispiel verwenden: 
+ [AutoScaling](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/infrastructure/AutoScaling)

  Dieses Beispiel zeigt, wie Sie Ihre Managed Service for Apache Flink-Anwendung mithilfe einer anderen CloudWatch Metrik als der Apache Flink-Anwendung skalieren können, einschließlich Metriken aus Amazon MSK und Amazon Kinesis Data Streams, die als Quellen oder Senken verwendet werden.

Weitere Informationen finden Sie unter [Verbesserte Überwachung und automatische Skalierung](https://aws.amazon.com/blogs/big-data/enhanced-monitoring-and-automatic-scaling-for-apache-flink/) für Apache Flink.

## Implementieren Sie die geplante automatische Skalierung
<a name="how-scaling-scheduled-autoscaling"></a>

Wenn Ihre Arbeitslast im Laufe der Zeit einem vorhersehbaren Profil folgt, ziehen Sie es möglicherweise vor, Ihre Apache Flink-Anwendung präventiv zu skalieren. Dadurch wird Ihre Anwendung zu einem geplanten Zeitpunkt skaliert, anstatt reaktiv auf der Grundlage einer Metrik zu skalieren. Um das Hoch- und Herunterskalieren zu festen Tageszeiten einzurichten, können Sie dieses Beispiel verwenden:
+ [ScheduledScaling](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/infrastructure/ScheduledScaling)

## Überlegungen zu maxParallelism
<a name="how-scaling-auto-max-parallelism"></a>

Die maximale Parallelität, die ein Flink-Job skalieren kann, ist durch das *Minimum* `maxParallelism` für alle Operatoren des Jobs begrenzt. Wenn Sie beispielsweise einen einfachen Job mit nur einer Quelle und einer Senke haben und die Quelle einen Wert `maxParallelism` von 16 und die Senke einen Wert von 8 hat, kann die Anwendung nicht über die Parallelität 8 hinaus skalieren.

Informationen darüber, wie die Standardeinstellung `maxParallelism` eines Operators berechnet wird und wie Sie die Standardeinstellung überschreiben können, finden Sie unter [Setting the Maximum Parallelism in der Apache Flink-Dokumentation](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/execution/parallel/#setting-the-maximum-parallelism).

Als Grundregel gilt: Wenn Sie `maxParallelism` für keinen Operator definieren und Ihre Anwendung mit einer Parallelität von weniger als oder gleich 128 starten, haben alle Operatoren einen Wert von 128. `maxParallelism`

**Anmerkung**  
Die maximale Parallelität des Jobs ist die Obergrenze der Parallelität für die Skalierung Ihrer Anwendung unter Beibehaltung des Status.   
Wenn Sie eine bestehende Anwendung ändern, kann die Anwendung nicht `maxParallelism` von einem früheren Snapshot aus neu gestartet werden, der mit der alten erstellt wurde. `maxParallelism` Sie können die Anwendung nur ohne Snapshot neu starten.   
Wenn Sie planen, Ihre Anwendung auf eine Parallelität von mehr als 128 zu skalieren, müssen Sie dies `maxParallelism` in Ihrer Anwendung explizit festlegen.
+ Die Autoscaling-Logik verhindert, dass ein Flink-Job auf eine Parallelität skaliert wird, die die maximale Parallelität des Jobs überschreitet.
+ Wenn Sie eine benutzerdefinierte automatische Skalierung oder eine geplante Skalierung verwenden, konfigurieren Sie sie so, dass sie die maximale Parallelität des Jobs nicht überschreiten.
+ Wenn Sie Ihre Anwendung manuell über die maximale Parallelität hinaus skalieren, kann die Anwendung nicht gestartet werden.