Aspectos generales

P: ¿Qué es Amazon Kinesis Data Firehose?

Mediante Amazon Kinesis Data Firehose se ofrece la manera más sencilla de cargar datos de streaming en 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 poder realizar análisis casi en tiempo real con las herramientas de inteligencia empresarial existentes y los paneles que ya usa. Se trata de un servicio completamente administrado cuya capacidad se ajusta automáticamente para adaptarse al nivel de procesamiento de los datos y que no necesita administración permanente. También puede procesar datos por lotes, comprimirlos y cifrarlos antes de cargarlos para minimizar el volumen 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 por el aprovisionamiento, la implementación, el mantenimiento continuo del hardware o software, ni la escritura de ninguna otra aplicación para administrar 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 si sigue 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 mediante el agente de Amazon Kinesis 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 registran constantemente los 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 compatible con 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 mediante la creación de una transmisión de entrega y el envío de datos a esta.

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 1000 KB.

P: ¿Qué es un destino?

Un destino es el almacén de datos en el que se entregan los datos. En la actualidad, Amazon Kinesis Data Firehose admite 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 obtener más información, consulte Creación de transmisiones de entrega.

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

Con Amazon Kinesis Data Firehose, puede comprimir los datos antes de entregarlos a Amazon S3. En la actualidad, el servicio admite los formatos de compresión GZIP, ZIP y SNAPPY. El formato GZIP solo se admite si los datos se cargan con posterioridad 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 un 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 de AWS Lambda para transformar datos entrantes antes de entregarlos a su destino. Puede configurar una nueva función de Lambda con uno de los planos de Lambda que proporcionamos o elegir una función de Lambda existente.

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

Si usa la transformación de datos con Lambda, puede habilitar el respaldo de los registros originales y Amazon Kinesis Data Firehose entregará en un bucket de S3 diferente 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 de Lambda y los errores de entrega de datos en Amazon CloudWatch Logs para que le sea posible consultar los registros de errores específicos si ocurre una falla en una invocación de Lambda o en la entrega de datos. Puede obtener más información en la sección Monitorización con 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 los 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. Tenga en cuenta 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 entreguen 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é rol de IAM debo especificar mientras creo una transmisión de entrega?

Amazon Kinesis Data Firehose asume el rol de IAM que usted especifica para obtener acceso a recursos como un bucket de Amazon S3 y un dominio de Amazon Elasticsearch. Para más información, consulte Controlar el acceso con 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 (INSERT) 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 en un bucket de Amazon S3 y, a continuación, emite un comando COPY de Redshift para cargar los datos desde dicho bucket al clúster de Redshift.

P: ¿Qué es la rotación de índice para el destino Amazon Elasticsearch Service?

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 momento de crear la transmisión de entrega. Para más información, consulte Rotación de índice si el destino es Amazon ES en la guía para desarrolladores de Amazon Kinesis Data Firehose.

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

Al cargar datos en Amazon Elasticsearch Service, Amazon Kinesis Data Firehose puede realizar copias de seguridad 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 respaldo.

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 entrar en vigencia 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 de 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 exactamente el mismo recordId. Cualquier diferencia entre el recordId original y el devuelto se tratará como error de transformación de datos.
  • result: el estado del resultado de transformación de cada registro. Se permiten los siguientes valores para este parámetro: "Ok" si el registro se transforma 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. 
  • data: 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 de 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.
  • Registro Apache a JSON: este plano analiza y convierte líneas de registro Apache en objetos JSON, con nombres de campo JSON predefinidos.
  • Registro 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 Syslog en formato CSV.

P: ¿Puedo copiar todos los datos sin procesar en el bucket de S3?

Sí, Firehose puede respaldar todos los registros sin transformar en el bucket de S3 al tiempo que entrega registros transformados en el destino. Puede habilitar el respaldo 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 del agente de Amazon Kinesis o mediante las operaciones de Firehose PutRecord y PutRecordBatch. Kinesis Data Firehose también se integra en 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 registro y servidores de bases 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é diferencias existen 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 incluir 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 el origen 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í, es posible. Sin embargo, tenga en cuenta que la llamada a 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 Límites de Kinesis Data Streams 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 origen de una transmisión de entrega de Firehose, las operaciones PutRecord y PutRecordBatch de Firehose estarán deshabilitadas. Debe agregar datos a su transmisión de datos de Kinesis mediante las operaciones PutRecord y PutRecords de Kinesis Data Streams.

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

Para agregar 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 Kinesis Data Firehose.

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

Para agregar 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 Uso de filtros de suscripción de CloudWatch Logs en la Guía para desarrolladores de Amazon CloudWatch.

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

Para agregar 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 CloudWatch Events en la Guía para desarrolladores de Kinesis Data Firehose.

Entrega de datos

P: ¿Con qué frecuencia Amazon Kinesis Data Firehose entrega datos en un 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 en 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 en 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 en un clúster de Amazon Redshift?

Para los destinos de Amazon Redshift, Amazon Kinesis Data Firehose entrega primero los datos en el 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 en un dominio de Amazon Elasticsearch?

