117
Amazon Kinesis Data Firehose Guía para desarrolladores

Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data FirehoseGuía para desarrolladores

Page 2: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Amazon Kinesis Data Firehose: Guía para desarrolladoresCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Table of Contents¿Qué es Amazon Kinesis Data Firehose? .............................................................................................. 1

Conceptos clave ......................................................................................................................... 1Flujo de datos ............................................................................................................................ 1

Configuración ..................................................................................................................................... 4Inscripción en AWS .................................................................................................................... 4Opcional: descargar bibliotecas y herramientas ............................................................................... 4

Creación de un valor Flujo de entrega de Kinesis Data Firehose ................................................................ 5Nombre y origen ........................................................................................................................ 5Procesar registros ....................................................................................................................... 6Seleccionar destino ..................................................................................................................... 6

Seleccionar Amazon S3 como destino ................................................................................... 7Seleccionar Amazon Redshift como destino ............................................................................ 7Seleccionar Amazon ES como destino ................................................................................... 8Seleccionar Splunk como destino ........................................................................................ 10

Configurar ajustes ..................................................................................................................... 11Realización de pruebas de flujo de entrega .......................................................................................... 13

Requisitos previos ..................................................................................................................... 13Prueba con Amazon S3 como destino ......................................................................................... 13Prueba con Amazon Redshift como destino .................................................................................. 14Prueba con Amazon ES como destino ......................................................................................... 14Prueba con Splunk como destino ................................................................................................ 14

Envío de datos a una secuencia de entrega de Kinesis Data Firehose ...................................................... 16Escritura mediante Kinesis Data Streams ..................................................................................... 16Escritura mediante el agente ...................................................................................................... 17

Requisitos previos ............................................................................................................. 18Descargar e instalar el agente ............................................................................................ 18Configuración e inicio del agente ........................................................................................ 19Ajustes de la configuración del agente ................................................................................. 20Monitoreo de varios directorios de archivos y escritura en varias secuencias .............................. 22Uso del agente para preprocesar los datos ........................................................................... 22Comandos del agente de la CLI .......................................................................................... 26

Escritura mediante el AWS SDK ................................................................................................. 26Operaciones individuales de escritura con PutRecord ............................................................. 27Operaciones de escritura por lotes con PutRecordBatch ......................................................... 27

Escritura mediante CloudWatch Logs ........................................................................................... 27Escritura mediante Eventos de CloudWatch .................................................................................. 28Escritura mediante AWS IoT ...................................................................................................... 28

Seguridad ........................................................................................................................................ 29Protección de los datos ............................................................................................................. 29

Cifrado del lado del servidor con Kinesis Data Streams como origen de datos ............................ 29Cifrado del lado del servidor con Direct PUT u otros orígenes de datos ..................................... 30

Control del acceso .................................................................................................................... 30Conceder a su aplicación acceso a los recursos de Kinesis Data Firehose ................................. 31Permitir que Kinesis Data Firehose asuma un rol de IAM ........................................................ 31Concesión de acceso de Kinesis Data Firehose a un destino de Amazon S3 .............................. 32Concesión de acceso de Kinesis Data Firehose a un destino de Amazon Redshift ....................... 33Concesión de acceso a Kinesis Data Firehose a un destino público de Amazon ES ..................... 36Concesión de acceso a Kinesis Data Firehose a un destino de Amazon ES en una VPC ............... 38Concesión de acceso de Kinesis Data Firehose a un destino de Splunk .................................... 38Acceso a Splunk en VPC ................................................................................................... 40Entrega entre cuentas a un destino de Amazon S3 ................................................................ 41Entrega entre cuentas a un destino de Amazon ES ............................................................... 41Uso de etiquetas para controlar el acceso ............................................................................ 42

Monitoreo ................................................................................................................................ 44

iii

Page 4: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Validación de la conformidad ...................................................................................................... 44Resiliencia ............................................................................................................................... 44

Recuperación de desastres ................................................................................................ 45Seguridad de la infraestructura ................................................................................................... 45

Puntos de enlace de la VPC (PrivateLink) ............................................................................ 45Prácticas recomendadas de seguridad ......................................................................................... 45

Implementación del acceso a los privilegios mínimos .............................................................. 45Uso de roles de IAM ......................................................................................................... 46Implementación del cifrado en el servidor en recursos dependientes ......................................... 46Uso de CloudTrail para monitorizar las llamadas a la API ....................................................... 46

Transformación de datos .................................................................................................................... 47Flujo de transformación de datos ................................................................................................ 47Modelo de estados y transformación de datos ............................................................................... 47Proyectos de Lambda ................................................................................................................ 48Gestión de errores de transformación de datos ............................................................................. 48Duración de una invocación de Lambda ....................................................................................... 49Backup de registros de origen .................................................................................................... 49

Conversión del formato de registros .................................................................................................... 50Requisitos de la conversión del formato de registro ........................................................................ 50Elección del deserializador JSON ................................................................................................ 51Elección del serializador ............................................................................................................ 51Conversión del formato de registro de entrada (consola) ................................................................. 51Conversión del formato de registro de entrada (API) ...................................................................... 52Control de errores de la conversión del formato de registro ............................................................. 52Ejemplo de conversión del formato de registros ............................................................................. 53

Integración con Kinesis Data Analytics ................................................................................................. 54Creación de una aplicación de Kinesis Data Analytics que lea datos de una secuencia de entrega .......... 54Escribir datos de una aplicación de Kinesis Data Analytics en una secuencia de entrega ...................... 54

Entrega de datos .............................................................................................................................. 55Formato de la entrega de datos .................................................................................................. 55Frecuencia de la entrega de datos .............................................................................................. 56Gestión de errores de entrega de datos ....................................................................................... 56Formato de nombre de objetos de Amazon S3 .............................................................................. 58Rotación de índice si el destino es Amazon ES ............................................................................. 58

Monitoreo ........................................................................................................................................ 59Monitoreo con métricas de CloudWatch ....................................................................................... 59

Métricas de entrega de datos de CloudWatch ....................................................................... 60Métricas de adquisición de datos ........................................................................................ 65Métricas de CloudWatch de nivel de API .............................................................................. 68Métricas de CloudWatch para transformación de datos ........................................................... 70Métricas de CloudWatch para la conversión del formato ......................................................... 70Métricas de CloudWatch de cifrado del lado del servidor (SSE) ................................................ 71Dimensiones para Kinesis Data Firehose .............................................................................. 71Métricas de uso de Kinesis Data Firehose ............................................................................ 71Acceso a las métricas de CloudWatch para Kinesis Data Firehose ........................................... 72Prácticas recomendadas con alarmas de CloudWatch ............................................................ 73Monitoreo con CloudWatch Logs ......................................................................................... 73Monitorización del estado del agente ................................................................................... 79Registro de llamadas a la API de Kinesis Data Firehose con AWS CloudTrail ............................. 80

Prefijos de Amazon S3 personalizados ................................................................................................ 85El espacio de nombres timestamp ............................................................................................ 85El espacio de nombres firehose .............................................................................................. 85Reglas semánticas .................................................................................................................... 86Ejemplos de prefijos .................................................................................................................. 87

Uso de Kinesis Data Firehose con AWS PrivateLink .............................................................................. 88Puntos de enlace de la VPC de interfaz (AWS PrivateLink) para Kinesis Data Firehose ........................ 88Uso de puntos de enlace de la VPC de tipo interfaz (AWS PrivateLink) para Kinesis Data Firehose ......... 88

iv

Page 5: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Disponibilidad. .......................................................................................................................... 90Etiquetado de los flujos de entrega ..................................................................................................... 92

Conceptos básicos de etiquetas .................................................................................................. 92Seguimiento de costos utilizando el etiquetado .............................................................................. 92Restricciones de las etiquetas .................................................................................................... 93Etiquetado de flujos de entrega mediante la API de Amazon Kinesis Data Firehose ............................. 93

Tutorial: Envío de registros de flujo de VPC a Splunk ............................................................................. 94Paso 1: Enviar datos de registro a CloudWatch ............................................................................. 95Paso 2: Crear el flujo de entrega ................................................................................................ 97Paso 3: Enviar datos al flujo de entrega ..................................................................................... 100Paso 4: Comprobar los resultados ............................................................................................. 101

Solución de problemas ..................................................................................................................... 102Datos no entregados a Amazon S3 ........................................................................................... 102Datos no entregados a Amazon Redshift .................................................................................... 103Datos no entregados a Amazon Elasticsearch Service .................................................................. 104Datos no entregados a Splunk .................................................................................................. 104El flujo de entrega no está disponible como un destino para una acción de CloudWatch Logs, Eventosde CloudWatch o AWS IoT ....................................................................................................... 105Métrica de antigüedad de los datos incrementada o no emitida ...................................................... 106Error al convertir el formato de registro a Apache Parquet ............................................................. 107No hay datos en el destino a pesar de las métricas correctas ........................................................ 107

Cuota ............................................................................................................................................ 108Historial de revisión ......................................................................................................................... 110AWS Glossary ................................................................................................................................ 112

v

Page 6: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConceptos clave

¿Qué es Amazon Kinesis DataFirehose?

Amazon Kinesis Data Firehose es un servicio completamente administrado para la entrega de datosde streaming en tiempo real a destinos como Amazon Simple Storage Service (Amazon S3), AmazonRedshift, Amazon Elasticsearch Service (Amazon ES) y Splunk. Kinesis Data Firehose forma parte de laplataforma de datos de streaming de Kinesis, junto con Kinesis Data Streams, Transmisión de vídeo deKinesis y Amazon Kinesis Data Analytics. Con Kinesis Data Firehose no es necesario escribir aplicacionesni administrar recursos. Puede configurar los productores de datos para que envíen datos a Kinesis DataFirehose, que a su vez los envía automáticamente al destino que especifique. También puede configurarKinesis Data Firehose para transformar los datos antes de entregarlos.

Para obtener más información acerca de las soluciones de big data disponibles en AWS, consulte Big Dataen AWS. Para obtener más información acerca de las soluciones de streaming de datos que ofrece AWS,consulte ¿Qué son los datos de streaming?

Conceptos claveAntes de comenzar a trabajar con Kinesis Data Firehose, es recomendable comprender los siguientesconceptos:

Flujo de entrega de Kinesis Data Firehose

La entidad subyacente de Kinesis Data Firehose. Puede utilizar Kinesis Data Firehose mediantela creación de un Flujo de entrega de Kinesis Data Firehose y, a continuación, enviarle datos.Para obtener más información, consulte Creación de un flujo de entrega de Amazon KinesisData Firehose (p. 5) y Envío de datos a una secuencia de entrega de Amazon Kinesis DataFirehose (p. 16).

record

Son los datos de interés que el productor de datos envía a un Flujo de entrega de Kinesis DataFirehose. Cada registro puede pesar hasta 1 000 KB.

productor de datos

Los productores envían registros a los Flujo de entrega de Kinesis Data Firehoses. Por ejemplo, unservidor web que envía datos de registro a un flujo de entrega es un productor de datos. Tambiénpuede configurar su Flujo de entrega de Kinesis Data Firehose para que lea automáticamentelos datos de un flujo de datos de Kinesis existente y los cargue en los destinos. Para obtenermás información, consulte Envío de datos a una secuencia de entrega de Amazon Kinesis DataFirehose (p. 16).

tamaño e intervalo del búfer

Kinesis Data Firehose almacena una cantidad determinada de datos de streaming de entrada en búferpor un periodo determinado antes de entregarlos a sus destinos. Buffer Size se expresa en MB yBuffer Interval en segundos.

Flujo de datosSi el destino es Amazon S3, los datos de streaming se entregan al bucket de S3. Si habilita latransformación de datos, puede realizar una copia de seguridad de los datos de origen en otro bucket deAmazon S3.

1

Page 7: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresFlujo de datos

Para los destinos de Amazon Redshift, los datos de streaming se entregan primero al bucket de S3. Acontinuación, Kinesis Data Firehose emite un comando Amazon Redshift COPY para cargar los datos delbucket de S3 en el clúster de Amazon Redshift. Si habilita la transformación de datos, puede realizar unacopia de seguridad de los datos de origen en otro bucket de Amazon S3.

Si el destino es Amazon ES, los datos de streaming se entregan al clúster de Amazon ES y se puedehacer una copia de seguridad de ellos en el bucket de S3 simultáneamente.

2

Page 8: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresFlujo de datos

Si el destino es Splunk, los datos de streaming se entregan a Splunk y se puede hacer un backup de ellosen el bucket de S3 simultáneamente.

3

Page 9: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresInscripción en AWS

Configuración para Amazon KinesisData Firehose

Antes de usar Kinesis Data Firehose por primera vez, realice las siguientes tareas.

Tareas• Inscripción en AWS (p. 4)• Opcional: descargar bibliotecas y herramientas (p. 4)

Inscripción en AWSAl inscribirse en Amazon Web Services (AWS), su cuenta de AWS se inscribe automáticamente en todoslos servicios de AWS, incluido Kinesis Data Firehose. Solo se le cobrará por los servicios que utilice.

Si ya dispone de una cuenta de AWS, pase a la siguiente tarea. Si no dispone de una cuenta de AWS,utilice el siguiente procedimiento para crear una.

Para inscribirse en una cuenta de AWS

1. Abra https://portal.aws.amazon.com/billing/signup.2. Siga las instrucciones en línea.

Parte del procedimiento de inscripción consiste en recibir una llamada telefónica e indicar un código deverificación en el teclado del teléfono.

Opcional: descargar bibliotecas y herramientasLas siguientes bibliotecas y herramientas le ayudarán a trabajar con Kinesis Data Firehose de formaprogramada y desde la línea de comandos:

• La Referencia de la API de Amazon Kinesis Data Firehose es el conjunto básico de operacionesadmitidas por Kinesis Data Firehose.

• Los SDK de AWS para Go, Java, .NET, Node.js, Python y Ruby incluyen soporte y muestras de KinesisData Firehose.

Si su versión del AWS SDK for Java no incluye muestras para Kinesis Data Firehose, puede descargarel AWS SDK más reciente de GitHub.

• AWS Command Line Interface admite Kinesis Data Firehose. AWS CLI permite controlar varios serviciosde AWS desde la línea de comandos y automatizarlos mediante scripts.

4

Page 10: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresNombre y origen

Creación de un flujo de entrega deAmazon Kinesis Data Firehose

Utilice la Consola de administración de AWS o un SDK de AWS para crear un Flujo de entrega de KinesisData Firehose al destino de su elección.

Una vez que se ha creado, puede actualizar la configuración de la secuencia de entrega en cualquiermomento usando la consola de Kinesis Data Firehose o UpdateDestination. El Flujo de entrega deKinesis Data Firehose permanecerá en estado ACTIVE mientras se actualice la configuración y podrácontinuar enviando datos. La configuración actualizada suele entrar en vigor transcurridos unos minutos.El número de versión de un Flujo de entrega de Kinesis Data Firehose aumenta en el valor de 1 despuésde actualizar la configuración. Se refleja en el nombre del objeto de Amazon S3 suministrado. Para obtenermás información, consulte Formato de nombre de objetos de Amazon S3 (p. 58).

Los siguientes temas describen cómo crear un Flujo de entrega de Kinesis Data Firehose:

Temas• Nombre y origen (p. 5)• Procesar registros (p. 6)• Seleccionar destino (p. 6)• Configurar ajustes (p. 11)

Nombre y origenEn este tema se describe la página Name and source (Nombre y origen) del asistente Create DeliveryStream (Crear secuencia de entrega) en Amazon Kinesis Data Firehose.

Nombre y origen

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Kinesis en https://console.aws.amazon.com/kinesis.

2. Elija Data Firehose en el panel de navegación.3. Elija Create delivery stream (Crear flujo de entrega).4. Escriba valores en los siguientes campos:

Delivery stream name

El nombre de su Flujo de entrega de Kinesis Data Firehose.Fuente

• Direct PUT or other sources (PUT directo u otros orígenes): elija esta opción para crear unaFlujo de entrega de Kinesis Data Firehose en la que las aplicaciones productoras escribandirectamente.

• Kinesis stream (Secuencia): elija esta opción para configurar una Flujo de entrega de KinesisData Firehose que utilice una secuencia de datos de Kinesis como el origen de datos.A continuación, puede usar Kinesis Data Firehose para leer fácilmente los datos de unasecuencia de datos de Kinesis y cargarlos en los destinos. Para obtener más informaciónacerca de cómo utilizar Kinesis Data Streams como origen de datos, consulte Escribir enAmazon Kinesis Data Firehose con Kinesis Data Streams.

5

Page 11: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresProcesar registros

5. Elija Next (Siguiente) para ir a la página Procesar registros (p. 6).

Procesar registrosEn este tema se describe la página Process records (Procesar registros) del asistente Create DeliveryStream (Crear secuencia de entrega) en Amazon Kinesis Data Firehose.

Procesar registros

1. En la página Transform source records with AWS Lambda (Transformar registros de origen con AWSLambda), proporcione valores para los siguientes campos:

Record transformation

Para crear una Flujo de entrega de Kinesis Data Firehose que no transforme los datos entrantes,elija Disabled (Deshabilitada).

Para especificar una función Lambda que Kinesis Data Firehose pueda invocar y usar con el finde transformar los datos entrantes antes de entregarlos, elija Enabled (Habilitada). Es posibleconfigurar una nueva función Lambda utilizando uno o más proyectos de Lambda disponibleso seleccionando una función Lambda existente. La función Lambda debe contener el modelode estados requerido por Kinesis Data Firehose. Para obtener más información, consulteTransformación de datos de Amazon Kinesis Data Firehose (p. 47).

2. En la sección Convert record format (Convertir formato de registros), proporcione valores para elsiguiente campo:

Record format conversion (Conversión del formato de registros)

Para crear una Flujo de entrega de Kinesis Data Firehose que no convierta el formato de losregistros de datos entrantes, elija Disabled (Deshabilitada).

Para convertir el formato de los registros entrantes, elija Enabled (Habilitada) y, a continuación,especifique el formato de salida que desee. Debe especificar una tabla de AWS Glue quecontenga el esquema que desee que Kinesis Data Firehose utilice para convertir el formato de losregistros. Para obtener más información, consulte Conversión del formato de registros (p. 50).

Para ver un ejemplo de cómo configurar la conversión del formato de registros con AWSCloudFormation, consulte AWS::KinesisFirehose::DeliveryStream.

3. Elija Next (Siguiente) para ir a la página Select destination (Seleccionar destino).

Seleccionar destinoEn este tema se describe la página Select destination (Seleccionar destino) del asistente Create DeliveryStream (Crear flujo de entrega) en Amazon Kinesis Data Firehose.

Kinesis Data Firehose puede enviar registros a Amazon Simple Storage Service (Amazon S3), AmazonRedshift, Amazon Elasticsearch Service (Amazon ES) o Splunk.

Temas• Seleccionar Amazon S3 como destino (p. 7)• Seleccionar Amazon Redshift como destino (p. 7)• Seleccionar Amazon ES como destino (p. 8)• Seleccionar Splunk como destino (p. 10)

6

Page 12: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresSeleccionar Amazon S3 como destino

Seleccionar Amazon S3 como destinoEsta sección describe las opciones de uso de Amazon S3 como destino.

Para seleccionar Amazon S3 como destino

• En la página Select destination (Seleccionar destino), escriba valores en los siguientes campos:

Destino

Seleccione Amazon S3.S3 bucket

Seleccione el bucket de S3 de su propiedad adonde se deben entregar los datos de streaming.Puede crear un bucket de S3 nuevo o elegir uno disponible.

Prefix

(Opcional) Para usar el prefijo predeterminado para los objetos de Amazon S3, deje esta opciónen blanco. Kinesis Data Firehose usa automáticamente un prefijo en el formato de hora UTC"YYYY/MM/DD/HH" para los objetos de Amazon S3 entregados. También puede invalidar estevalor predeterminado especificando un prefijo personalizado. Para obtener más información,consulte Formato de nombre de objetos de Amazon S3 (p. 58) y Prefijos de Amazon S3personalizados (p. 85)

Error prefix (Prefijo de error)

(Opcional) Puede especificar un prefijo que Kinesis Data Firehose utilice al entregar datos aAmazon S3 en las condiciones de error. Para obtener más información, consulte Formato denombre de objetos de Amazon S3 (p. 58) y Prefijos de Amazon S3 personalizados (p. 85)

Seleccionar Amazon Redshift como destinoEsta sección describe las opciones de uso de Amazon Redshift como destino.

Para seleccionar Amazon Redshift como destino

• En la página Select destination (Seleccionar destino), escriba valores en los siguientes campos:

Destino

Elija Amazon Redshift.Clúster

El clúster de Amazon Redshift en el que se copian los datos del bucket de S3. Configure el clústerde Amazon Redshift para que sea accesible al público y desbloquee direcciones IP de KinesisData Firehose. Para obtener más información, consulte Concesión de acceso de Kinesis DataFirehose a un destino de Amazon Redshift (p. 33).

Nombre de usuario

Un usuario de Amazon Redshift con permiso para obtener acceso al clúster de Amazon Redshift.Este usuario debe tener el permiso INSERT de Amazon Redshift para copiar datos del bucket deS3 en el clúster de Amazon Redshift.

Contraseña

La contraseña del usuario con permisos para obtener acceso al clúster.

7

Page 13: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresSeleccionar Amazon ES como destino

Base de datos

La base de datos de Amazon Redshift donde se copian los datos.Tabla

La tabla de Amazon Redshift donde se copian los datos.Columns

Las columnas específicas de la tabla donde se copian los datos (opcional). Utilice esta opción si elnúmero de columnas definido en los objetos de Amazon S3 es menor que el número de columnasde la tabla de Amazon Redshift.

Intermediate S3 bucket

Kinesis Data Firehose primero entrega los datos al bucket de S3 y después emite un comando deCOPY de Amazon Redshift para cargar los datos en el clúster de Amazon Redshift. Especifique elbucket de S3 de su propiedad adonde se deben entregar los datos de streaming. Cree un nuevobucket de S3 o elija uno que le pertenezca.

Kinesis Data Firehose no elimina los datos de su bucket de S3 después de cargarlos a su clústerAmazon Redshift. Puede administrar los datos en el bucket de S3 utilizando una configuracióndel ciclo de vida. Para obtener más información, consulte Administración del ciclo de vida de losobjetos en la Guía para desarrolladores de Amazon Simple Storage Service.

Prefix

(Opcional) Para usar el prefijo predeterminado para los objetos de Amazon S3, deje esta opciónen blanco. Kinesis Data Firehose usa automáticamente un prefijo en el formato de hora UTC"YYYY/MM/DD/HH" para los objetos de Amazon S3 entregados. Puede añadir más elementos alcomienzo de este prefijo. Para obtener más información, consulte Formato de nombre de objetosde Amazon S3 (p. 58).

Opciones de COPY

Parámetros que puede especificar en el comando de COPY de Amazon Redshift. Podrían sernecesarios para la configuración. Por ejemplo, "GZIP" es necesario si la compresión de datos deAmazon S3 está habilitada. "REGION" es necesario si el bucket de S3 no está en la misma regiónde AWS que el clúster de Amazon Redshift. Para obtener más información, consulte COPY en laAmazon Redshift Database Developer Guide.

COPY command

El comando COPY de Amazon Redshift. Para obtener más información, consulte COPY en laAmazon Redshift Database Developer Guide.

Retry duration

Duración (0–7200 segundos) para que Kinesis Data Firehose reintente si se produce un erroren los datos COPY a su clúster de Amazon Redshift. Kinesis Data Firehose lo reintenta cada 5minutos hasta que finaliza el tiempo de reintento. Si establece el tiempo de reintento en 0 (cero)segundos, Kinesis Data Firehose no lo reintenta tras producirse un error en el comando COPY.

Seleccionar Amazon ES como destinoEsta sección describe las opciones de uso de Amazon ES como destino.

Para seleccionar Amazon ES como destino

1. En la página Select destination (Seleccionar destino), escriba valores en los siguientes campos:

8

Page 14: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresSeleccionar Amazon ES como destino

Destino

Elija Amazon Elasticsearch Service.Dominio

El dominio de Amazon ES donde se entregan los datos.Índice

El nombre del índice de Elasticsearch que se utiliza al indexar datos en el clúster de Amazon ES.Index rotation

Decida si el índice de Elasticsearch debe rotarse y con qué frecuencia. Si la rotación de índicesestá habilitada, Kinesis Data Firehose añade la marca de tiempo correspondiente al nombre deíndice especificado y lo rota. Para obtener más información, consulte Rotación de índice si eldestino es Amazon ES (p. 58).

Type

El nombre del tipo de Amazon ES que se utiliza al indexar datos en el clúster de Amazon ES. EnElasticsearch 6.x, solo puede haber un tipo por índice. Si intenta especificar un tipo nuevo para uníndice existente que ya tiene otro tipo, Kinesis Data Firehose devuelve un error durante el tiempode ejecución.

Para Elasticsearch 7.x, deje este campo vacío.Retry duration

Duración (0–7200 segundos) para que Kinesis Data Firehose reintente si se produce un error enuna solicitud de indexación para su clúster de Amazon ES. Kinesis Data Firehose lo reintentacada 5 minutos hasta que finaliza el tiempo de reintento. Si establece el tiempo de reintento en 0(cero) segundos, Kinesis Data Firehose no sigue haciendo reintentos cuando se produce un erroren la solicitud de indexación.

Destination VPC connectivity (Conectividad de VPC de destino)

Si su dominio de Amazon ES está en una VPC privada, utilice esta sección para especificaresa VPC. Especifique también las subredes y subgrupos que desea que Kinesis Data Firehoseutilice al enviar datos a su dominio de Amazon ES. Puede utilizar el mismo grupo de seguridadque utiliza el dominio de Amazon ES o distintos. Si especifica distintos grupos de seguridad,asegúrese de que permiten el tráfico HTTPS saliente al grupo de seguridad del dominio deAmazon ES. Asegúrese también de que el grupo de seguridad del dominio de Amazon ESpermita el tráfico HTTPS de los grupos de seguridad que especificó al configurar el flujo deentrega. Si utiliza el mismo grupo de seguridad tanto para el flujo de entrega como para eldominio de Amazon ES, asegúrese de que la regla de entrada del grupo de seguridad permita eltráfico HTTPS. Si desea obtener más información acerca de las reglas del grupo de seguridad,consulte Reglas del grupo de seguridad en la documentación de la Amazon VPC.

Backup mode

Puede optar por realizar un backup solo de los registros de error o de todos los registros. Si eligesolo registros con errores, se crea una copia de seguridad en el bucket de S3 especificado de losdatos que Kinesis Data Firehose no haya podido entregar en el clúster de Amazon ES o que lafunción de Lambda no haya podido transformar. Si elige todos los registros, Kinesis Data Firehoserealiza una copia de seguridad de todos los datos de origen entrantes en el bucket de S3 a la vezque entrega los datos en Amazon ES. Para obtener más información, consulte Gestión de erroresde entrega de datos (p. 56) y Gestión de errores de transformación de datos (p. 48).

Bucket de S3 de copia de seguridad

El bucket de S3 de su propiedad que es destino del backup de los datos. Cree un nuevo bucketde S3 o elija uno que le pertenezca.

9

Page 15: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresSeleccionar Splunk como destino

Backup S3 bucket prefix

(Opcional) Para usar el prefijo predeterminado para los objetos de Amazon S3, deje esta opciónen blanco. Kinesis Data Firehose usa automáticamente un prefijo en el formato de hora UTC"YYYY/MM/DD/HH" para los objetos de Amazon S3 entregados. Puede añadir más elementos alcomienzo de este prefijo. Para obtener más información, consulte Formato de nombre de objetosde Amazon S3 (p. 58).

2. Elija Next (Siguiente) para ir a la página Configurar ajustes (p. 11).

Seleccionar Splunk como destinoEsta sección describe las opciones de uso de Splunk como destino.

Para seleccionar Splunk como destino

• En la página Select destination (Seleccionar destino), proporcione valores para los siguientes campos:

Destino

Elija Splunk.Splunk cluster endpoint

Para determinar el punto de enlace, consulte Configure Amazon Kinesis Firehose to Send Data tothe Splunk Platform en la documentación de Splunk.

Splunk endpoint type

Elija Raw en la mayoría de los casos. Elija Event si ha preprocesado los datos mediante AWSLambda para enviar datos a distintos índices según el tipo de evento. Para obtener informaciónsobre el punto de enlace que debe utilizar, consulte Configure Amazon Kinesis Firehose to senddata to the Splunk platform en la documentación de Splunk.

Authentication token

Para configurar un punto de enlace de Splunk que pueda recibir datos de Kinesis Data Firehose,consulte Installation and configuration overview for the Splunk Add-on for Amazon KinesisFirehose en la documentación de Splunk. Guarde el token que obtiene de Splunk al configurar elpunto de enlace de este flujo de entrega y añádalo aquí.

HEC acknowledgement timeout

Especifique durante cuánto tiempo debe esperar Kinesis Data Firehose la confirmación de índicesde Splunk. Si Splunk no envía la confirmación antes de que finalice el tiempo de espera, KinesisData Firehose lo considera un error de entrega de datos. A continuación, Kinesis Data Firehose loreintenta o realiza una copia de seguridad de los datos en el bucket de Amazon S3, dependiendodel valor de duración de reintento que haya establecido.

Retry duration

Especifique durante cuánto tiempo debe reintentar Kinesis Data Firehose el envío de datos aSplunk.

Después de enviar datos, Kinesis Data Firehose espera primero una confirmación de Splunk.Si se produce un error o la confirmación no llega dentro del periodo de tiempo de espera deconfirmación, Kinesis Data Firehose pone en marcha el contador de tiempo de reintento. Continúaintentándolo hasta que se agota el tiempo de reintento. Después de eso, Kinesis Data Firehoseconsidera que se trata de un error de entrega de datos y crea una copia de seguridad de los datosen el bucket de Amazon S3.

10

Page 16: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConfigurar ajustes

Cada vez que Kinesis Data Firehose envía datos a Splunk, ya sea en el intento inicial o en unreintento, reinicia el contador de tiempo de espera de confirmación y espera a que llegue unaconfirmación de Splunk.

Aunque se agote el tiempo de reintento, Kinesis Data Firehose sigue esperando la confirmaciónhasta que lo recibe o hasta que finaliza el tiempo de espera de confirmación. Si se agota el tiempode espera de confirmación, Kinesis Data Firehose determina si queda tiempo en el contador dereintento. Si queda tiempo, vuelve a intentarlo y repite la lógica hasta que recibe una confirmacióno determina que el tiempo de reintento se ha agotado.

Si no desea que Kinesis Data Firehose vuelva e intentar el envío de datos, establezca este valoren 0.

S3 backup mode

Elija si desea crear copias de seguridad de todos los eventos que Kinesis Data Firehose envía aSplunk o solo de los eventos en los que se produzcan errores en la entrega a Splunk. Si necesitauna elevada durabilidad de los datos, active este modo de backup para todos los eventos.También conviene que haga un backup de todos los eventos inicialmente, hasta que compruebeque los datos se indexan correctamente en Splunk.

S3 backup bucket

Elija un bucket disponible o cree uno nuevo.Backup S3 bucket prefix

(Opcional) Para usar el prefijo predeterminado para los objetos de Amazon S3, deje esta opciónen blanco. Kinesis Data Firehose usa automáticamente un prefijo en el formato de hora UTC"YYYY/MM/DD/HH" para los objetos de Amazon S3 entregados. Puede añadir más elementos alcomienzo de este prefijo. Para obtener más información, consulte Formato de nombre de objetosde Amazon S3 (p. 58).

Configurar ajustesEn este tema se describe la página Configure settings del asistente Create Delivery Stream.

Configurar ajustes

1. En la página Configure settings (Configurar ajustes), proporcione valores para los siguientes campos:

Buffer size, Buffer interval

Kinesis Data Firehose almacena en búfer los datos de entrada antes de entregarlos a AmazonS3. Puede elegir un tamaño de búfer (1–128 MB) o un intervalo de búfer (60–900 segundos).La condición que se cumpla primero disparará la entrega de datos a Amazon S3. Si habilita latransformación de datos, el intervalo del búfer se aplica a partir del momento en que reciba losdatos transformados desde Kinesis Data Firehose hasta la entrega de datos a Amazon S3. Si laentrega de datos en el destino se realiza a una velocidad inferior a la de la escritura de datos enel flujo de entrega, Kinesis Data Firehose aumenta el tamaño del búfer de forma dinámica paraalcanzar esa velocidad. Esta acción ayuda a garantizar que todos los datos se entregan en eldestino.

Compresión

Elija compresión de datos GZIP, Snappy, Zip o ninguna. Los formatos de compresión Snappy yZip no están disponibles para los flujos de entrega cuyo destino es Amazon Redshift.

11

Page 17: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConfigurar ajustes

Cifrado

Kinesis Data Firehose admite cifrado en servidor de Amazon S3 con AWS Key ManagementService (AWS KMS) para cifrar datos entregados a Amazon S3. Puede optar por no cifrar losdatos o cifrarlos con una de las claves de la lista de sus claves de AWS KMS. Para obtener másinformación, consulte Proteger los datos utilizando cifrado en el servidor con claves administradaspor AWS KMS (SSE-KMS).

Registro de errores

Si se ha habilitado la transformación de datos, Kinesis Data Firehose puede registrar la invocaciónde Lambda y enviar los errores de entrega de datos a CloudWatch Logs. A continuación, puedever los registros de errores concretos en caso de que se produzca un error en la entrega de datoso la invocación de Lambda. Para obtener más información, consulte Monitoreo de Kinesis DataFirehose con CloudWatch Logs (p. 73).

Rol de IAM

Puede crear un nuevo rol en el que los permisos necesarios se asignen automáticamente o elegirun rol entre los disponibles creados para Kinesis Data Firehose. El rol se utiliza para concederlea Kinesis Data Firehose acceso al bucket de S3, a la clave de AWS KMS (en caso de que elcifrado de datos esté habilitado) y la función de Lambda (en caso de que la transformaciónde datos esté habilitada). La consola podría crear un rol con marcadores de posición.Puede pasar por alto o eliminar líneas de manera segura con %FIREHOSE_BUCKET_NAME%,%FIREHOSE_DEFAULT_FUNCTION% o %FIREHOSE_DEFAULT_VERSION%. Para obtener másinformación, consulte Concesión de acceso de Kinesis Data Firehose a un destino de AmazonS3 (p. 32).

2. Revise la configuración y seleccione Create Delivery Stream para crear el flujo de entrega.

La nueva Flujo de entrega de Kinesis Data Firehose se encontrará en el estado Creating (En creación)durante algún tiempo antes de estar disponible. Podrá comenzar a enviar los datos de su productor cuandola Flujo de entrega de Kinesis Data Firehose pase al estado Active (Activa).

12

Page 18: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRequisitos previos

Realización de pruebas de flujo deentrega con datos de muestra

Puede utilizar la Consola de administración de AWS para incorporar datos de tableros de cotizacionessimulados. La consola ejecuta un script en su navegador para colocar registros de muestra en la secuenciade entrega de Kinesis Data Firehose. Esto le permite probar la configuración de la secuencia de entregasin tener que generar sus propios datos de prueba.

A continuación, mostramos un ejemplo de datos simulados:

{"TICKER_SYMBOL":"QXZ","SECTOR":"HEALTHCARE","CHANGE":-0.05,"PRICE":84.51}

Tenga en cuenta que se aplicará la tarifa estándar de Amazon Kinesis Data Firehose cuando la secuenciade entrega transmita los datos, pero la generación de datos no implica cargos. Para detener este cargo,puede detener el flujo de muestra desde la consola en cualquier momento.

Contenido• Requisitos previos (p. 13)• Prueba con Amazon S3 como destino (p. 13)• Prueba con Amazon Redshift como destino (p. 14)• Prueba con Amazon ES como destino (p. 14)• Prueba con Splunk como destino (p. 14)

Requisitos previosAntes de comenzar, crea un flujo de entrega. Para obtener más información, consulte Creación de un flujode entrega de Amazon Kinesis Data Firehose (p. 5).

Prueba con Amazon S3 como destinoUtilice el siguiente procedimiento para probar la secuencia de entrega con Amazon Simple Storage Service(Amazon S3) como destino.

Para probar una secuencia de entrega con Amazon S3

1. Abra la consola de Kinesis Data Firehose en https://console.aws.amazon.com/firehose/.2. Seleccione la secuencia de entrega.3. En Test with demo data, seleccione Start sending demo data para generar datos de tableros de

cotizaciones simulados.4. Siga las instrucciones que aparecen en pantalla para verificar que los datos se están entregando

al bucket de S3. Tenga en cuenta que posiblemente pasen unos minutos hasta que los objetosaparezcan en el bucket. Esto dependerá de la configuración de búfer del bucket.

5. Una vez terminada la prueba, seleccione Stop sending demo data para detener los cargos por uso.

13

Page 19: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPrueba con Amazon Redshift como destino

Prueba con Amazon Redshift como destinoUtilice el siguiente procedimiento para probar la secuencia de entrega con Amazon Redshift como destino.

Para probar una secuencia de entrega con Amazon Redshift

1. La secuencia de entrega espera que haya una tabla en el clúster de Amazon Redshift. Conéctese aAmazon Redshift a través de una interfaz de SQL y ejecute la siguiente declaración para crear unatabla que acepte los datos de muestra.

create table firehose_test_table( TICKER_SYMBOL varchar(4), SECTOR varchar(16), CHANGE float, PRICE float);

2. Abra la consola de Kinesis Data Firehose en https://console.aws.amazon.com/firehose/.3. Seleccione la secuencia de entrega.4. Edite los detalles de destino del flujo de entrega para que apunte a la nueva tabla

firehose_test_table.5. En Test with demo data, seleccione Start sending demo data para generar datos de tableros de

cotizaciones simulados.6. Siga las instrucciones que aparecen en pantalla para verificar que los datos se están entregando a la

tabla. Tenga en cuenta que posiblemente pasen unos minutos hasta que los objetos aparezcan en latabla. Esto dependerá de la configuración de búfer.

7. Una vez terminada la prueba, seleccione Stop sending demo data para detener los cargos por uso.8. Edite los detalles de destino de la secuencia de entrega de Kinesis Data Firehose para que apunte a

otra tabla.9. Elimine la firehose_test_table tabla (opcional).

Prueba con Amazon ES como destinoUtilice el siguiente procedimiento para probar la secuencia de entrega con Amazon Elasticsearch Service(Amazon ES) como destino.

Para probar una secuencia de entrega con Amazon ES

1. Abra la consola de Kinesis Data Firehose en https://console.aws.amazon.com/firehose/.2. Seleccione la secuencia de entrega.3. En Test with demo data, seleccione Start sending demo data para generar datos de tableros de

cotizaciones simulados.4. Siga las instrucciones que aparecen en pantalla para verificar que los datos se están entregando al

dominio de Amazon ES. Para obtener más información, consulte Búsqueda de documentos en undominio de Amazon ES en la Guía para desarrolladores de Amazon Elasticsearch Service.

5. Una vez terminada la prueba, seleccione Stop sending demo data para detener los cargos por uso.

Prueba con Splunk como destinoUtilice el siguiente procedimiento para probar el flujo de entrega con Splunk como destino.

14

Page 20: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPrueba con Splunk como destino

Para probar un flujo de entrega con Splunk

1. Abra la consola de Kinesis Data Firehose en https://console.aws.amazon.com/firehose/.2. Seleccione la secuencia de entrega.3. En Test with demo data, seleccione Start sending demo data para generar datos de tableros de

cotizaciones simulados.4. Compruebe si los datos se están entregando al índice de Splunk. Ejemplos de términos de búsqueda

de Splunk: sourcetype="aws:firehose:json" y index="name-of-your-splunk-index".Para obtener más información acerca de cómo buscar eventos en Splunk, consulte Search Manual enla documentación de Splunk.

Si los datos de prueba no aparecen en el índice de Splunk, compruebe si hay eventos de error en elbucket de Amazon S3. Consulte también Datos no entregados a Splunk.

5. Una vez terminada la prueba, seleccione Stop sending demo data para evitar incurrir en cargos poruso.

15

Page 21: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEscritura mediante Kinesis Data Streams

Envío de datos a una secuencia deentrega de Amazon Kinesis DataFirehose

Puede enviar datos a su secuencia de entrega de Kinesis Data Firehose con diferentes tipos de orígenes:puede utilizar una secuencia de datos de Kinesis, el agente de Kinesis o la API de Kinesis Data Firehosecon el SDK de AWS. También puede utilizar Amazon CloudWatch Logs, Eventos de CloudWatch o AWSIoT como origen de datos. Si es la primera vez que utiliza Kinesis Data Firehose, le recomendamosfamiliarizarse antes con los conceptos y los términos que encontrará en ¿Qué es Amazon Kinesis DataFirehose? (p. 1).

Note

Algunos servicios de AWS solo pueden enviar mensajes y eventos a una secuencia de entrega deKinesis Data Firehose que esté en la misma región. Si la secuencia de entrega no aparece comoopción al configurar un destino para Amazon CloudWatch Logs, Eventos de CloudWatch o AWSIoT, compruebe que la secuencia de entrega de Kinesis Data Firehose está en la misma regiónque los demás servicios.

Temas• Escritura en Kinesis Data Firehose mediante Kinesis Data Streams (p. 16)• Escritura en Kinesis Data Firehose mediante el agente de Kinesis (p. 17)• Escritura en Kinesis Data Firehose mediante el SDK de AWS (p. 26)• Escritura en Kinesis Data Firehose mediante CloudWatch Logs (p. 27)• Escritura en Kinesis Data Firehose mediante Eventos de CloudWatch (p. 28)• Escritura en Kinesis Data Firehose mediante AWS IoT (p. 28)

Escritura en Kinesis Data Firehose medianteKinesis Data Streams

Puede configurar Amazon Kinesis Data Streams para enviar información a una secuencia de entrega deKinesis Data Firehose.

Important

Si utiliza Kinesis Producer Library (KPL) para escribir datos en una secuencia de datos de Kinesis,puede usar la agregación para combinar los registros que se escriben en esa secuencia de datosde Kinesis. Si después utiliza esa secuencia de datos como origen de la secuencia de entregade Kinesis Data Firehose, Kinesis Data Firehose desagrupa los registros antes de entregarlosen el destino. Si configura la secuencia de entrega de modo que transforme los datos, KinesisData Firehose desagrupa los registros antes de entregarlos a AWS Lambda. Para obtener másinformación, consulte Desarrollar productores en Amazon Kinesis Data Streams con la KinesisProducer Library y Agregación.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Kinesis Data Firehose enhttps://console.aws.amazon.com/firehose/.

2. Elija Create Delivery Stream. En la página Name and source (Nombre y origen), proporcione valorespara los siguientes campos:

16

Page 22: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEscritura mediante el agente

Delivery stream name

El nombre de su Flujo de entrega de Kinesis Data Firehose.Fuente

Elija Kinesis stream (Secuencia de ) para configurar una Flujo de entrega de Kinesis DataFirehose que use una secuencia de datos de Kinesis como origen de datos. A continuación,puede usar Kinesis Data Firehose para leer fácilmente los datos de una secuencia de datos ycargarlos en los destinos.

Para utilizar una secuencia de datos de Kinesis como origen, elija una secuencia en la listaKinesis stream (Secuencia de Kinesis) o elija Create new (Crear nueva) para crear una nuevasecuencia de datos de Kinesis. Después de crear una nueva secuencia, elija Refresh (Actualizar)para actualizar la lista Kinesis stream (Secuencia de ). Si tiene un gran número de flujos, filtre lalista con Filter by name.

Note

Al configurar una secuencia de datos de Kinesis como origen de una secuencia deentrega de Kinesis Data Firehose, las operaciones PutRecord y PutRecordBatch deKinesis Data Firehose se deshabilitan. Para añadir datos a la secuencia de entrega deKinesis Data Firehose en este caso, use las operaciones PutRecord y PutRecords deKinesis Data Streams.

Kinesis Data Firehose comienza a leer los datos desde la posición LATEST de la secuencia deKinesis. Para obtener más información sobre las posiciones de Kinesis Data Streams, consulteGetShardIterator. Kinesis Data Firehose llama a la operación GetRecords de Kinesis DataStreams una vez por segundo para cada fragmento.

Se pueden leer varias secuencias de entrega de Kinesis Data Firehose desde la misma secuenciade Kinesis. Otras aplicaciones de Kinesis (consumidores) pueden leer también datos de lamisma secuencia. Cada llamada desde una secuencia de entrega de Kinesis Data Firehose uotra aplicación consumidora cuenta al calcular la limitación controlada total de solicitudes delfragmento. Para evitar las limitaciones, planee sus aplicaciones con especial cuidado. Paraobtener más información sobre los límites de Kinesis Data Streams, consulte Límites de AmazonKinesis Streams.

3. Seleccione Next para pasar a la página Procesar registros (p. 6).

Escritura en Kinesis Data Firehose mediante elagente de Kinesis

El agente de Amazon Kinesis es una aplicación de software Java independiente que permite recopilar yenviar datos a Kinesis Data Firehose de forma sencilla. El agente monitorea constantemente un conjuntode archivos y envía nuevos datos a su Flujo de entrega de Kinesis Data Firehose. El agente se encarga derotar los archivos, crear puntos de restauración y realizar reintentos cuando se producen errores. El agenteentrega todos los datos de manera confiable, puntual y sencilla. También emite métricas de AmazonCloudWatch para ayudarle a monitorear y solucionar mejor los problemas que surjan en el proceso destreaming.

De forma predeterminada, los registros de cada archivo se analizan en función del carácter de nueva línea('\n'). Sin embargo, el agente también se puede configurar para analizar registros multilínea (consulteAjustes de la configuración del agente (p. 20)).

Puede instalar el agente en entornos de servidor basados en Linux, como servidores web, de registro o debase de datos. Después de instalar el agente, configúrelo especificando los archivos a monitorizar y el flujo

17

Page 23: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRequisitos previos

de entrega de los datos. Una vez configurado, el agente recopila datos de los archivos de forma duradera ylos envía de forma fiable al flujo de entrega.

Temas• Requisitos previos (p. 18)• Descargar e instalar el agente (p. 18)• Configuración e inicio del agente (p. 19)• Ajustes de la configuración del agente (p. 20)• Monitoreo de varios directorios de archivos y escritura en varias secuencias (p. 22)• Uso del agente para preprocesar los datos (p. 22)• Comandos del agente de la CLI (p. 26)

Requisitos previos• Su sistema operativo debe ser la versión 2015.09 o posterior de Amazon Linux AMI o la versión 7 o

posterior de Red Hat Enterprise Linux.• Si utiliza Amazon EC2, lance la instancia EC2 para ejecutar el agente.• Administre las credenciales de AWS utilizando uno de los siguientes métodos:

• Especifique un rol de IAM al lanzar la instancia EC2.• Especifique las credenciales de AWS al configurar el agente (consulte las entradas deawsAccessKeyId y awsSecretAccessKey en la tabla de configuración en the section called“Ajustes de la configuración del agente” (p. 20)).

• Edite /etc/sysconfig/aws-kinesis-agent para especificar la región de AWS y las claves deacceso de AWS.

• Si la instancia EC2 está en otra cuenta de AWS, cree una función de IAM para proporcionar acceso alservicio Kinesis Data Firehose. Especifique ese rol al configurar el agente (assumeRoleARN (p. )y assumeRoleExternalId (p. )). Utilice uno de los métodos anteriores para especificar lascredenciales de AWS de un usuario en la otra cuenta que tenga permiso para asumir este rol.

• El rol de IAM o las credenciales de AWS que especifique deben tener permiso para realizar la operaciónde Kinesis Data Firehose PutRecordBatch para que el agente pueda enviar datos a su secuencia deentrega. Si habilita el monitoreo de CloudWatch para el agente, también se necesitará conceder permisopara realizar la operación de CloudWatch PutMetricData. Para obtener más información, consulteControlar el acceso con Amazon Kinesis Data Firehose (p. 30), Monitoreo del estado del agente deKinesis (p. 79) y Autenticación y control de acceso de Amazon CloudWatch.

Descargar e instalar el agentePrimero, conéctese a la instancia. Para obtener más información, consulte Conexión con la instanciaen la Guía del usuario de Amazon EC2 para instancias de Linux. Si tiene problemas para conectarse,consulte Solución de problemas con la conexión a la instancia en la Guía del usuario de Amazon EC2 parainstancias de Linux.

A continuación, instale el agente siguiendo uno de los siguientes métodos.

Para configurar el agente a través de la AMI de Amazon Linux

Use el siguiente comando para descargar e instalar el agente:

sudo yum install –y aws-kinesis-agent

Para configurar el agente en Red Hat Enterprise Linux

18

Page 24: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConfiguración e inicio del agente

Use el siguiente comando para descargar e instalar el agente:

sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

Para configurar el agente en GitHub

1. Descargue el agente de awslabs/amazon-kinesis-agent.2. Instale el agente. Para ello, diríjase al directorio de descargas y ejecute el siguiente comando:

sudo ./setup --install

Configuración e inicio del agentePara configurar e iniciar el agente

1. Abra y edite el archivo de configuración (como superusuario si utiliza permisos de acceso de archivopredeterminado): /etc/aws-kinesis/agent.json

En este archivo de configuración, especifique los archivos ("filePattern") desde los que el agentedeberá recopilar datos y el nombre del flujo de entrega ("deliveryStream") a la que deberáenviarlos. El nombre de archivo es un patrón y el agente reconoce las rotaciones de archivos. Nopuede rotar más de un archivo ni crear más de uno nuevo por segundo. El agente utiliza la marcatemporal de la creación de archivos para determinar los archivos de los que se debe hacer unseguimiento y que se deben poner en cola en la secuencia de entrega. Crear nuevos archivos o rotarlos archivos más de una vez por segundo impide al agente diferenciarlos correctamente.

{ "flows": [ { "filePattern": "/tmp/app.log*", "deliveryStream": "yourdeliverystream" } ] }

La región de AWS predeterminada es us-east-1. Si utiliza una región diferente, añada el ajustefirehose.endpoint al archivo de configuración y especifique el punto de enlace de la región. Paraobtener más información, consulte Ajustes de la configuración del agente (p. 20).

2. Comience el agente de forma manual:

sudo service aws-kinesis-agent start

3. Configure el agente para iniciarse al arrancar el sistema (opcional):

sudo chkconfig aws-kinesis-agent on

El agente ya está se ejecutando como un servicio de sistema en segundo plano. Monitorizaconstantemente los archivos especificados y envía datos al flujo de entrega especificada. La auditoría deactividad se registra en /var/log/aws-kinesis-agent/aws-kinesis-agent.log.

19

Page 25: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresAjustes de la configuración del agente

Ajustes de la configuración del agenteEl agente admite dos opciones de configuración obligatorias, filePattern y deliveryStream, ademásde configuraciones opcionales para activar características adicionales. Las opciones de configuraciónobligatorias y opcionales se especifican en /etc/aws-kinesis/agent.json.

Cada vez que cambie el archivo de configuración, debe detener y comenzar el agente con los siguientescomandos:

sudo service aws-kinesis-agent stopsudo service aws-kinesis-agent start

También puede hacerlo con el siguiente comando:

sudo service aws-kinesis-agent restart

Las opciones de configuración generales son las siguientes.

Opción de configuración Descripción

assumeRoleARN El Nombre de recurso de Amazon (ARN) de la función que debe asumir elusuario. Para obtener más información, consulte Delegar el acceso en variascuentas de AWS mediante funciones de IAM en la Guía del usuario de IAM.

assumeRoleExternalIdUn identificador opcional que determina quién puede asumir el rol. Paraobtener más información, consulte Cómo utilizar un ID externo en la Guía delusuario de IAM.

awsAccessKeyId ID de clave de acceso de AWS que anula las credenciales predeterminadas.Este ajuste tiene prioridad sobre los demás proveedores de credenciales.

awsSecretAccessKey Clave de secreta de AWS que anula las credenciales predeterminadas. Esteajuste tiene prioridad sobre los demás proveedores de credenciales.

cloudwatch.emitMetricsHabilita el agente para emitir métricas a CloudWatch si se configura para ello(true).

Valor predeterminado: true

cloudwatch.endpoint El punto de enlace regional de CloudWatch.

Valor predeterminado: monitoring.us-east-1.amazonaws.com

firehose.endpoint El punto de enlace regional de Kinesis Data Firehose.

Valor predeterminado: firehose.us-east-1.amazonaws.com

Las opciones de configuración de flujo son las siguientes.

Opción de configuración Descripción

aggregatedRecordSizeBytesPara generar los registros de agregación del agente y ponerlos en el flujo deentrega en una sola operación, especifique esta opción. Establezca el tamañoque desea que tenga el registro agregado antes de que el agente lo añada alflujo de entrega.

20

Page 26: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresAjustes de la configuración del agente

Opción de configuración DescripciónValor predeterminado: 0 (sin agregación)

dataProcessingOptionsLa lista de opciones de procesamiento aplicadas a cada registro analizadoantes de enviarlo al flujo de entrega. Las opciones de procesamiento serealizan en el orden especificado. Para obtener más información, consulteUso del agente para preprocesar los datos (p. 22).

deliveryStream [Obligatorio] El nombre del flujo de entrega.

filePattern [Obligatorio] Un glob para los archivos que deben ser monitorizados por elagente. Cualquier archivo que coincida con este patrón es seleccionadoy monitorizado automáticamente por el agente. En todos los archivos quecoincidan con este patrón, conceda permisos de lectura a aws-kinesis-agent-user. En el directorio que contiene los archivos, conceda permisosde lectura y ejecución a aws-kinesis-agent-user.

Important

El agente recoge cualquier archivo que coincida con este patrón.Para asegurarse de que el agente no recoge registros no deseados,seleccione este patrón con precaución.

initialPosition La posición inicial desde la que el archivo comenzó a ser analizado. Losvalores válidos son START_OF_FILE y END_OF_FILE.

Valor predeterminado: END_OF_FILE

maxBufferAgeMillis El tiempo máximo, en milisegundos, durante el cual el agente almacena losdatos en búfer antes de enviarlos a la secuencia de entrega.

Intervalo de valores: 1000 – 900.000 (1 segundo a 15 minutos)

Valor predeterminado: 60 000 (1 minuto)

maxBufferSizeBytes La cantidad de datos en bytes que el agente almacena en búfer antes deenviarlos a la secuencia de entrega.

Intervalo de valores: 1 – 4 194.304 (4 MB)

Valor predeterminado: 4 194 304 (4 MB)

maxBufferSizeRecordsLa cantidad de registros en datos que el agente almacena en búfer antes deenviarlos a la secuencia de entrega.

Rango de valores: 1–500

Predeterminado: 500

minTimeBetweenFilePollsMillisEl intervalo de tiempo, en milisegundos, en el que el agente sondea y analizalos archivos monitorizados para identificar datos nuevos.

Intervalo de valores: 1 o más

Predeterminado: 100

21

Page 27: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo de varios directorios de

archivos y escritura en varias secuencias

Opción de configuración Descripción

multiLineStartPatternEl patrón para identificar el comienzo de un registro. Un registro consta deuna línea que coincide con el patrón y de líneas siguientes que no coincidencon el patrón. Los valores válidos son expresiones regulares. De formapredeterminada, cada línea en los archivos de registro se analiza como unregistro.

skipHeaderLines La cantidad de líneas de los archivos monitorizados, a partir de la primera,que el agente debe omitir en el momento de analizarlos.

Intervalo de valores: 0 o más

Cantidad predeterminada: 0 (cero)

truncatedRecordTerminatorLa cadena que utiliza el agente para truncar un registro analizado cuandosu tamaño supera el límite de tamaño de registros de Kinesis Data Firehose.(1000 KB)

Valor predeterminado: '\n' (línea nueva)

Monitoreo de varios directorios de archivos y escrituraen varias secuenciasPuede configurar el agente para que monitorice varios directorios de archivos y envíe datos a variassecuencias especificando varias opciones de configuración de secuencia. En el siguiente ejemplo deconfiguración, el agente monitorea dos directorios de archivos y envía los datos a una secuencia de datosde Kinesis y a una secuencia de entrega de Kinesis Data Firehose, respectivamente. Puede especificardiferentes puntos de enlace para Kinesis Data Streams y Kinesis Data Firehose con el fin de que lasecuencia de datos y la secuencia de entrega de Kinesis Data Firehose no tengan que estar en la mismaregión.

{ "cloudwatch.emitMetrics": true, "kinesis.endpoint": "https://your/kinesis/endpoint", "firehose.endpoint": "https://your/firehose/endpoint", "flows": [ { "filePattern": "/tmp/app1.log*", "kinesisStream": "yourkinesisstream" }, { "filePattern": "/tmp/app2.log*", "deliveryStream": "yourfirehosedeliverystream" } ] }

Para obtener información más detallada acerca de cómo utilizar el agente con Amazon Kinesis DataStreams, consulte Escribir en Amazon Kinesis Data Streams con un agente de Kinesis.

Uso del agente para preprocesar los datosEl agente puede preprocesar los registros previamente analizados de los archivos monitorizados antesde enviarlos al flujo de entrega. Para habilitar esta característica, añada la opción de configuración

22

Page 28: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresUso del agente para preprocesar los datos

dataProcessingOptions al flujo de archivos. Puede añadir una o más opciones de procesamiento quese ejecutarán en el orden especificado.

El agente es compatible con las siguientes opciones de procesamiento. Dado que el agente es de códigoabierto, el usuario puede desarrollar y ampliar sus opciones de procesamiento. Puede descargar el agentedesde Agente de Kinesis.

Opciones de procesamiento

SINGLELINE

Elimina los caracteres de nueva línea y los espacios situados al principio y al final de las líneas paraconvertir un registro multilínea en un registro de una sola línea.

{ "optionName": "SINGLELINE"}

CSVTOJSON

Convierte un registro con un formato separado mediante delimitadores al formato JSON.

{ "optionName": "CSVTOJSON", "customFieldNames": [ "field1", "field2", ... ], "delimiter": "yourdelimiter"}

customFieldNames

[Obligatorio] Los nombres de campos utilizados como claves en cada par de valores declave JSON. Por ejemplo, si especifica ["f1", "f2"], el registro "v1, v2" se convierte en{"f1":"v1","f2":"v2"}.

delimiter

La cadena utilizada como delimitador en el registro. El valor predeterminado es una coma (,).LOGTOJSON

Convierte un registro con un formato de registro en un registro con formato JSON. Los formatos deregistro admitidos son Apache Common Log, Apache Combined Log, Apache Error Log y RFC3164Syslog.

{ "optionName": "LOGTOJSON", "logFormat": "logformat", "matchPattern": "yourregexpattern", "customFieldNames": [ "field1", "field2", … ]}

logFormat

[Obligatorio] El formato de entrada del registro. Los valores posibles son los siguientes:• COMMONAPACHELOG: formato común de registro de Apache. Cada entrada de registro

sigue el siguiente patrón de forma predeterminada: "%{host} %{ident} %{authuser}[%{datetime}] \"%{request}\" %{response} %{bytes}".

• COMBINEDAPACHELOG: formato de registro combinado de Apache. Cada entrada de registrosigue el siguiente patrón de forma predeterminada: "%{host} %{ident} %{authuser}[%{datetime}] \"%{request}\" %{response} %{bytes} %{referrer} %{agent}".

23

Page 29: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresUso del agente para preprocesar los datos

• APACHEERRORLOG: formato de registro de errores de Apache. Cada entrada de registro sigue elsiguiente patrón de forma predeterminada: "[%{timestamp}] [%{module}:%{severity}][pid %{processid}:tid %{threadid}] [client: %{client}] %{message}".

• SYSLOG: formato RFC3164 Syslog. Cada entrada de registro sigue el siguiente patrón deforma predeterminada: "%{timestamp} %{hostname} %{program}[%{processid}]:%{message}".

matchPattern

Sobrescribe el patrón predeterminado del formato de log especificado. Utilice esta configuraciónpara extraer valores de entradas de log si utilizan un formato personalizado. Si especificamatchPattern, también debe especificar customFieldNames.

customFieldNames

Los nombres de campos utilizados como claves en cada par de valores de clave JSON. Utiliceesta opción para definir nombres de campos para valores extraídos de matchPattern, osobrescriba los nombres de campos de los formatos de logs predefinidos.

Example : Configuración LOGTOJSON

Este es un ejemplo de configuración LOGTOJSON de una entrada de registro en Formato común de registrode Apache convertida a formato JSON:

{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG"}

Antes de la conversión:

64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291

Después de la conversión:

{"host":"64.242.88.10","ident":null,"authuser":null,"datetime":"07/Mar/2004:16:10:02 -0800","request":"GET /mailman/listinfo/hsdivision HTTP/1.1","response":"200","bytes":"6291"}

Example : Configuración LOGTOJSON con campos personalizados

Este es otro ejemplo de configuración LOGTOJSON:

{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "customFieldNames": ["f1", "f2", "f3", "f4", "f5", "f6", "f7"]}

Con esta configuración, la misma entrada de registro con Formato común de registro de Apache delejemplo anterior se convierte a formato JSON de la siguiente manera:

{"f1":"64.242.88.10","f2":null,"f3":null,"f4":"07/Mar/2004:16:10:02 -0800","f5":"GET /mailman/listinfo/hsdivision HTTP/1.1","f6":"200","f7":"6291"}

24

Page 30: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresUso del agente para preprocesar los datos

Example : Convertir una entrada de registro con Formato común de registro de Apache

La siguiente configuración de secuencia convierte la entrada de registro común de Apache en un registrode una línea con formato JSON:

{ "flows": [ { "filePattern": "/tmp/app.log*", "deliveryStream": "my-delivery-stream", "dataProcessingOptions": [ { "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" } ] } ] }

Example : Convertir registros multilínea

La siguiente configuración de flujo analiza aquellos registros multilínea cuya primera línea comience por"[SEQUENCE=". Primero, cada registro se convierte en un registro de una línea. Después, se extraen losvalores del registro basándose en tabulaciones delimitadoras. Finalmente, los valores extraídos se asignana valores customFieldNames específicos para formar un registro de una línea en formato JSON.

{ "flows": [ { "filePattern": "/tmp/app.log*", "deliveryStream": "my-delivery-stream", "multiLineStartPattern": "\\[SEQUENCE=", "dataProcessingOptions": [ { "optionName": "SINGLELINE" }, { "optionName": "CSVTOJSON", "customFieldNames": [ "field1", "field2", "field3" ], "delimiter": "\\t" } ] } ] }

Example : Configuración LOGTOJSON con patrón de coincidencia

Este es un ejemplo de una configuración de entrada de registro con Formato común de registro de ApacheLOGTOJSON convertida a formato JSON con el último campo (bytes) omitido:

{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "matchPattern": "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3})", "customFieldNames": ["host", "ident", "authuser", "datetime", "request", "response"]}

Antes de la conversión:

25

Page 31: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresComandos del agente de la CLI

123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] "GET /java/javaResources.html HTTP/1.0" 200

Después de la conversión:

{"host":"123.45.67.89","ident":null,"authuser":null,"datetime":"27/Oct/2000:09:27:09 -0400","request":"GET /java/javaResources.html HTTP/1.0","response":"200"}

Comandos del agente de la CLIIniciar automáticamente al agente al arrancar el sistema:

sudo chkconfig aws-kinesis-agent on

Comprobar el estado del agente:

sudo service aws-kinesis-agent status

Detener el agente:

sudo service aws-kinesis-agent stop

Leer el archivo de registro del agente desde esta ubicación:

/var/log/aws-kinesis-agent/aws-kinesis-agent.log

Desinstalar el agente:

sudo yum remove aws-kinesis-agent

Escritura en Kinesis Data Firehose mediante elSDK de AWS

Puede usar la API de Amazon Kinesis Data Firehose para enviar datos a una Flujo de entrega de KinesisData Firehose usando el AWS SDK para Java, .NET, Node.js, Python o Ruby. Si es la primera vez queutiliza Kinesis Data Firehose, le recomendamos familiarizarse antes con los conceptos y los términos queencontrará en ¿Qué es Amazon Kinesis Data Firehose? (p. 1). Para obtener más información, consulteComience a crear con Amazon Web Services.

Estos ejemplos no representan códigos listos para producción, ya que no comprueban todas lasexcepciones posibles ni toman en cuenta todas las consideraciones de seguridad y desempeño posibles.

La API de Kinesis Data Firehose ofrece dos operaciones para enviar datos a el flujo de entrega: PutRecordy PutRecordBatch. PutRecord() envía un registro de datos en una sola llamada y PutRecordBatch()puede enviar varios registros de datos en una sola llamada.

Temas• Operaciones individuales de escritura con PutRecord (p. 27)

26

Page 32: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresOperaciones individuales de escritura con PutRecord

• Operaciones de escritura por lotes con PutRecordBatch (p. 27)

Operaciones individuales de escritura con PutRecordPara incluir datos solo se necesita el nombre de Flujo de entrega de Kinesis Data Firehose y un búferde bytes (<= 1000 KB). Como Kinesis Data Firehose agrupa en lotes varios registros antes de cargar elarchivo a Amazon S3, es posible que desee añadir un separador de registros. Utilice el siguiente códigopara incluir los registros de datos de uno en uno en un flujo de entrega:

PutRecordRequest putRecordRequest = new PutRecordRequest();putRecordRequest.setDeliveryStreamName(deliveryStreamName);

String data = line + "\n";

Record record = new Record().withData(ByteBuffer.wrap(data.getBytes()));putRecordRequest.setRecord(record);

// Put record into the DeliveryStreamfirehoseClient.putRecord(putRecordRequest);

Para obtener más contexto de código, consulte el código de muestra se incluye en el AWS SDK. Paraobtener información sobre la sintaxis de solicitud y respuesta, consulte el tema correspondiente enOperaciones de API de Amazon Kinesis Data Firehose.

Operaciones de escritura por lotes conPutRecordBatchPara incluir datos solo se necesita el nombre de Flujo de entrega de Kinesis Data Firehose y una listade registros. Como Kinesis Data Firehose agrupa en lotes varios registros antes de cargar el archivo aAmazon S3, es posible que desee añadir un separador de registros. Utilice el siguiente código para incluirlos registros de datos por lotes en un flujo de entrega:

PutRecordBatchRequest putRecordBatchRequest = new PutRecordBatchRequest();putRecordBatchRequest.setDeliveryStreamName(deliveryStreamName);putRecordBatchRequest.setRecords(recordList);

// Put Record Batch records. Max No.Of Records we can put in a// single put record batch request is 500firehoseClient.putRecordBatch(putRecordBatchRequest);

recordList.clear();

Para obtener más contexto de código, consulte el código de muestra se incluye en el AWS SDK. Paraobtener información sobre la sintaxis de solicitud y respuesta, consulte el tema correspondiente enOperaciones de API de Amazon Kinesis Data Firehose.

Escritura en Kinesis Data Firehose medianteCloudWatch Logs

Para obtener más información acerca de cómo crear una suscripción de CloudWatch Logs que envíeeventos de registro a Kinesis Data Firehose, consulte Filtros de suscripción con Amazon Kinesis Firehose.

27

Page 33: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEscritura mediante Eventos de CloudWatch

Escritura en Kinesis Data Firehose medianteEventos de CloudWatch

Puede configurar Amazon CloudWatch para enviar eventos a una secuencia de entrega de Kinesis DataFirehose agregando un destino a una regla de Eventos de CloudWatch.

Para crear un destino para una regla de Eventos de CloudWatch que envíe eventos a unasecuencia de entrega existente

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

2. Elija Create rule.3. En la página Step 1: Create rule (Paso 1: crear regla), en Targets (Destinos), elija Add target (Añadir

destino) y, a continuación, elija Firehose delivery stream (Secuencia de entrega de Firehose).4. En Delivery stream (Secuencia de entrega), elija una secuencia de entrega de Kinesis Data Firehose.

Para obtener más información acerca de cómo crear reglas de Eventos de CloudWatch, consulteIntroducción a Amazon CloudWatch Events.

Escritura en Kinesis Data Firehose mediante AWSIoT

Es posible añadir una acción para configurar AWS IoT de modo que le envíe información a una secuenciade entrega de Amazon Kinesis Data Firehose.

Cómo crear una acción que envíe eventos a una secuencia de entrega de Kinesis Data Firehoseexistente

1. Al crear una regla en la consola de AWS IoT, en la página Create a rule (Crear una regla), en Set oneor more actions (Establecer una o varias acciones), elija Add action (Añadir acción).

2. Elija Send messages to an Amazon Kinesis Firehose stream (Enviar mensajes a una secuenciaFirehose).

3. Elija Configure action.4. En Stream name (Nombre de secuencia), elija una secuencia de entrega de Kinesis Data Firehose.5. En Separator, seleccione un carácter de separación a insertar entre registros.6. En IAM role name (Nombre de rol de ), elija un rol de IAM que ya exista o cree uno nuevo con la

opción Create a new role (Crear un nuevo rol).7. Elija Add action.

Para obtener más información acerca de la creación de reglas de AWS IoT, consulte Tutoriales de reglasde AWS IoT.

28

Page 34: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresProtección de los datos

Seguridad en Amazon Kinesis DataFirehose

La seguridad en la nube de AWS es la mayor prioridad. Como cliente de AWS, se beneficiará de unaarquitectura de red y un centro de datos diseñados para satisfacer los requisitos de seguridad de lasorganizaciones más exigentes.

La seguridad es una responsabilidad compartida entre AWS y usted. El modelo de responsabilidadcompartida la describe como seguridad de la nube y seguridad en la nube:

• Seguridad de la nube: AWS es responsable de proteger la infraestructura que ejecuta servicios deAWS en la nube de AWS. AWS también proporciona servicios que puede utilizar de forma segura.Auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad en el marcode los programas de conformidad de AWS. Para obtener más información acerca de los programasde conformidad que se aplican a Kinesis Data Firehose, consulte Servicios de AWS en el ámbito delprograma de conformidad.

• Seguridad en la nube: su responsabilidad viene determinada por el servicio de AWS que utilice. Ustedtambién es responsable de otros factores incluida la confidencialidad de los datos, los requisitos de laempresa y la legislación y los reglamentos aplicables.

Esta documentación le ayuda a comprender cómo aplicar el modelo de responsabilidad compartida cuandose utiliza Kinesis Data Firehose. En los siguientes temas, se le mostrará cómo configurar Kinesis DataFirehose para satisfacer sus objetivos de seguridad y conformidad. También puede aprender a utilizarotros servicios de AWS que le ayudan a monitorizar y proteger sus recursos de Kinesis Data Firehose.

Temas• Protección de los datos en Amazon Kinesis Data Firehose (p. 29)• Controlar el acceso con Amazon Kinesis Data Firehose (p. 30)• Monitoreo de Amazon Kinesis Data Firehose (p. 44)• Validación de la conformidad en Amazon Kinesis Data Firehose (p. 44)• Resiliencia de Amazon Kinesis Data Firehose (p. 44)• Seguridad de la infraestructura en Kinesis Data Firehose (p. 45)• Prácticas recomendadas de seguridad para Kinesis Data Firehose (p. 45)

Protección de los datos en Amazon Kinesis DataFirehose

Si tiene información confidencial, puede activar el cifrado de datos en el lado del servidor al utilizar AmazonKinesis Data Firehose. La forma de hacerlo dependerá del origen de los datos.

Cifrado del lado del servidor con Kinesis Data Streamscomo origen de datosAl configurar un flujo de datos de Kinesis como origen de datos de un flujo de entrega de Kinesis DataFirehose, Kinesis Data Firehose deja de almacenar los datos en reposo. En lugar de eso, los datos sealmacenan en el flujo de datos.

29

Page 35: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresCifrado del lado del servidor con

Direct PUT u otros orígenes de datos

Al enviar datos desde los productores de datos a un flujo de datos, Kinesis Data Streams cifra los datoscon una clave de AWS Key Management Service (AWS KMS) antes de almacenarlos en reposo. Cuandoel flujo de entrega de Kinesis Data Firehose lee los datos del flujo de datos, Kinesis Data Streams primerodescifra los datos y, a continuación, los envía a Kinesis Data Firehose. Kinesis Data Firehose almacenaen búfer los datos en memoria según las sugerencias de almacenamiento en búfer que especifique. Acontinuación, los envía a los destinos sin tener que almacenar los datos no cifrados en reposo.

Para obtener más información acerca de cómo activar el cifrado del lado del servidor para Kinesis DataStreams, consulte Uso del cifrado en el servidor en la Guía para desarrolladores de Amazon Kinesis DataStreams.

Cifrado del lado del servidor con Direct PUT u otrosorígenes de datosSi envía datos a su flujo de entrega con PutRecord o PutRecordBatch, o si envía los datos utilizando AWSIoT, Amazon CloudWatch Logs o Eventos de CloudWatch, puede activar el cifrado del lado del servidor através de la operación StartDeliveryStreamEncryption.

Para detener el cifrado del lado del servidor, utilice la operación StopDeliveryStreamEncryption.

También puede habilitar SSE al crear el flujo de entrega. Para ello, especifiqueDeliveryStreamenCryptionConfigurationInput cuando invoque CreateDeliveryStream.

Cuando la CMK es de tipo CUSTOMER_MANAGED_CMK, si el servicio de Amazon Kinesis DataFirehose no puede descifrar registros debido a una excepción KMSNotFoundException,KMSInvalidStateException, KMSDisabledExcetion o KMSAccessDeniedException, elservicio espera hasta 24 horas (el período de retención) para resolver el problema. Si el problemacontinúa después del periodo de retención, el servicio omite los registros que han superado el periodo deretención y no se pudieron descifrar y, a continuación, descarta los datos. Amazon Kinesis Data Firehoseproporciona las cuatro métricas de CloudWatch siguientes que puede utilizar para realizar un seguimientode las cuatro excepciones de AWS KMS:

• KMSKeyAccessDenied

• KMSKeyDisabled

• KMSKeyInvalidState

• KMSKeyNotFound

Para obtener más información sobre estas métricas, consulte the section called “Monitoreo con métricas deCloudWatch” (p. 59).

Important

Para cifrar su flujo de entrega, use CMK simétricas. Kinesis Data Firehose no admite CMKasimétricas. Para obtener información acerca de las CMK simétricas y asimétricas, consulteAcerca de las CMK simétricas y asimétricas en la guía para desarrolladores de AWS KeyManagement Service.

Controlar el acceso con Amazon Kinesis DataFirehose

En las secciones a continuación se explica cómo controlar el acceso desde y a los recursos de KinesisData Firehose. Estas secciones incluyen información sobre cómo conceder acceso a su aplicación para

30

Page 36: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConceder a su aplicación acceso a

los recursos de Kinesis Data Firehose

que pueda enviar datos a su flujo de entrega de Kinesis Data Firehose. También se describe cómo puedeconceder a Kinesis Data Firehose acceso a su bucket de Amazon Simple Storage Service (Amazon S3), alclúster de Amazon Redshift o al de Amazon Elasticsearch Service, así como los permisos de acceso quenecesita si utiliza Splunk como destino. Por último, encontrará instrucciones de configuración de KinesisData Firehose para que entregue datos a un destino que pertenezca a otra cuenta de AWS. La tecnologíade administración de todas estas formas de acceso es AWS Identity and Access Management (IAM). Paraobtener más información acerca de IAM, consulte ¿Qué es IAM?.

Contenido• Conceder a su aplicación acceso a los recursos de Kinesis Data Firehose (p. 31)• Permitir que Kinesis Data Firehose asuma un rol de IAM (p. 31)• Concesión de acceso de Kinesis Data Firehose a un destino de Amazon S3 (p. 32)• Concesión de acceso de Kinesis Data Firehose a un destino de Amazon Redshift (p. 33)• Concesión de acceso a Kinesis Data Firehose a un destino público de Amazon ES (p. 36)• Concesión de acceso a Kinesis Data Firehose a un destino de Amazon ES en una VPC (p. 38)• Concesión de acceso de Kinesis Data Firehose a un destino de Splunk (p. 38)• Acceso a Splunk en VPC (p. 40)• Entrega entre cuentas a un destino de Amazon S3 (p. 41)• Entrega entre cuentas a un destino de Amazon ES (p. 41)• Uso de etiquetas para controlar el acceso (p. 42)

Conceder a su aplicación acceso a los recursos deKinesis Data FirehosePara concederle a su aplicación acceso a su flujo de entrega de Kinesis Data Firehose, utilice una políticasimilar a este ejemplo. Puede ajustar las operaciones individuales de las API a las que concede accesomodificando la sección Action o concediendo acceso a todas las operaciones "firehose:*".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:DeleteDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ]}

Permitir que Kinesis Data Firehose asuma un rol deIAMSi utiliza la consola para crear un flujo de entrega,y elige la opción para crear un nuevo rol, AWS asocia lapolítica de confianza necesaria al rol. Por otra parte, si desea que Kinesis Data Firehose utilice un rol de

31

Page 37: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso de Kinesis DataFirehose a un destino de Amazon S3

IAM existente o si crea un rol por su cuenta, asocie la siguiente política de confianza a dicho rol para queKinesis Data Firehose pueda asumirlo. Edite la política para sustituir id-cuenta por el ID de su cuenta deAWS. Esto garantiza que solo usted pueda solicitar a Kinesis Data Firehose que asuma el rol de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId":"account-id" } } } ]}

Para obtener información acerca de cómo modificar la relación de confianza de un rol, consulteModificación de un rol.

Concesión de acceso de Kinesis Data Firehose a undestino de Amazon S3Cuando se utiliza un destino de Amazon S3, Kinesis Data Firehose entrega los datos al bucket de S3 ypuede utilizar una clave de AWS KMS propiedad del usuario para cifrar los datos. Si el registro de erroresestá habilitado, Kinesis Data Firehose también envía los errores de entrega de datos a los flujos y al grupode registros de CloudWatch. Es obligatorio tener un rol de IAM al crear un flujo de entrega. Kinesis DataFirehose asume dicho rol de IAM y obtiene acceso al bucket, a la clave y a los flujos y al grupo de registrosde CloudWatch especificados.

Utilice la siguiente política de acceso para permitir a Kinesis Data Firehose obtener acceso al bucket de S3y a la clave de AWS KMS. Si no es el propietario del bucket de S3, añada s3:PutObjectAcl a la lista deacciones de Amazon S3. Esto concede al propietario del bucket acceso completo a los objetos que entregaKinesis Data Firehose. Esta política también tiene una instrucción que permite el acceso a Amazon KinesisData Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminar dicha instrucción.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] },

32

Page 38: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso de Kinesis Data

Firehose a un destino de Amazon Redshift

{ "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Para obtener más información acerca cómo permitir a otros servicios de AWS el acceso a sus recursos deAWS, consulte Creación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario deIAM.

Concesión de acceso de Kinesis Data Firehose a undestino de Amazon RedshiftConsulte los siguientes temas al conceder acceso a Kinesis Data Firehose mientras utiliza un destino deAmazon Redshift.

Temas

33

Page 39: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso de Kinesis Data

Firehose a un destino de Amazon Redshift

• Rol de IAM y política de acceso (p. 34)• Acceso de VPC a un clúster de Amazon Redshift (p. 35)

Rol de IAM y política de accesoCuando se utiliza un destino de Amazon Redshift, Kinesis Data Firehose entrega los datos al bucketde S3 como una ubicación intermedia. También puede utilizar una clave AWS KMS que posee para elcifrado de datos. A continuación, Kinesis Data Firehose carga los datos del bucket de S3 a su clúster deAmazon Redshift. Si el registro de errores está habilitado, Kinesis Data Firehose también envía erroresde entrega de datos a su grupo de registros y flujos de CloudWatch. Kinesis Data Firehose utiliza elnombre de usuario y la contraseña Amazon Redshift especificados para obtener acceso al clúster y utilizaun rol de IAM para obtener acceso al bucket, la clave, el grupo de registros de CloudWatch y los flujosespecificados. Es obligatorio contar con un rol de IAM al crear un flujo de entrega.

Utilice la siguiente política de acceso para permitir a Kinesis Data Firehose obtener acceso al bucket deS3 y a la clave de AWS KMS. Si el bucket de S3 no es de su propiedad, añada s3:PutObjectAcl a lalista de acciones de Amazon S3 que le concede al propietario del bucket acceso completo a los objetosentregados por Kinesis Data Firehose. Esta política también tiene una instrucción que permite el accesoa Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puede eliminardicha instrucción.

{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [

34

Page 40: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso de Kinesis Data

Firehose a un destino de Amazon Redshift

"kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Para obtener más información acerca cómo permitir a otros servicios de AWS el acceso a sus recursos deAWS, consulte Creación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario deIAM.

Acceso de VPC a un clúster de Amazon RedshiftSi el clúster de Amazon Redshift está en una nube virtual privada (VPC), debe ser de acceso públicoy tener una dirección IP pública. Además, conceda a Kinesis Data Firehose acceso a su clúster deAmazon Redshift desbloqueando las direcciones IP de Kinesis Data Firehose. Kinesis Data Firehose utilizaactualmente un bloque de CIDR para cada región disponible:

• 13.58.135.96/27 para EE.UU. Este (Ohio)• 52.70.63.192/27 para US East (N. Virginia)• 13.57.135.192/27 para EE.UU. Oeste (Norte de California)• 52.89.255.224/27 para EE.UU. Oeste (Oregón)• 18.253.138.96/27 para AWS GovCloud (EE.UU. Este)• 52.61.204.160/27 para AWS GovCloud (US-West)• 35.183.92.128/27 para Canadá (Central)• 18.162.221.32/27 para Asia Pacífico (Hong Kong)• 13.232.67.32/27 para Asia Pacífico (Mumbai)• 13.209.1.64/27 para Asia Pacífico (Seúl)• 13.228.64.192/27 para Asia Pacífico (Singapur)• 13.210.67.224/27 para Asia Pacífico (Sídney)• 13.113.196.224/27 para Asia Pacífico (Tokio)• 52.81.151.32/27 para China (Pekín)• 161.189.23.64/27 para China (Ningxia)

35

Page 41: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso a Kinesis Data

Firehose a un destino público de Amazon ES

• 35.158.127.160/27 para Europa (Fráncfort)• 52.19.239.192/27 para Europa (Irlanda)• 18.130.1.96/27 para Europa (Londres)• 35.180.1.96/27 para Europa (París)• 13.53.63.224/27 para Europa (Estocolmo)• 15.185.91.0/27 para Medio Oriente (Baréin)• 18.228.1.128/27 para América del Sur (São Paulo)

Para obtener más información acerca de cómo desbloquear direcciones IP, consulte el paso Autorizaciónde acceso al clúster de la guía Introducción a Amazon Redshift.

Concesión de acceso a Kinesis Data Firehose a undestino público de Amazon ESCuando se utiliza un destino de Amazon ES, Kinesis Data Firehose entrega los datos al clúster de AmazonES a la vez que crea una copia de seguridad de todos los documentos (o de los que han presentado unerror) en el bucket de S3. Si el registro de errores está habilitado, Kinesis Data Firehose también envíaerrores de entrega de datos a su grupo de registros de CloudWatch y flujos. Kinesis Data Firehose utilizaun rol de IAM para obtener acceso al dominio de Elasticsearch, el bucket de S3, la clave de AWS KMS y elgrupo y flujos de CloudWatch. Es obligatorio contar con un rol de IAM al crear un flujo de entrega.

Utilice la siguiente política de acceso para permitir a Kinesis Data Firehose obtener acceso al bucket deS3, el dominio de Amazon ES y la clave de AWS KMS. Si el bucket de S3 no es de su propiedad, añadas3:PutObjectAcl a la lista de acciones de Amazon S3 que le concede al propietario del bucket accesocompleto a los objetos entregados por Kinesis Data Firehose. Esta política también tiene una instrucciónque permite el acceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen dedatos, puede eliminar dicha instrucción.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": {

36

Page 42: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso a Kinesis Data

Firehose a un destino público de Amazon ES

"StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "es:DescribeElasticsearchDomain", "es:DescribeElasticsearchDomains", "es:DescribeElasticsearchDomainConfig", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name", "arn:aws:es:region:account-id:domain/domain-name/*" ] }, { "Effect": "Allow", "Action": [ "es:ESHttpGet" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name/_all/_settings", "arn:aws:es:region:account-id:domain/domain-name/_cluster/stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_mapping/type-name", "arn:aws:es:region:account-id:domain/domain-name/_nodes", "arn:aws:es:region:account-id:domain/domain-name/_nodes/stats", "arn:aws:es:region:account-id:domain/domain-name/_nodes/*/stats", "arn:aws:es:region:account-id:domain/domain-name/_stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_stats" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [

37

Page 43: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso a Kinesis Data Firehose

a un destino de Amazon ES en una VPC

"arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Para obtener más información acerca cómo permitir a otros servicios de AWS el acceso a sus recursos deAWS, consulte Creación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario deIAM.

Concesión de acceso a Kinesis Data Firehose a undestino de Amazon ES en una VPCSi su dominio de Amazon ES está en una VPC, asegúrese de conceder a Kinesis Data Firehose lospermisos que se describen en la sección anterior. Además, debe conceder a Kinesis Data Firehose lossiguientes permisos para habilitar el acceso a la VPC de su dominio de Amazon ES.

• ec2:DescribeVpcs

• ec2:DescribeVpcAttribute

• ec2:DescribeSubnets

• ec2:DescribeSecurityGroups

• ec2:DescribeNetworkInterfaces

• ec2:CreateNetworkInterface

• ec2:CreateNetworkInterfacePermission

• ec2:DeleteNetworkInterface

Si revoca estos permisos después de crear el flujo de entrega, Kinesis Data Firehose no puede realizarel escalado ascendente creando más ENI cuando sea necesario. Por lo tanto, es posible que vea unareducción del rendimiento.

Al crear o actualizar el flujo de entrega, se especifica un grupo de seguridad para Kinesis Data Firehoseque se utilizará cuando envíe datos a su dominio de Amazon ES. Puede utilizar el mismo grupo deseguridad que utiliza el dominio de Amazon ES o uno diferente. Si especifica un grupo de seguridaddiferente, asegúrese de que permite el tráfico HTTPS saliente al grupo de seguridad del dominio deAmazon ES. Asegúrese también de que el grupo de seguridad del dominio de Amazon ES permita eltráfico HTTPS desde el grupo de seguridad especificado al configurar el flujo de entrega. Si utiliza el mismogrupo de seguridad tanto para el flujo de entrega como para el dominio de Amazon ES, asegúrese de quela regla de entrada del grupo de seguridad permite el tráfico HTTPS. Si desea obtener más informaciónacerca de las reglas del grupo de seguridad, consulte Reglas del grupo de seguridad en la documentaciónde la Amazon VPC.

Concesión de acceso de Kinesis Data Firehose a undestino de SplunkCuando se utiliza un destino de Splunk, Kinesis Data Firehose envía datos al punto de enlace delrecopilador de eventos HTTP (HEC) de Splunk. También crea copias de seguridad de los datos en elbucket de Amazon S3 que se especifique y ofrece la posibilidad de utilizar cualquier clave de AWS KMSque se posea para el cifrado de Amazon S3 del lado del servidor. Si el registro de errores está habilitado,Kinesis Data Firehose envía los errores de entregas de datos a los flujos de registros de CloudWatch.También puede utilizar AWS Lambda para transformar datos. Si usa un balanceador de carga de AWS,asegúrese de que es un Classic Load Balancer. Kinesis Data Firehose no admite Application Load

38

Page 44: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConcesión de acceso de Kinesis

Data Firehose a un destino de Splunk

Balancers ni Network Load Balancers. Además, habilite las sesiones sticky basadas en duración conel vencimiento de cookies deshabilitado. Para obtener más información sobre cómo hacerlo, consulteSesiones sticky basadas en duración.

Es obligatorio tener un rol de IAM al crear un flujo de entrega. Kinesis Data Firehose asume dichorol de IAM y obtiene acceso al bucket, a la clave y a los flujos y al grupo de registros de CloudWatchespecificados.

Utilice la siguiente política de acceso para permitir a Kinesis Data Firehose obtener acceso al bucket deS3. Si el bucket de S3 no es de su propiedad, añada s3:PutObjectAcl a la lista de acciones de AmazonS3 que le concede al propietario del bucket acceso completo a los objetos entregados por Kinesis DataFirehose. Esta política también concede a Kinesis Data Firehose acceso a CloudWatch para registrar loserrores y a AWS Lambda para transformar datos. La política también tiene una instrucción que permite elacceso a Amazon Kinesis Data Streams. Si no utiliza Kinesis Data Streams como origen de datos, puedeeliminar dicha instrucción. Kinesis Data Firehose no utiliza IAM para obtener acceso a Splunk. Para teneracceso a Splunk, utiliza el token de HEC.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name"

39

Page 45: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresAcceso a Splunk en VPC

}, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Para obtener más información acerca cómo permitir a otros servicios de AWS el acceso a sus recursos deAWS, consulte Creación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario deIAM.

Acceso a Splunk en VPCSi la plataforma Splunk está en una VPC, debe ser de acceso público y tener una dirección IP pública.Además, deberá conceder a Kinesis Data Firehose acceso a la plataforma Splunk desbloqueando lasdirecciones IP de Kinesis Data Firehose. Kinesis Data Firehose utiliza actualmente los siguientes bloquesde CIDR.

• 18.216.68.160/27, 18.216.170.64/27, 18.216.170.96/27 para EE.UU. Este (Ohio)• 34.238.188.128/26, 34.238.188.192/26, 34.238.195.0/26 para US East (N. Virginia)• 13.57.180.0/26 para EE.UU. Oeste (Norte de California)• 34.216.24.32/27, 34.216.24.192/27, 34.216.24.224/27 para EE.UU. Oeste (Oregón)• 18.253.138.192/26 para AWS GovCloud (EE.UU. Este)• 52.61.204.192/26 para AWS GovCloud (US-West)• 18.162.221.64/26 para Asia Pacífico (Hong Kong)• 13.232.67.64/26 para Asia Pacífico (Mumbai)• 13.209.71.0/26 para Asia Pacífico (Seúl)• 13.229.187.128/26 para Asia Pacífico (Singapur)• 13.211.12.0/26 para Asia Pacífico (Sídney)• 13.230.21.0/27, 13.230.21.32/27 para Asia Pacífico (Tokio)• 35.183.92.64/26 para Canadá (Central)• 18.194.95.192/27, 18.194.95.224/27, 18.195.48.0/27 para Europa (Fráncfort)• 34.241.197.32/27, 34.241.197.64/27, 34.241.197.96/27 para Europa (Irlanda)• 18.130.91.0/26 para Europa (Londres)• 35.180.112.0/26 para Europa (París)• 13.53.191.0/26 para Europa (Estocolmo)• 15.185.91.64/26 para Medio Oriente (Baréin)

40

Page 46: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEntrega entre cuentas a un destino de Amazon S3

• 18.228.1.192/26 para América del Sur (São Paulo)

Entrega entre cuentas a un destino de Amazon S3Puede configurar el flujo de entrega de Kinesis Data Firehose para entregar datos a un destino Amazon S3que pertenezca a una cuenta de AWS diferente. El siguiente procedimiento muestra un ejemplo de cómoconfigurar un flujo de entrega de Kinesis Data Firehose propiedad de la cuenta A para entregar datos a unbucket de Amazon S3 propiedad de la cuenta B.

1. Cree un rol de IAM en la cuenta A siguiendo los pasos descritos en Conceder a Kinesis Firehoseacceso a un destino de Amazon S3.

Note

En este caso, el bucket de Amazon S3 especificado en la política de acceso es propiedad decuenta B. Asegúrese de añadir s3:PutObjectAcl a la lista de acciones de Amazon S3 enla política de acceso que concede a la cuenta B acceso completo a los objetos entregadospor Amazon Kinesis Data Firehose.

2. Para permitir el acceso desde el rol de IAM creado anteriormente, cree una política de bucket deS3 en la cuenta B. El código siguiente es un ejemplo de la política del bucket. Para obtener másinformación, consulte Uso de las políticas de bucket y de usuario.

{

"Version": "2012-10-17", "Id": "PolicyID", "Statement": [ { "Sid": "StmtID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountA-id:role/iam-role-name" }, "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ]}

3. Cree un flujo de entrega de Kinesis Data Firehose en la cuenta A con el rol de IAM que creó en elpaso 1.

Entrega entre cuentas a un destino de Amazon ESPuede utilizar AWS CLI o las API de Kinesis Data Firehose para crear un flujo de entrega en una cuentade AWS con un destino de Amazon ES en otra cuenta. El siguiente procedimiento muestra un ejemplo de

41

Page 47: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresUso de etiquetas para controlar el acceso

cómo puede crear un flujo de entrega de Kinesis Data Firehose en la cuenta A y configurarlo para entregardatos a un destino de Amazon ES propiedad de la cuenta B.

1. Cree un rol de IAM en la cuenta A siguiendo los pasos que se describen en the section called“Concesión de acceso a Kinesis Data Firehose a un destino público de Amazon ES” (p. 36).

2. Para permitir el acceso desde el rol de IAM que creó en el paso anterior, cree una política de AmazonES en la cuenta B. El siguiente JSON es un ejemplo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-ID:role/firehose_delivery_role " }, "Action": "es:ESHttpGet", "Resource": [ "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_all/_settings", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_cluster/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_mapping/roletest", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/*/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_stats" ] } ]}

3. Cree un flujo de entrega de Kinesis Data Firehose en la cuenta A con el rol de IAM que creó en elpaso 1. Al crear el flujo de entrega, utilice la AWS CLI o las API de Kinesis Data Firehose y especifiqueel campo ClusterEndpoint en lugar de DomainARN para Amazon ES.

Note

Para crear un flujo de entrega en una cuenta de AWS con un destino de Amazon ES en otracuenta, debe utilizar la AWS CLI o las API de Kinesis Data Firehose. No puede usar la Consola deadministración de AWS para crear este tipo de configuración entre cuentas.

Uso de etiquetas para controlar el accesoPuede utilizar el elemento opcional Condition (o el bloque Condition) en una política de IAM paraajustar el acceso a las operaciones de Kinesis Data Firehose en función de las claves y los valores delas etiquetas. En las siguientes subsecciones, se describe cómo hacerlo para las distintas operacionesde Kinesis Data Firehose. Para obtener más información sobre el uso del elemento Condition y losoperadores que puede utilizar dentro de él, consulte Elementos de política JSON de IAM: Condition.

CreateDeliveryStream y TagDeliveryStreamPara las operaciones CreateDeliveryStream y TagDeliveryStream, utilice la clave de condiciónaws:RequestTag. En el ejemplo siguiente, MyKey y MyValue representan la clave y el valorcorrespondiente de una etiqueta.

42

Page 48: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresUso de etiquetas para controlar el acceso

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:CreateDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } } ]}

UntagDeliveryStreamPara la operación UntagDeliveryStream, utilice la clave de condición aws:TagKeys. En el ejemplosiguiente, MyKey es un ejemplo de clave de etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ]}

ListDeliveryStreamsNo se puede utilizar el control de acceso basado en etiquetas con ListDeliveryStreams.

Otras operaciones de Kinesis Data FirehosePara las operaciones de Kinesis Data Firehose distintas de CreateDeliveryStream,TagDeliveryStream, UntagDeliveryStream y ListDeliveryStreams, utilice la clave decondición aws:RequestTag. En el ejemplo siguiente, MyKey y MyValue representan la clave y el valorcorrespondiente de una etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "Null": { "firehose:ResourceTag/MyKey": "MyValue" }

43

Page 49: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo

} ]}

Monitoreo de Amazon Kinesis Data FirehoseKinesis Data Firehose ofrece una funcionalidad de monitorización para las secuencias de entrega. Paraobtener más información, consulte Monitoreo (p. 59).

Validación de la conformidad en Amazon KinesisData Firehose

Auditores externos evalúan la seguridad y la conformidad de Amazon Kinesis Data Firehose como parte devarios programas de conformidad de AWS. Estos incluye SOC, PCI, FedRAMP, HIPAA y otros.

Para obtener una lista de los servicios de AWS en el ámbito de programas de conformidad específicos,consulte Servicios de AWS en el ámbito del programa de conformidad. Para obtener información general,consulte Programas de conformidad de AWS.

Puede descargar los informes de auditoría de terceros utilizando AWS Artifact. Para obtener másinformación, consulte la sección Descarga de informes en AWS Artifact.

Su responsabilidad de conformidad al utilizar Kinesis Data Firehose se determina en función de laconfidencialidad de los datos, los objetivos de conformidad de su empresa, así como de la legislación y losreglamentos aplicables. Si su uso de Kinesis Data Firehose está sujeto a conformidad con normas talescomo HIPAA, PCI o FedRAMP, AWS proporciona recursos para ayudarle:

• Guías de inicio rápido de seguridad y conformidad: estas guías de implementación tratanconsideraciones sobre arquitectura y ofrecen pasos para implementar los entornos de referenciacentrados en la seguridad y la conformidad en AWS.

• Documento técnico sobre arquitectura para seguridad y conformidad de HIPAA: este documento técnicodescribe cómo las empresas pueden utilizar AWS para crear aplicaciones conformes con HIPAA.

• Recursos de conformidad de AWS: este conjunto de manuales y guías podría aplicarse a su sector yubicación.

• AWS Config: este servicio de AWS evalúa en qué medida las configuraciones de los recursos cumplenlas prácticas internas, las directrices del sector y las normativas.

• AWS Security Hub: este servicio de AWS ofrece una vista integral de su estado de seguridad en AWSque le ayuda a comprobar la conformidad con las normas del sector de seguridad y las prácticasrecomendadas.

Resiliencia de Amazon Kinesis Data FirehoseLa infraestructura global de AWS está formada por regiones y zonas de disponibilidad de AWS. Lasregiones de AWS proporcionan varias zonas de disponibilidad físicamente independientes y aisladasque se encuentran conectadas mediante redes con un alto nivel de rendimiento y redundancia, ademásde baja latencia. Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datosque realizan una conmutación por error automática entre zonas de disponibilidad sin interrupciones. Laszonas de disponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que lasinfraestructuras tradicionales de centros de datos únicos o múltiples.

44

Page 50: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRecuperación de desastres

Para obtener más información sobre las zonas de disponibilidad y las regiones de AWS, consulteInfraestructura global de AWS.

Además de la infraestructura global de AWS, Kinesis Data Firehose ofrece varias características que leayudan con sus necesidades de resiliencia y copia de seguridad de los datos.

Recuperación de desastresKinesis Data Firehose se ejecuta en un modo sin servidor y se ocupa de la reducción del rendimiento delhost, la disponibilidad de las zonas de disponibilidad y otros problemas relacionados con la infraestructurarealizando una migración automática. Al ocurrir esto, Kinesis Data Firehose se asegura de que lasecuencia de entrega se migra sin perderse datos.

Seguridad de la infraestructura en Kinesis DataFirehose

Al tratarse de un servicio administrado, Amazon Kinesis Data Firehose está protegido por losprocedimientos de seguridad de red globales de AWS que se describen en el documento técnico AmazonWeb Services: Información general sobre procesos de seguridad.

Puede utilizar llamadas a la API publicadas en AWS para obtener acceso a Kinesis Data Firehose através de la red. Los clientes deben ser compatibles con Transport Layer Security (TLS) 1.0 o una versiónposterior. Le recomendamos TLS 1.2 o una versión posterior. Los clientes también deben ser compatiblescon conjuntos de cifrado con confidencialidad directa total (PFS) tales como Ephemeral Diffie-Hellman(DHE) o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La mayoría de los sistemas modernos comoJava 7 y posteriores son compatibles con estos modos.

Además, las solicitudes deben estar firmadas mediante un ID de clave de acceso y una clave de accesosecreta que esté asociada a una entidad principal de IAM. También puede utilizar AWS Security TokenService (AWS STS) para generar credenciales de seguridad temporales para firmar solicitudes.

Puntos de enlace de la VPC (PrivateLink)Kinesis Data Firehose ofrece soporte para los puntos de enlace de la VPC (PrivateLink). Para obtener másinformación, consulte Uso de Kinesis Data Firehose con AWS PrivateLink (p. 88).

Prácticas recomendadas de seguridad para KinesisData Firehose

Amazon Kinesis Data Firehose ofrece varias características de seguridad a tener en cuenta a la hora dedesarrollar e implementar sus propias políticas de seguridad. Las siguientes prácticas recomendadasson directrices generales y no suponen una solución de seguridad completa. Puesto que es posible queestas prácticas recomendadas no sean adecuadas o suficientes para el entorno, considérelas comoconsideraciones útiles en lugar de como normas.

Implementación del acceso a los privilegios mínimosA la hora de conceder permisos, usted decide quién obtiene qué permisos para ciertos recursos de KinesisData Firehose. Habilite las acciones específicas que desea permitir en dichos recursos. Por lo tanto, debe

45

Page 51: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresUso de roles de IAM

conceder únicamente los permisos obligatorios para realizar una tarea. La implementación del acceso alos requisitos mínimos es esencial a la hora de reducir los riesgos de seguridad y el impacto que podríancausar los errores o los intentos maliciosos.

Uso de roles de IAMLas aplicaciones productoras y cliente deben tener credenciales válidas para obtener acceso a secuenciasde entrega de Kinesis Data Firehose, mientras que su secuencia de entrega de Kinesis Data Firehosedebe tener credenciales válidas para obtener acceso a destinos. No debe almacenar las credenciales deAWS directamente en una aplicación cliente o en un bucket de Amazon S3. Estas son las credenciales alargo plazo que no rotan automáticamente y que podrían tener un impacto empresarial significativo si secomprometen.

En su lugar, tiene que utilizar un rol de IAM para administrar las credenciales temporales de lasaplicaciones cliente y productoras para acceder a las secuencias de entrega de Kinesis Data Firehose.Al utilizar un rol, no tiene que utilizar las credenciales a largo plazo (como un nombre de usuario y unacontraseña o claves de acceso) para acceder a otros recursos.

Para obtener más información, consulte los siguientes temas de la Guía del usuario de IAM:

• Roles de IAM• Situaciones habituales con los roles: usuarios, aplicaciones y servicios

Implementación del cifrado en el servidor en recursosdependientesLos datos en reposo y los datos en tránsito se pueden cifrar en Kinesis Data Firehose. Para obtener másinformación, consulte Protección de los datos (p. 29).

Uso de CloudTrail para monitorizar las llamadas a laAPIKinesis Data Firehose está integrado con AWS CloudTrail, un servicio que registra las acciones deusuarios, roles o servicios de AWS en Kinesis Data Firehose.

Mediante la información que recopila CloudTrail, se puede determinar la solicitud que se envió a KinesisData Firehose, la dirección IP desde la que se realizó la solicitud, quién realizó la solicitud, cuándo larealizó y detalles adicionales.

Para obtener más información, consulte the section called “Registro de llamadas a la API de Kinesis DataFirehose con AWS CloudTrail” (p. 80).

46

Page 52: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresFlujo de transformación de datos

Transformación de datos de AmazonKinesis Data Firehose

Kinesis Data Firehose puede invocar su función de Lambda para transformar los datos entrantes de origeny entregarlos transformados a sus destinos. Puede habilitar la transformación de datos en Kinesis DataFirehose al crear el flujo de entrega.

Flujo de transformación de datosAl habilitar la transformación de datos en Kinesis Data Firehose, Kinesis Data Firehose almacena enbúfer hasta 3 MB de datos entrantes de forma predeterminada. (Para ajustar el tamaño del búfer, use laAPI ProcessingConfiguration con el ProcessorParameter denominado BufferSizeInMBs). Acontinuación, Kinesis Data Firehose invoca la función de Lambda especificada de forma asíncrona concada lote del búfer utilizando el modo de invocación síncrono de AWS Lambda. Los datos transformadosse envían de Lambda a Kinesis Data Firehose. A continuación, Kinesis Data Firehose los envía a susdestinos tan pronto se alcanza el tamaño de almacenamiento en búfer de destino o el intervalo dealmacenamiento en búfer especificado (lo que ocurra primero).

Important

El modo de invocación síncrona de Lambda tiene un límite de tamaño de carga de 6 MB para lasolicitud y la respuesta. Asegúrese de que el tamaño de almacenamiento en búfer para enviar lasolicitud a la función es inferior o igual a 6 MB. Asegúrese también de que la respuesta devueltapor la función no sea superior a 6 MB.

Modelo de estados y transformación de datosTodos los registros transformados de Lambda deben contener los siguientes parámetros. De lo contrario,Kinesis Data Firehose los rechaza y los trata como errores de transformación de datos.

recordId

El ID de registro se transfiere desde Kinesis Data Firehose hacia Lambda durante la invocación. Elregistro transformado debe contener el mismo ID de registro. Cualquier discrepancia entre el ID delregistro original y el del transformado se trata como un error de transformación de datos.

resultado

Es el estado de la transformación de los datos del registro. Los valores posibles son Ok si el registrose ha transformado correctamente, Dropped si la lógica de procesamiento ha omitido el registrointencionadamente y ProcessingFailed si el registro no se ha podido transformar. Si un registrotiene el estado Ok o Dropped, Kinesis Data Firehose considera que se ha procesado correctamente.De lo contrario, Kinesis Data Firehose considera que no se ha podido procesar.

durante mucho tiempo

Es la carga útil de datos transformados después codificarlos en base64.

47

Page 53: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresProyectos de Lambda

Proyectos de LambdaHay proyectos que puede utilizar para crear una función de Lambda para transformación de datos.Algunos de estos proyectos están en la consola de AWS Lambda y otros en el AWS Serverless ApplicationRepository.

Para ver los proyectos disponibles en la consola de AWS Lambda

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.

2. Elija Create function (Crear función) y, a continuación, elija Use a blueprint (Utilizar un proyecto).3. En el campo Blueprints (Proyectos) busque la palabra clave firehose para buscar los proyectos de

Lambda de Kinesis Data Firehose.

Para ver los proyectos que están disponibles en AWS Serverless Application Repository

1. Vaya a AWS Serverless Application Repository.2. Elija Browse all applications.3. En el campo Applications (Aplicaciones) busque la palabra clave firehose.

También puede crear una función de Lambda sin utilizar un proyecto. Consulte Introducción a AWSLambda.

Gestión de errores de transformación de datosSi se produce un error al invocar la función de Lambda por un tiempo de espera de red o porque se haalcanzado el límite de invocaciones Lambda, Kinesis Data Firehose intenta realizar dicha invocación tresveces más de forma predeterminada. Si la invocación no se realiza correctamente, Kinesis Data Firehoseomite ese lote de registros. los trata como registros que no se han podido procesar. Puede especificar oanular las opciones de reintento con las API CreateDeliveryStream o UpdateDestination. Este tipode errores de invocación puede registrarse en Amazon CloudWatch Logs. Para obtener más información,consulte Monitoreo de Kinesis Data Firehose con CloudWatch Logs (p. 73).

Si el estado de la transformación de datos de un registro es ProcessingFailed, Kinesis Data Firehoselo trata como un registro que no ha podido procesarse. Los registros de este tipo de errores puedenemitirse desde la función de Lambda a Amazon CloudWatch Logs. Para obtener más información, consulteAcceso a Amazon CloudWatch Logs para AWS Lambda en la AWS Lambda Developer Guide.

Si ocurre un error durante la transformación de datos, los registros que no se hayan podido procesarse entregan en el bucket de S3, en la carpeta processing-failed. Los registros tienen el siguienteformato:

{ "attemptsMade": "count", "arrivalTimestamp": "timestamp", "errorCode": "code", "errorMessage": "message", "attemptEndingTimestamp": "timestamp", "rawData": "data", "lambdaArn": "arn"}

48

Page 54: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresDuración de una invocación de Lambda

attemptsMade

La cantidad de intentos de solicitud de invocación.arrivalTimestamp

La hora a la que Kinesis Data Firehose recibió el registro.errorCode

El código de error HTTP devuelto por Lambda.errorMessage

El mensaje de error HTTP devuelto por Lambda.attemptEndingTimestamp

La hora a la que Kinesis Data Firehose dejó de intentar las invocaciones de Lambda.rawData

Los datos de registros codificados en base64.lambdaArn

El nombre de recurso de Amazon (ARN) de la función de Lambda.

Duración de una invocación de LambdaKinesis Data Firehose admite un tiempo de invocación de Lambda de hasta cinco minutos. Si funciónLambda tarda más de cinco minutos en completarse, aparece el siguiente error: Firehose encounteredtimeout errors when calling AWS Lambda. The maximum supported function timeout is 5 minutes.(Firehouse encontró errores de tiempo de espera agotado al llamar a AWS Lambda. El tiempo de esperamáximo permitido para la función es de cinco minutos.)

Para obtener información sobre lo que hace Kinesis Data Firehose si se produce un error como este,consulte the section called “Gestión de errores de transformación de datos” (p. 48).

Backup de registros de origenKinesis Data Firehose puede hacer una copia de seguridad de todos los registros no transformados ensu bucket de S3 a la vez que envía los registros transformados a su destino. Puede habilitar el backupde registros de origen al crear o actualizar el flujo de entrega. El backup de los registros de origen no sepuede deshabilitar después de haberlo habilitado.

49

Page 55: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRequisitos de la conversión del formato de registro

Conversión del formato de registro deentrada en Kinesis Data Firehose

Amazon Kinesis Data Firehose puede convertir el formato de los datos de entrada de JSON a ApacheParquet o Apache ORC antes de almacenarlos en Amazon S3. Parquet y ORC son formatos de datos encolumnas que ahorran espacio y permiten unas búsquedas más rápidas en comparación con los formatosorientados a filas como JSON. Si desea convertir un formato de entrada distinto de JSON, como valoresseparados por comas (CSV) o texto estructurado, puede utilizar AWS Lambda para transformarlo primero aJSON. Para obtener más información, consulte Transformación de datos (p. 47).

Temas• Requisitos de la conversión del formato de registro (p. 50)• Elección del deserializador JSON (p. 51)• Elección del serializador (p. 51)• Conversión del formato de registro de entrada (consola) (p. 51)• Conversión del formato de registro de entrada (API) (p. 52)• Control de errores de la conversión del formato de registro (p. 52)• Ejemplo de conversión del formato de registros (p. 53)

Requisitos de la conversión del formato de registroKinesis Data Firehose requiere los tres elementos siguientes para convertir el formato de los datos de losregistros:

• Un deserializador para leer el JSON de los datos de entrada: puede elegir entre SerDe JSON de ApacheHive y SerDe JSON de OpenX.

• Un esquema para determinar cómo interpretar esos datos: utilice AWS Glue para crear un esquema enAWS Glue Data Catalog. A continuación, Kinesis Data Firehose hace referencia a ese esquema y lo usapara interpretar los datos de entrada. Puede utilizar el mismo esquema para configurar tanto KinesisData Firehose como el software de análisis. Para obtener más información, consulte Rellenar AWS GlueData Catalog en la Guía para desarrolladores de AWS Glue.

• Un serializador para convertir los datos al formato de almacenamiento en columnas de destino (Parquetu ORC): puede elegir entre el SerDe de ORC y el SerDe de Parquet.

Important

Si se habilita la conversión del formato de registro, no se puede establecer el destino de KinesisData Firehose como Amazon Elasticsearch Service (Amazon ES), Amazon Redshift o Splunk.Una vez habilitada la conversión de formato, Amazon S3 es el único destino que se puede utilizarpara la secuencia de entrega de Kinesis Data Firehose.

Puede convertir el formato de los datos incluso si agrega los registros antes de enviarlos a Kinesis DataFirehose.

50

Page 56: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresElección del deserializador JSON

Elección del deserializador JSONElija el SerDe JSON de OpenX si el JSON de entrada contiene marcas temporales en los formatossiguientes:

• aaaa-MM-dd'T'HH:mm:ss[.S]'Z', donde la fracción puede tener hasta 9 dígitos: por ejemplo,2017-02-07T15:13:01.39256Z.

• aaaa-[M]M-[d]d HH:mm:ss[.S], donde la fracción puede tener hasta 9 dígitos: por ejemplo, 2017-02-0715:13:01.14.

• Segundos desde fecha de inicio: por ejemplo, 1518033528.• Milisegundos desde fecha de inicio: por ejemplo, 1518033528123.• Segundos desde fecha de inicio con coma flotante: por ejemplo, 1518033528.123.

El SerDe JSON de OpenX puede convertir puntos (.) en guiones bajos (_). También puede convertirclaves JSON a minúsculas antes de deserializarlas. Para obtener más información sobre las opcionesdisponibles con este deserializador a través de Kinesis Data Firehose, consulte OpenXJsonSerDe.

Si no está seguro de qué deserializador elegir, utilice el SerDe JSON de OpenX, a menos que tengamarcas temporales que este no admita.

Si tiene marcas temporales en un formato distinto de los que se han mostrado anteriormente, utiliceel SerDe JSON de Apache Hive. Si elige este deserializador, puede especificar los formatos demarca temporal que va a utilizar. Para ello, siga la sintaxis de los patrones de las cadenas de formatoDateTimeFormat de Joda-Time. Para obtener más información, consulte Class DateTimeFormat.

También puede utilizar el valor especial millis para analizar las marcas temporales enmilisegundos con formato de tiempo Unix. Si no especifica un formato, Kinesis Data Firehose utilizajava.sql.Timestamp::valueOf de forma predeterminada.

El SerDe JSON de Hive no permite lo siguiente:

• Puntos (.) en los nombres de las columnas.• Campos cuyo tipo sea uniontype.• Campos que tienen tipos numéricos en el esquema, pero que son cadenas en el JSON. Por ejemplo, si

el esquema es (un entero) y el JSON es {"a":"123"}, el SerDe de Hive genera un error.

El SerDe de Hive no convierte JSON anidado en cadenas. Por ejemplo, si se tiene {"a":{"inner":1}},no trata {"inner":1} como una cadena.

Elección del serializadorEl serializador que elija depende de sus necesidades empresariales. Para obtener más información sobrelas dos opciones de serializador, consulte ORC SerDe y Parquet SerDe.

Conversión del formato de registro de entrada(consola)

Puede habilitar la conversión del formato de datos en la consola al crear o actualizar una secuenciade entrega de Kinesis. Una vez habilitada la conversión del formato de datos, Amazon S3 es el único

51

Page 57: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConversión del formato de registro de entrada (API)

destino que se puede configurar para la secuencia de entrega. Además, la compresión de AmazonS3 se deshabilita al habilitar la conversión del formato. Sin embargo, la compresión Snappy se realizaautomáticamente como parte del proceso de conversión. El formato de trama de Snappy que Kinesis DataFirehose utiliza en este caso es compatible con Hadoop. Esto significa que puede utilizar los resultados dela compresión Snappy y ejecutar consultas acerca de estos datos en Athena. Para ver el formato de tramade Snappy que Hadoop utiliza, consulte BlockCompressorStream.java.

Para habilitar la conversión del formato de datos de un flujo de entrega de datos

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Kinesis Data Firehose enhttps://console.aws.amazon.com/firehose/.

2. Elija la secuencia de entrega de Kinesis Data Firehose que desea actualizar o cree una nuevasiguiendo los pasos descritos en Creación de un flujo de entrega de Amazon Kinesis DataFirehose (p. 5).

3. En Convert record format (Convertir formato de registro), establezca Record format conversion(Conversión del formato de registro) en Enabled (Habilitado).

4. Elija el formato de salida que desea utilizar. Para obtener más información acerca de las dos opciones,consulte Apache Parquet y Apache ORC.

5. Elija una tabla de AWS Glue para especificar un esquema para los registros de origen. Establezca laregión, la base de datos, la tabla y la versión de la tabla.

Conversión del formato de registro de entrada (API)Si desea que Kinesis Data Firehose convierta el formato de los datos de entrada de JSONa Parquet u ORC, especifique el elemento DataFormatConversionConfiguration opcionalen ExtendedS3DestinationConfiguration o en ExtendedS3DestinationUpdate. Si especificaDataFormatConversionConfiguration, se aplican las siguientes restricciones:

• En BufferingHints, no puede establecer SizeInMBs en un valor inferior a 64 si habilita la conversión delformato de registros. Además, si la conversión de formato no está habilitada, el valor predeterminado es5. El valor pasa a ser 128 cuando se habilita.

• Debe establecer CompressionFormat del tipo de datos ExtendedS3DestinationConfigurationo ExtendedS3DestinationUpdate en UNCOMPRESSED. El valor predeterminado deCompressionFormat es UNCOMPRESSED. Por lo tanto, también puede dejarlo sin especificar enExtendedS3DestinationConfiguration. Los datos se siguen comprimiendo como parte del proceso deserialización utilizando la compresión Snappy de forma predeterminada. El formato de trama de Snappyque Kinesis Data Firehose utiliza en este caso es compatible con Hadoop. Esto significa que puedeutilizar los resultados de la compresión Snappy y ejecutar consultas acerca de estos datos en Athena.Para ver el formato de trama de Snappy que Hadoop utiliza, consulte BlockCompressorStream.java. Alconfigurar el serializador, puede elegir otros tipos de compresión.

Control de errores de la conversión del formato deregistro

Cuando Kinesis Data Firehose no puede analizar o deserializar un registro (por ejemplo, cuando los datosno coinciden con el esquema), los escribe en Amazon S3 con un prefijo de error. Si esta operación deescritura falla, Kinesis Data Firehose la reintenta para siempre, bloqueando cualquier posible entregasubsiguiente. Para cada registro con error, Kinesis Data Firehose escribe un documento JSON con elsiguiente esquema:

{

52

Page 58: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEjemplo de conversión del formato de registros

"attemptsMade": long, "arrivalTimestamp": long, "lastErrorCode": string, "lastErrorMessage": string, "attemptEndingTimestamp": long, "rawData": string, "sequenceNumber": string, "subSequenceNumber": long, "dataCatalogTable": { "catalogId": string, "databaseName": string, "tableName": string, "region": string, "versionId": string, "catalogArn": string }}

Ejemplo de conversión del formato de registrosPara ver un ejemplo de cómo configurar la conversión del formato de registros con AWS CloudFormation,consulte AWS::KinesisFirehose::DeliveryStream.

53

Page 59: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresCreación de una aplicación de Kinesis Data

Analytics que lea datos de una secuencia de entrega

Uso Amazon Kinesis Data AnalyticsCreación de una aplicación de Kinesis DataAnalytics que lea datos de una secuencia deentrega

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Kinesis Data Analytics en https://console.aws.amazon.com/kinesisanalytics.

2. Haga clic en Create application.3. Especifique un nombre para la aplicación y una descripción opcional. A continuación, elija Create

application.4. Elija Connect streaming data.5. En Source (Origen), elija Kinesis Firehose delivery stream (Secuencia de entrega de Kinesis

Firehose).6. En la lista Kinesis Firehose delivery stream (Secuencia de entrega de Kinesis Firehose), elija la

secuencia de entrega que desea que Kinesis Data Analytics procese. También puede elegir Createnew para configurar una nueva secuencia de entrega.

7. Para terminar de configurar su aplicación de Kinesis Data Analytics, consulte Introducción a AmazonKinesis Data Analytics for SQL Applications.

Escribir datos de una aplicación de Kinesis DataAnalytics en una secuencia de entrega

1. Para crear una aplicación de Kinesis Data Analytics, sigas las instrucciones de Introducción a AmazonKinesis Data Analytics for SQL Applications.

2. Abra la consola de Kinesis Data Analytics en https://console.aws.amazon.com/kinesisanalytics.3. En la lista de aplicaciones, elija la aplicación que desea configurar para escribir en una secuencia de

entrega.4. Elija Application details.5. En la parte inferior de la página, elija Connect to a destination.6. Elija Kinesis Firehose delivery stream (Secuencia de entrega de Kinesis Firehose) y, a continuación,

elija una secuencia de entrega existente en la lista o elija Create new para crear una nueva.

54

Page 60: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresFormato de la entrega de datos

Entrega de datos de Amazon KinesisData Firehose

Después de que los datos se envían al flujo de entrega, se entregan automáticamente al destino que elija.

Important

Si utiliza Kinesis Producer Library (KPL) para escribir datos en un flujo de datos de Kinesis, puedeusar la agregación para combinar los registros que se escriben en ese flujo de datos de Kinesis.Si después utiliza esa secuencia de datos como origen de la secuencia de entrega de KinesisData Firehose, Kinesis Data Firehose desagrupa los registros antes de entregarlos en el destino.Si configura la secuencia de entrega de modo que transforme los datos, Kinesis Data Firehosedesagrupa los registros antes de entregarlos a AWS Lambda. Para obtener más información,consulte Desarrollar productores en Amazon Kinesis Data Streams con la Kinesis ProducerLibrary y Agregación en la Guía del desarrollador de Amazon Kinesis Data Streams.

Temas• Formato de la entrega de datos (p. 55)• Frecuencia de la entrega de datos (p. 56)• Gestión de errores de entrega de datos (p. 56)• Formato de nombre de objetos de Amazon S3 (p. 58)• Rotación de índice si el destino es Amazon ES (p. 58)

Formato de la entrega de datosPara la entrega de datos a Amazon Simple Storage Service (Amazon S3), Kinesis Data Firehoseconcatena varios registros entrantes en función de la configuración de almacenamiento en búfer del flujode entrega. A continuación, entrega los registros en Amazon S3 como un objeto de Amazon S3. Puedeañadir un separador de registros al final de cada uno de los registros antes de enviarlo a Kinesis DataFirehose. A continuación, puede dividir un objeto de Amazon S3 entregado en distintos registros.

Para la entrega de datos a Amazon Redshift, Kinesis Data Firehose primero entrega los datos entrantesa su bucket de S3 en el formato descrito anteriormente. A continuación, Kinesis Data Firehose emiteun comando Amazon Redshift COPY para cargar los datos del bucket de S3 en su clúster de AmazonRedshift. Asegúrese de que, después de que Kinesis Data Firehose concatene varios registros entrantesen un objeto de Amazon S3, el objeto de Amazon S3 se pueda copiar en el clúster de Amazon Redshift.Para obtener más información, consulte Parámetros de formato de datos del comando COPY de AmazonRedshift.

Para la entrega de datos a Amazon ES, Kinesis Data Firehose almacena los registros entrantesen un búfer en función de la configuración de almacenamiento en búfer del flujo de entrega. Acontinuación, genera una solicitud masiva de Elasticsearch para indexar varios registros en elclúster de Elasticsearch. Asegúrese de que el registro esté codificado en UTF-8 y aplanado enun objeto JSON de una sola línea antes de enviarlo a Kinesis Data Firehose. Además, la opciónrest.action.multi.allow_explicit_index del clúster de Elasticsearch se debe establecer en true(valor predeterminado) para poder aceptar solicitudes por lotes con un índice explícito que se establecepara cada registro. Para obtener más información, consulte Configuración de opciones avanzadas deAmazon ES en la Guía para desarrolladores de Amazon Elasticsearch Service.

55

Page 61: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresFrecuencia de la entrega de datos

Para la entrega de datos a Splunk, Kinesis Data Firehose concatena los bytes que se envían. Si deseadelimitadores en los datos, como, por ejemplo, un carácter de nueva línea, debe insertarlos usted mismo.Asegúrese de que Splunk esté configurado para analizar dichos delimitadores.

Frecuencia de la entrega de datosCada destino de Kinesis Data Firehose tiene su propia frecuencia de entrega de datos.

Amazon S3

La frecuencia de entrega de datos a Amazon S3 está determinada por los valores de Buffer size(Tamaño de búfer) y Buffer interval (Intervalo de búfer) de Amazon S3 configurados para el flujode entrega. Kinesis Data Firehose almacena en búfer los datos entrantes antes de entregarlos aAmazon S3. Puede configurar los valores de Amazon S3 Buffer size (Tamaño de búfer) (entre 1 y128 MB) o Buffer interval (Intervalo de búfer) (entre 60 y 900 segundos). La condición que primero secumpla desencadenará la entrega de datos a Amazon S3. Cuando la entrega de datos en el destinose realiza a una velocidad inferior a la de la escritura de datos en el flujo de entrega, Kinesis DataFirehose aumenta el tamaño del búfer de forma dinámica. Así puede alcanzar la velocidad adecuada yasegurarse de que todos los datos se entregan en el destino.

Amazon Redshift

La frecuencia de las operaciones de copia de datos COPY de Amazon S3 a Amazon Redshift estádeterminada por la velocidad a la que el clúster de Amazon Redshift puede finalizar el comandoCOPY. Si quedan datos por copiar, Kinesis Data Firehose envía un nuevo comando COPY tan prontocomo Amazon Redshift termine correctamente el comando COPY anterior.

Amazon Elasticsearch Service

