Aspectos generales

P: ¿Qué es Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose ofrece la manera más sencilla de cargar datos de streaming a almacenes de datos y herramientas de análisis. Puede registrar, transformar y cargar los datos de streaming en Amazon S3, Amazon Redshift, Amazon Elasticsearch Service y Splunk para habilitar el análisis casi en tiempo real con las herramientas de inteligencia empresarial existentes y los paneles que ya usa. Se trata de un servicio totalmente administrado que se escala automáticamente para adaptarse al desempeño de los datos, y no precisa de ninguna administración permanente. También puede procesar por lotes, comprimir y cifrar los datos antes de cargarlos, a fin de minimizar la cantidad de almacenamiento utilizado en el destino y aumentar la seguridad.

P: ¿Qué administra Amazon Kinesis Data Firehose por mí?

Amazon Kinesis Data Firehose administra toda la infraestructura subyacente, el almacenamiento, las redes y la configuración que se necesita para registrar y cargar sus datos en Amazon S3, Amazon Redshift, Amazon Elasticsearch Service o Splunk. No tiene que preocuparse del aprovisionamiento, la implementación, el mantenimiento continuo del hardware y del software, ni de escribir ninguna otra aplicación para la administración de este proceso. Firehose es muy flexible en lo que se refiere a escalabilidad, por lo que no requiere intervención de los desarrolladores ni les supone trabajo adicional. Además, Amazon Kinesis Data Firehose replica de forma sincronizada los datos en tres instalaciones en una región de AWS, lo que ofrece un elevado nivel de disponibilidad y durabilidad para los datos que se transmiten a los destinos.

P: ¿Cómo utilizo Amazon Kinesis Data Firehose?

Después de inscribirse en Amazon Web Services, podrá comenzar a usar Amazon Kinesis Data Firehose con los siguientes pasos:

  • Cree una transmisión de entrega de Amazon Kinesis Data Firehose a través de la consola de Firehose o la operación CreateDeliveryStream. Opcionalmente, puede configurar una función de AWS Lambda en su transmisión de entrega para preparar y transformar los datos sin procesar antes de cargarlos.
  • Configure sus generadores de datos para enviar datos de forma continua a su transmisión de entrega utilizando Amazon Kinesis Agent o la API de Firehose.
  • Firehose carga sus datos de forma automática y continua a los destinos que usted especifique.

P: ¿Qué es un origen?

Un origen es el lugar desde donde se generan y capturan constantemente sus datos de streaming. Por ejemplo, un origen puede ser un servidor de registro ejecutado en instancias de Amazon EC2, una aplicación ejecutada en dispositivos móviles, un sensor en un dispositivo IoT o una transmisión de Kinesis.

P: ¿Qué límites tiene Amazon Kinesis Data Firehose?

Para obtener más información sobre los límites, consulte la sección sobre límites de Amazon Kinesis Data Firehose en la guía para desarrolladores.

Conceptos clave

P: ¿Qué es una transmisión de entrega?

Una transmisión de entrega es la entidad subyacente de Amazon Kinesis Data Firehose. Firehose se utiliza creando una transmisión de entrega y enviándole datos a dicha transmisión.

P: ¿Qué es un registro?

Un registro son los datos de interés que el generador de datos envía a una transmisión de entrega. El tamaño máximo de un registro (antes de la codificación base64) es de 1 000 KB.

P: ¿Qué es un destino?

Un destino es el almacén de datos al que se entregan los datos. En la actualidad, Amazon Kinesis Data Firehose es compatible con Amazon S3, Amazon Redshift, Amazon Elasticsearch Service y Splunk como destinos.

Creación de transmisiones de entrega

P: ¿Cómo puedo crear una transmisión de entrega?

Puede crear una transmisión de entrega de Amazon Kinesis Data Firehose a través de la consola de Firehose o la operación CreateDeliveryStream. Si desea más información, consulte Creación de transmisiones de entrega.

P: ¿Qué formato de compresión puedo usar?

Amazon Kinesis Data Firehose permite comprimir los datos antes de entregarlos a Amazon S3. En la actualidad, el servicio es compatible con los formatos de compresión GZIP, ZIP y SNAPPY. El formato GZIP solo es compatible si los datos se cargan luego en Amazon Redshift.

P: ¿Cómo funciona la compresión cuando utilizo la función de suscripción de CloudWatch Logs?

