

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.

# Introducción a MSK Connect
<a name="msk-connect-getting-started"></a>

Este es un step-by-step tutorial que utiliza el Consola de administración de AWS para crear un clúster de MSK y un conector receptor que envía los datos del clúster a un bucket de S3.

**Topics**
+ [Configuración de los recursos necesarios para MSK Connect](mkc-tutorial-setup.md)
+ [Creación de un complemento personalizado](mkc-create-plugin.md)
+ [Creación de un equipo cliente y un tema de Apache Kafka](mkc-create-topic.md)
+ [Crea conector](mkc-create-connector.md)
+ [Envío de datos al clúster de MSK](mkc-send-data.md)

# Configuración de los recursos necesarios para MSK Connect
<a name="mkc-tutorial-setup"></a>

En este paso, creará los siguientes recursos que necesitará para este escenario de introducción:
+ Un bucket de Amazon S3 que actúa como destino y recibe los datos del conector.
+ Un clúster de MSK al que enviará los datos. A continuación, el conector leerá los datos de este clúster y los enviará al bucket de S3 de destino.
+ Una política de IAM que contiene los permisos para escribir en el bucket de destino de S3.
+ Un rol de IAM que permite al conector escribir en el bucket de S3 de destino. Agregará la política de IAM que cree a este rol.
+ Un punto de conexión de VPC de Amazon VPC para poder enviar datos desde la Amazon VPC que tiene el clúster y el conector a Amazon S3.

**Creación del bucket de S3**

1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Elija **Crear bucket**.

1. Para el nombre del bucket, introduzca un nombre descriptivo, como `amzn-s3-demo-bucket-mkc-tutorial`.

1. Desplácese hacia abajo y seleccione **Crear bucket**.

1. En la lista de buckets, elija el bucket que acaba de crear.

1. Elija **Crear carpeta**.

1. Introduzca `tutorial` para el nombre de la carpeta, desplácese hacia abajo y elija **Crear carpeta**.

**Creación del clúster**