La frecuencia de entrega de datos en 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 en 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 en 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 en 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. Para modificar esta estructura de carpetas, agregue 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 crea 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 el destino Amazon Redshift, Amazon Kinesis Data Firehose genera archivos de manifiestos para cargar objetos de Amazon S3 en el clúster de Redshift por lotes. La carpeta de manifiestos almacena los archivos de manifiestos que genera Firehose.

P: ¿Cómo lucen los documentos de Elasticsearch respaldados en el 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 en el bucket de S3 como objeto de S3. Independientemente de qué modo de respaldo se configure, los documentos fallidos se entregan en el 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 la sección sobre respaldo en Amazon S3 para el destino Amazon ES en la guía para desarrolladores de Amazon Kinesis Data Firehose.

P: ¿Una única transmisión de entrega puede entregar datos en varios buckets de Amazon S3?

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

P: ¿Una única transmisión de datos puede entregar datos en varios clústeres o tablas de Amazon Redshift?

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

P: ¿Una única transmisión de datos puede entregar datos en varios dominios o índices de Amazon Elasticsearch Service?

Por el momento, cada transmisión de datos solo puede entregar datos en un solo domino y en un solo índice de Amazon Elasticsearch Service. Si quiere entregar datos en 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 2000 transacciones por segundo, 5000 registros por segundo y 5 MB por segundo de entrada. Puede aumentar este límite muy fácilmente si envía 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 registros duplicados si la solicitud inicial termina siendo aceptada.

P: ¿Qué sucede si falla la entrega de datos en el bucket de Amazon S3?

Si la entrega de datos en el 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 período máximo de retención de 24 horas, se descartarán los datos.

P: ¿Qué sucede si falla la entrega de datos en el clúster de Amazon Redshift?

Si la entrega de datos en el 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 manifiestos en la carpeta de errores. Este archivo de manifiestos se puede utilizar para realizar la operación manualmente. Si desea obtener información sobre cómo copiar datos manualmente a partir de los archivos de manifiestos, consulte Uso de un manifiesto para especificar archivos de datos.

P: ¿Qué sucede si falla la entrega de datos en el 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 en el 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. Los datos sobre los documentos que se omitieron se entregarán en el bucket de S3 en la carpeta elasticsearch_failed, que puede usar para replicarlos manualmente.

P: ¿Qué sucede si ocurre un error de transformación de datos?

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

  • El primer tipo es cuando la invocación de la función falla por razones como el alcance del límite del tiempo de espera de la red o los límites de la invocación de 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 con las API CreateDeliveryStream y 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 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 de 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 registros de errores a CloudWatch Logs. Puede obtener más información en la sección Acceso a Amazon CloudWatch Logs para AWS Lambda.

En ambos tipos de error, los registros que no se procesaron correctamente se entregan en el bucket de S3, en la carpeta processing_failed.

P: ¿Por qué el tamaño de los objetos de S3 entregados es mayor que el tamaño del búfer que especifiqué 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 manifiestos 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 obtener información sobre cómo copiar datos manualmente a partir de los archivos de manifiestos, 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 en el dominio de Amazon Elasticsearch. Puede volver a indexar estos documentos manualmente para replicarlos.

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 de AWS Lambda. Puede volver a procesar estos registros manualmente.

P: ¿Cómo puedo monitorizar las operaciones y el rendimiento de la transmisión de entrega en Amazon Kinesis Data Firehose?

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

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

Amazon Kinesis Data Firehose se integra en Amazon CloudWatch Logs, de modo que podrá ver los registros 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 obtener más información, consulte Monitorización con Amazon CloudWatch Logs en la guía para desarrolladores de Amazon Kinesis Data Firehose.

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

Amazon Kinesis Data Firehose se integra en 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 agregar datos a la 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 la 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 la 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 en AWS CloudTrail, un servicio que registra las llamadas a la API de AWS de su cuenta y le entrega archivos de registro. 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?

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 esquema de precios sencillo de pago por uso. No hay costos iniciales ni cuotas 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 con el 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.

Acuerdo de nivel de servicio

P: ¿Qué se garantiza en el acuerdo de nivel de servicio de Amazon Kinesis Data Firehose?

Mediante el acuerdo de nivel de servicio de Amazon Kinesis Data Firehose se garantiza un porcentaje de tiempo de funcionamiento mensual de al menos 99,9 % para Amazon Kinesis Data Firehose.

P: ¿Cómo sé si reúno los requisitos para recibir el crédito para el servicio que corresponde según el acuerdo de nivel de servicio?

Será elegible para recibir crédito del acuerdo para Amazon Kinesis Data Firehose bajo el acuerdo de Amazon Kinesis Data Firehose si más de una zona de disponibilidad en las que ejecuta una tarea, dentro de la misma región, tiene un porcentaje de tiempo de funcionamiento mensual inferior al 99,9 % durante cualquier ciclo de facturación mensual.

Para obtener información completa sobre los términos y las condiciones del acuerdo, así como detalles sobre cómo enviar una reclamación, consulte la página con detalles del acuerdo de Amazon Kinesis Data Firehose.

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