Puede utilizar la función de suscripción de CloudWatch Logs para transmitir datos desde CloudWatch Logs a Kinesis Data Firehose. Todos los eventos de registro de CloudWatch Logs ya se encuentran comprimidos con el formato gzip, por lo que debería mantener la configuración de compresión de Firehose sin comprimir para evitar una compresión doble. Para obtener más información acerca de la característica de suscripción de CloudWatch Logs, consulte la sección sobre filtros de suscripción con Amazon Kinesis Data Firehose en la guía del usuario de Amazon CloudWatch Logs.

P: ¿Qué tipo de cifrado puedo usar?

Amazon Kinesis Data Firehose permite cifrar los datos después de haberlos entregado en su bucket de Amazon S3. Mientras crea su transmisión de entrega, puede cifrar los datos con una clave de AWS Key Management Service (KMS) de su propiedad. Si desea obtener más información sobre KMS, consulte AWS Key Management Service.

P: ¿Qué es la transformación de datos con Lambda?

Firehose puede invocar una función AWS Lambda para transformar datos entrantes antes de entregarlos a su destino. Puede configurar una nueva función Lambda usando uno de los planos Lambda que proporcionamos o elegir una función Lambda ya existente.

P: ¿Qué es el backup de los registros originales?

Si usa la transformación de datos con Lambda, puede habilitar el backup de los registros originales y Amazon Kinesis Data Firehose entregará en un bucket de S3 separado los datos entrantes sin transformar. Podrá especificar un prefijo adicional para colocarlo antes del prefijo de tiempo UTC "AAAA/MM/DD/HH" que genera Firehose.

P: ¿Qué es el registro de errores?

Si habilita la transformación de datos con Lambda, Firehose podrá registrar las invocaciones Lambda y los errores de entrega de datos en Amazon CloudWatch Logs para que le sea posible consultar los logs de errores específicos si fallan una invocación Lambda o una entrega de datos. Puede obtener más información en la sección Monitoring with Amazon CloudWatch Logs.

P: ¿Qué es el tamaño del búfer y el intervalo de búfer?

Amazon Kinesis Data Firehose almacena en el búfer los datos de streaming entrantes hasta alcanzar un determinado tamaño o un determinado período de tiempo antes de entregarlos en sus destinos. Puede configurar el tamaño y el intervalo del búfer durante la creación de la transmisión de entrega. El tamaño del búfer es en MB y va de 1 MB a 128 MB si el destino es Amazon S3 y de 1 MB a 100 MB si el destino es Amazon Elasticsearch Service. El intervalo del búfer se expresa en segundos y oscila entre 60 y 900 segundos. Observe que en circunstancias en las que la entrega de datos al destino queda rezagada con respecto a la escritura de datos en la transmisión de entrega, Firehose aumenta el tamaño del búfer dinámicamente para ponerse al corriente y asegurarse de que todos los datos se entregan en sus destinos.

P: ¿Cómo se aplica el tamaño del búfer si decido comprimir los datos?

El tamaño del búfer se aplica después de la compresión. Por tanto, si decide comprimir los datos, el tamaño de los objetos contenidos en el bucket de Amazon S3 puede ser menor que el tamaño del búfer que ha especificado.

P: ¿Qué función de IAM debo especificar mientras creo una transmisión de entrega?

Amazon Kinesis Data Firehose asume la función de IAM que usted especifica para acceder a recursos como un bucket de Amazon S3 y un dominio de Amazon Elasticsearch. Para más información, consulte Controlling Access with Amazon Kinesis Data Firehose en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Qué privilegios necesita el usuario de Amazon Redshift que debo especificar cuando estoy creando una transmisión de entrega?

El usuario de Amazon Redshift necesita privilegios de inserción en Redshift para copiar datos del bucket de Amazon S3 en el clúster de Redshift.

P: ¿Qué tengo que hacer si mi clúster de Amazon Redshift se encuentra en una VPC?

Si su clúster de Amazon Redshift se encuentra en una VPC, tiene que desbloquear las direcciones IP de Firehose desde su VPC para conceder a Amazon Kinesis Data Firehose acceso a su clúster de Redshift. En la actualidad, Firehose utiliza un bloque de CIDR para cada región de AWS disponible: 52.70.63.192/27 para EE.UU. Este (Norte de Virginia), 52.89.255.224/27 para EE.UU. Oeste (Oregón) y 52.19.239.192/27 para UE (Irlanda). Para obtener más información sobre cómo desbloquear IP en su VPC, consulte la sección sobre cómo conceder acceso a Firehose a un destino de Amazon Redshift en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Por qué necesito proporcionar un bucket de Amazon S3 cuando selecciono como destino Amazon Redshift?

Para los destinos de Amazon Redshift, Amazon Kinesis Data Firehose entrega primero los datos a su bucket de Amazon S3 y, a continuación, emite un comando COPY de Redshift para cargar los datos desde su bucket S3 al clúster de Redshift.

P: ¿Qué es la rotación de índices de Amazon Elasticsearch Service como destino?

Amazon Kinesis Data Firehose puede rotar su índice de Amazon Elasticsearch Service en función de una duración de tiempo. Puede configurar dicha duración al crear la transmisión de entrega. Para más información, consulte Index Rotation for the Amazon ES Destination en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Por qué necesito proporcionar un bucket de Amazon S3 cuando selecciono como destino Amazon Elasticsearch Service?

Al cargar datos en Amazon Elasticsearch Service, Amazon Kinesis Data Firehose puede realizar backups de todos los datos o solo de aquellos que no se pudieron entregar. Para aprovechar esta característica y evitar la pérdida de datos, debe proporcionar un bucket de Amazon S3 de backup.

P: ¿Puedo modificar la configuración de la transmisión de entrega una vez creada?

La configuración de la transmisión de entrega se puede cambiar en cualquier momento. Puede hacerlo mediante la consola de Firehose o la operación UpdateDestination. La transmisión de entrega permanece en estado activo mientras se actualizan las configuraciones, por lo que puede continuar enviándole datos. Las configuraciones actualizadas suelen surtir efecto al cabo de unos minutos.

Preparación y transformación de datos

P: ¿Cómo preparo y transformo datos sin formato en Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose le permite utilizar una función AWS Lambda para preparar y transformar los datos sin formato que entran en la transmisión de entrega antes de cargarla en los destinos. Puede configurar una función de AWS Lambda para transformar datos cuando cree una nueva transmisión de entrega o cuando edite una existente.

P: ¿Cómo devuelvo a Amazon Kinesis Data Firehose los datos preparados y transformados por la función de AWS Lambda?

Todos los registros transformados por Lambda deben devolverse a Firehose con los siguientes tres parámetros; de lo contrario, Firehose rechazará los registros y los tratará como errores de transformación de datos.

  • recordId: Firehose pasa a Lambda un recordld con cada registro durante la invocación. Cada registro transformado debe ser devuelto con el mismo recordId exacto. Cualquier diferencia entre el recordId original y el devuelto se tratará como error de transformación de datos.
  • resultado: el estado del resultado de transformación de cada registro. Se permiten los siguientes valores para este parámetro: "Ok" si el registro se ha transformado como se pretendía. "Dropped" si la lógica de procesamiento omite el registro intencionadamente, tal y como se pretendía. "ProcessingFailed" si el registro no se puede transformar tal y como correspondería. Cuando Firehose genera métricas de SucceedProcessing.Records y SucceedProcessing.Bytes trata los registros devueltos con estado de "Ok" y "Dropped" como registros procesados y los que tienen el estado "ProcessingFailed" como registros que no se han podido procesar. 
  • datos: la carga de datos transformados con codificación based64.

P: ¿Qué planos Lambda están disponibles para la preparación y transformación de datos?

Firehose proporciona los siguientes planos Lambda que puede utilizar para crear su función Lambda de transformación de datos:

  • Procesamiento general de Firehose: este plano contiene la transformación de datos y el modelo de estados que se acaba de describir. Use este plano para cualquier lógica de transformación personalizada.
  • Logs Apache a JSON: este plano analiza y convierte líneas de registro Apache en objetos JSON, con nombres de campo JSON predefinidos.
  • Logs Apache a CSV: este plano analiza y convierte líneas de registro Apache en formato CSV.
  • Syslog a JSON: este plano analiza y convierte líneas Syslog en objetos JSON, con nombres de campo JSON predefinidos.
  • Syslog a CSV: este plano analiza y convierte líneas de Syslog en formato CSV.

P: ¿Puedo copiar todos los datos brutos en el bucket S3?

Sí, Firehose puede crear backups de todos los registros sin transformar en el bucket S3 al tiempo que entrega registros transformados en el destino. Puede habilitar la creación de backups de los registros originales cuando cree o actualice la transmisión de entrega.

Agregar datos a transmisiones de entrega

P: ¿Cómo agrego datos a una transmisión de entrega de Amazon Kinesis Data Firehose?

Puede agregar datos a una transmisión de entrega de Amazon Kinesis Data Firehose a través de Amazon Kinesis Agent o mediante las operaciones de Firehose PutRecord y PutRecordBatch. Kinesis Data Firehose también se integra con otros orígenes de datos de AWS, como Kinesis Data Streams, AWS IoT, Amazon CloudWatch Logs y Amazon CloudWatch Events.

P: ¿Qué es el agente de Amazon Kinesis?

El agente de Amazon Kinesis es una aplicación precompilada de Java que ofrece una forma fácil de recopilar y enviar datos a una transmisión de entrega. Puede instalar el agente en entornos de servidor basados en Linux, como servidores web, servidores de log y servidores de base de datos. El agente monitoriza determinados archivos y envía continuamente datos a su transmisión de entrega. Para obtener más información, consulte Escribir con agentes.

P: ¿Qué plataformas son compatibles con el agente de Amazon Kinesis?

En este momento, el agente de Amazon Kinesis es compatible con Amazon Linux y Red Hat Enterprise Linux.

P: ¿Dónde consigo el agente de Amazon Kinesis?

Puede descargar e instalar el agente de Amazon Kinesis usando el siguiente comando y enlace:

En Amazon Linux: sudo yum install –y aws-kinesis-agent

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

Desde GitHub: awlabs/amazon-kinesis-agent

P: ¿Cómo se utiliza el agente de Amazon Kinesis?

Después de instalar el agente de Amazon Kinesis en sus servidores, puede configurarlo para monitorizar determinados archivos del disco y enviar datos nuevos de forma constante a su transmisión de entrega. Para obtener más información, consulte Escribir con agentes.

P: ¿Qué diferencia hay entre las operaciones PutRecord y PutRecordBatch?

La operación PutRecord permite incluir un solo registro de datos en una llamada a la API, mientras que la operación PutRecordBatch permite varios registros de datos en una llamada a la API. Si desea más información, consulte PutRecord y PutRecordBatch.

P: ¿Con qué plataformas o lenguajes de programación puedo obtener acceso a la API de Amazon Kinesis Data Firehose?

La API de Amazon Kinesis Data Firehose está disponible en los SDK de Amazon Web Services. Puede consultar la lista de plataformas y lenguajes de programación para los SDK de Amazon Web Services en Herramientas de Amazon Web Services.

P: ¿Cómo puedo agregar datos a mi transmisión de entrega de Firehose desde mi transmisión de Kinesis?

Cuando crea o actualiza su transmisión de entrega mediante la consola de AWS o las API de Firehose, puede configurar una transmisión de Kinesis como origen de su transmisión de entrega. Una vez configurado, Firehose leerá datos automáticamente de su transmisión de Kinesis y los cargará en destinos específicos.

P: ¿Con qué frecuencia Kinesis Data Firehose lee los datos de mi transmisión de Kinesis?

Kinesis Data Firehose llama a GetRecords() de Kinesis Data Streams una vez por segundo para cada fragmento de Kinesis.

P: ¿Desde dónde lee los datos Kinesis Data Firehose cuando la transmisión de Kinesis está configurada como la fuente de la transmisión de entrega?

Kinesis Data Firehose comienza a leer los datos desde la posición MÁS RECIENTE de su transmisión de datos de Kinesis cuando esta está configurada como el origen de una transmisión de entrega. Para obtener más información sobre la posición de la transmisión de datos de Kinesis consulte GetShardIterator en la referencia de la API del servicio Kinesis Data Streams.

P: ¿Puedo configurar mi transmisión de datos de Kinesis de manera que sea el origen de varias transmisiones de entrega de Firehose?

Sí, puede. Sin embargo, tenga en cuenta que la llamada GetRecords() desde Kinesis Data Firehose se contabiliza en la limitación controlada de su fragmento de Kinesis, por lo que debe planificar su transmisión de entrega junto con sus demás aplicaciones de Kinesis para que no se vea limitado. Para obtener más información, consulte Kinesis Data Streams Limits en la Guía para desarrolladores de Kinesis Data Streams.

P: ¿Puedo seguir agregando datos a una transmisión de entrega mediante el agente de Kinesis o las operaciones PutRecord y PutRecordBatch cuando la transmisión de datos de Kinesis esté configurada como origen?

