

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Soporte de las versiones de Amazon MSK
<a name="version-support"></a>

Este tema describe la [Política de soporte de las versiones de Amazon MSK](#version-support-policy) y el procedimiento de [Actualización de la versión de Apache Kafka](version-upgrades.md). Si actualiza desde su versión de Kafka, siga las prácticas recomendadas que se describen en [Prácticas recomendadas para la actualización de versiones](version-upgrades-best-practices.md).

**Topics**
+ [Política de soporte de las versiones de Amazon MSK](#version-support-policy)
+ [Actualización de la versión de Apache Kafka](version-upgrades.md)
+ [Prácticas recomendadas para la actualización de versiones](version-upgrades-best-practices.md)

## Política de soporte de las versiones de Amazon MSK
<a name="version-support-policy"></a>

En esta sección, se describe la política de soporte para las versiones de Kafka compatibles con Amazon MSK.
+ Todas las versiones de Kafka son compatibles hasta la fecha de finalización del soporte. Para obtener información sobre las fechas de finalización del soporte, consulte [Versiones compatibles de Apache Kafka](supported-kafka-versions.md). Actualice su clúster MSK a la versión recomendada de Kafka o a una superior antes de la fecha de finalización del soporte. Para conocer los detalles sobre la actualización de la versión de Apache Kafka, consulte [Actualización de la versión de Apache Kafka](version-upgrades.md). Cualquier clúster que utilice una versión de Kafka posterior a la fecha de fin del soporte se actualizará automáticamente a la versión recomendada de Kafka. Las actualizaciones de versión automáticas pueden ocurrir en cualquier momento después de la fecha de fin de soporte. No recibirá ninguna notificación antes de la actualización de versión.
+ MSK eliminará gradualmente el soporte para los clústeres recién creados que utilicen versiones de Kafka con fechas de fin de soporte publicadas.

# Actualización de la versión de Apache Kafka
<a name="version-upgrades"></a>

Puede actualizar un clúster de Amazon MSK existente a una versión más reciente de Apache Kafka. Antes de actualizar la versión de Kafka del clúster, verifique que la versión del software del lado del cliente admita las características de la nueva versión de Kafka.

Para obtener información sobre cómo mantener un clúster con alta disponibilidad durante una actualización, consulte [Crear clústeres de alta disponibilidad](bestpractices.md#ensure-high-availability).

**Actualice la versión de Apache Kafka con el Consola de administración de AWS**

1. Abra la consola de Amazon MSK en [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. En la barra de navegación, seleccione la región en la que creó el clúster de MSK.

1. Seleccione el clúster de Amazon MSK que desea actualizar.

1. En la pestaña **Propiedades**, elija **Actualizar** en la sección **Versión de Apache Kafka**.

1. En la sección **Versión de Apache Kafka**, realice lo siguiente:

   1. En la lista desplegable *Elegir versión de Apache Kafka*, seleccione la versión de destino a la que desea realizar la actualización. En este ejemplo, elija **3.9.x**.

   1. (Opcional) Seleccione **Ver compatibilidad de versiones** para verificar la compatibilidad entre la versión actual del clúster y las versiones disponibles para la actualización. Luego, seleccione **Elegir** para continuar.
**nota**  
Amazon MSK admite actualizaciones de versión en el lugar para la mayoría de las versiones de Apache Kafka. Sin embargo, al actualizar de una versión ZooKeeper basada en Kafka a una versión KRaft basada en Kafka, debe crear un clúster nuevo. A continuación, copie los datos en el clúster nuevo y cambie los clientes para que utilicen dicho clúster.

   1. (Opcional) Seleccione la casilla **Actualizar la configuración del clúster** para aplicar actualizaciones de configuración compatibles con la nueva versión. Esto habilita las nuevas características y mejoras de la versión.

      Puede omitir este paso si necesita mantener las configuraciones personalizadas existentes.
**nota**  
Las actualizaciones del servidor no actualizan automáticamente las aplicaciones cliente.
Para mantener la estabilidad del clúster, no se admiten reducciones de versión.

   1. Seleccione **Actualizar versión** para iniciar el proceso.

**Actualice la versión de Apache Kafka mediante el AWS CLI**

1. Ejecute el siguiente comando, reemplazando *ClusterArn*por el nombre de recurso de Amazon (ARN) que obtuvo al crear el clúster. Si no tiene el ARN para su clúster, puede encontrarlo enumerando todos los clústeres. Para obtener más información, consulte [Enumeración de clústeres de Amazon MSK](msk-list-clusters.md).

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

   La salida de este comando incluye una lista de las versiones de Apache Kafka a las que puede actualizar el clúster. Es similar al ejemplo siguiente.

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

1. Ejecute el siguiente comando, reemplazando *ClusterArn*por el nombre de recurso de Amazon (ARN) que obtuvo al crear el clúster. Si no tiene el ARN para su clúster, puede encontrarlo enumerando todos los clústeres. Para obtener más información, consulte [Enumeración de clústeres de Amazon MSK](msk-list-clusters.md).

   Reemplace *Current-Cluster-Version* con la versión actual del clúster. Pues *TargetVersion* puede especificar cualquiera de las versiones de destino a partir del resultado del comando anterior.
**importante**  
Las versiones de clúster no son enteros simples. Para encontrar la versión actual del clúster, utilice la [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)operación o el comando [AWS CLI describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html). Un ejemplo de ID de versión es `KTVPDKIKX0DER`.

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

   El resultado del comando anterior tiene un aspecto similar al siguiente JSON.

   ```
   {
       
       "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. Para obtener el resultado de la `update-cluster-kafka-version` operación, ejecute el siguiente comando y *ClusterOperationArn* reemplácelo por el ARN que obtuvo en el resultado del `update-cluster-kafka-version` comando.

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

   El resultado de este comando `describe-cluster-operation` tendrá un aspecto similar al siguiente.

   ```
   {
       "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` tiene el valor `UPDATE_IN_PROGRESS`, espere un rato y vuelva a ejecutar el comando `describe-cluster-operation`. Cuando se completa la operación, el valor de `OperationState` se convierte en `UPDATE_COMPLETE`. Como el tiempo necesario para que Amazon MSK complete la operación varía, es posible que tenga que comprobarlo varias veces hasta que se complete la operación. 

**Actualización de la versión de Apache Kafka mediante la API**

1. Invoque la [GetCompatibleKafkaVersions](https://docs.aws.amazon.com//msk/1.0/apireference/compatible-kafka-versions.html#GetCompatibleKafkaVersions)operación para obtener una lista de las versiones de Apache Kafka a las que puede actualizar el clúster.

1. Ejecute la [UpdateClusterKafkaVersion](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-version.html#UpdateClusterKafkaVersion)operación para actualizar el clúster a una de las versiones compatibles de Apache Kafka.

# Prácticas recomendadas para la actualización de versiones
<a name="version-upgrades-best-practices"></a>

Para garantizar la continuidad del cliente durante la actualización progresiva que se realiza como parte del proceso de actualización de la versión de Kafka, revise la configuración de sus clientes y los temas de Apache Kafka de la siguiente manera:
+ Establezca el factor de replicación (RF) del tema en un valor mínimo de `2` para clústeres de dos zonas de disponibilidad y un valor mínimo de `3` para los clústeres de tres zonas de disponibilidad. Si el valor de RF es `2`, se pueden producir particiones fuera de línea durante la aplicación del parche.
+ Configure el valor mínimo de réplicas sincronizadas (minISR) con un valor máximo igual a uno menos que el factor de replicación (RF), es decir, `miniISR = (RF) - 1`. Esto garantiza que el conjunto de réplicas de la partición pueda tolerar que una réplica quede fuera de línea o esté subreplicada.
+ Configure los clientes para que utilicen varias cadenas de conexión de agentes. Tener varios corredores en la cadena de conexión de un cliente permite la conmutación por error si un corredor específico que brinda soporte al cliente I/O comienza a recibir parches. Para obtener información sobre cómo obtener una cadena de conexión con varios agentes, consulte [Obtención de agentes de arranque para un clúster de Amazon MSK](https://docs.aws.amazon.com//msk/latest/developerguide/msk-get-bootstrap-brokers.html).
+ Recomendamos que actualice los clientes conectados a la versión recomendada o superior para aprovechar las características disponibles en la nueva versión. Las actualizaciones de los clientes no están sujetas a las fechas de fin de vida útil (EOL) de la versión Kafka del clúster de MSK y no es necesario que se completen antes de la fecha de EOL. Apache Kafka ofrece una [política de compatibilidad bidireccional de clientes](https://kafka.apache.org/protocol#protocol_compatibility) que permite que los clientes antiguos trabajen con clústeres más nuevos y viceversa.
+ Es probable que los clientes de Kafka que utilizan las versiones 3.x.x tengan los siguientes valores predeterminados: `acks=all` y `enable.idempotence=true`. El valor `acks=all` difiere del valor predeterminado anterior de `acks=1` y ofrece durabilidad adicional al garantizar que las réplicas sincronizadas reconozcan la solicitud de producción. Del mismo modo, el valor predeterminado `enable.idempotence` era anteriormente `false`. El cambio a `enable.idempotence=true` como el valor predeterminado disminuye la posibilidad de mensajes duplicados. Estos cambios se consideran configuraciones de prácticas recomendadas y pueden introducir una pequeña cantidad de latencia adicional que se encuentra dentro de los parámetros normales de rendimiento.
+ Al crear nuevos clústeres de MSK, utilice la versión recomendada de Kafka. Si utiliza la versión recomendada de Kafka, podrá beneficiarse de las últimas características de Kafka y MSK.