1. ¿Abrir la consola Amazon MSK en [https://console.aws.amazon.com/msk/casa? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. En el panel izquierdo, en **Clústeres de MSK**, seleccione **Clústeres**.

1. Elija **Create cluster**.

1. En **Método de creación**, elija **Creación personalizada**.

1. Para el nombre del clúster, ingrese **mkc-tutorial-cluster**.

1. En **Tipo de clúster**, elija **Aprovisionado**.

1. Elija **Siguiente**.

1. En **Redes**, elija una Amazon VPC. A continuación, seleccione las zonas de disponibilidad y las subredes que desee utilizar. Recuerde IDs la VPC y las subredes de Amazon que seleccionó porque las necesitará más adelante en este tutorial.

1. Elija **Siguiente**.

1. En **Métodos de control de acceso**, asegúrese de seleccionar solo **Acceso no autenticado**.

1. En **Cifrado**, asegúrese de seleccionar solo **Texto sin formato**.

1. Continúe con el asistente y, a continuación, seleccione **Crear clúster**. Esto le lleva a la página Detalles del clúster. En esa página, en **Grupos de seguridad aplicados**, busque el ID del grupo de seguridad. Recuerde ese ID, ya que lo necesitará más tarde en este tutorial.

**Para crear una política de IAM con permisos para escribir en el bucket de S3**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas**.

1. Elija **Crear política**.

1. En **Editor de políticas**, elija **JSON** y, a continuación, reemplace el JSON en la ventana del editor por el siguiente JSON.

   En el siguiente ejemplo, *<amzn-s3-demo-bucket-my-tutorial>* sustitúyalo por el nombre del bucket de S3.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowListBucket",
         "Effect": "Allow",
         "Action": [
           "s3:ListBucket",
           "s3:GetBucketLocation"
         ],
         "Resource": "arn:aws:s3:::<amzn-s3-demo-bucket-my-tutorial>"
       },
       {
         "Sid": "AllowObjectActions",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:DeleteObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts",
           "s3:ListBucketMultipartUploads"
         ],
         "Resource": "arn:aws:s3:::<amzn-s3-demo-bucket-my-tutorial>/*"
       }
     ]
   }
   ```

------

   Para obtener instrucciones sobre cómo escribir políticas seguras, consulte [Control de acceso de IAM](iam-access-control.md).

1. Elija **Siguiente**.

1. En la página **Revisar y crear**, haga lo siguiente:

   1. En **Nombre de la política**, introduzca un nombre descriptivo, como **mkc-tutorial-policy**.

   1. En **Permisos definidos en esta política**, revise y and/or edite los permisos definidos en su política.

   1. (Opcional) Para ayudar a identificar, organizar o buscar la política, elija **Agregar nueva etiqueta** para agregar etiquetas como pares clave-valor. Por ejemplo, agregue una etiqueta a la política con el par clave-valor de **Environment** y **Test**.

      Para obtener más información sobre el uso de etiquetas, consulte [Etiquetas para AWS Identity and Access Management recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) en la *Guía del usuario de IAM*.

1. Elija **Crear política**.

**Creación del rol de IAM que pueda escribir en el bucket de destino**

1. En el panel de navegación de la consola de IAM, elija **Roles** y, a continuación, seleccione **Crear rol**.

1. En la página **Seleccionar entidad de confianza**, haga lo siguiente:

   1. En **Tipo de entidad de confianza**, elija **Servicio de AWS**.

   1. En **Servicio o caso de uso**, elija **S3**.

   1. En **Caso de uso**, elija **S3**.

1. Elija **Siguiente**.

1. En la página **Agregar permisos**, haga lo siguiente:

   1. En el cuadro de búsqueda de **Políticas de permisos**, introduzca el nombre de la política que creó previamente para este tutorial. Por ejemplo, **mkc-tutorial-policy**. A continuación, marque la casilla situada a la izquierda del nombre de la política.

   1. (Opcional) Configure un [límite de permisos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Se trata de una característica avanzada que está disponible para los roles de servicio, pero no para los roles vinculados a servicios. Para obtener información sobre cómo establecer un límite de permisos, consulte [Creación de roles y asociación de políticas (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html) en la *Guía del usuario de IAM*.

1. Elija **Siguiente**.

1. En la página **Nombrar, revisar y crear**, haga lo siguiente:

   1. En **Nombre del rol**, introduzca un nombre descriptivo, como **mkc-tutorial-role**.
**importante**  
Cuando asigne un nombre a un rol, tenga en cuenta lo siguiente:  
Los nombres de los roles deben ser únicos dentro de tu Cuenta de AWS perfil y no se pueden hacer únicos por mayúsculas y minúsculas.  
Por ejemplo, no puedes crear roles denominados tanto **PRODROLE** como **prodrole**. Cuando se utiliza un nombre de rol en una política o como parte de un ARN, el nombre de rol distingue entre mayúsculas y minúsculas, sin embargo, cuando un nombre de rol les aparece a los clientes en la consola, como por ejemplo durante el proceso de inicio de sesión, el nombre de rol no distingue entre mayúsculas y minúsculas.
Dado que otras entidades podrían hacer referencia al rol, no es posible editar el nombre del rol una vez creado.

   1. (Opcional) **En Descripción**, ingrese una descripción para el rol.

   1. (Opcional) Para editar los casos de uso y los permisos del rol, en las secciones **Paso 1: Seleccionar entidades de confianza** o **Paso 2: Agregar permisos**, elija **Editar**.

   1. (Opcional) Para ayudar a identificar, organizar o buscar el rol, elija **Agregar nueva etiqueta** para agregar etiquetas como pares clave-valor. Por ejemplo, agregue una etiqueta al rol con el par clave-valor de **ProductManager** y **John**.

      Para obtener más información sobre el uso de etiquetas, consulte [Etiquetas para obtener AWS Identity and Access Management recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) en la *Guía del usuario de IAM*.

1. Revise el rol y, a continuación, elija **Crear rol**.

**Autorización para que MSK Connect asuma el rol**

1. En la consola de IAM, en el panel izquierdo, en **Administración de acceso**, seleccione **Roles**.

1. Busque el `mkc-tutorial-role` y selecciónelo.

1. En el **Resumen** del rol, elija la pestaña **Relaciones de confianza**.

1. Elija **Editar relación de confianza**.

1. Reemplace la política existente por el siguiente JSON.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "kafkaconnect.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Elija **Actualizar política de confianza**.

**Creación de un punto de conexión de VPC de Amazon VPC desde la VPC del clúster a Amazon S3**

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

1. En el panel izquierdo, elija **Puntos de conexión**.

1. Seleccione **Crear punto de conexión**.

1. En **Nombre del servicio**, elija el servicio **com.amazonaws.us-east-1.s3** y el tipo de **puerta de enlace**.

1. Elija la VPC del clúster y, a continuación, seleccione la casilla situada a la izquierda de la tabla de enrutamiento que está asociada a las subredes del clúster.

1. Seleccione **Crear punto de conexión**.

**Paso siguiente**

[Creación de un complemento personalizado](mkc-create-plugin.md)

# Creación de un complemento personalizado
<a name="mkc-create-plugin"></a>

Un complemento contiene el código que define la lógica del conector. En este paso, creará un complemento personalizado que contenga el código del conector de recepción de Amazon S3 de Lenses. En un paso posterior, cuando cree el conector de MSK, especifique que su código está en este complemento personalizado. Puede usar el mismo complemento para crear varios conectores de MSK con diferentes configuraciones.

**Creación del complemento personalizado**

1. Descargue el [conector de S3](https://www.confluent.io/hub/confluentinc/kafka-connect-s3).

1. Cargue el archivo ZIP en un bucket de S3 al que tenga acceso. Para obtener información sobre cómo cargar archivos en Amazon S3, consulte [Carga de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la guía del usuario de Amazon S3.

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

1. En el panel izquierdo, expanda **MSK Connect** y, a continuación, seleccione **Complementos personalizados**.

1. Seleccione **Crear complemento personalizado**.

1. Elija **Examinar S3**.

1. En la lista de buckets, busque el bucket en el que ha cargado el archivo ZIP, y elija ese bucket.

1. En la lista de objetos del bucket, seleccione el botón de opción situado a la izquierda del archivo ZIP y, a continuación, seleccione el botón denominado **Elegir**.

1. Ingrese `mkc-tutorial-plugin` para el nombre del complemento personalizado y, a continuación, seleccione **Crear complemento personalizado**.

Es posible que tarde AWS unos minutos en terminar de crear el complemento personalizado. Cuando se complete el proceso de creación, verá el siguiente mensaje en un banner en la parte superior de la ventana del navegador.

```
Custom plugin mkc-tutorial-plugin was successfully created
The custom plugin was created. You can now create a connector using this custom plugin.
```

**Paso siguiente**

[Creación de un equipo cliente y un tema de Apache Kafka](mkc-create-topic.md)

# Creación de un equipo cliente y un tema de Apache Kafka
<a name="mkc-create-topic"></a>

En este paso, cree una instancia de Amazon EC2 para utilizarla como instancia de cliente de Apache Kafka. A continuación, utilice esta instancia para crear un tema en el clúster.

**Creación de un equipo cliente**

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

1. Elija **iniciar instancias**.

1. Escriba un **nombre** para el equipo cliente, como **mkc-tutorial-client**.

1. Deje seleccionado **Amazon Linux 2 AMI (HVM): Kernel 5.10, tipo de volumen SSD** en **Tipo de imagen de máquina de Amazon (AMI)**.

1. Elija el tipo de instancia **t2.xlarge**.

1. En **Par de claves (inicio de sesión)**, seleccione **Crear un nuevo par de claves**. Introduzca **mkc-tutorial-key-pair** en **Nombre del par de claves** y, a continuación, seleccione **Descargar par de claves**. También puede utilizar un par de claves existente.

1. Seleccione **Iniciar instancia**.

1. Elija **View Instances (Ver instancias)**. A continuación, en la columna **Grupos de seguridad**, elija el grupo de seguridad asociado a la nueva instancia. Copie el ID del grupo de seguridad y guárdelo para más adelante.

**Concesión de permiso al cliente recién creado para que envíe datos al clúster**

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

1. En el panel izquierdo, en **SEGURIDAD**, elija **Grupos de seguridad**. En la columna **ID de grupo de seguridad**, busque el grupo de seguridad del clúster. Guardó el ID de este grupo de seguridad cuando creó el clúster en [Configuración de los recursos necesarios para MSK Connect](mkc-tutorial-setup.md). Seleccione este grupo de seguridad seleccionando la casilla situada a la izquierda de su fila. Asegúrese de que no haya otros grupos de seguridad seleccionados simultáneamente.

1. En la parte inferior de la pantalla, elija la pestaña **Reglas de entrada**.

1. Elija **Editar reglas de entrada**.

1. En la parte inferior izquierda de la pantalla, elija **Añadir regla**.

1. En la nueva regla, elija **All traffic (Todo el tráfico)** en la columna **Type (Tipo)**. En el campo de la derecha de la columna **Origen**, escriba el ID del grupo de seguridad del equipo cliente. Este es el ID del grupo de seguridad que guardó después de crear el equipo cliente.

1. Seleccione **Guardar reglas**. Su clúster de MSK ahora aceptará todo el tráfico del cliente que creó en el procedimiento anterior.

**Creación de un tema**

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

1. En la tabla de instancias, elija `mkc-tutorial-client`.

1. Cerca de la parte superior de la pantalla, seleccione **Conectar** y siga las instrucciones para conectarse a la instancia.

1. Instale Java en la instancia del cliente ejecutando el siguiente comando:

   ```
   sudo yum install java-1.8.0
   ```

1. Ejecute el siguiente comando para descargar Apache Kafka. 

   ```
   wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz
   ```
**nota**  
Si desea utilizar un sitio espejo que no sea el utilizado en este comando, puede elegir uno diferente en el sitio web de [Apache](https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.1/kafka_2.11-1.1.1.tgz).

1. Ejecute el siguiente comando en el directorio donde descargó el archivo TAR del paso anterior.

   ```
   tar -xzf kafka_2.12-2.2.1.tgz
   ```

1. Vaya al directorio **kafka\$12.12-2.2.1**.

1. ¿Abrir la consola Amazon MSK en [https://console.aws.amazon.com/msk/casa? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. En el panel izquierdo, seleccione **Clústeres** y, a continuación, elija el nombre `mkc-tutorial-cluster`.

1. Seleccione **Ver información del cliente**.

1. Copie la cadena de conexión de **texto sin formato**.

1. Seleccione **Listo**.

1. Ejecute el siguiente comando en la instancia del cliente (`mkc-tutorial-client`) y *bootstrapServerString* reemplácelo por el valor que guardó al ver la información del cliente del clúster.

   ```
   <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server bootstrapServerString --replication-factor 2 --partitions 1 --topic mkc-tutorial-topic
   ```

   Si el comando se ejecuta correctamente, verá el siguiente mensaje: `Created topic mkc-tutorial-topic.`

**Paso siguiente**

[Crea conector](mkc-create-connector.md)

# Crea conector
<a name="mkc-create-connector"></a>

En este procedimiento, se describe cómo crear un conector desde la Consola de administración de AWS.

**Creación del conector**

1. ¿Iniciar sesión en la Consola de administración de AWS consola Amazon MSK y abrirla desde [https://console.aws.amazon.com/msk/casa? region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/).

1. En el panel izquierdo, expanda **MSK Connect** y seleccione **Conectores**.

1. Elija **Crear conector**.

1. En la lista de complementos, seleccione `mkc-tutorial-plugin` y, a continuación, seleccione **Siguiente**.

1. Para el nombre del conector, ingrese `mkc-tutorial-connector`.

1. En la lista de clústeres, elija `mkc-tutorial-cluster`.

1. En la sección de **configuración de red del conector**, elija una de las siguientes opciones para el tipo de red:
   + **IPv4**(predeterminado): IPv4 solo para conectividad con destinos
   + **Doble pila**: para la conectividad a los destinos a través de ambos IPv4 y IPv6 (solo disponible si las subredes tienen IPv4 bloques IPv6 CIDR asociados a ellas)

1. Copie la siguiente configuración y péguela en el campo de configuración del conector.

   Asegúrese de reemplazar la región por el código del Región de AWS lugar donde va a crear el conector. Además, sustituya el nombre *<amzn-s3-demo-bucket-my-tutorial>* del bucket de Amazon S3 por el nombre de su bucket en el siguiente ejemplo.

   ```
   connector.class=io.confluent.connect.s3.S3SinkConnector
   s3.region=us-east-1
   format.class=io.confluent.connect.s3.format.json.JsonFormat
   flush.size=1
   schema.compatibility=NONE
   tasks.max=2
   topics=mkc-tutorial-topic
   partitioner.class=io.confluent.connect.storage.partitioner.DefaultPartitioner
   storage.class=io.confluent.connect.s3.storage.S3Storage
   s3.bucket.name=<amzn-s3-demo-bucket-my-tutorial>
   topics.dir=tutorial
   ```

1. En **Permisos de acceso**, elija `mkc-tutorial-role`.

1. Elija **Siguiente**. En la página **Seguridad**, vuelva a seleccionar **Siguiente**.

1. En la página **Registros**, seleccione **Siguiente**.

1. En la página **Revisar y crear**, revise la configuración del conector y seleccione **Crear conector**.

**Paso siguiente**

[Envío de datos al clúster de MSK](mkc-send-data.md)

# Envío de datos al clúster de MSK
<a name="mkc-send-data"></a>

En este paso, envía los datos al tema de Apache Kafka que creó anteriormente y, a continuación, busca los mismos datos en el bucket de S3 de destino.

**Envío de datos al clúster de MSK**

1. En la carpeta `bin` de la instalación de Apache Kafka en la instancia del cliente, cree un archivo de texto denominado `client.properties` con el siguiente contenido.

   ```
   security.protocol=SASL_SSL
   sasl.mechanism=AWS_MSK_IAM
   ```

1. Ejecute el siguiente comando para crear un productor de la consola. *BootstrapBrokerString*Sustitúyalo por el valor que obtuvo al ejecutar el comando anterior.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerString --producer.config client.properties --topic mkc-tutorial-topic
   ```

1. Escriba el mensaje que desee y pulse **Enter (Entrar)**. Repita este paso dos o tres veces. Cada vez que introduzca una línea y pulse **Enter (Entrar)**, dicha línea se envía al clúster de Apache Kafka como un mensaje separado.

1. Busque en el bucket de Amazon S3 de los mensajes que envió en el paso anterior.