

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Implémenter le dimensionnement des applications dans le service géré pour Apache Flink
<a name="how-scaling"></a>

Vous pouvez configurer l’exécution parallèle des tâches et l’allocation de ressources pour le service géré Amazon pour Apache Flink afin d’implémenter la mise à l’échelle. Pour plus d'informations sur la façon dont Apache Flink planifie les instances parallèles de tâches, voir [Parallel Execution dans la documentation d'](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/execution/parallel/)Apache Flink.

**Topics**
+ [Configuration du parallélisme des applications et du KPU ParallelismPer](#how-parallelism)
+ [Allouer des unités de traitement Kinesis](#how-scaling-kpus)
+ [Mettez à jour le parallélisme de votre application](#how-scaling-howto)
+ [Utiliser le dimensionnement automatique dans Managed Service pour Apache Flink](how-scaling-auto.md)
+ [Considérations relatives à maxParallelism](#how-scaling-auto-max-parallelism)

## Configuration du parallélisme des applications et du KPU ParallelismPer
<a name="how-parallelism"></a>

Vous configurez l’exécution parallèle des tâches votre application de service géré pour Apache Flink (telles que la lecture depuis une source ou l’exécution d’un opérateur) à l’aide des propriétés [https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_ApplicationConfiguration.html](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_ApplicationConfiguration.html) suivantes : 
+ `Parallelism` : utilisez cette propriété pour définir le parallélisme par défaut de l’application Apache Flink. Tous les opérateurs, sources et récepteurs s’exécutent avec ce parallélisme, sauf s’ils sont remplacés dans le code de l’application. La valeur par défaut est `1`, et la valeur maximale est `256`.
+ `ParallelismPerKPU` : utilisez cette propriété pour définir le nombre de tâches parallèles qui peuvent être planifiées par unité de traitement Kinesis (KPU) de votre application. La valeur par défaut est `1`, et la valeur maximale est `8`. Pour les applications comportant des opérations de blocage (par exemple, I/O), une valeur plus élevée de `ParallelismPerKPU` entraîne une utilisation complète des ressources KPU.

**Note**  
La limite pour `Parallelism` est égale à `ParallelismPerKPU` fois la limite pour les KPU (64 par défaut). La limite de KPU peut être augmentée en demandant une augmentation de limite. Pour des instructions pour demander une augmentation de cette limite, consultez « Pour demander une augmentation de limite » dans [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

Pour plus d'informations sur la définition du parallélisme des tâches pour un opérateur spécifique, voir [Configuration du parallélisme : opérateur dans la](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/execution/parallel/#operator-level) documentation d'Apache Flink.

## Allouer des unités de traitement Kinesis
<a name="how-scaling-kpus"></a>

Le service géré pour Apache Flink fournit la capacité en KPU. qUne seule unité KPU vous fournit 1 vCPU et 4 Go de mémoire. Pour chaque unité KPU allouée, 50 Go de stockage des applications en cours d’exécution sont également fournis. 

Le service géré pour Apache Flink calcule les KPU nécessaires pour exécuter votre application à l’aide des propriétés `Parallelism` et `ParallelismPerKPU`, comme suit :

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

Le service géré pour Apache Flink fournit rapidement des ressources à vos applications en réponse aux pics de débit ou d’activité de traitement. Il supprime progressivement les ressources de votre application une fois le pic d’activité passé. Pour désactiver l’allocation automatique des ressources, définissez la valeur `AutoScalingEnabled` sur `false`, comme décrit plus loin dans [Mettez à jour le parallélisme de votre application](#how-scaling-howto). 

La limite par défaut est de 64 pour les KPU pour votre application. Pour des instructions pour demander une augmentation de cette limite, consultez « Pour demander une augmentation de limite » dans [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

**Note**  
Un KPU supplémentaire est facturé à des fins d’orchestration. Pour plus d’informations, consultez [Tarification du service géré pour Apache Flink](https://aws.amazon.com/kinesis/data-analytics/pricing/).

## Mettez à jour le parallélisme de votre application
<a name="how-scaling-howto"></a>

Cette section contient des exemples de demande d’action d’API qui définissent le parallélisme d’une application. Pour plus d’exemples et d’instructions sur l’utilisation de blocs de requête avec des actions d’API, consultez [Exemple de code de service géré pour l'API Apache Flink](api-examples.md).

L’exemple de demande d’action [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) suivant définit le parallélisme lorsque vous créez une application :

```
{
   "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
         }
      }
   }
}
```

L’exemple de demande d’action [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) suivant définit le parallélisme pour une application existante :

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

L’exemple de demande d’action [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) suivant désactive le parallélisme pour une application existante :

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

## Considérations relatives à maxParallelism
<a name="how-scaling-auto-max-parallelism"></a>

Le parallélisme maximal qu'une tâche Flink peut mettre à l'échelle est limité *au minimum* pour `maxParallelism` tous les opérateurs de la tâche. Par exemple, si vous avez une tâche simple avec uniquement une source et un récepteur, et que la source a 16 et le récepteur 8, l'application ne peut pas évoluer au-delà du parallélisme de 8. `maxParallelism`

Pour savoir comment la valeur par défaut `maxParallelism` d'un opérateur est calculée et comment la remplacer, reportez-vous à la section [Définition du parallélisme maximal dans la](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/datastream/execution/parallel/#setting-the-maximum-parallelism) documentation d'Apache Flink.

En règle générale, sachez que si vous ne définissez `maxParallelism` aucun opérateur et que vous démarrez votre application avec un parallélisme inférieur ou égal à 128, tous les opérateurs auront un `maxParallelism` de 128.

**Note**  
Le parallélisme maximal de la tâche est la limite supérieure du parallélisme pour le dimensionnement de votre application en conservant son état.   
Si vous modifiez `maxParallelism` une application existante, celle-ci ne pourra pas redémarrer à partir d'une capture d'écran précédente prise avec l'ancienne`maxParallelism`. Vous ne pouvez redémarrer l'application que sans capture d'écran.   
Si vous envisagez de dimensionner votre application à un parallélisme supérieur à 128, vous devez le définir explicitement `maxParallelism` dans votre application.
+ La logique de mise à l'échelle automatique empêchera le dimensionnement d'une tâche Flink jusqu'à un parallélisme supérieur au parallélisme maximal de la tâche.
+ Si vous utilisez un dimensionnement automatique personnalisé ou un dimensionnement planifié, configurez-les de manière à ce qu'ils ne dépassent pas le parallélisme maximal de la tâche.
+ Si vous redimensionnez manuellement votre application au-delà du parallélisme maximal, l'application ne démarre pas.