No, no es posible. Cuando una transmisión de datos de Kinesis esté configurada como la fuente de una transmisión de entrega de Firehose, las operaciones PutRecord y PutRecordBatch de Firehose estarán deshabilitadas. Debería añadir datos a su transmisión de datos de Kinesis mediante las operaciones PutRecord y PutRecords de Kinesis Data Streams.

P: ¿Cómo puedo añadir datos a una transmisión de entrega desde AWS IoT?

Para añadir datos a su transmisión de entrega desde AWS IoT, debe crear una acción de AWS IoT que envíe eventos a su transmisión de entrega. Para obtener más información, Consulte Escritura en Amazon Kinesis Data Firehose mediante AWS IoT en la Guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Cómo puedo añadir datos a una transmisión de entrega desde CloudWatch Logs?

Para añadir datos a su transmisión de entrega de Firehose desde CloudWatch Logs, debe crear un filtro de suscripción de CloudWatch Logs que envíe eventos a su transmisión de entrega. Para obtener más información, consulte Using CloudWatch Logs Subscription Filters en la Guía para desarrolladores de Amazon CloudWatch.

P: ¿Cómo puedo añadir datos a una transmisión de entrega de Amazon Kinesis Data Firehose desde CloudWatch Events?

Para añadir datos a su transmisión de entrega de Firehose desde CloudWatch Events, debe crear una regla de CloudWatch Eventos que envíe eventos a su transmisión de entrega. Para obtener más información, consulte Escritura en Amazon Kinesis Data Firehose mediante Eventos de CloudWatch en la Guía para desarrolladores de Amazon Kinesis Data Firehose.

Entrega de datos

P: ¿Con qué frecuencia Amazon Kinesis Data Firehose entrega datos a mi bucket de Amazon S3?

La frecuencia de entrega de datos en Amazon S3 se determina en función del valor que se haya configurado para el tamaño y el intervalo del búfer de S3 para la transmisión de entrega. Amazon Kinesis Data Firehose envía los datos de entrada a un búfer antes de entregarlos a Amazon S3. Puede configurar los valores del tamaño del búfer de S3 (de 1 MB a 128 MB) o intervalo del búfer (de 60 a 900 segundos), y la condición que primero se cumpla activará la entrega de los datos a Amazon S3. Recuerde que en circunstancias en las que la entrega de datos al destino queda rezagada con respecto a la escritura de datos en la transmisión de entrega, Amazon Kinesis Data Firehose aumenta el tamaño del búfer dinámicamente para ponerse al corriente y asegurarse de que todos los datos se entreguen en sus destinos.

P: ¿Con qué frecuencia Amazon Kinesis Data Firehose entrega datos a mi clúster de Amazon Redshift?

Para los destinos de Amazon Redshift, Amazon Kinesis Data Firehose entrega primero los datos a su bucket de Amazon S3 y, a continuación, emite un comando COPY de Redshift para cargar los datos desde su bucket S3 al clúster de Redshift. La frecuencia con que se ejecutan las operaciones COPY de datos de Amazon S3 a Amazon Redshift depende de la velocidad con la que el clúster de Redshift pueda completar el comando COPY. Cuando aún quedan datos por copiar, Firehose espera a que el clúster de Redshift complete correctamente el comando COPY anterior y, tan pronto como termina, envía un nuevo comando COPY.

P: ¿Con qué frecuencia Amazon Kinesis Data Firehose entrega datos a mi clúster de Amazon Elasticsearch?

La frecuencia de entrega de datos en el bucket de Amazon Elasticsearch Service se determina en función del valor que se haya configurado para el tamaño y el intervalo del búfer para la transmisión de entrega. Firehose envía los datos de entrada a un búfer antes de entregarlos a Amazon Elasticsearch Service. Puede configurar los valores del tamaño del búfer de Elasticsearch (de 1 MB a 100 MB) o intervalo del búfer (de 60 a 900 segundos), y la condición que primero se cumpla activará la entrega de los datos a Amazon Elasticsearch Service. Recuerde que en circunstancias en las que la entrega de datos al destino queda rezagada con respecto a la escritura de datos en la transmisión de entrega, Amazon Kinesis Data Firehose aumenta el tamaño del búfer dinámicamente para ponerse al corriente y asegurarse de que todos los datos se entreguen en sus destinos.

P: ¿Cómo se organizan los datos en el bucket de Amazon S3?