La frecuencia de entrega de datos a Amazon ES está determinada por los valores de Buffer size(Tamaño de búfer) y Buffer interval (Intervalo de búfer) de Elasticsearch configurados para el flujo deentrega. Kinesis Data Firehose guarda en búfer los datos entrantes antes de entregarlos a AmazonES. Puede configurar los valores de Buffer size (Tamaño de búfer) (1–100 MB) o Buffer interval(Intervalo de búfer) (60–900 segundos) de Elasticsearch y la condición que se cumpla primerodisparará la entrega de datos a Amazon ES.

Splunk

Kinesis Data Firehose almacena en búfer los datos de entrada antes de entregarlos a Splunk. Eltamaño del búfer es 5 MB y su intervalo, 60 segundos. La condición que primero se cumpla dispararála entrega de datos a Splunk. El tamaño del búfer y el intervalo no se pueden configurar. Los valoresindicados son los óptimos.

Gestión de errores de entrega de datosCada destino de Kinesis Data Firehose tiene su propia gestión de errores de entrega de datos.

Amazon S3

La entrega de datos al bucket de S3 podría generar errores por varias razones. Por ejemplo, esposible que el bucket ya no exista, que el rol de IAM adoptado por Kinesis Data Firehose no tengaacceso al bucket, que se haya producido un error de red o cualquier otro evento parecido. En esoscasos, Kinesis Data Firehose intenta realizar de nuevo la entrega durante un máximo de 24 horashasta que se completa. El tiempo máximo de almacenamiento de datos de Kinesis Data Firehosees de 24 horas. Si, una vez transcurridas esas 24 horas, no se pueden entregar los datos, estos sepierden.

56

Page 62: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresGestión de errores de entrega de datos

Amazon Redshift

Si un destino es Amazon Redshift, puede especificar durante cuánto tiempo reintentar la entrega (0–7200 segundos) al crear el flujo de entrega.

La entrega de datos al clúster de Amazon Redshift podría generar errores por varias razones. Porejemplo, puede que haya una configuración de clúster incorrecta en el flujo de entrega, que un clústeresté en mantenimiento o que se haya producido un error de red. En esos casos, Kinesis Data Firehoseintenta realizar de nuevo la entrega durante el tiempo especificado y, si no lo consigue, omite eselote de objetos de Amazon S3. La información de los objetos ignorados se entrega al bucket de S3en forma de archivo de manifiesto, en la carpeta errors/, que puede utilizar para reposicionesmanuales. Si desea información acerca de cómo copiar datos manualmente con COPY a partir de losarchivos de manifiesto, consulte Utilizar un manifiesto para especificar archivos de datos.

Amazon Elasticsearch Service

Si el destino es Amazon ES, puede especificar durante cuánto tiempo reintentar la entrega (0–7200segundos) al crear el flujo de entrega.

La entrega de datos al clúster de Amazon ES podría generar errores por varias razones. Por ejemplo,que haya una configuración de clúster de Amazon ES incorrecta en el flujo de entrega, que el clústerde Amazon ES esté en mantenimiento, que se haya producido un error de red o cualquier otro eventoparecido. En estos casos, Kinesis Data Firehose reintenta la entrega durante el tiempo especificado y,si no lo consigue, ignora la solicitud de indexación. Los documentos ignorados se entregan al bucketde S3 en forma de archivo de manifiesto, en la carpeta elasticsearch_failed/, que puede utilizarpara reposiciones manuales. Cada documento tiene el siguiente formato JSON:

{ "attemptsMade": "(number of index requests attempted)", "arrivalTimestamp": "(the time when the document was received by Firehose)", "errorCode": "(http error code returned by Elasticsearch)", "errorMessage": "(error message returned by Elasticsearch)", "attemptEndingTimestamp": "(the time when Firehose stopped attempting index request)", "esDocumentId": "(intended Elasticsearch document ID)", "esIndexName": "(intended Elasticsearch index name)", "esTypeName": "(intended Elasticsearch type name)", "rawData": "(base64-encoded document data)"}

Splunk

Cuando Kinesis Data Firehose envía datos a Splunk, espera a recibir la confirmación de Splunk. Si seproduce un error o la confirmación no llega dentro del periodo de tiempo de espera de confirmación,Kinesis Data Firehose pone en marcha el contador de tiempo de reintento. Continúa intentándolohasta que se agota el tiempo de reintento. Después de eso, Kinesis Data Firehose considera quese trata de un error de entrega de datos y crea una copia de seguridad de los datos en el bucket deAmazon S3.

Cada vez que Kinesis Data Firehose envía datos a Splunk, ya sea en el intento inicial o en unreintento, reinicia el contador de tiempo de espera de confirmación. A continuación, espera a quellegue una confirmación desde Splunk. Aunque se agote el tiempo de reintento, Kinesis Data Firehosesigue esperando la confirmación hasta que lo recibe o hasta que finaliza el tiempo de espera deconfirmación. Si se agota el tiempo de espera de confirmación, Kinesis Data Firehose determina siqueda tiempo en el contador de reintento. Si queda tiempo, vuelve a intentarlo y repite la lógica hastaque recibe una confirmación o determina que el tiempo de reintento se ha agotado.

Un error de recepción de una confirmación no es el único tipo de error de entrega de datos quepuede producirse. Para obtener información sobre los demás tipos de errores de entrega de datos,consulte Errores de entrega de datos relacionados con Splunk. Cualquier error de entrega de datosdesencadenará la lógica de reintentos si el tiempo de reintento es mayor que 0.

57

Page 63: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresFormato de nombre de objetos de Amazon S3

A continuación se muestra un ejemplo de registro de error.

{ "attemptsMade": 0, "arrivalTimestamp": 1506035354675, "errorCode": "Splunk.AckTimeout", "errorMessage": "Did not receive an acknowledgement from HEC before the HEC acknowledgement timeout expired. Despite the acknowledgement timeout, it's possible the data was indexed successfully in Splunk. Kinesis Firehose backs up in Amazon S3 data for which the acknowledgement timeout expired.", "attemptEndingTimestamp": 13626284715507, "rawData": "MiAyNTE2MjAyNzIyMDkgZW5pLTA1ZjMyMmQ1IDIxOC45Mi4xODguMjE0IDE3Mi4xNi4xLjE2NyAyNTIzMyAxNDMzIDYgMSA0MCAxNTA2MDM0NzM0IDE1MDYwMzQ3OTQgUkVKRUNUIE9LCg==", "EventId": "49577193928114147339600778471082492393164139877200035842.0"}

Formato de nombre de objetos de Amazon S3Kinesis Data Firehose agrega la hora UTC en formato YYYY/MM/DD/HH como prefijo antes de escribir losobjetos en Amazon S3. Este prefijo crea una jerarquía lógica en el bucket, en la que cada barra inclinada(/) crea un nivel jerárquico. Puede modificar esta estructura especificando un prefijo personalizado. Paraobtener información sobre cómo especificar un prefijo personalizado, consulte Prefijos de Amazon S3personalizados (p. 85).

El nombre de objeto de Amazon S3 sigue el patrón DeliveryStreamName-DeliveryStreamVersion-YYYY-MM-DD-HH-MM-SS-RandomString, donde DeliveryStreamVersion comienza por 1 y aumentade uno en uno a medida que se producen cambios en la configuración del flujo de entrega de Kinesis DataFirehose. Puede cambiar las configuraciones de flujos de entrega (por ejemplo, el nombre del bucket deS3, las sugerencias de almacenamiento en búfer, la compresión y el cifrado). Puede hacerlo mediante laconsola de Kinesis Data Firehose o la operación UpdateDestination de la API.

Rotación de índice si el destino es Amazon ESSi el destino es Amazon ES, puede especificar una opción de rotación de índice basada en tiempo. Lascinco opciones disponibles son: NoRotation, OneHour, OneDay, OneWeek o OneMonth.

En función de la opción de rotación seleccionada, Kinesis Data Firehose añadirá una parte de la marcade tiempo de llegada UTC al nombre de índice especificado. También rota la marca de tiempo añadida enconsecuencia. El siguiente ejemplo muestra el nombre de índice resultante de cada opción de rotación deíndice dentro de Amazon ES, donde el nombre de índice especificado es myindex y la marca de tiempo dellegada es 2016-02-25T13:00:00Z.

RotationPeriod IndexName

NoRotation myindex

OneHour myindex-2016-02-25-13

OneDay myindex-2016-02-25

OneWeek myindex-2016-w08

OneMonth myindex-2016-02

58

Page 64: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo con métricas de CloudWatch

Monitoreo de Amazon Kinesis DataFirehose

Amazon Kinesis Data Firehose se puede monitorear mediante las siguientes características:

• Métricas de Amazon CloudWatch (p. 59): Kinesis Data Firehoseenvía métricas de AmazonCloudWatch personalizadas con monitoreo detallado para cada secuencia de entrega.

• Amazon CloudWatch Logs (p. 73) Kinesis Data Firehose envía registros de CloudWatchpersonalizados con monitoreo detallado de cada secuencia de entrega.

• Agente de Kinesis (p. 79) el agente de Kinesis publica métricas de CloudWatch personalizadas queayudan a determinar si el agente funciona según lo previsto.

• Registro e historial de la API (p. 80): Kinesis Data Firehose utiliza AWS CloudTrail para registrar lasllamadas a la API y almacenar los datos en un bucket de Amazon S3, y para mantener el historial dellamadas a la API.

Monitoreo de Kinesis Data Firehose con métricasde CloudWatch

Kinesis Data Firehose se integra con las métricas de Amazon CloudWatch para recopilar, ver y analizar lasmétricas de CloudWatch correspondientes a sus Flujo de entrega de Kinesis Data Firehose. Por ejemplo,puede monitorear las métricas IncomingBytes y IncomingRecords para realizar un seguimiento de losdatos incorporados en Kinesis Data Firehose procedentes de productores de datos.

Las métricas configuradas para las Flujo de entrega de Kinesis Data Firehoses y los agentes se recopilany envían automáticamente a CloudWatch cada cinco minutos. Las métricas se archivan durante dossemanas; después de ese periodo, los datos se descartan.

Las métricas recopiladas para las Flujo de entrega de Kinesis Data Firehoses son gratuitas. Para obtenerinformación acerca de las métricas del agente de Kinesis, consulte Monitoreo del estado del agente deKinesis (p. 79).

Temas• Métricas de entrega de datos de CloudWatch (p. 60)• Métricas de adquisición de datos (p. 65)• Métricas de CloudWatch de nivel de API (p. 68)• Métricas de CloudWatch para transformación de datos (p. 70)• Métricas de CloudWatch para la conversión del formato (p. 70)• Métricas de CloudWatch de cifrado del lado del servidor (SSE) (p. 71)• Dimensiones para Kinesis Data Firehose (p. 71)• Métricas de uso de Kinesis Data Firehose (p. 71)• Acceso a las métricas de CloudWatch para Kinesis Data Firehose (p. 72)

59

Page 65: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de entrega de datos de CloudWatch

• Prácticas recomendadas con alarmas de CloudWatch (p. 73)• Monitoreo de Kinesis Data Firehose con CloudWatch Logs (p. 73)• Monitoreo del estado del agente de Kinesis (p. 79)• Registro de llamadas a la API de Kinesis Data Firehose con AWS CloudTrail (p. 80)

Métricas de entrega de datos de CloudWatchEl espacio de nombres AWS/Firehose incluye las siguientes métricas de nivel de servicio. Si los valoresmedios de BackupToS3.Success, DeliveryToS3.Success, DeliveryToSplunk.Success,DeliveryToElasticsearch.Success o DeliveryToRedshift.Success son un poco menores, esono indica que haya pérdida de datos. Kinesis Data Firehose reintenta los errores de entrega y no avanzahasta que los registros se entreguen correctamente al destino configurado o al bucket de S3 de copia deseguridad.

Entrega a Amazon ES

Métrica Descripción

DeliveryToElasticsearch.Bytes El número de bytes indexados en Amazon ES durante elperiodo de tiempo especificado.

Unidades: bytes

