Implémenter la tolérance aux pannes dans le service géré pour Apache Flink - Service géré pour Apache Flink

Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.

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 la tolérance aux pannes dans le service géré pour Apache Flink

Le point de contrôle est la méthode utilisée pour implémenter la tolérance aux pannes dans le service géré Amazon pour Apache Flink. Un point de contrôle est une up-to-date sauvegarde d'une application en cours d'exécution qui est utilisée pour effectuer une restauration immédiate en cas d'interruption ou de basculement imprévu d'une application.

Pour plus de détails sur le point de contrôle dans les applications Apache Flink, voir Points de contrôle dans la documentation d'Apache Flink.

Un instantané est une sauvegarde créée et gérée manuellement de l’état de l’application. Les instantanés vous permettent de restaurer l’état antérieur de votre application en appelant UpdateApplication. Pour de plus amples informations, veuillez consulter Gérez les sauvegardes d'applications à l'aide de snapshots.

Si le point de contrôle est activé pour votre application, le service assure la tolérance aux pannes en créant et en chargeant des sauvegardes des données de l’application en cas de redémarrage inattendu de l’application. Ces redémarrages inattendus d’application peuvent être provoqués par des redémarrages de tâche inattendus, des échecs d’instance, etc. Cela donne à l’application la même sémantique qu’une exécution sans échec lors de ces redémarrages.

Si les instantanés sont activés pour l'application et configurés à l'aide de ceux de l'application ApplicationRestoreConfiguration, le service fournit une sémantique de traitement unique lors des mises à jour de l'application, ou lors du dimensionnement ou de la maintenance liés au service.

Configurer le point de contrôle dans le service géré pour Apache Flink

Vous pouvez configurer le comportement de point de contrôle de votre application. Vous pouvez définir si elle conserve l’état de point de contrôle, à quelle fréquence elle enregistre son état dans les points de contrôle et l’intervalle minimum entre la fin d’une opération de point de contrôle et le début d’une autre.

Vous configurez les paramètres suivants à l'aide UpdateApplicationAPIdes opérations CreateApplicationor :

  • CheckpointingEnabled : indique si le point de contrôle est activé dans l’application.

  • CheckpointInterval : contient le temps en millisecondes entre les opérations de point de contrôle (persistance).

  • ConfigurationType : définissez cette valeur sur DEFAULT pour utiliser le comportement de point de contrôle par défaut. Définissez cette valeur sur CUSTOM pour configurer d’autres valeurs.

    Note

    Le comportement du point de contrôle par défaut est le suivant :

    • CheckpointingEnabled: vrai

    • CheckpointInterval: 60 000

    • MinPauseBetweenCheckpoints: 5000

    S'il ConfigurationTypeest défini surDEFAULT, les valeurs précédentes seront utilisées, même si elles sont définies sur d'autres valeurs en utilisant le AWS Command Line Interface ou en définissant les valeurs dans le code de l'application.

    Note

    À partir de Flink 1.15, le service géré pour Apache Flink utilise stop-with-savepoint lors de la création automatique d’instantanés, c’est-à-dire lors de la mise à jour, de la mise à l’échelle ou de l’arrêt de l’application.

  • MinPauseBetweenCheckpoints : durée minimale en millisecondes entre la fin d’une opération de point de contrôle et le début d’une autre. La définition de cette propriété empêche l’application de créer un point de contrôle continu lorsque l’opération de contrôle dure plus de temps que CheckpointInterval.

Consultez les exemples de points de contrôle API

Cette section inclut des exemples de demandes d'APIactions pour configurer le point de contrôle pour une application. Pour plus d'informations sur l'utilisation d'un JSON fichier en tant que saisie pour une API action, consultezExemple de code de service géré pour l'API Apache Flink.

Configurer le point de contrôle pour une nouvelle application

L’exemple de demande d’action CreateApplication suivant configure les points de contrôle lorsque vous créez une application :

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "true", "CheckpointInterval": 20000, "ConfigurationType": "CUSTOM", "MinPauseBetweenCheckpoints": 10000 } } }

Désactiver le point de contrôle pour une nouvelle application

L’exemple de demande d’action CreateApplication suivant désactive les points de contrôle lorsque vous créez une application :

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "false" } } }

Configurer le point de contrôle pour une application existante

L’exemple de demande d’action UpdateApplication suivant configure les points de contrôle pour une application existante :

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": true, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }

Désactiver le point de contrôle pour une application existante

L’exemple de demande d’action UpdateApplication suivant désactive les points de contrôle pour une application existante :

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": false, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }