

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.

# Prise en charge des versions d'Amazon MSK
<a name="version-support"></a>

Cette rubrique décrit la procédure [Politique de support des versions d'Amazon MSK](#version-support-policy) et la procédure à suivre pour[Mettre à jour la version d'Apache Kafka](version-upgrades.md). Si vous mettez à jour votre version de Kafka, suivez les meilleures pratiques décrites dans[Bonnes pratiques pour les mises à niveau des versions](version-upgrades-best-practices.md).

**Topics**
+ [Politique de support des versions d'Amazon MSK](#version-support-policy)
+ [Mettre à jour la version d'Apache Kafka](version-upgrades.md)
+ [Bonnes pratiques pour les mises à niveau des versions](version-upgrades-best-practices.md)

## Politique de support des versions d'Amazon MSK
<a name="version-support-policy"></a>

Cette section décrit la politique de support pour les versions de Kafka prises en charge par Amazon MSK.
+ Toutes les versions de Kafka sont prises en charge jusqu'à leur date de fin de support. Pour plus de détails sur les dates de fin de support, consultez[Versions Apache Kafka prises en charge](supported-kafka-versions.md). Mettez à niveau votre cluster MSK vers la version recommandée de Kafka ou une version supérieure avant la date de fin du support. Pour plus de détails sur la mise à niveau de votre version d'Apache Kafka, consultez[Mettre à jour la version d'Apache Kafka](version-upgrades.md). Un cluster utilisant une version de Kafka après sa date de fin de support est automatiquement mis à niveau vers la version recommandée de Kafka. Les mises à niveau automatiques peuvent avoir lieu à tout moment après la date de fin du support. Vous ne recevrez aucune notification avant la mise à niveau.
+ MSK supprimera progressivement le support pour les clusters nouvellement créés qui utilisent des versions de Kafka avec des dates de fin de support publiées.

# Mettre à jour la version d'Apache Kafka
<a name="version-upgrades"></a>

Vous pouvez mettre à niveau un cluster MSK existant vers une version plus récente d'Apache Kafka. Avant de mettre à niveau la version Kafka de votre cluster, vérifiez que la version de votre logiciel côté client prend en charge les fonctionnalités de la nouvelle version de Kafka.

Pour plus d'informations sur la manière de rendre un cluster hautement disponible lors d'une mise à niveau, consultez[Créer des clusters hautement disponibles](bestpractices.md#ensure-high-availability).

**Mettez à jour la version d'Apache Kafka à l'aide du AWS Management Console**

1. Ouvrez la console Amazon MSK à l'adresse [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Dans la barre de navigation, choisissez la région dans laquelle vous avez créé le cluster MSK.

1. Choisissez le cluster MSK que vous souhaitez mettre à niveau.

1. Dans l'onglet **Propriétés**, choisissez **Mettre à niveau** dans la section **Version d'Apache Kafka**.

1. Dans la section **version d'Apache Kafka**, procédez comme suit :

   1. Dans la liste déroulante *Choisir la version d'Apache Kafka*, choisissez la version cible vers laquelle vous souhaitez effectuer la mise à niveau. Par exemple, sélectionnez **3.9.x**.

   1. (Facultatif) Choisissez **Afficher la compatibilité** des versions pour vérifier la compatibilité entre la version actuelle de votre cluster et les versions de mise à niveau disponibles. Sélectionnez ensuite **Choisir** pour continuer.
**Note**  
Amazon MSK prend en charge les mises à niveau sur place vers la plupart des versions d'Apache Kafka. Toutefois, lors de la mise à niveau d'une version ZooKeeper basée sur Kafka vers une version KRaft basée sur Kafka, vous devez créer un nouveau cluster. Copiez ensuite vos données dans le nouveau cluster et transférez les clients vers le nouveau cluster.

   1. (Facultatif) Cochez la case **Mettre à jour la configuration du cluster** pour appliquer les mises à jour de configuration compatibles avec la nouvelle version. Cela permet d'accéder aux fonctionnalités et aux améliorations de la nouvelle version.

      Vous pouvez ignorer cette étape si vous devez conserver vos configurations personnalisées existantes.
**Note**  
Les mises à niveau côté serveur ne mettent pas automatiquement à jour les applications clientes.
Pour maintenir la stabilité du cluster, les rétrogradations de version ne sont pas prises en charge.

   1. Choisissez **Upgrade** pour démarrer le processus.

**Mettez à jour la version d'Apache Kafka à l'aide du AWS CLI**

1. Exécutez la commande suivante, en la *ClusterArn* remplaçant par le Amazon Resource Name (ARN) que vous avez obtenu lors de la création de votre cluster. Si vous n'avez pas l'ARN pour votre cluster, vous pouvez le trouver en listant tous les clusters. Pour de plus amples informations, veuillez consulter [Répertorier les clusters Amazon MSK](msk-list-clusters.md).

   ```
   aws kafka get-compatible-kafka-versions --cluster-arn ClusterArn
   ```

   Le résultat de cette commande inclut une liste des versions d'Apache Kafka vers lesquelles vous pouvez mettre à niveau le cluster. Elle ressemble à l'exemple suivant :

   ```
   {
       "CompatibleKafkaVersions": [
           {
               "SourceVersion": "2.2.1",
               "TargetVersions": [
                   "2.3.1",
                   "2.4.1",
                   "2.4.1.1",
                   "2.5.1"
               ]
           }
       ]
   }
   ```

1. Exécutez la commande suivante, en la *ClusterArn* remplaçant par le Amazon Resource Name (ARN) que vous avez obtenu lors de la création de votre cluster. Si vous n'avez pas l'ARN pour votre cluster, vous pouvez le trouver en listant tous les clusters. Pour de plus amples informations, veuillez consulter [Répertorier les clusters Amazon MSK](msk-list-clusters.md).

   Remplacez *Current-Cluster-Version* par la version actuelle du cluster. Car *TargetVersion* vous pouvez spécifier n'importe quelle version cible à partir de la sortie de la commande précédente.
**Important**  
Les versions de cluster ne sont pas des entiers simples. Pour trouver la version actuelle du cluster, utilisez l'[DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)opération ou la commande [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI . Voici un exemple de version : `KTVPDKIKX0DER`.

   ```
   aws kafka update-cluster-kafka-version --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-kafka-version TargetVersion
   ```

   La sortie de la commande précédente ressemble au JSON suivant.

   ```
   {
       
       "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
       "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef"
   }
   ```

1. Pour obtenir le résultat de l'`update-cluster-kafka-version`opération, exécutez la commande suivante en la *ClusterOperationArn* remplaçant par l'ARN que vous avez obtenu dans le résultat de la `update-cluster-kafka-version` commande.

   ```
   aws kafka describe-cluster-operation --cluster-operation-arn ClusterOperationArn
   ```

   La sortie de cette commande `describe-cluster-operation` ressemble à l'exemple JSON suivant.

   ```
   {
       "ClusterOperationInfo": {
           "ClientRequestId": "62cd41d2-1206-4ebf-85a8-dbb2ba0fe259",
           "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
           "CreationTime": "2021-03-11T20:34:59.648000+00:00",
           "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef",
           "OperationState": "UPDATE_IN_PROGRESS",
           "OperationSteps": [
               {
                   "StepInfo": {
                       "StepStatus": "IN_PROGRESS"
                   },
                   "StepName": "INITIALIZE_UPDATE"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "UPDATE_APACHE_KAFKA_BINARIES"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "FINALIZE_UPDATE"
               }
           ],
           "OperationType": "UPDATE_CLUSTER_KAFKA_VERSION",
           "SourceClusterInfo": {
               "KafkaVersion": "2.4.1"
           },
           "TargetClusterInfo": {
               "KafkaVersion": "2.6.1"
           }
       }
   }
   ```

   Si `OperationState` a la valeur `UPDATE_IN_PROGRESS`, attendez un moment, puis exécutez à nouveau la commande `describe-cluster-operation`. Lorsque l'opération est terminée, la valeur de `OperationState` devient `UPDATE_COMPLETE`. Étant donné que le temps nécessaire à Amazon MSK pour effectuer l'opération varie, vous devrez peut-être vérifier à plusieurs reprises jusqu'à ce que l'opération soit terminée. 

**Mettre à jour la version d'Apache Kafka à l'aide de l'API**

1. Appelez l'[GetCompatibleKafkaVersions](https://docs.aws.amazon.com//msk/1.0/apireference/compatible-kafka-versions.html#GetCompatibleKafkaVersions)opération pour obtenir une liste des versions d'Apache Kafka vers lesquelles vous pouvez mettre à niveau le cluster.

1. Appelez l'[UpdateClusterKafkaVersion](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-version.html#UpdateClusterKafkaVersion)opération pour mettre à niveau le cluster vers l'une des versions compatibles d'Apache Kafka.

# Bonnes pratiques pour les mises à niveau des versions
<a name="version-upgrades-best-practices"></a>

Pour garantir la continuité du client pendant la mise à jour continue effectuée dans le cadre du processus de mise à niveau de la version de Kafka, passez en revue la configuration de vos clients et vos rubriques Apache Kafka comme suit :
+ Définissez le facteur de réplication (RF) du sujet sur une valeur minimale de `2` pour les clusters à deux AZ et une valeur minimale de `3` pour les clusters à trois AZ. Une valeur RF de `2` peut entraîner la création de partitions hors ligne lors de l'application de correctifs.
+ Définissez le nombre minimal de répliques synchronisées (MinISR) sur une valeur maximale inférieure de 1 à votre facteur de réplication (RF), qui est de. `miniISR = (RF) - 1` Cela garantit que le jeu de répliques de partitions peut tolérer qu'une réplique soit hors ligne ou sous-répliquée.
+ Configurez les clients pour qu'ils utilisent plusieurs chaînes de connexion de type broker. La présence de plusieurs courtiers dans la chaîne de connexion d'un client permet un basculement si un courtier spécifique prenant en charge le client I/O commence à recevoir un correctif. Pour plus d'informations sur la façon d'obtenir une chaîne de connexion avec plusieurs courtiers, consultez [Obtenir les courtiers bootstrap pour un cluster Amazon MSK](https://docs.aws.amazon.com//msk/latest/developerguide/msk-get-bootstrap-brokers.html).
+ Nous vous recommandons de mettre à niveau les clients de connexion vers la version recommandée ou une version supérieure pour bénéficier des fonctionnalités disponibles dans la nouvelle version. Les mises à niveau des clients ne sont pas soumises aux dates de fin de vie (EOL) de la version Kafka de votre cluster MSK et ne doivent pas nécessairement être terminées avant la date de fin de vie. Apache Kafka fournit une [politique de compatibilité client bidirectionnelle](https://kafka.apache.org/protocol#protocol_compatibility) qui permet aux anciens clients de travailler avec des clusters plus récents et vice versa.
+ Les clients Kafka utilisant les versions 3.x.x sont susceptibles de présenter les valeurs par défaut suivantes : et. `acks=all` `enable.idempotence=true` `acks=all`est différent de la valeur par défaut précédente de `acks=1` et offre une durabilité accrue en garantissant que toutes les répliques synchronisées accusent réception de la demande de production. De même, la valeur par défaut pour `enable.idempotence` était précédemment`false`. Le passage à `enable.idempotence=true` la valeur par défaut réduit le risque de doublons de messages. Ces modifications sont considérées comme des paramètres conformes aux meilleures pratiques et peuvent introduire une petite latence supplémentaire conforme aux paramètres de performance normaux.
+ Utilisez la version recommandée de Kafka lors de la création de nouveaux clusters MSK. L'utilisation de la version recommandée de Kafka vous permet de bénéficier des dernières fonctionnalités de Kafka et MSK.