DeliveryToElasticsearch.DataFreshnessLa antigüedad (desde que se incorporó en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valor sehan enviado a Amazon ES.

Unidades: segundos

DeliveryToElasticsearch.Records El número de registros indexados en Amazon ES durante elperiodo de tiempo especificado.

Unidades: recuento

DeliveryToElasticsearch.Success La suma de los registros indexados correctamente conrespecto a la suma de los registros que se intentaron indexar.

DeliveryToS3.Bytes El número de bytes enviados a Amazon S3 durante el periodode tiempo especificado. Kinesis Data Firehose solo emite estamétrica cuando habilita la copia de seguridad para todos losdocumentos.

Unidades: recuento

DeliveryToS3.DataFreshness La antigüedad (desde que se incorporó en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valorse han enviado al bucket de S3. Kinesis Data Firehose emiteesta métrica sólo cuando habilita la copia de seguridad paratodos los documentos.

Unidades: segundos

DeliveryToS3.Records El número de registros enviados a Amazon S3 durante elperiodo de tiempo especificado. Kinesis Data Firehose solo

60

Page 66: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de entrega de datos de CloudWatch

Métrica Descripciónemite esta métrica cuando habilita la copia de seguridad paratodos los documentos.

Unidades: recuento

DeliveryToS3.Success La suma de comandos put de Amazon S3 ejecutadoscorrectamente con respecto a la suma de todos los comandosput de Amazon S3. Kinesis Data Firehose emite siempreestas métricas independientemente de si hay una copia deseguridad habilitada para todos los documentos o solo paralos documentos con errores.

Entrega a Amazon Redshift

Métrica Descripción

DeliveryToRedshift.Bytes El número de bytes copiados en Amazon Redshift durante elperiodo de tiempo especificado.

Unidades: recuento

DeliveryToRedshift.Records El número de registros copiados en Amazon Redshift duranteel periodo de tiempo especificado.

Unidades: recuento

DeliveryToRedshift.Success La suma de comandos COPY de Amazon Redshift ejecutadoscorrectamente con respecto a la suma de todos los comandosCOPY de Amazon Redshift.

DeliveryToS3.Bytes El número de bytes enviados a Amazon S3 durante el periodode tiempo especificado.

Unidades: bytes

DeliveryToS3.DataFreshness La antigüedad (desde que se incorporó en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valor sehan enviado al bucket de S3.

Unidades: segundos

DeliveryToS3.Records El número de registros enviados a Amazon S3 durante elperiodo de tiempo especificado.

Unidades: recuento

DeliveryToS3.Success La suma de comandos put de Amazon S3 ejecutadoscorrectamente con respecto a la suma de todos los comandosput de Amazon S3.

BackupToS3.Bytes El número de bytes enviados a Amazon S3 para copia deseguridad durante el periodo de tiempo especificado. KinesisData Firehose emite esta métrica cuando la transformaciónde datos y la copia de seguridad están habilitadas para losdestinos Amazon S3.

61

Page 67: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de entrega de datos de CloudWatch

Métrica DescripciónUnidades: recuento

BackupToS3.DataFreshness La antigüedad (desde que se introdujo en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Cualquier registro anterior a estaantigüedad se ha entregado al bucket de Amazon S3 paracopia de seguridad. Kinesis Data Firehose emite esta métricacuando la transformación de datos y la copia de seguridadestán habilitadas en Amazon S3.

Unidades: segundos

BackupToS3.Records El número de registros enviados a Amazon S3 para copia deseguridad durante el periodo de tiempo especificado. KinesisData Firehose emite esta métrica cuando la transformación dedatos está habilitada para los destinos de Amazon S3.

Unidades: recuento

BackupToS3.Success Suma de los comandos put de Amazon S3 ejecutadoscorrectamente de la copia de seguridad con respecto a lasuma de todos los comandos put de copia de seguridad deAmazon S3. Kinesis Data Firehose emite esta métrica cuandola transformación de datos y la copia de seguridad estánhabilitadas para Amazon S3.

Entrega a Amazon S3Las métricas de la tabla siguiente están relacionadas con la entrega a Amazon S3 cuando es el destinoprincipal del flujo de entrega.

Métrica Descripción

DeliveryToS3.Bytes El número de bytes enviados a Amazon S3 durante el periodode tiempo especificado.

Unidades: bytes

DeliveryToS3.DataFreshness La antigüedad (desde que se incorporó en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valor sehan enviado al bucket de S3.

Unidades: segundos

DeliveryToS3.Records El número de registros enviados a Amazon S3 durante elperiodo de tiempo especificado.

Unidades: recuento

DeliveryToS3.Success La suma de comandos put de Amazon S3 ejecutadoscorrectamente con respecto a la suma de todos los comandosput de Amazon S3.

BackupToS3.Bytes El número de bytes enviados a Amazon S3 para la copia deseguridad durante el período de tiempo especificado. Kinesis

62

Page 68: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de entrega de datos de CloudWatch

Métrica DescripciónData Firehose emite esta métrica cuando se habilita la copiade seguridad (que solo es posible cuando la transformaciónde datos también está habilitada).

Unidades: recuento

BackupToS3.DataFreshness La antigüedad (desde que se introdujo en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Cualquier registro anterior a estaantigüedad se ha entregado al bucket de Amazon S3 paracopia de seguridad. Kinesis Data Firehose emite esta métricacuando la copia de seguridad está activada (lo que soloes posible cuando también se habilita la transformación dedatos).

Unidades: segundos

BackupToS3.Records El número de registros enviados a Amazon S3 para la copiade seguridad durante el período de tiempo especificado.Kinesis Data Firehose emite esta métrica cuando se habilitala copia de seguridad (que solo es posible cuando latransformación de datos también está habilitada).

Unidades: recuento

BackupToS3.Success Suma de los comandos put de Amazon S3 ejecutadoscorrectamente de la copia de seguridad con respecto a lasuma de todos los comandos put de copia de seguridad deAmazon S3. Kinesis Data Firehose emite esta métrica cuandose habilita la copia de seguridad (lo que solo es posiblecuando también se habilita la transformación de datos).

Entrega a Splunk

Métrica Descripción

DeliveryToSplunk.Bytes El número de bytes enviados a Splunk durante el periodo detiempo especificado.

Unidades: bytes

DeliveryToSplunk.DataAckLatency La duración aproximada que se tarda en recibir laconfirmación desde Splunk después de que KinesisData Firehose envía los datos. La tendencia crecienteo decreciente de esta métrica es más útil que el valoraproximado absoluto. Las tendencias crecientes puedenindicar velocidades de indexación y de reconocimiento máslentas de los indexadores de Splunk.

Unidades: segundos

DeliveryToSplunk.DataFreshness La antigüedad (desde que se introdujo en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valor sehan enviado a Splunk.

63

Page 69: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de entrega de datos de CloudWatch

Métrica DescripciónUnidades: segundos

DeliveryToSplunk.Records El número de registros enviados a Splunk durante el periodode tiempo especificado.

Unidades: recuento

DeliveryToSplunk.Success La suma de los registros indexados correctamente conrespecto a la suma de los registros que se intentaron indexar.

DeliveryToS3.Success La suma de comandos put de Amazon S3 ejecutadoscorrectamente con respecto a la suma de todos los comandosput de Amazon S3. Esta métrica se emite cuando se habilitala copia de seguridad en Amazon S3.

BackupToS3.Bytes El número de bytes entregados Amazon S3 para la copia deseguridad durante el período de tiempo especificado. KinesisData Firehose emite esta métrica cuando el flujo de entregaestá configurado para realizar una copia de seguridad detodos los documentos.

Unidades: recuento

BackupToS3.DataFreshness La antigüedad (desde que se introdujo en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Cualquier registro anterior a estaantigüedad se ha entregado al bucket de Amazon S3 paracopia de seguridad. Kinesis Data Firehose emite esta métricacuando el flujo de entrega está configurado para realizar unacopia de seguridad de todos los documentos.

Unidades: segundos

BackupToS3.Records El número de registros entregados a Amazon S3 para la copiade seguridad durante el período de tiempo especificado.Kinesis Data Firehose emite esta métrica cuando el flujo deentrega está configurado para realizar una copia de seguridadde todos los documentos.

Unidades: recuento

BackupToS3.Success Suma de los comandos put de Amazon S3 ejecutadoscorrectamente de la copia de seguridad con respecto a lasuma de todos los comandos put de copia de seguridad deAmazon S3. Kinesis Data Firehose emite esta métrica cuandose configura el flujo de entrega para realizar una copia deseguridad de todos los documentos.

64

Page 70: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de adquisición de datos

Métricas de adquisición de datosAdquisición de datos a través de Kinesis Data Streams

Métrica Descripción

DataReadFromKinesisStream.Bytes Cuando el origen de datos es una secuencia de datos deKinesis, esta métrica indica el número de bytes leídos de esasecuencia. Este número incluye las repeticiones de lecturasdebido a conmutaciones por error.

Unidades: bytes

DataReadFromKinesisStream.RecordsCuando el origen de datos es una secuencia de datos deKinesis, esta métrica indica el número de registros leídosde esa secuencia. Este número incluye las repeticiones delecturas debido a conmutaciones por error.

Unidades: recuento

ThrottledDescribeStream El número total de veces que se limita la operaciónDescribeStream cuando el origen de datos es unasecuencia de datos de Kinesis.

Unidades: recuento

ThrottledGetRecords El número total de veces que se limita la operaciónGetRecords cuando el origen de datos es una secuencia dedatos de Kinesis.

Unidades: recuento

ThrottledGetShardIterator El número total de veces que se limita la operaciónGetShardIterator cuando el origen de datos es unasecuencia de datos de Kinesis.

Unidades: recuento

Adquisición de datos a través de PUT directo

Métrica Descripción

BackupToS3.Bytes El número de bytes enviados a Amazon S3 para copia deseguridad durante el periodo de tiempo especificado. KinesisData Firehose emite esta métrica cuando la transformación dedatos está habilitada para los destinos Amazon S3 o AmazonRedshift.

Unidades: bytes

BackupToS3.DataFreshness La antigüedad (desde que se introdujo en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Cualquier registro anterior a estaantigüedad se ha entregado al bucket de Amazon S3 paracopia de seguridad. Kinesis Data Firehose emite esta métrica

65

Page 71: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de adquisición de datos

Métrica Descripcióncuando la transformación de datos está habilitada para losdestinos Amazon S3 o Amazon Redshift.

Unidades: segundos

BackupToS3.Records El número de registros enviados a Amazon S3 para copia deseguridad durante el periodo de tiempo especificado. KinesisData Firehose emite esta métrica cuando la transformación dedatos está habilitada para los destinos Amazon S3 o AmazonRedshift.

Unidades: recuento

BackupToS3.Success Suma de los comandos put de Amazon S3 colocación paracopia de seguridad con respecto a la suma de todos loscomandos put de copia de seguridad de Amazon S3. KinesisData Firehose emite esta métrica cuando la transformación dedatos está habilitada para los destinos Amazon S3 o AmazonRedshift.

BytesPerSecondLimit Número máximo actual de bytes por segundo que unasecuencia de entrega puede ingerir antes de la limitación.

Unidades: bytes

DataReadFromKinesisStream.Bytes Cuando el origen de datos es una secuencia de datos deKinesis, esta métrica indica el número de bytes leídos de esasecuencia. Este número incluye las repeticiones de lecturasdebido a conmutaciones por error.

Unidades: bytes

DataReadFromKinesisStream.RecordsCuando el origen de datos es una secuencia de datos deKinesis, esta métrica indica el número de registros leídosde esa secuencia. Este número incluye las repeticiones delecturas debido a conmutaciones por error.

Unidades: recuento

DeliveryToElasticsearch.Bytes El número de bytes indexados en Amazon ES durante elperiodo de tiempo especificado.

Unidades: bytes

DeliveryToElasticsearch.DataFreshnessLa antigüedad (desde que se incorporó en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valor sehan enviado a Amazon ES.

Unidades: segundos

DeliveryToElasticsearch.Records El número de registros indexados en Amazon ES durante elperiodo de tiempo especificado.

Unidades: recuento

DeliveryToElasticsearch.Success La suma de los registros indexados correctamente conrespecto a la suma de los registros que se intentaron indexar.

66

Page 72: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de adquisición de datos

Métrica Descripción

DeliveryToRedshift.Bytes El número de bytes copiados en Amazon Redshift durante elperiodo de tiempo especificado.

Unidades: bytes

DeliveryToRedshift.Records El número de registros copiados en Amazon Redshift duranteel periodo de tiempo especificado.

Unidades: recuento

DeliveryToRedshift.Success La suma de comandos COPY de Amazon Redshift ejecutadoscorrectamente con respecto a la suma de todos los comandosCOPY de Amazon Redshift.

DeliveryToS3.Bytes El número de bytes enviados a Amazon S3 durante el periodode tiempo especificado.

Unidades: bytes

DeliveryToS3.DataFreshness La antigüedad (desde que se incorporó en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valor sehan enviado al bucket de S3.

Unidades: segundos

DeliveryToS3.Records El número de registros enviados a Amazon S3 durante elperiodo de tiempo especificado.

Unidades: recuento

DeliveryToS3.Success La suma de comandos put de Amazon S3 ejecutadoscorrectamente con respecto a la suma de todos los comandosput de Amazon S3.

DeliveryToSplunk.Bytes El número de bytes enviados a Splunk durante el periodo detiempo especificado.

Unidades: bytes

DeliveryToSplunk.DataAckLatency La duración aproximada que se tarda en recibir laconfirmación desde Splunk después de que KinesisData Firehose envía los datos. La tendencia crecienteo decreciente de esta métrica es más útil que el valoraproximado absoluto. Las tendencias crecientes puedenindicar velocidades de indexación y de reconocimiento máslentas de los indexadores de Splunk.

Unidades: segundos

DeliveryToSplunk.DataFreshness La antigüedad (desde que se introdujo en Kinesis DataFirehose hasta la fecha actual) del registro más antiguo deKinesis Data Firehose. Los registros anteriores a este valor sehan enviado a Splunk.

Unidades: segundos

67

Page 73: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de CloudWatch de nivel de API

Métrica Descripción

DeliveryToSplunk.Records El número de registros enviados a Splunk durante el periodode tiempo especificado.

Unidades: recuento

DeliveryToSplunk.Success La suma de los registros indexados correctamente conrespecto a la suma de los registros que se intentaron indexar.

IncomingBytes El número de bytes insertados en la secuencia de KinesisData Firehose durante el periodo de tiempo especificado.

Unidades: bytes

IncomingRecords El número de registros insertados en la secuencia de KinesisData Firehose durante el periodo de tiempo especificado.

Unidades: recuento

KinesisMillisBehindLatest Cuando el origen de datos es una secuencia de datos deKinesis, esta métrica indica el número de milisegundos deretraso que lleva el último registro leído con respecto alregistro más reciente de la secuencia de datos de Kinesis.

Unidades: milisegundos

RecordsPerSecondLimit Número máximo actual de registros por segundo que unasecuencia de entrega puede ingerir antes de la limitación.

Unidades: recuento

ThrottledRecords Número de registros que se limitaron porque la ingestión dedatos superó uno de los límites de la secuencia de entrega.

Unidades: recuento

Métricas de CloudWatch de nivel de APIEl espacio de nombres AWS/Firehose incluye las siguientes métricas de nivel de API.

Métrica Descripción

DescribeDeliveryStream.Latency El tiempo que tarda cada operaciónDescribeDeliveryStream, medido durante el periodo detiempo especificado.

Unidades: milisegundos

DescribeDeliveryStream.Requests El número total de solicitudes DescribeDeliveryStream.

Unidades: recuento

IncomingPutRequests Número de solicitudes PutRecord y PutRecordBatch duranteel período de tiempo especificado.

Unidades: recuento

68

Page 74: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de CloudWatch de nivel de API

Métrica Descripción

ListDeliveryStreams.Latency El tiempo que tarda cada operación ListDeliveryStream,medido durante el periodo de tiempo especificado.

Unidades: milisegundos

ListDeliveryStreams.Requests El número total de solicitudes ListFirehose.

Unidades: recuento

PutRecord.Bytes El número de bytes insertados en la secuencia de entrega deKinesis Data Firehose mediante PutRecord en el periodo detiempo especificado.

Unidades: bytes

PutRecord.Latency El tiempo que tarda cada operación PutRecord, medidodurante el periodo de tiempo especificado.

Unidades: milisegundos

PutRecord.Requests El número total de solicitudes PutRecord, que es igual alnúmero total de registros de las operaciones PutRecord.

Unidades: recuento

PutRecordBatch.Bytes El número de bytes insertados en la secuencia de entregade Kinesis Data Firehose mediante PutRecordBatch en elperiodo de tiempo especificado.

Unidades: bytes

PutRecordBatch.Latency El tiempo que tarda cada operación PutRecordBatch,medido durante el periodo de tiempo especificado.

Unidades: milisegundos

PutRecordBatch.Records El número total de registros de las operacionesPutRecordBatch.

Unidades: recuento

PutRecordBatch.Requests El número total de solicitudes PutRecordBatch.

Unidades: recuento

PutRequestsPerSecondLimit Número máximo de solicitudes de solicitudes put por segundoque una secuencia de entrega puede gestionar antes dela limitación. Este número incluye solicitudes PutRecord yPutRecordBatch.

Unidades: recuento

ThrottledDescribeStream El número total de veces que se limita la operaciónDescribeStream cuando el origen de datos es unasecuencia de datos de Kinesis.

Unidades: recuento

69

Page 75: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de CloudWatch para transformación de datos

Métrica Descripción

ThrottledGetRecords El número total de veces que se limita la operaciónGetRecords cuando el origen de datos es una secuencia dedatos de Kinesis.

Unidades: recuento

ThrottledGetShardIterator El número total de veces que se limita la operaciónGetShardIterator cuando el origen de datos es unasecuencia de datos de Kinesis.

Unidades: recuento

UpdateDeliveryStream.Latency El tiempo que tarda cada operaciónUpdateDeliveryStream, medido durante el periodo detiempo especificado.

Unidades: milisegundos

UpdateDeliveryStream.Requests El número total de solicitudes UpdateDeliveryStream.

Unidades: recuento

Métricas de CloudWatch para transformación de datosSi la transformación de datos con Lambda está habilitada, el espacio de nombres AWS/Firehose contienelas siguientes métricas.

Métrica Descripción

ExecuteProcessing.DurationTiempo que tarda Lambda en invocar cada función de Kinesis Data Firehose.

Unidades: milisegundos

ExecuteProcessing.SuccessSuma de las invocaciones correctas de funciones de Lambda en relación conla suma de las invocaciones totales de las funciones de Lambda.

SucceedProcessing.RecordsNúmero de registros procesados correctamente durante el periodo de tiempoespecificado.

Unidades: recuento

SucceedProcessing.BytesNúmero de bytes procesados correctamente durante el periodo de tiempoespecificado.

Unidades: bytes

Métricas de CloudWatch para la conversión delformatoSi la conversión del formato está habilitada, el espacio de nombres AWS/Firehose incluye las siguientesmétricas.

70

Page 76: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétricas de CloudWatch de

cifrado del lado del servidor (SSE)

Métrica Descripción

SucceedConversion.RecordsEl número de registros convertidos correctamente.

Unidades: recuento

SucceedConversion.BytesEl tamaño de los registros convertidos correctamente.

Unidades: bytes

FailedConversion.RecordsEl número de registros que no se han podido convertir.

Unidades: recuento

FailedConversion.BytesEl tamaño de los registros que no se han podido convertir.

Unidades: bytes

Métricas de CloudWatch de cifrado del lado delservidor (SSE)El espacio de nombres AWS/Firehose incluye las siguientes métricas relacionadas con SSE.

Métrica Descripción

KMSKeyAccessDenied El número de veces que el servicio encuentra una excepciónKMSAccessDeniedException del flujo de entrega.

Unidades: recuento

KMSKeyDisabled El número de veces que el servicio encuentra una excepciónKMSDisabledException del flujo de entrega.

Unidades: recuento

KMSKeyInvalidState El número de veces que el servicio encuentra una excepciónKMSInvalidStateException del flujo de entrega.

Unidades: recuento

KMSKeyNotFound El número de veces que el servicio encuentra una excepciónKMSNotFoundException del flujo de entrega.

Unidades: recuento

Dimensiones para Kinesis Data FirehosePara filtrar las métricas por flujo de entrega, utilice la dimensión DeliveryStreamName.

Métricas de uso de Kinesis Data FirehosePuede utilizar las métricas de uso de CloudWatch para proporcionar visibilidad sobre el uso de los recursosde su cuenta. Utilice estas métricas para visualizar el uso actual del servicio en paneles y gráficos deCloudWatch.

71

Page 77: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresAcceso a las métricas de CloudWatch

para Kinesis Data Firehose

Las métricas de uso de cuotas de servicio se encuentran en el espacio de nombres de uso o AWS y serecopilan cada minuto.

Actualmente, el único nombre de métrica de este espacio de nombres que CloudWatch publica esResourceCount. Esta métrica se publica con las dimensiones Service, Class, Type y Resource.

Métrica Descripción

ResourceCount El número de los recursos especificados que se ejecutanen su cuenta. Los recursos se definen por las dimensionesasociadas a la métrica.

La estadística más útil para esta métrica es MAXIMUM, querepresenta el número máximo de recursos utilizados duranteel periodo de un minuto.

Las siguientes dimensiones se utilizan para ajustar las métricas de uso publicadas por Kinesis DataFirehose.

Dimensión Descripción

Service El nombre del servicio de AWS que contiene el recurso. En elcaso de las métricas de uso de Kinesis Data Firehose, el valorde esta dimensión es Firehose.

Class La clase de recurso del que se realiza el seguimiento. Lasmétricas de uso de la API de Kinesis Data Firehose utilizanesta dimensión con un valor de None.

Type El tipo de recurso del que se realiza el seguimiento.Actualmente, cuando la dimensión Service es Firehose, elúnico valor válido para Type es Resource.

Resource Nombre del recurso de AWS. Actualmente, cuando ladimensión Service es Firehose, el único valor válido paraResource es DeliveryStreams.

Acceso a las métricas de CloudWatch para KinesisData FirehoseLas métricas de Kinesis Data Firehose se pueden monitorear con la consola de CloudWatch, la línea decomando o la API de CloudWatch. Los siguientes procedimientos le muestran cómo obtener acceso a lasmétricas a través de los distintos métodos descritos a continuación.

Para obtener acceso a las métricas mediante la consola de CloudWatch

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. Seleccione una región en la barra de navegación.3. En el panel de navegación, seleccione Metrics.4. Elija el espacio de nombres de Firehose.5. Seleccione Delivery Stream Metrics o Firehose Metrics.6. Seleccione una métrica para añadirla al gráfico.

72

Page 78: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPrácticas recomendadas con alarmas de CloudWatch

Para obtener acceso a las métricas mediante la AWS CLI

Utilice los comandos list-metrics y get-metric-statistics.

aws cloudwatch list-metrics --namespace "AWS/Firehose"

aws cloudwatch get-metric-statistics --namespace "AWS/Firehose" \--metric-name DescribeDeliveryStream.Latency --statistics Average --period 3600 \--start-time 2017-06-01T00:00:00Z --end-time 2017-06-30T00:00:00Z

Prácticas recomendadas con alarmas de CloudWatchAñada alarmas de CloudWatch para cuando las siguientes métricas superen el límite de almacenamientoen búfer (15 minutos como máximo):

• DeliveryToS3.DataFreshness

• DeliveryToSplunk.DataFreshness

• DeliveryToElasticsearch.DataFreshness

Además, cree alarmas basadas en las siguientes expresiones matemáticas métricas.

• IncomingBytes (Sum per Minute) / 60 se acerca a un porcentaje de BytesPerSecondLimit.• IncomingRecords (Sum per Minute) / 60 se acerca a un porcentaje deRecordsPerSecondLimit.

• IncomingPutRequests (Sum per Minute) / 60 se acerca a un porcentaje dePutRequestsPerSecondLimit.

Otra métrica para la que recomendamos una alarma es ThrottledRecords.

Para obtener más información sobre cómo solucionar problemas cuando las alarmas están en estadoALARM, consulte Solución de problemas (p. 102).

Monitoreo de Kinesis Data Firehose con CloudWatchLogsKinesis Data Firehose se integra con Amazon CloudWatch Logs para permitirle consultar los registros delos errores que puedan presentarse al invocar las funciones Lambda de transformación o al entregar datos.Puede habilitar el registro de errores en Kinesis Data Firehose al crear la secuencia de entrega.

Si habilita el registro de errores de Kinesis Data Firehose en la consola de Kinesis Data Firehose, se creanun grupo de registros y las secuencias de registros correspondientes para la secuencia de entrega en sunombre. El formato del nombre del grupo de logs es /aws/kinesisfirehose/delivery-stream-name, donde delivery-stream-name es el nombre del flujo de entrega correspondiente. El nombrede la secuencia de registro es S3Delivery, RedshiftDelivery o ElasticsearchDelivery, según el destino deentrega. Los errores de invocación de Lambda de la transformación de datos también se guardan en lasecuencia de registro utilizada para los errores de entrega de datos.

Por ejemplo, si crea una secuencia de entrega "MyStream" con Amazon Redshift como destino y habilitael registro de errores en Kinesis Data Firehose, se crean los siguientes elementos en su nombre: ungrupo de registros denominado aws/kinesisfirehose/MyStream y dos secuencias de registrosdenominadas S3Delivery y RedshiftDelivery. En este ejemplo, la secuencia de registro S3Delivery se usapara registrar errores relacionados con el error de entrega al bucket de S3 intermedio. La secuencia deregistro RedshiftDelivery se usa para registrar errores relacionados con el error de invocación de Lambda yel error de entrega a su clúster de Amazon Redshift.

73

Page 79: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo con CloudWatch Logs

Si habilita el registro de errores en Kinesis Data Firehose mediante la AWS CLI o un SDK de AWSutilizando la configuración de CloudWatchLoggingOptions, debe crear antes un grupo y una secuenciade registros. Le recomendamos destinar el grupo y la secuencia de registros creados exclusivamenteal registro de errores en Kinesis Data Firehose, Asegúrese de que la política de IAM asociada tengael permiso "logs:putLogEvents". Para obtener más información, consulte Controlar el acceso conAmazon Kinesis Data Firehose (p. 30).

Tenga en cuenta que Kinesis Data Firehose no garantiza el envío de todos los registros de errores aCloudWatch Logs. Si la tasa de errores de entrega es alta, Kinesis Data Firehose toma muestras de losregistros de errores de entrega antes de enviarlos a CloudWatch Logs.

Se aplica un cargo nominal por los registros de errores enviados a CloudWatch Logs. Para obtener másinformación, consulte Precios de Amazon CloudWatch.

Contenido• Errores de entrega de datos (p. 74)• Errores de invocación Lambda (p. 78)• Acceso a CloudWatch Logs para Kinesis Data Firehose (p. 79)

Errores de entrega de datosA continuación se ofrece una lista de códigos y mensajes de error de entrega de datos según el destinode Kinesis Data Firehose. Cada mensaje de error también describe qué debe hacerse para solucionar elproblema.

Errores• Errores de entrega de datos relacionados con Amazon S3 (p. 74)• Errores de entrega de datos relacionados con Amazon Redshift (p. 75)• Errores de entrega de datos relacionados con Splunk (p. 76)• Errores de entrega de datos relacionados con Amazon Elasticsearch Service (p. 77)

Errores de entrega de datos relacionados con Amazon S3Kinesis Data Firehose puede enviar los siguientes errores relacionados con Amazon S3 a CloudWatchLogs.

Código de error Mensaje de error e información

S3.KMS.NotFoundException"La clave de AWS KMS proporcionada no se ha encontrado. Si cree que laclave de AWS KMS que está utilizando es válida y que su rol es el adecuado,compruebe si hay un problema con la cuenta a la que está vinculada la clavede AWS KMS."

S3.KMS.RequestLimitExceeded"El límite de solicitudes de KMS por segundo se ha superado al intentar cifrarobjetos de S3. Aumente el límite de solicitudes por segundo."

Para obtener más información, consulte Límites en la AWS Key ManagementService Developer Guide.

S3.AccessDenied "Acceso denegado. Asegúrese de que la política de confianza del rol de IAMproporcionado permita a Kinesis Data Firehose asumir dicho rol, y que lapolítica de acceso permita obtener acceso al bucket de S3."

S3.AccountProblem "Hay un problema con su cuenta de AWS que evita que la operación serealice correctamente. Póngase en contacto con AWS Support."

74

Page 80: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo con CloudWatch Logs

Código de error Mensaje de error e información

S3.AllAccessDisabled"El acceso a la cuenta proporcionada se ha deshabilitado. Póngase encontacto con AWS Support."

S3.InvalidPayer "El acceso a la cuenta proporcionada se ha deshabilitado. Póngase encontacto con AWS Support."

S3.NotSignedUp "La cuenta no está inscrita en Amazon S3. Inscríbase o utilice otra cuenta."

S3.NoSuchBucket "El bucket especificado no existe. Créelo o utilice otro que exista."

S3.MethodNotAllowed "Este recurso no admite el método especificado. Modifique la política delbucket para permitir los permisos de operación de Amazon S3 correctos."

InternalError "Se ha producido un error interno al intentar entregar los datos. Se reintentarála entrega y si el error persiste, se le notificará a AWS para solucionarlo."

Errores de entrega de datos relacionados con Amazon Redshift

Kinesis Data Firehose puede enviar los siguientes errores relacionados con Amazon Redshift aCloudWatch Logs.

Código de error Mensaje de error e información

Redshift.TableNotFound"La tabla a la que cargar datos no se ha encontrado. Asegúrese de que latabla especificada exista."

La tabla de destino en Amazon Redshift a la que deben copiarse datos de S3no se ha encontrado. Tenga en cuenta que Kinesis Data Firehose no crea latabla en Amazon Redshift si no existe.

Redshift.SyntaxError"El comando COPY contiene un error de sintaxis. Reintente el comando."

Redshift.AuthenticationFailed"Error de autenticación del nombre de usuario y la contraseña. Proporcione unnombre de usuario y contraseña válidos."

Redshift.AccessDenied"Acceso denegado. Asegúrese de que la política de confianza del rol de IAMproporcionado permita a Kinesis Data Firehose asumir dicho rol."

Redshift.S3BucketAccessDenied"El comando COPY no ha podido obtener acceso al bucket de S3. Asegúresede que la política de acceso del rol de IAM proporcionado permita obteneracceso al bucket de S3."

Redshift.DataLoadFailed"Se ha producido un error al cargar los datos en la tabla. Revise la tabla desistema STL_LOAD_ERRORS para obtener más información."

Redshift.ColumnNotFound"Una columna del comando COPY no existe en la tabla. Especifique unnombre de columna válido."

Redshift.DatabaseNotFound"No se ha encontrado la base de datos especificada en la configuración dedestino de Amazon Redshift o en la URL de JDBC. Especifique un nombre debase de datos válido."

Redshift.IncorrectCopyOptions"Se han proporcionado opciones de COPY redundantes o en conflicto.Algunas opciones no son compatibles en determinadas combinaciones.Consulte la referencia de comandos COPY para obtener más información."

75

Page 81: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo con CloudWatch Logs

Código de error Mensaje de error e informaciónPara obtener más información, consulte Comando COPY de Amazon Redshiften la Amazon Redshift Database Developer Guide.

Redshift.MissingColumn"El esquema de la tabla incluye una columna definida como NO NULL sin unvalor DEFAULT, pero que no se encuentra en la lista de columnas. Excluyadicha columna, asegúrese de que los datos cargados siempre incluyan unvalor para esta columna o añada un valor predeterminado al esquema deAmazon Redshift de esta tabla."

Redshift.ConnectionFailed"Se ha producido un error en la conexión al clúster de Amazon Redshiftespecificado. Asegúrese de que la configuración de seguridad permitaconexiones a Kinesis Data Firehose, de que el clúster o la base de datosespecificados en la configuración de destino de Amazon Redshift o en la URLde o JDBC sean correctos, y de que el clúster esté disponible."

Redshift.ColumnMismatch"La cantidad de jsonpath del comando COPY y la cantidad de columnas de latabla de destino deben coincidir. Reintente el comando."

Redshift.IncorrectOrMissingRegion"Amazon Redshift intentó utilizar un punto de enlace de región inadecuadopara acceder al bucket de S3. Especifique un valor de región adecuado en lasopciones del comando COPY o asegúrese de que los buckets de S3 y la basede datos de Amazon Redshift se encuentren en la misma región."

Redshift.IncorrectJsonPathsFile"El formato del archivo jsonpath proporcionado no es un formato JSONcompatible. Reintente el comando."

Redshift.MissingS3File"Uno o varios archivos de S3 requeridos por Amazon Redshift se haneliminado del bucket de S3. Revise las políticas del bucket de S3 para borrarcualquier eliminación automática de archivos de S3."

Redshift.InsufficientPrivilege"El usuario no tiene permisos para cargar datos en la tabla. Revise elprivilegio INSERT en los permisos de usuario de Amazon Redshift."

Redshift.ReadOnlyCluster"La consulta no se puede ejecutar porque el sistema está en modo de cambiode tamaño. Intente ejecutar la consulta de nuevo más tarde."

Redshift.DiskFull "No se han podido cargar los datos ya que el disco está lleno. Aumente lacapacidad del clúster de Amazon Redshift o elimine datos que no use paraliberar espacio en el disco."

InternalError "Se ha producido un error interno al intentar entregar los datos. Se reintentarála entrega y si el error persiste, se le notificará a AWS para solucionarlo."

Errores de entrega de datos relacionados con Splunk

Kinesis Data Firehose puede enviar los siguientes errores relacionados con Splunk a CloudWatch Logs.

Código de error Mensaje de error e información

Splunk.ProxyWithoutStickySessions"Si tiene un proxy (ELB u otros) entre Kinesis Data Firehose y el nodo delHEC, debe habilitar sesiones sticky para crear compatibilidad con ACK deHEC."

Splunk.DisabledToken"El token de HEC está deshabilitado. Habilite el token para permitir la entregade datos a Splunk.".

76

Page 82: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo con CloudWatch Logs

Código de error Mensaje de error e información

Splunk.InvalidToken "El token de HEC no es válido. Actualice Kinesis Data Firehose con un tokende HEC válido."

Splunk.InvalidDataFormat"Los datos no están en el formato correcto. Para ver cómo dar a los datos elformato correcto para puntos de enlace de HEC de eventos o sin procesar,consulte Splunk Event Data.".

Splunk.InvalidIndex "El token o la entrada de HEC están configurados con un índice no válido.Compruebe la configuración del índice e inténtelo de nuevo.".

Splunk.ServerError "Error en la entrega de datos a Splunk debido a un error del servidor desde elnodo de HEC. Kinesis Data Firehose intentará volver a enviar los datos si laduración de reintento en su Kinesis Data Firehose es mayor que 0. Si fallantodos los reintentos, Kinesis Data Firehose creará un copia de seguridad delos datos en Amazon S3."

Splunk.DisabledAck "El reconocimiento de indexadores está deshabilitado en el token de HEC.Habilite el reconocimiento de indexadores e inténtelo de nuevo. Para obtenermás información, consulte Enable indexer acknowledgement.".

Splunk.AckTimeout "No recibió ningún reconocimiento de parte del HEC antes de que el tiempode espera de reconocimiento del HEC se agotara. A pesar del tiempo deespera de confirmación, es posible que los datos se indexaran correctamenteen Splunk. Kinesis Data Firehose realiza una copia de seguridad en los datosde Amazon S3 cuyo tiempo de espera de confirmación se agotó."

Splunk.MaxRetriesFailed"Error al entregar datos a Splunk o al recibir confirmación. Compruebe elestado del HEC y vuelva a intentarlo.".

Splunk.ConnectionTimeout"Se ha agotado el tiempo de espera de conexión a Splunk. Podría tratarse deun error temporal y se volverá a intentar la solicitud. Kinesis Data Firehoserealiza una copia de seguridad de los datos en Amazon S3 si se producenerrores en todos los reintentos."

Splunk.InvalidEndpoint"No se ha podido establecer una conexión con el punto de enlace del HEC.Asegúrese de que la URL del punto de enlace del HEC es válida y que sepuede obtener acceso a ella desde Kinesis Data Firehose."

Splunk.ConnectionClosed"No se pueden enviar datos a Splunk debido a un error de conexión.Posiblemente sea un error temporal. Aumentar el tiempo de reintento en laconfiguración de Kinesis Data Firehose podría evitar este tipo de errorestemporales."

Splunk.SSLUnverified"No se ha podido establecer una conexión con el punto de enlace del HEC.El host no coincide con el certificado proporcionadas por el homólogo.Asegúrese de que el certificado y el host son válidos."

Splunk.SSLHandshake "No se ha podido establecer una conexión con el punto de enlace del HEC.Asegúrese de que el certificado y el host son válidos."

Errores de entrega de datos relacionados con Amazon Elasticsearch Service

Si el destino es Amazon ES, Kinesis Data Firehose envía errores a CloudWatch Logs a medida queElasticsearch los devuelve.

77

Page 83: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitoreo con CloudWatch Logs

Errores de invocación LambdaKinesis Data Firehose puede enviar los siguientes errores de invocación Lambda a CloudWatch Logs.

Código de error Mensaje de error e información

Lambda.AssumeRoleAccessDenied"Acceso denegado. Asegúrese de que la política de confianza del rol de IAMproporcionado permita a Kinesis Data Firehose asumir dicho rol."

Lambda.InvokeAccessDenied"Acceso denegado. Asegúrese de que la política de acceso permita obteneracceso a la función Lambda."

Lambda.JsonProcessingException"Se ha producido un error al analizar los registros devueltos de la funciónLambda. Asegúrese de que los registros devueltos sigan el modelo deestados requerido por Kinesis Data Firehose."

Para obtener más información, consulte Modelo de estados y transformaciónde datos (p. 47).

Lambda.InvokeLimitExceeded"Se ha superado el límite de ejecución simultánea de Lambda. Aumente ellímite de ejecución simultánea."

Para obtener más información, consulte Límites de AWS Lambda en la AWSLambda Developer Guide.

Lambda.DuplicatedRecordId"Se han devuelto varios registros con el mismo ID de registro. Asegúrese deque la función Lambda devuelva un ID de registro único para cada registro."

Para obtener más información, consulte Modelo de estados y transformaciónde datos (p. 47).

Lambda.MissingRecordId"Uno o varios ID de registro no se devolverán. Asegúrese de que la funciónLambda devuelva todos los ID de registro recibidos."

Para obtener más información, consulte Modelo de estados y transformaciónde datos (p. 47).

Lambda.ResourceNotFound"La función Lambda especificada no existe. Use otra función que exista."

Lambda.InvalidSubnetIDException"El ID de subred especificado en la configuración de VPC de la funciónLambda no es válido. Asegúrese de que el ID de subred sea válido."

Lambda.InvalidSecurityGroupIDException"El ID del grupo de seguridad especificado en la configuración de VPC de lafunción Lambda no es válido. Asegúrese de que el ID del grupo de seguridadsea válido."

Lambda.SubnetIPAddressLimitReachedException"AWS Lambda no ha podido configurar el acceso a VPC de la funciónLambda ya que una o varias subredes configuradas no tienen direcciones IPdisponibles. Aumente el límite de direcciones IP."

Para obtener más información, consulte Límites de Amazon VPC - VPC ysubredes en la Guía del usuario de Amazon VPC.

Lambda.ENILimitReachedException"AWS Lambda no ha podido crear una interfaz de red elástica (ENI) en laVPC especificada como parte de la configuración de la función Lambda yaque se ha alcanzado el límite de interfaces de red. Aumente el límite deinterfaces de red."

78

Page 84: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMonitorización del estado del agente

Código de error Mensaje de error e informaciónPara obtener más información, consulte Límites de Amazon VPC - Interfacesde red en la Guía del usuario de Amazon VPC.

Acceso a CloudWatch Logs para Kinesis Data FirehosePuede ver los registros de errores relacionados con los errores de entrega de datos de Kinesis DataFirehose en la consola de Kinesis Data Firehose o en la consola de CloudWatch. Los siguientesprocedimientos explican cómo obtener acceso a los logs de errores.

Para obtener acceso a los registros de errores mediante la consola de Kinesis Data Firehose

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Kinesis en https://console.aws.amazon.com/kinesis.

2. Elija Data Firehose en el panel de navegación.3. En la barra de navegación, seleccione una región de AWS.4. Elija un nombre de secuencia de entrega para ir a la página de detalles correspondiente.5. Seleccione Error Log para ver una lista de logs de errores relacionados con los errores de entrega de

datos.

Para obtener acceso a los registros de errores mediante la consola de CloudWatch

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. Seleccione una región en la barra de navegación.3. En el panel de navegación, elija Logs.4. Elija un grupo y una secuencia de registros para ver una lista de los registros de errores relacionados

con el error de entrega de datos.

Monitoreo del estado del agente de KinesisEl agente de Kinesis publica métricas de CloudWatch personalizadas con el espacio de nombresAWSKinesisAgent. Ayuda a determinar si el agente se encuentra en buen estado, si está enviando datos aKinesis Data Firehose tal como se ha especificado y si consume la cantidad adecuada de recursos de CPUy memoria en el productor de datos.

Las métricas como el número de registros y bytes enviados resultan útiles para comprender la velocidad ala que el agente está enviando datos a Flujo de entrega de Kinesis Data Firehose. Cuando estas métricascaen por debajo de los umbrales previstos en determinado porcentaje o pasan a ser cero, esto podríaindicar que existen problemas de configuración, errores de red o problemas con el estado del agente. Lasmétricas como, por ejemplo, el consumo de CPU y memoria de host y los contadores de errores del agenteindican el uso de los recursos por parte del productor y proporcionan información útil sobre posibles erroresde host o de configuración. Por último, el agente también registra excepciones de servicio para ayudar ainvestigar los problemas del agente.

Estas métricas relacionadas con el agente se notifican en la región especificada en la opción deconfiguración del agente cloudwatch.endpoint. Para obtener más información, consulte Ajustes de laconfiguración del agente (p. 20).

Se aplica un cargo nominal por las métricas emitidas desde el agente de Kinesis habilitadas de formapredeterminada. Para obtener más información, consulte Precios de Amazon CloudWatch.

79

Page 85: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRegistro de llamadas a la API de Kinesis

Data Firehose con AWS CloudTrail

Monitoreo con CloudWatchEl agente de Kinesis envía las métricas siguientes a CloudWatch.

Métrica Descripción

BytesSent Cantidad de bytes enviados a la secuencia de entrega de Kinesis DataFirehose en el periodo especificado.

Unidades: bytes

RecordSendAttempts El número de registros que se ha intentado grabar (como primer intento ocomo repetición) en una llamada a PutRecordBatch durante el periodo detiempo especificado.

Unidades: recuento

RecordSendErrors El número de registros que han devuelto un estado de error en una llamadaa PutRecordBatch, incluidos los intentos repetidos, durante el periodo detiempo especificado.

Unidades: recuento

ServiceErrors El número de llamadas a PutRecordBatch que ocasionaron un error deservicio (distinto de un error de limitación controlada) durante el periodoespecificado.

Unidades: recuento

Registro de llamadas a la API de Kinesis DataFirehose con AWS CloudTrailAmazon Kinesis Data Firehose está integrado con AWS CloudTrail, un servicio que proporciona unregistro de las acciones realizadas por un usuario, un rol o un servicio de AWS en Kinesis Data Firehose.CloudTrail captura todas las llamadas a la API de Kinesis Data Firehose como eventos. Las llamadascapturadas incluyen las llamadas desde la consola de Kinesis Data Firehose y las llamadas desde elcódigo a las operaciones de la API de Kinesis Data Firehose. Si crea un registro de seguimiento, puedehabilitar la entrega continua de eventos de CloudTrail a un bucket de Amazon S3, incluidos los eventos deKinesis Data Firehose. Si no configura un registro de seguimiento, puede ver los eventos más recientesen la consola de CloudTrail en el Event history (Historial de eventos). Mediante la información que recopilaCloudTrail, se puede determinar la solicitud que se envió a Kinesis Data Firehose, la dirección IP desde laque se realizó la solicitud, quién la realizó, cuándo la realizó y los detalles adicionales.

Para obtener más información sobre CloudTrail, incluido cómo configurarlo y habilitarlo, consulte la AWSCloudTrail User Guide.

Información de Kinesis Data Firehose en CloudTrailCloudTrail se habilita en una cuenta de AWS al crearla. Cuando se produce una actividad de eventoscompatible en Kinesis Data Firehose, dicha actividad se registra en un evento de CloudTrail junto con loseventos de los demás servicios de AWS en el Event history (Historial de eventos). Puede ver, buscar ydescargar los últimos eventos de la cuenta de AWS. Para obtener más información, consulte Visualizaciónde eventos con el historial de eventos de CloudTrail.

Para mantener un registro continuo de los eventos de la cuenta de AWS, incluidos los eventos de KinesisData Firehose, cree un registro de seguimiento. Un registro de seguimiento permite a CloudTrail enviar

80

Page 86: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRegistro de llamadas a la API de Kinesis

Data Firehose con AWS CloudTrail

archivos de registro a un bucket de Amazon S3. De forma predeterminada, cuando se crea un registrode seguimiento en la consola, este se aplica a todas las regiones de AWS. El registro de seguimientoregistra los eventos de todas las regiones de la partición de AWS y envía los archivos de registro al bucketde Amazon S3 especificado. También puede configurar otros servicios de AWS para analizar y actuar enfunción de los datos de eventos recopilados en los registros de CloudTrail. Para obtener más información,consulte los siguientes temas:

• Introducción a la creación de registros de seguimiento• Servicios e integraciones compatibles con CloudTrail• Configuración de notificaciones de Amazon SNS para CloudTrail• Recibir archivos de registro de CloudTrail de varias regiones y Recepción de archivos de registro de

CloudTrail de varias cuentas

Kinesis Data Firehose admite el registro de las siguientes acciones como eventos en los archivos deregistro de CloudTrail:

• CreateDeliveryStream• DeleteDeliveryStream• DescribeDeliveryStream• ListDeliveryStreams• ListTagsForDeliveryStream• TagDeliveryStream• StartDeliveryStreamEncryption• StopDeliveryStreamEncryption• UntagDeliveryStream• UpdateDestination

Cada entrada de registro o evento contiene información acerca de quién generó la solicitud. La informaciónde identidad del usuario le ayuda a determinar lo siguiente:

• Si la solicitud se realizó con credenciales de usuario raíz o de AWS Identity and Access Management(IAM).

• Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.• Si la solicitud la realizó otro servicio de AWS.

Para obtener más información, consulte el elemento userIdentity de CloudTrail.

Ejemplo: entradas de archivo de registro de Kinesis DataFirehoseUn registro de seguimiento es una configuración que permite la entrega de eventos como archivos deregistro al bucket de Amazon S3 que se especifique. Los archivos de registro de CloudTrail contienenuna o varias entradas de registro. Un evento representa una única solicitud de cualquier origen e incluyeinformación sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud,etcétera. Los archivos de registro de CloudTrail no son un rastro de la pila ordenada de las llamadas a laAPI públicas, por lo que no aparecen en ningún orden específico.

En el ejemplo siguiente, se muestra una entrada de registro de CloudTrail, que ilustra lasacciones CreateDeliveryStream, DescribeDeliveryStream, ListDeliveryStreams,UpdateDestination y DeleteDeliveryStream.

{

81

Page 87: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRegistro de llamadas a la API de Kinesis

Data Firehose con AWS CloudTrail

"Records":[ { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:08:22Z", "eventSource":"firehose.amazonaws.com", "eventName":"CreateDeliveryStream", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "deliveryStreamName":"TestRedshiftStream", "redshiftDestinationConfiguration":{ "s3Configuration":{ "compressionFormat":"GZIP", "prefix":"prefix", "bucketARN":"arn:aws:s3:::firehose-cloudtrail-test-bucket", "roleARN":"arn:aws:iam::111122223333:role/Firehose", "bufferingHints":{ "sizeInMBs":3, "intervalInSeconds":900 }, "encryptionConfiguration":{ "kMSEncryptionConfig":{ "aWSKMSKeyARN":"arn:aws:kms:us-east-1:key" } } }, "clusterJDBCURL":"jdbc:redshift://example.abc123.us-west-2.redshift.amazonaws.com:5439/dev", "copyCommand":{ "copyOptions":"copyOptions", "dataTableName":"dataTable" }, "password":"", "username":"", "roleARN":"arn:aws:iam::111122223333:role/Firehose" } }, "responseElements":{ "deliveryStreamARN":"arn:aws:firehose:us-east-1:111122223333:deliverystream/TestRedshiftStream" }, "requestID":"958abf6a-db21-11e5-bb88-91ae9617edf5", "eventID":"875d2d68-476c-4ad5-bbc6-d02872cfc884", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:08:54Z",

82

Page 88: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRegistro de llamadas a la API de Kinesis

Data Firehose con AWS CloudTrail

"eventSource":"firehose.amazonaws.com", "eventName":"DescribeDeliveryStream", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "deliveryStreamName":"TestRedshiftStream" }, "responseElements":null, "requestID":"aa6ea5ed-db21-11e5-bb88-91ae9617edf5", "eventID":"d9b285d8-d690-4d5c-b9fe-d1ad5ab03f14", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:10:00Z", "eventSource":"firehose.amazonaws.com", "eventName":"ListDeliveryStreams", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "limit":10 }, "responseElements":null, "requestID":"d1bf7f86-db21-11e5-bb88-91ae9617edf5", "eventID":"67f63c74-4335-48c0-9004-4ba35ce00128", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:10:09Z", "eventSource":"firehose.amazonaws.com", "eventName":"UpdateDestination", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "destinationId":"destinationId-000000000001", "deliveryStreamName":"TestRedshiftStream", "currentDeliveryStreamVersionId":"1", "redshiftDestinationUpdate":{ "roleARN":"arn:aws:iam::111122223333:role/Firehose", "clusterJDBCURL":"jdbc:redshift://example.abc123.us-west-2.redshift.amazonaws.com:5439/dev", "password":"", "username":"", "copyCommand":{

83

Page 89: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRegistro de llamadas a la API de Kinesis

Data Firehose con AWS CloudTrail

"copyOptions":"copyOptions", "dataTableName":"dataTable" }, "s3Update":{ "bucketARN":"arn:aws:s3:::firehose-cloudtrail-test-bucket-update", "roleARN":"arn:aws:iam::111122223333:role/Firehose", "compressionFormat":"GZIP", "bufferingHints":{ "sizeInMBs":3, "intervalInSeconds":900 }, "encryptionConfiguration":{ "kMSEncryptionConfig":{ "aWSKMSKeyARN":"arn:aws:kms:us-east-1:key" } }, "prefix":"arn:aws:s3:::firehose-cloudtrail-test-bucket" } } }, "responseElements":null, "requestID":"d549428d-db21-11e5-bb88-91ae9617edf5", "eventID":"1cb21e0b-416a-415d-bbf9-769b152a6585", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:10:12Z", "eventSource":"firehose.amazonaws.com", "eventName":"DeleteDeliveryStream", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "deliveryStreamName":"TestRedshiftStream" }, "responseElements":null, "requestID":"d85968c1-db21-11e5-bb88-91ae9617edf5", "eventID":"dd46bb98-b4e9-42ff-a6af-32d57e636ad1", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" } ]}

84

Page 90: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEl espacio de nombres timestamp

Prefijos personalizados para losobjetos de Amazon S3

Si el destino es Amazon S3, Amazon Elasticsearch Service o Splunk, es posible configurar las claves deobjeto de Amazon S3 utilizadas para entregar datos de Kinesis Data Firehose. Para ello, debe especificarexpresiones que Kinesis Data Firehose evalúa en el momento de la entrega. Las claves de objeto finalestienen el formato <evaluated prefix><suffix>, donde el sufijo tiene el formato <delivery streamname>-<delivery stream version>-<year>-<month>-<day>-<hour>-<minute>-<second>-<uuid><file extension>. No se puede cambiar el campo de sufijo.

Puede utilizar expresiones de las siguientes formas en el prefijo personalizado: !{namespace:value},donde namespace puede ser firehose o timestamp, tal como se explica en las secciones siguientes.

Si un prefijo termina por una barra inclinada, aparece como una carpeta en el bucket de Amazon S3.Para obtener más información, consulte Formato de nombre de objetos de Amazon S3 en la Guía paradesarrolladores de Amazon Kinesis Data Firehose.

El espacio de nombres timestampLos valores válidos para este espacio de nombres son cadenas DateTimeFormatter de Java válidas. Porejemplo, en el año 2018, la expresión !{timestamp:yyyy} se evalúa como 2018.

Cuando se evalúan marcas de tiempo, Kinesis Data Firehose utiliza la marca de tiempo de llegadaaproximada del registro más antiguo incluido en el objeto de Amazon S3 que se va a escribir.

La marca de tiempo está siempre en UTC.

Si se utiliza el espacio de nombres timestamp más de una vez en la misma expresión de prefijo, cadainstancia se evalúa como el mismo instante en el tiempo.

El espacio de nombres firehoseHay dos valores que se pueden utilizar con este espacio de nombres: error-output-type y random-string. En la tabla siguiente, se explica cómo hacerlo.

Los valores del espacio de nombres firehose

Conversión Descripción Ejemplo deentrada

Ejemplo de salida Notas

error-output-type

Se evalúacomo una delas siguientescadenas, enfunción de laconfiguración delflujo de entrega yel motivo del error:{processing-failed,

myPrefix/result=!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd}

myPrefix/result=processing-failed/2018/08/03

El valor error-output-type solose puede utilizaren el campoErrorOutputPrefix.

85

Page 91: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresReglas semánticas

Conversión Descripción Ejemplo deentrada

Ejemplo de salida Notas

elasticsearch-failed, splunk-failed, format-conversion-failed}.

Si lo utiliza másde una vez en lamisma expresión,cada instancia seevalúa como lamisma cadena deerror.

random-string Se evalúa comouna cadenaaleatoria de11 caracteres. Si loutiliza más de unavez en la mismaexpresión, cadainstancia se evalúacomo una cadenaaleatoria nueva.

myPrefix/!{firehose:random-string}/

myPrefix/046b6c7f-0b/Puede utilizarlocon ambos tiposde prefijos.

Puede colocarloal principio dela cadena deformato paraobtener un prefijoaleatorio, que aveces es necesariopara alcanzarun rendimientoextremadamentealto con AmazonS3.

Reglas semánticasLas siguientes reglas se aplican a las expresiones Prefix y ErrorOutputPrefix.

• En el espacio de nombres timestamp, se evalúa cualquier carácter que no esté entre comillas simples.En otras palabras, cualquier cadena encerrada entre comillas simples en el campo de valor se interpretaliteralmente.

• Si se especifica un prefijo que no contiene una expresión de espacio de nombres de marca de tiempo,Kinesis Data Firehose añade la expresión !{timestamp:yyyy/MM/dd/HH/} al valor del campoPrefix.

• La secuencia !{ solo puede aparecer en expresiones !{namespace:value}.• ErrorOutputPrefix únicamente puede ser null si Prefix no contiene ninguna expresión. En este

caso, Prefix evalúa a <specified-prefix>YYYY/MM/DDD/HH/ y ErrorOutputPrefix evalúa a<specified-prefix><error-output-type>YYYY/MM/DDD/HH/. DDD representa el día del año.

• Si especifica una expresión para ErrorOutputPrefix, debe incluir al menos una instancia de !{firehose:error-output-type}.

• Prefix no puede contener !{firehose:error-output-type}.• Una vez evaluados, ni Prefix ni ErrorOutputPrefix pueden tener una longitud superior a

512 caracteres.• Si el destino es Amazon Redshift, Prefix no debe contener expresiones y ErrorOutputPrefix debe

ser null.

86

Page 92: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEjemplos de prefijos

• Si el destino es Amazon Elasticsearch Service o Splunk y no se especifica ErrorOutputPrefix,Kinesis Data Firehose utiliza el campo Prefix para los registros con errores.

• Si el destino es Amazon S3 y se especifica una configuración de copia de seguridad de Amazon S3, loscampos Prefix y ErrorOutputPrefix de la configuración de destino de Amazon S3 se utilizan paralos registros correctos y para los registros con errores, respectivamente. En la configuración de copia deseguridad de Amazon S3, el campo Prefix se utiliza para realizar una copia de seguridad de los datossin procesar, mientras que el campo ErrorOutputPrefix no tiene en cuenta.

Ejemplos de prefijosEjemplos de Prefix y ErrorOutputPrefix

Entrada Prefijo evaluado (a las 10:30 h UTC del 27 deagosto de 2018)

Prefix: sin especificar

ErrorOutputPrefix: myFirehoseFailures/!{firehose:error-output-type}/

Prefix: 2018/08/10/

ErrorOutputPrefix: myFirehoseFailures/processing-failed/

Prefix: !{timestamp:yyyy/MM/dd}

ErrorOutputPrefix: sin especificar

Entrada no válida: ErrorOutputPrefix nopuede ser null si Prefix contiene expresiones

Prefix: myFirehose/DeliveredYear=!{timestamp:yyyy}/anyMonth/rand=!{firehose:random-string}

ErrorOutputPrefix: myFirehoseFailures/!{firehose:error-output-type}/!{timestamp:yyyy}/anyMonth/!{timestamp:dd}

Prefix: myFirehose/DeliveredYear=2018/anyMonth/rand=5abf82daaa5

ErrorOutputPrefix: myFirehoseFailures/processing-failed/2018/anyMonth/10

Prefix: myPrefix/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/

ErrorOutputPrefix: myErrorPrefix/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}

Prefix: myPrefix/year=2018/month=07/day=06/hour=23/

ErrorOutputPrefix: myErrorPrefix/year=2018/month=07/day=06/hour=23/processing-failed

Prefix: myFirehosePrefix

ErrorOutputPrefix: sin especificar

Prefix: myFirehosePrefix/2018/08/27/

ErrorOutputPrefix: myFirehosePrefix/processing-failed/2018/08/27/

87

Page 93: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPuntos de enlace de la VPC de interfaz (AWS

PrivateLink) para Kinesis Data Firehose

Uso de Amazon Kinesis DataFirehose con AWS PrivateLinkPuntos de enlace de la VPC de interfaz (AWSPrivateLink) para Kinesis Data Firehose

Puede utilizar un punto de enlace de la VPC de tipo interfaz para evitar que el tráfico entre la AmazonVPC y Kinesis Data Firehose abandone la red de Amazon. Los puntos de conexión de la VPC de tipointerfaz no requieren una gateway de Internet, un dispositivo NAT, una conexión de VPN ni una conexiónde AWS Direct Connect. Los puntos de enlace de la VPC de tipo interfaz se basan en AWS PrivateLink,una tecnología de AWS que permite la comunicación privada entre los servicios de AWS mediante unainterfaz de red elástica con direcciones IP privadas de su Amazon VPC. Para obtener más información,consulte Amazon Virtual Private Cloud.

Uso de puntos de enlace de la VPC de tipo interfaz(AWS PrivateLink) para Kinesis Data Firehose

Para comenzar, cree un punto de enlace de la VPC de tipo interfaz para que el tráfico de Kinesis DataFirehosede sus recursos de la Amazon VPC comience a circular a través del punto de enlace de la VPCde tipo interfaz. Cuando se crea un punto de conexión, puede asociar una política de punto de enlace quecontrole el acceso a Kinesis Data Firehose. Para obtener más información acerca del uso de políticas paracontrolar el acceso desde un punto de conexión de la VPC a Kinesis Data Firehose, consulte la secciónControlar el acceso a los servicios con puntos de enlace de la VPC.

El siguiente ejemplo muestra cómo puede configurar una función AWS Lambda en una VPC y crear unpunto de enlace de la VPC para que la función pueda comunicarse de manera segura con el servicioKinesis Data Firehose. En este ejemplo, utiliza una política que permite a la función Lambda generar unalista de las secuencias de entrega de la región actual, pero no describir ninguna secuencia de entrega.

Crear un punto de enlace de la VPC

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.

2. En el panel de la VPC, elija Endpoints (Puntos de enlace).3. Elija Create Endpoint.4. En la lista de nombres de servicio, elija com.amazonaws.your_region.kinesis-firehose.5. Elija la VPC y una o varias subredes en las que se debe crear el punto de enlace.6. Elija uno o varios grupos de seguridad para asociar con el punto de enlace.7. En Policy (Política), elija Custom (Personalizada) y pegue la siguiente política:

{ "Statement": [ {

88

Page 94: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresUso de puntos de enlace de la VPC de tipo interfaz

(AWS PrivateLink) para Kinesis Data Firehose

"Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:ListDeliveryStreams" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:DescribeDeliveryStream" ], "Effect": "Deny", "Resource": [ "*" ] } ]}

8. Elija Create endpoint.

Crear un rol de IAM que se usará con la función de Lambda

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel izquierdo, elija Roles y, a continuación, elija Create role.3. En Select type of trusted entity (Seleccionar tipo de entidad de confianza), deje la selección

predeterminada AWS service (Servicio de AWS).4. En Choose the service that will use this role (Elegir el servicio que usará este rol), elija Lambda.5. Elija Next: Permissions.6. En la lista de políticas, busque y añada las dos políticas denominadas

AWSLambdaVPCAccessExecutionRole y AmazonKinesisFirehoseReadOnlyAccess.

Important

A continuación se muestra un ejemplo: Es posible que necesite políticas más estrictas parasu entorno de producción.

7. Elija Next: Tags. Para este ejercicio, no es necesario que añada ninguna etiqueta. Elija Next: Review.8. Escriba un nombre para el nuevo rol y, a continuación, elija Create role.

Crear una función de Lambda dentro de la VPC

1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.2. Elija Create function.3. Elija Author from scratch.4. Introduzca un nombre para la función y establezca Runtime (Tiempo de ejecución) en Python 3.6.5. En Permissions (Permisos), expanda Choose or create an execution role (Seleccionar o crear un rol

de ejecución).6. En la lista Execution role (Rol de ejecución), elija Use an existing role (Usar un rol existente).7. En la lista Existing role (Rol existente), elija el rol que creó antes.8. Elija Create function.9. En Function code (Código de la función), pegue el siguiente código.

89

Page 95: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresDisponibilidad.

import json import boto3 import os from botocore.exceptions import ClientError def lambda_handler(event, context): REGION = os.environ['AWS_REGION'] client = boto3.client( 'firehose', REGION ) print("Calling list_delivery_streams with ListDeliveryStreams allowed policy.") delivery_stream_request = client.list_delivery_streams() print("Successfully returned list_delivery_streams request %s." % ( delivery_stream_request )) describe_access_denied = False try: print("Calling describe_delivery_stream with DescribeDeliveryStream denied policy.") delivery_stream_info = client.describe_delivery_stream(DeliveryStreamName='test-describe-denied') except ClientError as e: error_code = e.response['Error']['Code'] print ("Caught %s." % (error_code)) if error_code == 'AccessDeniedException': describe_access_denied = True if not describe_access_denied: raise else: print("Access denied test succeeded.")

10. En Basic settings (Configuración básica), establezca el tiempo de espera en 1 minuto.11. En Network (Red), elija la VPC en la que creó el punto de enlace y, a continuación, elija las subredes y

el grupo de seguridad con los que asoció el punto de enlace cuando lo creó.12. Cerca de la parte superior de la página, elija Save.13. Elija Test.14. Escriba un nombre de evento y, a continuación, elija Create.15. Elija de nuevo Test. Esto hace que la función se ejecute. Cuando aparezca el resultado de la

ejecución, expanda Details (Detalles) y compare la salida de registro con el código de la función. Si laejecución se realiza correctamente, los resultados muestran una lista de las secuencias de entrega dela región, así como la siguiente salida:

Calling describe_delivery_stream.

AccessDeniedException

Access denied test succeeded.

Disponibilidad.Los puntos de enlace de la VPC de tipo interfaz se admiten actualmente en las regiones siguientes:

• EE.UU. Este (Ohio)• US East (N. Virginia)

90

Page 96: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresDisponibilidad.

• EE.UU. Oeste (Norte de California)• EE.UU. Oeste (Oregón)• Asia Pacífico (Mumbai)• Asia Pacífico (Seúl)• Asia Pacífico (Singapur)• Asia Pacífico (Sídney)• Asia Pacífico (Tokio)• Canadá (Central)• China (Pekín)• China (Ningxia)• Europa (Fráncfort)• Europa (Irlanda)• Europa (Londres)• Europa (París)• América del Sur (São Paulo)• AWS GovCloud (EE.UU. Este)• AWS GovCloud (US-West)

91

Page 97: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresConceptos básicos de etiquetas

Etiquetado de los flujos de entrega enAmazon Kinesis Data Firehose

Puede asignar sus propios metadatos a los flujos de entrega que cree en Amazon Kinesis Data Firehosemediante etiquetas. Una etiqueta es un par clave-valor definido por el usuario para un flujo. El uso de lasetiquetas es una forma sencilla y potente para administrar los recursos de AWS y organizar los datos,incluidos los datos de facturación.

Temas• Conceptos básicos de etiquetas (p. 92)• Seguimiento de costos utilizando el etiquetado (p. 92)• Restricciones de las etiquetas (p. 93)• Etiquetado de flujos de entrega mediante la API de Amazon Kinesis Data Firehose (p. 93)

Conceptos básicos de etiquetasPuede utilizar la API de Amazon Kinesis Data Firehose para realizar las siguientes tareas:

• Añadir etiquetas a un flujo de entrega.• Enumerar las etiquetas de los flujos de entrega.• Eliminar etiquetas de un flujo de entrega.

Puede utilizar etiquetas para categorizar los flujos de entrega de Kinesis Data Firehose. Por ejemplo,puede categorizar los flujos de entrega por objetivo, propietario o entorno. Dado que define la clave yel valor de cada etiqueta, puede crear un conjunto de categorías personalizadas para satisfacer susnecesidades específicas. Por ejemplo, podría definir un conjunto de etiquetas que le ayuden a realizar unseguimiento de los flujos de entrega por propietario y aplicación asociada.

A continuación, se muestran varios ejemplos de etiquetas:

• Project: Project name

• Owner: Name

• Purpose: Load testing

• Application: Application name

• Environment: Production

Seguimiento de costos utilizando el etiquetadoPuede utilizar etiquetas para categorizar y hacer un seguimiento de los costos de AWS. Cuando seaplican etiquetas a los recursos de AWS, incluidos los flujos de entrega de Kinesis Data Firehose, elinforme de asignación de costos de AWS incluye el uso y los costos agregados por etiquetas. Si aplicaetiquetas que representen categorías de negocio (por ejemplo, centros de costos, nombres de aplicacioneso propietarios), puede organizar los costos entre diferentes servicios. Para obtener más información,consulte Uso de etiquetas de asignación de costos para informes de facturación personalizados en la Guíadel usuario de AWS Billing and Cost Management.

92

Page 98: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresRestricciones de las etiquetas

Restricciones de las etiquetasSe aplican las siguientes restricciones a las etiquetas en Kinesis Data Firehose.

Restricciones básicas

• El número máximo de etiquetas por recurso (flujo) es 50.• Las claves y los valores de las etiquetas distinguen entre mayúsculas y minúsculas.• No se pueden cambiar ni editar etiquetas de un flujo eliminado.

Limitaciones de clave de etiqueta

• Cada clave de etiqueta debe ser única. Si añade una etiqueta con una clave que ya está en uso, lanueva etiqueta sobrescribe el par clave-valor existente.

• Una clave de etiqueta no puede comenzar por aws: porque este prefijo está reservado para su usopor AWS. AWS crea etiquetas cuyo nombre comienza por este prefijo por usted, pero usted no puedeeditarlas ni eliminarlas.

• Las claves de etiqueta deben tener entre 1 y 128 caracteres Unicode de longitud.• Las claves de etiquetas debe constar de los siguientes caracteres: letras Unicode, números, espacios en

blanco y los siguientes caracteres especiales: _ . / = + - @.

Restricciones de valor de etiqueta

• Los valores de etiqueta deben tener entre 0 y 255 caracteres Unicode de longitud.• Los valores de etiqueta pueden estar en blanco. De lo contrario, deben constar de los siguientes

caracteres: letras Unicode, números, espacios en blanco y cualquiera de los siguientes caracteresespeciales: _ . / = + - @.

Etiquetado de flujos de entrega mediante la API deAmazon Kinesis Data Firehose

Puede especificar etiquetas cuando invoque CreateDeliveryStream para crear una nueva secuencia deentrega. Para las secuencias de entrega existentes, puede añadir, mostrar y eliminar etiquetas con lassiguientes tres operaciones:

• TagDeliveryStream• ListTagsForDeliveryStream• UntagDeliveryStream

93

Page 99: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Tutorial: Envío de registros de flujode VPC a Splunk mediante AmazonKinesis Data Firehose

En este tutorial, aprenderá a capturar información sobre el tráfico IP entrante y saliente de las interfacesde red en una Amazon Virtual Private Cloud (Amazon VPC). Seguidamente, utilizará Amazon Kinesis DataFirehose para enviar esa información a Splunk. Para obtener más información acerca del tráfico de red dela VPC, consulte Registros de flujo de VPC en la Guía del usuario de Amazon VPC.

En el siguiente diagrama se muestra el flujo de datos que se describe en este tutorial.

Como se muestra en el diagrama, en primer lugar, se envían los registros de flujo de Amazon VPC aAmazon CloudWatch. A continuación, los datos se envían desde CloudWatch a un Flujo de entrega deKinesis Data Firehose. Acto seguido, Kinesis Data Firehose invoca una función de AWS Lambda quedescomprime los datos y envía los datos de los registros descomprimidos a Splunk.

Requisitos previos

Antes de comenzar, asegúrese de que se cumplen los siguientes requisitos previos:

• Cuenta de AWS: si no tiene una cuenta de AWS, cree una en http://aws.amazon.com. Para obtener másinformación, consulte Configuración para Amazon Kinesis Data Firehose (p. 4).

• AWS CLI: algunas partes de este tutorial requieren el uso de la AWS Command Line Interface (AWSCLI). Para instalar la AWS CLI, consulte Instalación de la interfaz de línea de comandos de AWS en laAWS Command Line Interface Guía del usuario.

• Token de HEC: en la implementación de Splunk, configure un token de recopilador de eventos HTTP(HEC) con el tipo de origen aws:cloudwatchlogs:vpcflow. Para obtener más información, consulteInstallation and configuration overview for the Splunk Add-on for Amazon Kinesis Firehose en ladocumentación de Splunk.

Temas

94

Page 100: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPaso 1: Enviar datos de registro a CloudWatch

• Paso 1: Enviar datos de registro de Amazon VPC a Amazon CloudWatch (p. 95)• Paso 2: Crear un flujo de entrega de Kinesis Data Firehose con Splunk como destino (p. 97)• Paso 3: Enviar los datos de registro de Amazon CloudWatch a Kinesis Data Firehose (p. 100)• Paso 4: Comprobar los resultados en Splunk y en Kinesis Data Firehose (p. 101)

Paso 1: Enviar datos de registro de Amazon VPC aAmazon CloudWatch

En la primera parte de este tutorial de Kinesis Data Firehose (p. 94), creará un grupo de registros deAmazon CloudWatch para recibir los registros de flujo de Amazon VPC. A continuación, creará registros deflujo para la Amazon VPC y los enviará al grupo de registros de CloudWatch que ha creado.

Para crear un grupo de registros de CloudWatch para recibir los registros de flujo de Amazon VPC

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

2. En el panel de navegación, elija Log groups (Grupos de registros).3. Elija Actions (Acciones) y, a continuación, elija Create log group (Crear grupo de registros).4. Escriba el nombre VPCtoSplunkLogGroup y elija Create log group (Crear grupo de registros).

Para crear un registro de flujo de VPC

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En el panel de navegación, elija Your VPCs. A continuación, elija la VPC en la lista seleccionando la

casilla situada junto a ella.

3. Elija Actions (Acciones) y, a continuación, seleccione Create flow log (Crear registro de flujo).4. En la lista Filter* (Filtro*), elija All (Todos).5. Deje el conjunto de destinos establecido en Send to CloudWatch Logs (Enviar a CloudWatch Logs).6. En Destination log group* (Grupo de registros de destino*), elija VPCtoSplunkLogGroup, que es el

grupo de registros que ha creado en el procedimiento anterior.7. Para configurar un rol de IAM, elija Set Up Permissions (Configurar permisos).

95

Page 101: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPaso 1: Enviar datos de registro a CloudWatch

8. En la ventana nueva que aparece, deje la opción IAM Role (Rol de IAM) establecida en Create anew IAM Role (Crear un nuevo rol de IAM). En el cuadro Role Name (Nombre del rol), introduzcaVPCtoSplunkWritetoCWRole. A continuación, elija Allow (Permitir).

96

Page 102: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPaso 2: Crear el flujo de entrega

9. Vuelva a la pestaña del navegador Create flow log (Crear registro de flujo) y actualice el cuadro IAMrole* (Rol de IAM*). A continuación, elija VPCtoSplunkWritetoCWRole en la lista.

10. Elija Create (Crear) y, a continuación, Close (Cerrar).11. De vuelta en el panel de Amazon VPC, elija Your VPCs (Sus VPC) en el panel de navegación. A

continuación, seleccione la casilla situada junto a la VPC.12. Desplácese hacia abajo, elija la pestaña Flow Logs (Registros de flujo) y busque el registro de flujo

que creó en los pasos anteriores. Asegúrese de que su estado sea Active (Activo). De lo contrario,revise los pasos anteriores.

Continúe en Paso 2: Crear un flujo de entrega de Kinesis Data Firehose con Splunk comodestino (p. 97).

Paso 2: Crear un flujo de entrega de Kinesis DataFirehose con Splunk como destino

En esta parte del tutorial de Kinesis Data Firehose (p. 94), creará un flujo de entrega de Amazon KinesisData Firehose para recibir los datos de registro de Amazon CloudWatch y enviarlos a Splunk.

Los registros que CloudWatch envía al flujo de entrega se encuentran en formato comprimido. Sinembargo, Kinesis Data Firehose no puede enviar registros comprimidos a Splunk. Por lo tanto, cuandocree el flujo de entrega en el siguiente procedimiento, habilitará la transformación de datos y configuraráuna función de AWS Lambda para descomprimir los datos de registro. A continuación, Kinesis DataFirehose enviará estos datos descomprimidos a Splunk.

Para crear un Flujo de entrega de Kinesis Data Firehose con Splunk como destino

1. Abra la consola de Kinesis Data Firehose en https://console.aws.amazon.com/firehose/.2. Elija Create delivery stream (Crear flujo de entrega).

97

Page 103: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPaso 2: Crear el flujo de entrega

3. Introduzca VPCtoSplunkStream como nombre del flujo de entrega. A continuación, desplácesehasta la parte inferior y elija Next (Siguiente).

4. En Data transformation* (Transformación de datos*), elija Enabled (Habilitada).5. En Lambda function* (Función de Lambda), elija Create new (Crear nueva).6. En el panel Choose Lambda blueprint (Elegir proyecto de Lambda), desplácese hacia abajo y elija

Kinesis Firehose Cloudwatch Logs Processor (Procesador de Cloudwatch Logs de Kinesis Firehose).Se abrirá la consola de AWS Lambda.

7. En la consola de AWS Lambda, para el nombre de la función, escriba VPCtoSplunkLambda.8. En el texto de descripción situado debajo de Execution role (Rol de ejecución), elija el enlace de la

consola de IAM para crear un rol personalizado. Se abrirá la consola de AWS Identity and AccessManagement (IAM).

9. En la consola de IAM, elija Lambda.10. Elija Next: Permissions.11. Elija Create policy.

98

Page 104: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPaso 2: Crear el flujo de entrega

12. Elija la pestaña JSON y reemplace el JSON existente por el siguiente. Asegúrese de sustituir losmarcadores de posición your-region y your-aws-account-id por su código de región de AWSy su ID de cuenta. No incluya guiones ni rayas en el ID de cuenta. Para ver una lista de códigos deregiones de AWS. consulte Regiones y puntos de enlace de AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:GetLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "firehose:PutRecordBatch" ], "Resource": [ "arn:aws:firehose:your-region:your-aws-account-id:deliverystream/VPCtoSplunkStream" ] } ]}

Esta política permite a la función de Lambda incluir datos en el flujo de entrega invocando la operaciónPutRecordBatch. Este paso es necesario porque una función de Lambda puede devolver comomáximo 6 MiB de datos cada vez que Kinesis Data Firehose la invoca. Si el tamaño de los datos sincomprimir supera los 6 MiB, la función invoca PutRecordBatch para devolver algunos de los datos alflujo de entrega para su procesamiento futuro.

13. De nuevo en la ventana Create rol (Crear rol) actualice la lista de políticas y, a continuación, elijaVPCtoSplunkLambdaPolicy seleccionando la casilla situada a su izquierda.

14. Elija Next: Tags.15. Elija Next: Review.16. En Role Name (Nombre de rol), escriba VPCtoSplunkLambdaRole y, a continuación, elija Create

role.17. De vuelta en la consola de Lambda, actualice la lista de roles existentes y, a continuación, seleccione

VPCtoSplunkLambdaRole.18. Desplácese hacia abajo y seleccione Create function (Crear función).19. En el panel de la función de Lambda, desplácese hacia abajo hasta la sección Basic settings

(Configuración básica) y aumente el tiempo de espera a 3 minutos.20. Desplácese hacia arriba y elija Save (Guardar).21. De vuelta en el cuadro de diálogo Choose Lambda blueprint (Elegir proyecto de Lambda), elija Close

(Cerrar).22. En la página de creación del flujo de entrega, en la sección Transform source records with AWS

Lambda (Transformar registros de origen con AWS Lambda), elija el botón de actualización. Acontinuación, elija VPCtoSplunkLambda en la lista de funciones.

23. Desplácese hacia abajo y elija Next (Siguiente).24. En Destination* (Destino), elija Splunk.25. Para obtener más información sobre la opción Splunk cluster endpoint (Punto de enlace del clúster

de Splunk), consulte Configure Amazon Kinesis Firehose to send data to the Splunk platform en ladocumentación de Splunk.

99

Page 105: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPaso 3: Enviar datos al flujo de entrega

26. Deje la opción Splunk endpoint type (Tipo de enlace de Splunk) establecida en Raw endpoint (Puntode enlace sin procesar).

27. Escriba el valor (no el nombre) del token de recopilador de eventos HTTP (HEC) de Splunk.28. En S3 backup mode* (Modo de copia de seguridad de S3), elija Backup all events (Realizar copia de

seguridad de todos los eventos).29. Elija un bucket de Amazon S3 existente o cree uno nuevo si lo desea, y elija Next (Siguiente).30. En la página Configure settings (Configurar opciones), desplácese hacia abajo hasta la sección IAM

role (Rol de IAM) y elija Create new or choose (Crear nuevo o elegir).31. En la lista IAM role (Rol de IAM), elija Create a new IAM role (Crear un nuevo rol de IAM). En Role

Name (Nombre de rol), escriba VPCtoSplunkLambdaFirehoseRole y luego elija Allow (Permitir).32. Elija Next (Siguiente) y revise la configuración que ha elegido para el flujo de entrega. A continuación,

elija Create delivery stream (Crear flujo de entrega).

Continúe en Paso 3: Enviar los datos de registro de Amazon CloudWatch a Kinesis DataFirehose (p. 100).

Paso 3: Enviar los datos de registro de AmazonCloudWatch a Kinesis Data Firehose

En este paso del tutorial de Kinesis Data Firehose (p. 94), suscribirá el flujo de entrega al grupo deregistros de Amazon CloudWatch. Este paso hará que los datos de registro circulen desde el grupo deregistros hasta el flujo de entrega.

Para enviar datos de registro de CloudWatch Logs al flujo de entrega

En este procedimiento, utilizará la AWS Command Line Interface (AWS CLI) para crear una suscripción deCloudWatch Logs que envíe eventos de registro al flujo de entrega.

1. Guarde la siguiente política de confianza en un archivo local y asígnele el nombreVPCtoSplunkCWtoFHTrustPolicy.json. Asegúrese de reemplazar el marcador de posiciónyour-region por el código de su región de AWS.

{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.your-region.amazonaws.com" }, "Action": "sts:AssumeRole" }}

2. En una ventana de comandos, vaya al directorio donde guardó VPCtoSplunkCWtoFHPolicy.jsony ejecute el siguiente comando de la AWS CLI.

aws iam create-role --role-name VPCtoSplunkCWtoFHRole --assume-role-policy-document file://VPCtoSplunkCWtoFHTrustPolicy.json

3. Guarde la siguiente política de acceso en un archivo local y asígnele el nombreVPCtoSplunkCWtoFHAccessPolicy.json. Asegúrese de sustituir los marcadores de posiciónyour-region y your-aws-account-id por su código de región de AWS y su ID de cuenta.

{ "Statement":[ {

100

Page 106: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresPaso 4: Comprobar los resultados

"Effect":"Allow", "Action":["firehose:*"], "Resource":["arn:aws:firehose:your-region:your-aws-account-id:deliverystream/VPCtoSplunkStream"] }, { "Effect":"Allow", "Action":["iam:PassRole"], "Resource":["arn:aws:iam::your-aws-account-id:role/VPCtoSplunkCWtoFHRole"] } ]}

4. En una ventana de comandos, vaya al directorio donde guardóVPCtoSplunkCWtoFHAccessPolicy.json y ejecute el siguiente comando de la AWS CLI.

aws iam put-role-policy --role-name VPCtoSplunkCWtoFHRole --policy-name VPCtoSplunkCWtoFHAccessPolicy --policy-document file://VPCtoSplunkCWtoFHAccessPolicy.json

5. Reemplace los marcadores de posición your-region y your-aws-account-id del siguientecomando de la AWS CLI por su código de región de AWS y su ID de cuenta; a continuación, ejecute elcomando.

aws logs put-subscription-filter --log-group-name "VPCtoSplunkLogGroup" --filter-name "Destination" --filter-pattern "" --destination-arn "arn:aws:firehose:your-region:your-aws-account-id:deliverystream/VPCtoSplunkStream" --role-arn "arn:aws:iam::your-aws-account-id:role/VPCtoSplunkCWtoFHRole"

Continúe en Paso 4: Comprobar los resultados en Splunk y en Kinesis Data Firehose (p. 101).

Paso 4: Comprobar los resultados en Splunk y enKinesis Data Firehose

Puede monitorizar el flujo de los datos en varios puntos en este ejemplo. En este paso del tutorial deKinesis Data Firehose (p. 94), comprobará los datos de Splunk, el destino final y también monitorizarásu paso por Kinesis Data Firehose.

Para comprobar los resultados en AWS y en Splunk

1. Abra la consola de Kinesis Data Firehose en https://console.aws.amazon.com/firehose/.2. En la lista de flujos de entrega, elija VPCtoSplunkStream.3. Elija la pestaña Monitoring (Monitorización) y examine los gráficos. Asegúrese de ajustar el intervalo

de tiempo y de utilizar el botón de actualización de forma periódica.4. Si no ve sus datos en Splunk, consulte Datos no entregados a Splunk.

Important

Después de verificar los resultados, elimine los recursos de AWS que no necesite conservar parano incurrir en cargos recurrentes.

101

Page 107: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresDatos no entregados a Amazon S3

Solución de problemas de AmazonKinesis Data Firehose

Si Kinesis Data Firehose encuentra errores al entregar o procesar datos, vuelva a intentarlo hasta quevenza la duración de reintentos configurada. Si la duración de reintentos finaliza antes de que los datosse entreguen correctamente, realice una copia de seguridad de Kinesis Data Firehose de los datos en elbucket de copia de seguridad de S3 configurado. Si el destino es Amazon S3 y no se puede realizar laentrega o si la entrega en el bucket de S3 de copia de seguridad produce un error, Kinesis Data Firehosesigue intentándolo hasta que finaliza el periodo de retención. Para las secuencias de entrega DirectPut,Kinesis Data Firehose conserva los registros durante 24 horas de forma predeterminada. Puede aumentarel periodo de retención a un máximo de 7 días. Si el origen de datos es una secuencia de datos deKinesis, Kinesis Data Firehose reintenta las siguientes operaciones indefinidamente: DescribeStream,GetRecords y GetShardIterator.

Si la secuencia de entrega utiliza DirectPut, compruebe las métricas IncomingRecords eIncomingBytes para ver si hay tráfico entrante. Si utiliza PutRecord o PutRecordBatch, asegúrese deque detecta las excepciones y vuelva a intentarlo. Le recomendamos que utilice una política de reintentoscon retardo exponencial con fluctuaciones y varios reintentos. Además, si usa la API PutRecordBatch,asegúrese de que su código verifique el valor de FailedPutCount en la respuesta aunque la llamada a laAPI se realice correctamente.

Si la secuencia de entrega utiliza una secuencia de datos de Kinesis como origen, compruebelas métricas IncomingRecords e IncomingBytes para la secuencia de datos de origen.Además, asegúrese de que se emiten las métricas DataReadFromKinesisStream.Records yDataReadFromKinesisStream.Bytes para la secuencia de entrega.

Para obtener información sobre el seguimiento de errores de entrega mediante CloudWatch, consulte thesection called “Monitoreo con CloudWatch Logs” (p. 73).

Problemas• Datos no entregados a Amazon S3 (p. 102)• Datos no entregados a Amazon Redshift (p. 103)• Datos no entregados a Amazon Elasticsearch Service (p. 104)• Datos no entregados a Splunk (p. 104)• El flujo de entrega no está disponible como un destino para una acción de CloudWatch Logs, Eventos

de CloudWatch o AWS IoT (p. 105)• Métrica de antigüedad de los datos incrementada o no emitida (p. 106)• Error al convertir el formato de registro a Apache Parquet (p. 107)• No hay datos en el destino a pesar de las métricas correctas (p. 107)

Datos no entregados a Amazon S3Realice las siguientes comprobaciones si los datos no se entregan al bucket de Amazon Simple StorageService (Amazon S3).

• Revise las métricas IncomingBytes e IncomingRecords de Kinesis Data Firehose para asegurarsede que los datos se hayan enviado correctamente a su Flujo de entrega de Kinesis Data Firehose.

102

Page 108: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresDatos no entregados a Amazon Redshift

Para obtener más información, consulte Monitoreo de Kinesis Data Firehose con métricas deCloudWatch (p. 59).

• Si la transformación de datos con Lambda está habilitada, revise la métricaExecuteProcessingSuccess de Kinesis Data Firehose para asegurarse de que Kinesis DataFirehose ha intentado invocar la función de Lambda. Para obtener más información, consulte Monitoreode Kinesis Data Firehose con métricas de CloudWatch (p. 59).

• Revise la métrica DeliveryToS3.Success de Kinesis Data Firehose para asegurarse de que KinesisData Firehose ha intentado colocar los datos en el bucket de Amazon S3. Para obtener más información,consulte Monitoreo de Kinesis Data Firehose con métricas de CloudWatch (p. 59).

• Habilite el registro de errores si aún no está habilitado y busque errores de entrega en los logs deerrores. Para obtener más información, consulte Monitoreo de Kinesis Data Firehose con CloudWatchLogs (p. 73).

• Asegúrese de que el bucket de Amazon S3 especificado en su Flujo de entrega de Kinesis DataFirehose aún existe.

• Si la transformación de datos con Lambda está habilitada, asegúrese de que la función de Lambdaespecificada en el flujo de entrega aún existe.

• Asegúrese de que el rol de IAM especificado en su Flujo de entrega de Kinesis Data Firehose tengaacceso al bucket de S3 y a la función de Lambda (si transformación de datos está habilitada). Paraobtener más información, consulte Concesión de acceso de Kinesis Data Firehose a un destino deAmazon S3 (p. 32).

• Si usa la transformación de datos, asegúrese de que la función de Lambda nunca devuelve respuestascuyo tamaño de carga es superior a 6 MB. Para obtener más información, consulte Amazon Kinesis DataFirehose Data Transformation.

Datos no entregados a Amazon RedshiftRealice las siguientes comprobaciones si los datos no se entregan a su clúster de Amazon Redshift.

Los datos se entregan en el bucket de S3 antes de cargarse en Amazon Redshift. Si los datos no se hanentregado en el bucket de S3, consulte Datos no entregados a Amazon S3 (p. 102).

• Revise la métrica DeliveryToRedshift.Success de Kinesis Data Firehose para asegurarsede que Kinesis Data Firehose ha intentado copiar datos del bucket de S3 en el clúster de AmazonRedshift. Para obtener más información, consulte Monitoreo de Kinesis Data Firehose con métricas deCloudWatch (p. 59).

• Habilite el registro de errores si aún no está habilitado y busque errores de entrega en los logs deerrores. Para obtener más información, consulte Monitoreo de Kinesis Data Firehose con CloudWatchLogs (p. 73).

• Revise la tabla STL_CONNECTION_LOG de Amazon Redshift para ver si Kinesis Data Firehose puederealizar conexiones correctamente. En esta tabla, debería poder ver las conexiones y su estado pornombre de usuario. Para obtener más información, consulte STL_CONNECTION_LOG en la AmazonRedshift Database Developer Guide.

• Si al revisar la tabla anterior observa que se están realizando conexiones, revise la tablaSTL_LOAD_ERRORS de Amazon Redshift para dar con el motivo del error de COPY. Para obtener másinformación, consulte STL_LOAD_ERRORS en la Amazon Redshift Database Developer Guide.

• Asegúrese de que la configuración de Amazon Redshift en su Flujo de entrega de Kinesis Data Firehosesea correcta y válida.

• Asegúrese de que el rol de IAM que se ha especificado en su Flujo de entrega de Kinesis DataFirehose tenga acceso al bucket de S3 desde el que Amazon Redshift copia los datos y a la funciónde Lambda de transformación de datos (si la transformación de datos está habilitada). Para obtenermás información, consulte Concesión de acceso de Kinesis Data Firehose a un destino de AmazonS3 (p. 32).

103

Page 109: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresDatos no entregados a Amazon Elasticsearch Service

• Si el clúster de Amazon Redshift se encuentra en una nube virtual privada (VPC), asegúrese de que elclúster permita el acceso desde direcciones IP de Kinesis Data Firehose. Para obtener más información,consulte Concesión de acceso de Kinesis Data Firehose a un destino de Amazon Redshift (p. 33).

• Asegúrese de que el clúster de Amazon Redshift sea de acceso público.• Si usa la transformación de datos, asegúrese de que la función de Lambda nunca devuelve respuestas

cuyo tamaño de carga es superior a 6 MB. Para obtener más información, consulte Amazon Kinesis DataFirehose Data Transformation.

Datos no entregados a Amazon ElasticsearchService

Realice las siguientes comprobaciones si los datos no se entregan a su dominio de Elasticsearch.

Se pueden crear copias de seguridad de los datos en el bucket de Amazon S3 simultáneamente. Si losdatos no se han entregado al bucket de S3, consulte Datos no entregados a Amazon S3 (p. 102).

• Revise las métricas IncomingBytes e IncomingRecords de Kinesis Data Firehose para asegurarsede que los datos se hayan enviado correctamente a su Flujo de entrega de Kinesis Data Firehose.Para obtener más información, consulte Monitoreo de Kinesis Data Firehose con métricas deCloudWatch (p. 59).

• Si la transformación de datos con Lambda está habilitada, revise la métricaExecuteProcessingSuccess de Kinesis Data Firehose para asegurarse de que Kinesis DataFirehose ha intentado invocar la función de Lambda. Para obtener más información, consulte Monitoreode Kinesis Data Firehose con métricas de CloudWatch (p. 59).

• Revise la métrica DeliveryToElasticsearch.Success de Kinesis Data Firehose para asegurarsede que Kinesis Data Firehose ha intentado indexar los datos en el clúster de Amazon ES. Para obtenermás información, consulte Monitoreo de Kinesis Data Firehose con métricas de CloudWatch (p. 59).

• Habilite el registro de errores si aún no está habilitado y busque errores de entrega en los logs deerrores. Para obtener más información, consulte Monitoreo de Kinesis Data Firehose con CloudWatchLogs (p. 73).

• Asegúrese de que la configuración de Amazon ES en el flujo de entrega sea correcta y válida.• Si la transformación de datos con Lambda está habilitada, asegúrese de que la función de Lambda

especificada en el flujo de entrega aún existe.• Asegúrese de que el rol de IAM especificado en el flujo de entrega tenga acceso al clúster de Amazon

ES y a la función de Lambda (si transformación de datos está habilitada). Para obtener más información,consulte Concesión de acceso a Kinesis Data Firehose a un destino público de Amazon ES (p. 36).

• Si usa la transformación de datos, asegúrese de que la función de Lambda nunca devuelve respuestascuyo tamaño de carga es superior a 6 MB. Para obtener más información, consulte Amazon Kinesis DataFirehose Data Transformation.

Datos no entregados a SplunkRealice las siguientes comprobaciones si los datos no se entregan a su punto de enlace de Splunk.

• Si la plataforma Splunk está en una VPC, asegúrese de que Kinesis Data Firehose tenga acceso a ella.Para obtener más información, consulte Acceso a Splunk en VPC.

• Si usa un balanceador de carga de AWS, asegúrese de que sea un Classic Load Balancer. Kinesis DataFirehose no admite los Application Load Balancers ni los Network Load Balancers. Además, habilite lassesiones sticky basadas en duración con el vencimiento de cookies deshabilitado. Para obtener másinformación sobre cómo hacerlo, consulte Sesiones sticky basadas en duración.

104

Page 110: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresEl flujo de entrega no está disponible comoun destino para una acción de CloudWatchLogs, Eventos de CloudWatch o AWS IoT

• Revise los requisitos de la plataforma Splunk. El complemento de Splunk para Kinesis Data Firehoserequiere la versión 6.6.X o posterior de la plataforma Splunk. Para obtener más información, consulteSplunk Add-on for Amazon Kinesis Firehose.

• Si tiene un proxy (Elastic Load Balancing u otros) entre Kinesis Data Firehose y el nodo del recopiladorde eventos HTTP (HEC), habilite las sesiones sticky para admitir las confirmaciones (ACK) de HEC.

• Asegúrese de utilizar un token de HEC válido.• Asegúrese de que el token de HEC esté habilitado. Consulte Enable and disable Event Collector tokens.• Compruebe que los datos que está enviando a Splunk tienen el formato correcto. Para obtener más

información, consulte Format events for HTTP Event Collector.• Asegúrese de que el token de HEC y el evento de entrada estén configurados con un índice válido.• Cuando una carga en Splunk falla debido a un error del servidor desde el nodo del HEC, la solicitud

vuelve a enviarse automáticamente. Si se produce un error en todos los reintentos, se crea una copiade seguridad de los datos en Amazon S3. Compruebe si los datos aparecen en Amazon S3; esa es unaindicación de este tipo de error.

• Asegúrese de que ha activado la confirmación de indexadores en el token de HEC. Para obtener másinformación, consulte Enable indexer acknowledgement.

• Aumente el valor de HECAcknowledgmentTimeoutInSeconds en la configuración de Splunk de suflujo de entrega de Kinesis Data Firehose.

• Aumente el valor de DurationInSeconds en RetryOptions en la configuración de destino de Splunkde su flujo de entrega de Kinesis Data Firehose.

• Compruebe el estado del HEC.• Si usa la transformación de datos, asegúrese de que la función de Lambda nunca devuelve respuestas

cuyo tamaño de carga es superior a 6 MB. Para obtener más información, consulte Amazon Kinesis DataFirehose Data Transformation.

• Asegúrese de que el parámetro Splunk denominado ackIdleCleanup se establece en true. Su valorpredeterminado es false. Para establecer este parámetro en true, haga lo siguiente:• Para una implementación de Splunk Cloud administrada, envíe un caso utilizando el portal de soporte

de Splunk. En este caso, pida al soporte de Splunk que habilite el recopilador de eventos HTTP,establezca ackIdleCleanup en true en inputs.conf y cree o modifique un balanceador de cargapara usarlo con este complemento.

• Para efectuar una implementación distribuida de Splunk Enterprise, establezca el parámetroackIdleCleanup en true en el archivo inputs.conf. Para los usuarios de *nix, este archivo seencuentra en $SPLUNK_HOME/etc/apps/splunk_httpinput/local/. Para los usuarios deWindows, se encuentra en %SPLUNK_HOME%\etc\apps\splunk_httpinput\local\.

• Para efectuar una implementación de una sola instancia de Splunk Enterprise, establezca elparámetro ackIdleCleanup en true en el archivo inputs.conf. Para los usuarios de *nix, estearchivo se encuentra en $SPLUNK_HOME/etc/apps/splunk_httpinput/local/. Para losusuarios de Windows, se encuentra en %SPLUNK_HOME%\etc\apps\splunk_httpinput\local\.

• Consulte Troubleshoot the Splunk Add-on for Amazon Kinesis Firehose.

El flujo de entrega no está disponible como undestino para una acción de CloudWatch Logs,Eventos de CloudWatch o AWS IoT

Algunos servicios de AWS solo pueden enviar mensajes y eventos a un flujo de entrega de Kinesis DataFirehose que esté en la misma región de AWS. Compruebe que el flujo de entrega de Kinesis DataFirehose está emplazada en la misma región que los demás servicios.

105

Page 111: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresMétrica de antigüedad de los

datos incrementada o no emitida

Métrica de antigüedad de los datos incrementada ono emitida

La antigüedad de los datos es una medida de lo actuales que son sus datos dentro de su secuencia deentrega. Es la antigüedad del registro de datos más antiguo en la secuencia de entrega, medida desde elmomento en que Kinesis Data Firehose adquirió los datos hasta el momento actual. Kinesis Data Firehoseproporciona métricas que puede utilizar para supervisar la antigüedad de los datos. Para identificar lamétrica de antigüedad de los datos para un destino determinado, consulte the section called “Monitoreocon métricas de CloudWatch” (p. 59).

Si habilita la copia de seguridad para todos los eventos o todos los documentos, monitorice dos métricasde antigüedad de los datos distintas: una para el destino principal y otra para la copia de seguridad.

Si no se emite la métrica de antigüedad de los datos, esto significa que no hay ninguna entrega activapara la secuencia de entrega. Esto sucede cuando la entrega de datos está completamente bloqueada ocuando no hay datos entrantes.

Si la métrica de antigüedad de los datos aumenta constantemente, esto significa que la entrega de losdatos está retrasada. Esto puede suceder por una de las siguientes razones.

• El destino no es capaz de soportar la velocidad de entrega. Si Kinesis Data Firehose encuentra errorestransitorios debido a un tráfico elevado, la entrega podría retrasarse. Esto puede suceder para destinosdistintos de Amazon S3 (puede ocurrir para Amazon Elasticsearch Service, Amazon Redshift o Splunk).Asegúrese de que su destino tiene suficiente capacidad para tratar el tráfico entrante.

• El destino es lento. La entrega de datos puede retrasarse si Kinesis Data Firehose encuentra unalatencia alta. Monitorice la métrica de latencia del destino.

• La función Lambda es lenta. Esto podría dar lugar a una velocidad de entrega de datos inferior a lavelocidad de adquisición de datos de la secuencia de entrega. Si es posible, mejore la eficiencia de lafunción Lambda. Por ejemplo, si la función realiza operaciones de E/S de red, use varios subprocesos outilice operaciones de E/S asincrónicas para aumentar el paralelismo. Además, considere la posibilidadde aumentar el tamaño de memoria de la función Lambda para que la asignación de CPU puedaaumentar en consecuencia. Esto podría producir invocaciones de Lambda más rápidas. Para obtenerinformación sobre la configuración de funciones Lambda, consulte Configuración de las funciones deAWS Lambda.

• Hay errores durante la entrega de datos. Para obtener información acerca de cómo monitorizar loserrores mediante Amazon CloudWatch Logs, consulte the section called “Monitoreo con CloudWatchLogs” (p. 73).

• Si el origen de datos de la secuencia de entrega es una secuencia de datos de Kinesis, esposible que se aplique una limitación. Compruebe las métricas ThrottledGetRecords,ThrottledGetShardIterator y ThrottledDescribeStream. Si hay varios consumidoresasociados a la secuencia de datos de Kinesis, tenga en cuenta lo siguiente:• Si las métricas ThrottledGetShardIterator y ThrottledGetRecords son elevadas, le

recomendamos que aumente el número de particiones aprovisionadas para la secuencia de datos.• Si la métrica ThrottledDescribeStream es elevada, le recomendamos que añada el permisokinesis:listshards al rol configurado en KinesisStreamSourceConfiguration.

• Sugerencias de almacenamiento en búfer bajo para el destino. Esto podría aumentar el número de viajesde ida y vuelta que Kinesis Data Firehose tiene que hacer al destino, lo que podría causar un retrasoen la entrega. Considere la posibilidad de aumentar el valor de las sugerencias de almacenamiento enbúfer. Para obtener más información, consulte BufferingHints.

• Una duración de reintentos alta podría hacer que la entrega se retrasara cuando los errores sonfrecuentes. Considere la posibilidad de reducir la duración de los reintentos. Además, monitorice loserrores e intente reducirlos. Para obtener información acerca de cómo monitorizar los errores medianteAmazon CloudWatch Logs, consulte the section called “Monitoreo con CloudWatch Logs” (p. 73).

106

Page 112: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladoresError al convertir el formato de registro a Apache Parquet

• Si el destino es Splunk y la métrica DeliveryToSplunk.DataFreshness es elevada peroDeliveryToSplunk.Success tiene un valor correcto, es posible que el clúster de Splunk estéocupado. Libere el clúster de Splunk si es posible. También puede ponerse en contacto con AWSSupport y solicitar un aumento del número de canales que Kinesis Data Firehose utiliza paracomunicarse con el clúster de Splunk.

Error al convertir el formato de registro a ApacheParquet

Esto ocurre si toma datos de DynamoDB que incluyen el tipo Set , los transmite en streaming a través deLambda a un flujo de entrega y utiliza un AWS Glue Data Catalog para convertir el formato de registro aApache Parquet.

Cuando el rastreador AWS Glue indexa los tipos de datos establecidos DynamoDB (StringSet,NumberSet, y BinarySet), los almacena en el catálogo de datos como SET<STRING>, SET<BIGINT>,y SET<BINARY>, respectivamente. Sin embargo, para que Kinesis Data Firehose convierta los registrosde datos al formato Apache Parquet, requiere los tipos de datos de Apache Hive. Dado que los tiposde conjunto no son tipos de datos de Apache Hive válidos, la conversión produce un error. Para que laconversión funcione, actualice el catálogo de datos con los tipos de datos de Apache Hive. Puede hacerlocambiando set a array en el catálogo de datos.

Para cambiar uno o varios tipos de datos de set a array en un catálogo de datos AWS Glue

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Glue en https://console.aws.amazon.com/glue/.

2. En el panel izquierdo, en el encabezado Catálogo de datos , elija Tablas.3. En la lista de tablas, elija el nombre de la tabla en la que desea modificar uno o varios tipos de datos.

Esto le lleva a la página de detalles de la tabla.4. Elija el botón Edit schema situado en la esquina superior derecha de la página de detalles.5. En la columna Tipo de datos , elija el primer tipo de datos set .6. En la lista desplegable Tipo de columna , cambie el tipo de set a array.7. En el campo ArraySchema escriba array<string>, array<int>, o array<binary>, en función

del tipo de datos adecuado para su situación.8. Elija Update.9. Repita los pasos anteriores para convertir otros tipos set a tipos array .10. Elija Save.

No hay datos en el destino a pesar de las métricascorrectas

Si no hay problemas de adquisición de datos y las métricas emitidas para la secuencia de entrega soncorrectas, pero no ve datos en el destino, compruebe la lógica del lector. Asegúrese de que su lector estéanalizando correctamente todos los datos.

107

Page 113: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Cuota de Amazon Kinesis DataFirehose

Amazon Kinesis Data Firehose tiene las siguientes cuotas.

• De forma predeterminada, cada cuenta puede tener hasta 50 Flujo de entrega de Kinesis Data Firehosespor región. Si supera este número, una llamada a CreateDeliveryStream genera una excepciónLimitExceededException. Para aumentar esta cuota, puede utilizar Cuotas de servicio si estádisponible en su región. Para obtener información sobre el uso Cuotas de servicio, consulte Solicitud deun aumento de cuota. Si Cuotas de servicio no está disponible en su región, puede usar el Formulario delímites de Amazon Kinesis Data Firehose para solicitar un aumento.

• Cuando Direct PUT está configurado como origen de datos, cada Flujo de entrega de Kinesis DataFirehose proporciona la siguiente cuota combinada para solicitudes PutRecord y PutRecordBatch:• En US East (N. Virginia), EE.UU. Oeste (Oregón), y Europa (Irlanda): 5000 registros/segundo, 2000

solicitudes/segundo, y 5 MiB/segundo.• Para EE.UU. Este (Ohio), EE.UU. Oeste (Norte de California), AWS GovCloud (EE.UU. Este), AWS

GovCloud (US-West), Asia Pacífico (Hong Kong), Asia Pacífico (Mumbai), Asia Pacífico (Seúl),Asia Pacífico (Singapur), Asia Pacífico (Sídney), Asia Pacífico (Tokio), Canadá (Central), Europa(Fráncfort), Europa (Londres), Europa (París), Europa (Estocolmo), Medio Oriente (Baréin), y Américadel Sur (São Paulo): 1000 registros/segundo, 1000 solicitudes/segundo y 1 MiB/segundo.

Para solicitar un aumento de cuota, utilice el Formulario de límites de Amazon Kinesis Data Firehose.Las tres cuotas escalan proporcionalmente. Por ejemplo, si aumenta la cuota de rendimiento en USEast (N. Virginia), EE.UU. Oeste (Oregón), o Europa (Irlanda) a 10 MiB/segundo, las otras dos cuotasaumentan a 4000 solicitudes/segundo y 10 000 registros/segundo.

Important

Si la cuota incrementada es muy superior al tráfico en ejecución, la entrega a los destinos seproduce en lotes pequeños. Esto resulta poco eficiente y puede provocar costos superioresen los servicios de destino. Asegúrese de incrementar la cuota actual al nivel necesario parasatisfacer solo el tráfico en ejecución, e increméntela más si el tráfico aumenta.

Note

Cuando Kinesis Data Streams está configurado como el origen de datos, esta cuota no seaplica y Kinesis Data Firehose aumenta o reduce los recursos, sin límite.

• Cada Flujo de entrega de Kinesis Data Firehose almacena registros de datos durante hasta 24 horas encaso de que el destino no esté disponible.

• El tamaño máximo de un registro enviado a Kinesis Data Firehose antes de codificarse en base64 es de1000 KiB.

• La operación PutRecordBatch admite por cada llamada el valor más pequeño de entre 500 registros o4 MiB. Esta cuota no se puede cambiar.

• Las siguientes operaciones pueden proporcionar hasta cinco invocaciones por segundo:CreateDeliveryStream, DeleteDeliveryStream, DescribeDeliveryStream,ListDeliveryStreams, UpdateDestination, TagDeliveryStream, UntagDeliveryStream,ListTagsForDeliveryStream, StartDeliveryStreamEncryption,StopDeliveryStreamEncryption.

• Las sugerencias de tamaño del búfer oscilan entre 1 y 128 MiB para la entrega a Amazon S3. Para laentrega a Amazon Elasticsearch Service (Amazon ES), van desde 1 a 100 MiB. Para el procesamientode AWS Lambda, puede definir una sugerencia de tamaño del búfer de entre 1 y 3 MiB mediante el

108

Page 114: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

parámetro de procesador BufferSizeInMBs. El umbral de tamaños se aplica al búfer antes de lacompresión. Estas opciones se tratan como sugerencias. Kinesis Data Firehose podría usar valoresdiferentes si los considera óptimos.

• Las sugerencias de intervalo del búfer oscilan entre 60 y 900 segundos.• Para las entregas de Kinesis Data Firehose a Amazon Redshift, solo se admiten los clústeres de

Amazon Redshift de acceso público.• El intervalo de tiempo entre reintentos es de 0 a 7200 segundos para entregas a Amazon Redshift y a

Amazon ES.• Kinesis Data Firehose admite las versiones de Elasticsearch 1.5, 2.3, 5.1, 5.3, 5.5, 5.6, así como todas

las versiones 6.* y 7.*.• Kinesis Data Firehose no admite la entrega a dominios de Elasticsearch en una nube virtual privada

VPC.• Cuando el destino es Amazon S3, Amazon Redshift o Amazon ES, Kinesis Data Firehose permite

un máximo de cinco invocaciones de Lambda pendientes por partición. En Splunk, la cuota es de 10invocaciones de Lambda pendientes por partición.

• Puede utilizar una CMK de tipo CUSTOMER_MANAGED_CMK para cifrar hasta 500 flujos de entrega.

109

Page 115: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Historial de revisiónEn la siguiente tabla se describen los cambios importantes en la documentación de Amazon Kinesis DataFirehose.

Cambio Descripción Fecha demodificación

Se ha añadidoun tema sobrelos prefijospersonalizados

Se ha añadido un tema sobre las expresiones que puedeutilizar para crear un prefijo personalizado para los datosque se entregan a Amazon S3. Consulte Prefijos deAmazon S3 personalizados (p. 85).

20 de diciembre de2018

Se ha añadidoun tutorial nuevode Kinesis DataFirehose

Se ha añadido un tutorial que explica cómo enviarregistros de flujos de Amazon VPC a Splunk a travésde Kinesis Data Firehose. Consulte Tutorial: Envío deregistros de flujo de VPC a Splunk mediante AmazonKinesis Data Firehose (p. 94).

30 de octubre de2018

Se han añadidocuatro regionesnuevas de KinesisData Firehose

Se han añadido París, Mumbai, São Paulo y Londres.Para obtener más información, consulte Cuota deAmazon Kinesis Data Firehose (p. 108).

27 de junio de 2018

Se han añadido dosregiones nuevasde Kinesis DataFirehose

Se han añadido Seúl y Montreal. Para obtener másinformación, consulte Cuota de Amazon Kinesis DataFirehose (p. 108).

13 de junio de 2018

Nueva característicade Kinesis Streamscomo origen

Se ha añadido Kinesis Streams como un posible origenpara los registros de un flujo de entrega de Firehose. Paraobtener más información, consulte Nombre y origen (p. 5).

18 de agosto de2017

Actualización de ladocumentación de laconsola

El asistente de creación del flujo de entrega se haactualizado. Para obtener más información, consulteCreación de un flujo de entrega de Amazon Kinesis DataFirehose (p. 5).

19 de julio de 2017

Nuevatransformación dedatos

Es posible configurar Kinesis Data Firehose paratransformar los datos antes de entregarlos. Para obtenermás información, consulte Transformación de datos deAmazon Kinesis Data Firehose (p. 47).

19 de diciembre de2016

Nuevo reintento deCOPY de AmazonRedshift

Es posible configurar Kinesis Data Firehose parareintentar un comando COPY a su clúster de AmazonRedshift si se produce un error. Para obtener másinformación, consulte Creación de un flujo de entrega deAmazon Kinesis Data Firehose (p. 5), Entrega de datosde Amazon Kinesis Data Firehose (p. 55) y Cuota deAmazon Kinesis Data Firehose (p. 108).

18 de mayo de 2016

Nuevo destinode Kinesis DataFirehose, AmazonElasticsearch Service

Es posible crear un flujo de entrega con destino a AmazonElasticsearch Service. Para obtener más información,consulte Creación de un flujo de entrega de AmazonKinesis Data Firehose (p. 5), Entrega de datos de Amazon

19 de abril de 2016

110

Page 116: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

Cambio Descripción Fecha demodificación

Kinesis Data Firehose (p. 55) y Concesión de acceso aKinesis Data Firehose a un destino público de AmazonES (p. 36).

Nuevas métricasde CloudWatchy característicasde solución deproblemas mejoradas

Actualización de Monitoreo de Amazon Kinesis DataFirehose (p. 59) y Solución de problemas de AmazonKinesis Data Firehose (p. 102).

19 de abril de 2016

Nuevo agente deKinesis mejorado

Actualización de Escritura en Kinesis Data Firehosemediante el agente de Kinesis (p. 17).

11 de abril de 2016

Nuevos agentes deKinesis

Escritura en Kinesis Data Firehose mediante el agente deKinesis (p. 17) añadido.

2 de octubre de2015

Versión inicial Versión inicial de la Guía para desarrolladores de AmazonKinesis Data Firehose.

4 de octubre de2015

111

Page 117: Amazon Kinesis Data Firehose€¦ · Amazon Kinesis Data Firehose Guía para desarrolladores Flujo de datos Para los destinos de Amazon Redshift, los datos de streaming se entregan

Amazon Kinesis Data Firehose Guía para desarrolladores

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

112