Amazon Kinesis Data Firehose agrega el prefijo de la hora UTC en el formato AAAA/MM/DD/HH antes de agregar objetos a Amazon S3. El prefijo se traduce a la estructura de carpetas de Amazon S3, en la que cada etiqueta separada por una barra inclinada (/) se convierte en una subcarpeta. Puede modificar esta estructura de carpetas si agrega su propia carpeta de nivel superior con una barra inclinada (p. ej., myApp/AAAA/MM/DD/HH) o con texto delante del nombre de la carpeta de nivel superior AAAA (por ejemplo, myApp AAAA/MM/DD/HH). Puede hacerlo si especifica un prefijo S3 cuando cree la transmisión de entrega.

P: ¿Qué nomenclatura se utiliza para los objetos de Amazon S3 que entrega Amazon Kinesis Data Firehose?

El nombre del objeto de Amazon S3 sigue el patrón NombreTransmisiónEntrega-VersiónTransmisiónEntrega-AAAA-MM-DD-HH-MM-SS-CadenaAleatoria, donde VersiónTransmisiónEntrega comienza con 1 y aumenta en 1 por cada cambio de configuración realizado en la transmisión de entrega. Puede cambiar la configuración de la transmisión de entrega (por ejemplo, el nombre del bucket de S3, sugerencias de almacenamiento en búfer, compresión y cifrado) con la consola de Firehose o la operación UpdateDestination.

P: ¿Qué es la carpeta de manifiestos que hay en el bucket de Amazon S3?

Para los destinos de Amazon Redshift, Amazon Kinesis Data Firehose genera archivos de manifiesto para cargar objetos de Amazon S3 en el clúster de Redshift por lotes. La carpeta de manifiestos almacena los archivos de manifiesto que genera Firehose.

P: ¿Qué aspecto tienen los backups de documentos de Elasticsearch en mi bucket de Amazon S3?

Si se usa el modo "todos los documentos", Amazon Kinesis Data Firehose concatena múltiples registros de entrada a partir de la configuración de búfer de la transmisión de entrega y, a continuación, los entrega al bucket de S3 como objeto de S3. Independientemente de qué modo de backup se configure, los documentos fallidos se entregan a su bucket de S3 con un formato JSON determinado que proporciona información adicional, como el código de error y la hora del intento de entrega. Para obtener más información, consulte Backup en Amazon S3 para el destino de Amazon ES en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Puede una única transmisión de entrega entregar datos a varios buckets de Amazon S3?

Por el momento, cada transmisión de entrega solo puede entregar datos a un bucket Amazon S3. Si quiere entregar datos a varios buckets de S3, puede crear varias transmisiones de entrega.

P: ¿Puede una única transmisión de datos entregar datos a varios clústeres o tablas de Amazon Redshift?

Por el momento, cada transmisión de datos solo puede entregar datos a un clúster o a una tabla de Amazon Redshift. Si quiere entregar datos a varios clústeres o varias tablas de Redshift, puede crear varias transmisiones de entrega.

P: ¿Puede una única transmisión de datos entregar datos a varios dominios o índices de Amazon Elasticsearch Service?

Por el momento, cada transmisión de datos solo puede entregar datos a un domino y un índice de Amazon Elasticsearch Service. Si quiere entregar datos a varios dominios o índices de Amazon Elasticsearch Service, puede crear varias transmisiones de entrega.

Resolución de problemas y administración de transmisiones de entrega

P: ¿Por qué se me impone una limitación controlada cuando envío datos a mi transmisión de entrega en Amazon Kinesis Data Firehose?

De manera predeterminada, cada transmisión de entrega puede recibir hasta 2 000 transacciones/segundo, 5 000 registros/segundo y 5 MB/segundo de entrada. Puede aumentar este límite muy fácilmente enviando una solicitud de incremento del límite de servicio.

P: ¿Por qué veo registros duplicados en el bucket de Amazon S3, la tabla de Amazon Redshift o el índice de Amazon Elasticsearch Service?

Amazon Kinesis Data Firehose usa, al menos una vez, semántica para la entrega de datos. Excepcionalmente, como, por ejemplo, si se excede el tiempo de espera de la solicitud en un intento de entrega de datos, los reintentos de entrega que realiza Firehose pueden ocasionar duplicados si la solicitud inicial termina siendo aceptada.

P: ¿Qué pasa si falla la entrega de datos a mi bucket de Amazon S3?

Si la entrega de datos a su bucket de Amazon S3 no se concreta, Amazon Kinesis Data Firehose volverá a intentar entregar los datos cada 5 segundos durante un período máximo de 24 horas. Si el problema persiste después del periodo máximo de retención de 24 horas, descartará los datos.

P: ¿Qué pasa si falla la entrega de datos a mi clúster de Amazon Redshift?

Si la entrega de datos a su clúster de Amazon Redshift no se concreta, Amazon Kinesis Data Firehose volverá a intentar entregar los datos cada 5 segundos durante un período máximo de 60 minutos. Después de 60 minutos, Amazon Kinesis Data Firehose omitirá el lote actual de objetos de S3 listos para COPIAR y pasará al siguiente lote. La información relativa a los objetos omitidos se entrega al bucket de S3 en la forma de un archivo de manifiesto en la carpeta de errores. Este archivo de manifiesto se puede utilizar para realizar la operación manualmente. Si desea información sobre cómo copiar datos manualmente a partir de los archivos de manifiesto, consulte Uso de un manifiesto para especificar archivos de datos.

P: ¿Qué pasa si falla la entrega de datos a mi dominio de Amazon Elasticsearch?

Con Amazon Elasticsearch Service como destino, puede especificar durante cuánto tiempo se volverá a intentar la entrega (entre 0 y 7200 segundos) al crear la transmisión de entrega. Si la entrega de datos a su dominio de Amazon ES no se concreta, Amazon Kinesis Data Firehose volverá a intentar entregar los datos durante el tiempo especificado. Una vez transcurrido dicho período, Amazon Kinesis Data Firehose omitirá el lote actual de datos y pasará al siguiente lote. Los datos sobre los documentos que se omitieron se entregarán a su bucket de S3 en la carpeta elasticsearch_failed, que puede usar para replicarlos manualmente.

P: ¿Qué pasa si hay un error de transformación en los datos?

Se pueden dar dos tipos de errores cuando Firehose intenta invocar la función Lambda para la transformación de datos:

  • El primer tipo es cuando la invocación de la función falla por razones como alcanzar el límite del tiempo de espera de la red o los límites de la invocación Lambda. En estos contextos, Firehose intenta realizar la invocación tres veces de forma predeterminada y luego omite ese lote de registros específico. Los registros omitidos se tratan como registros que no se han podido procesar. Puede configurar el número de reintentos de invocación entre 0 y 300 utilizando CreateDeliveryStream y las API UpdateDeliveryStream. En este tipo de error, también puede utilizar la función de registro de errores de Firehose para emitir errores de invocación a los CloudWatch Logs. Puede obtener más información en la sección Monitorización con Amazon CloudWatch Logs.
  • El segundo tipo de error ocurre cuando el resultado de transformación de un registro aparece como "ProcessingFailed" al ser devuelto de la función Lambda. Firehose trata estos registros como registros que no han podido procesarse. En este tipo de error, también puede utilizar la función de registro de Lambda para emitir logs de errores a los CloudWatch Logs. Puede obtener más información en la sección Accessing Amazon CloudWatch Logs for AWS Lambda.

En ambos tipos de error, los registros de procesamiento no realizado se entregan en el bucket S3, en la carpeta processing_failed.

P: ¿Por qué el tamaño de objetos de S3 entregados es mayor que el tamaño del búfer que he especificado en la configuración de la transmisión de entrega?

El tamaño de los objetos S3 entregados suele ser igual al tamaño del búfer especificado si se cumple la condición del tamaño del búfer antes de que se cumpla la condición del intervalo del búfer. Sin embargo, cuando la entrega de datos al destino queda rezagada con respecto a la escritura de datos en la transmisión de entrega, Firehose aumenta el tamaño del búfer dinámicamente para ponerse al corriente y asegurarse de que todos los datos se entreguen en sus destinos. En estas circunstancias, el tamaño de los objetos de S3 entregados puede ser mayor que el tamaño de búfer especificado.

P: ¿Qué es la carpeta de errores que hay en el bucket de Amazon S3?

La carpeta de errores almacena los archivos de manifiesto que contienen información de los objetos de S3 que no se han cargado en el clúster de Amazon Redshift. Puede volver a cargar estos objetos manualmente mediante el comando COPY de Redshift. Si desea información sobre cómo copiar datos manualmente a partir de los archivos de manifiesto, consulte Uso de un manifiesto para especificar archivos de datos.

P: ¿Qué es la carpeta elasticsearch_failed que hay en el bucket de Amazon S3?

La carpeta elasticsearch_failed almacena los documentos que no se han podido cargar a su dominio de Amazon Elasticsearch. Puede volver a indexar estos documentos manualmente para su replicación.

P: ¿Qué es la carpeta processing_failed que hay en el bucket de Amazon S3?

La carpeta processing_failed almacena los registros que no se han podido transformar en la función AWS Lambda. Puede volver a procesar estos registros manualmente.

P: ¿Cómo puedo monitorear las operaciones y el desempeño de mi transmisión de entrega en Amazon Kinesis Data Firehose?

La consola de Firehose muestra métricas clave sobre el funcionamiento y el desempeño, como, por ejemplo, el volumen de datos entrantes y de datos entregados. Amazon Kinesis Data Firehose también se integra con métricas de Amazon CloudWatch para recopilar, ver y analizar métricas correspondientes a las transmisiones de entrega. Para más información sobre las métricas de Amazon Kinesis Data Firehose, consulte Monitoring with Amazon CloudWatch Metrics en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Cómo puedo monitorear los errores en la transformación y la entrega de datos de mi transmisión de entrega en Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose se integra con Amazon CloudWatch Logs, de modo que podrá ver los logs de errores específicos si falla la transformación o la entrega de datos. Puede habilitar los registros de errores al crear la transmisión de entrega. Para más información, consulte Monitoring with Amazon CloudWatch Logs en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Cómo puedo administrar y controlar el acceso a mi transmisión de entrega de Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose se integra con AWS Identity and Access Management, un servicio que permite controlar de forma segura el acceso de los usuarios a sus recursos y productos de AWS. Por ejemplo, puede crear una política que permita añadir datos a su transmisión de entrega de Firehose únicamente a un usuario o a un grupo específico. Para obtener más información sobre cómo administrar y controlar el acceso a su transmisión, consulte Control del acceso con Amazon Kinesis Data Firehose.

P: ¿Cómo puedo registrar las llamadas a la API que se realizan a mi transmisión de Amazon Kinesis Data Firehose para el análisis de seguridad y la solución de problemas operativos?

Amazon Kinesis Data Firehose se integra con AWS CloudTrail, un servicio que registra las llamadas a la API de AWS de su cuenta y le entrega archivos de log. Para obtener más información sobre el registro de llamadas a la API y la lista de las operaciones de la API de Amazon Kinesis Data Firehose admitidas, consulte Registro de las llamadas a la API de Amazon Kinesis Data Firehose con AWS CloudTrail.

Precios y facturación

P: ¿Amazon Kinesis Data Firehose está disponible dentro de la capa gratuita de AWS?

No. En la actualidad, Amazon Kinesis Data Firehose no está disponible dentro de la capa gratuita de AWS. La capa gratuita de AWS es un programa que ofrece pruebas gratuitas de varios servicios de AWS. Para obtener más información, consulte Capa gratuita de AWS.

P: ¿Cuánto cuesta Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose aplica un modelo sencillo de precios por uso. No se aplican costos iniciales ni tarifas mínimas y solo tendrá que pagar por los recursos que consuma. Los precios de Amazon Kinesis Data Firehose se basan en el volumen de datos (GB) que consuma Firehose, teniendo en cuenta que cada registro se redondea a los 5 KB siguientes. Para obtener más información sobre los costos de Amazon Kinesis Data Firehose, consulte Precios de Amazon Kinesis Data Firehose.

P: ¿Cómo se calcula el redondeo a los siguientes 5 KB cuando utilizo la operación PutRecordBatch para enviar datos a Amazon Kinesis Data Firehose?

El redondeo a 5 KB se calcula en el nivel de registro y no en el nivel de operación de la API. Por ejemplo, si la llamada PutRecordBatch contiene dos registros de 1 KB, el volumen de datos de esa llamada se calculará como 10 KB. (5 KB por registro)

P: ¿Los precios de Amazon Kinesis Data Firehose incluyen los costos de Amazon S3, Amazon Redshift, Amazon Elasticsearch Service y AWS Lambda?

No, los costos asociados al uso de Amazon S3, Amazon Redshift, Amazon Elasticsearch Service y AWS Lambda, incluidos el almacenamiento y las solicitudes, se facturan aparte. Para obtener más información, consulte Precios de Amazon S3Precios de Amazon RedshiftPrecios de Amazon Elasticsearch Service y Precios de AWS Lambda.

Más información sobre los precios de Amazon Kinesis Data Firehose

Visite la página de precios
¿Listo para comenzar?
Inscribirse
¿Tiene más preguntas?
Contacte con nosotros