Начните работать с AWS бесплатно

Создать бесплатный аккаунт

Получите доступ к уровню бесплатного пользования AWS на год, включая преимущества базовой поддержки: круглосуточное обслуживание клиентов (без праздников и выходных), форумы и многое другое. В настоящее время сервис Amazon Kinesis Data Firehose недоступен на уровне бесплатного пользования AWS.


Вопрос: Что такое Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose предоставляет простейший способ загрузки потоковых данных в хранилища и инструменты аналитики. Этот сервис позволяет захватывать, преобразовывать и загружать потоковые данные в Amazon S3Amazon RedshiftAmazon Elasticsearch Service или Splunk, а затем в режиме, близком к реальному времени, выполнять их анализ с помощью уже имеющихся инструментов бизнес-аналитики и панелей управления. Этот полностью управляемый сервис автоматически масштабируется в зависимости от пропускной способности и не требует постоянного администрирования. Кроме того, Amazon Kinesis Firehose позволяет создавать пакеты данных, а также сжимать и шифровать данные перед загрузкой, что сокращает объем памяти, используемый в целевом расположении, и повышает уровень безопасности.

 

Вопрос: Какие виды управления берет на себя Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose управляет инфраструктурой, хранилищем, сетевой конфигурацией и настройками, которые используются для захвата данных и их загрузки в сервисы Amazon S3, Amazon Redshift, Amazon Elasticsearch Service и Splunk. Сервис избавляет вас от необходимости самостоятельно выполнять распределение, развертывание, текущее обслуживание аппаратного и программного обеспечения или разрабатывать дополнительные приложения для управления этим процессом. Firehose также эластично масштабируется без вмешательства пользователя или сопутствующих расходов на разработку. Кроме того, Amazon Kinesis Data Firehose выполняет синхронную репликацию данных в трех ЦОД региона AWS, обеспечивая высокую доступность и сохранность данных в процессе их передачи на целевые объекты.

Вопрос: Как использовать Amazon Kinesis Data Firehose?

Зарегистрировавшись в Amazon Web Services, можно начать работу с Amazon Kinesis Data Firehose, выполнив следующие шаги.

  • Создать поток доставки Amazon Kinesis Data Firehose с помощью консоли Firehose или операции CreateDeliveryStream.Дополнительно можно настроить функцию AWS Lambda в потоке доставки на подготовку и преобразование необработанных данных перед их загрузкой.
  • Настроить источники данных для непрерывного добавления данных в поток доставки с помощью агента Amazon Kinesis или API Firehose.
  • Firehose будет непрерывно загружать данные в автоматическом режиме и передавать их указанному получателю.

Вопрос: Что такое источник?

Источник – это место непрерывного генерирования и захвата данных для потоковой передачи. Источником может быть сервер регистрации, работающий на инстансах Amazon EC2, приложение, работающее на мобильных устройствах, датчик на устройстве IoT или поток Kinesis. 

Вопрос: Какие лимиты действуют для Amazon Kinesis Data Firehose?

Пропускная способность потока доставки Amazon Kinesis Data Firehose может увеличиваться без лимита. Тем не менее существуют некоторые ограничения, о которых следует помнить при работе с Amazon Kinesis Firehose.

  • Максимальный размер записи, отправляемой в Firehose, до кодирования по схеме base64 составляет 1000 КБ.
  • Операции API CreateDeliveryStream(), DeleteDeliveryStream(), DescribeDeliveryStream(),ListDeliveryStreams() и UpdateDestination() могут осуществлять до 5 транзакций в секунду.
  • Поток доставки хранит записи данных до 24 часов на случай, если получатель будет недоступен.
  • Операция PutRecordBatch() принимает до 500 записей или 4 МБ данных за один вызов (в зависимости от того, какая из этих величин меньше).
  • Размер буфера варьируется от 1 до 128 МБ. Пороговое значение размера применяется к буферу до сжатия.
  • Интервал буфера варьируется от 60 до 900 с.

По умолчанию для каждого аккаунта можно создать до 20 потоков доставки в одном регионе AWS. Каждый поток доставки может принимать до 2000 транзакций в секунду, 5000 записей в секунду и 5 МБ данных в секунду. Эти два пороговых значения можно легко увеличить, отправив форму запроса на повышение ограничений.

 

 

 

Вопрос: Что такое поток доставки?

Поток доставки – это базовая сущность сервиса Amazon Kinesis Data Firehose. Работа с сервисом Firehose заключается в создании потока доставки и отправке в него данных.

Вопрос: Что такое запись?

Запись – это содержательная составляющая данных, которые ваш источник отправляет в поток доставки. Максимальный размер записи (до кодирования по схеме base64) составляет 1000 КБ.

Вопрос: Что такое получатель данных?

Получатель данных – это хранилище, в которое осуществляется доставка ваших данных. Amazon Kinesis Data Firehose в настоящее время поддерживает использование в качестве целевых объектов Amazon S3, Amazon Redshift, Amazon Elasticsearch Service и Splunk.

 

 

 

Вопрос: Как создать поток доставки?

Поток доставки Amazon Kinesis Data Firehose можно создать с помощью консоли Firehose или операции CreateDeliveryStream. Подробнее см. на странице Создание потока доставки.

Вопрос: Какой формат сжатия можно использовать?

Amazon Kinesis Data Firehose позволяет сжимать данные перед их доставкой в Amazon S3. Сервис в настоящее время поддерживает форматы сжатия GZIP, ZIP и SNAPPY. Если в дальнейшем данные будут загружаться в Amazon Redshift, поддерживается только формат GZIP.

Вопрос: Как работает сжатие при использовании возможности подписки на журналы CloudWatch Logs?

Возможность подписки CloudWatch Logs можно использовать для потоковой передачи данных журналов CloudWatch Logs в Kinesis Data Firehose. Все события из журналов CloudWatch Logs уже сжаты в формате gzip, поэтому, чтобы избежать двойного сжатия, рекомендуется отключить сжатие в настройках Firehose. Подробнее о возможности подписки CloudWatch Logs см. в разделе Фильтры подписки с использованием Amazon Kinesis Data Firehose «Руководства пользователя Amazon CloudWatch Logs».

Вопрос: Какие типы шифрования можно использовать?

Amazon Kinesis Data Firehose позволяет шифровать данные после доставки в корзину Amazon S3. При создании потока доставки можно выбрать шифрование данных с помощью принадлежащего пользователю ключа AWS Key Management Service (KMS). Дополнительные сведения о KMS см. на странице AWS Key Management Service.

Вопрос: Каким образом осуществляется преобразование данных с помощью Lambda?

Сервис Firehose может вызывать функцию AWS Lambda для преобразования входных данных перед их доставкой на целевые объекты. Можно настроить новую функцию Lambda, используя одну из предоставляемых нами схем Lambda, или выбрать существующую функцию Lambda.

Вопрос: Что представляет собой резервное копирование исходных записей?

Если используется преобразование данных с помощью Lambda, можно включить резервное копирование исходных записей, после чего сервис Amazon Kinesis Data Firehose будет сохранять непреобразованные входные данные в отдельную корзину S3. Можно указать дополнительный префикс, который будет добавляться перед префиксом времени UTC в формате «ГГГГ/ММ/ДД/ЧЧ», генерируемым Firehose.

Вопрос: Что представляет собой регистрация ошибок?

Если включить преобразование данных с помощью Lambda, сервис Firehose может регистрировать любые ошибки, связанные с вызовами функций Lambda и доставкой данных, в журналах Amazon CloudWatch, поэтому при сбое вызова функции Lambda или доставки в журналах можно посмотреть, какая именно ошибка произошла. Подробнее см. в разделе Мониторинг с помощью журналов Amazon CloudWatch.

Вопрос: Что такое размер и интервал буфера?

Amazon Kinesis Data Firehose выполняет буферизацию определенного объема входящих потоковых данных в течение определенного периода времени перед их доставкой получателю. Размер и интервал буфера можно задать при создании потока доставки. Размер буфера задается в мегабайтах в диапазоне от 1 МБ до 128 МБ, если получателем является Amazon S3, и в диапазоне от 1 МБ до 100 МБ, если получатель Amazon Elasticsearch Service. Интервал буфера задается в секундах и варьируется в интервале 60–900 с. Обратите внимание, что в том случае, когда доставка данных в пункт назначения отстает от записи в поток доставки, Firehose динамически увеличивает размер буфера, чтобы ликвидировать отставание и обеспечить доставку всех данных в пункт назначения.

Вопрос: Каким образом определяется размер буфера, если выполняется сжатие данных?

Размер буфера определяется до сжатия данных. В результате, если вы решите сжимать данные, размер объектов в корзине Amazon S3 может оказаться меньше заданного размера буфера.

Вопрос: Что такое роль IAM, которую необходимо указать при создании потока доставки?

Amazon Kinesis Data Firehose применяет определенную для него роль IAM для доступа к ресурсам, таким как корзина Amazon S3 или домен Amazon Elasticsearch. Подробнее см. в разделе Управление доступом с помощью Amazon Kinesis Data Firehose «Руководства по Amazon Kinesis Data Firehose для разработчиков».

Вопрос: Какие права нужны пользователю Amazon Redshift, который указывается при создании потока доставки?

Пользователь Amazon Redshift должен обладать правом Redshift INSERT для копирования данных из корзины Amazon S3 в кластер Redshift.

Вопрос: Что нужно сделать, если кластер Amazon Redshift находится в VPC?

Если кластер Amazon Redshift находится в VPC, для предоставления доступа к этому кластеру Redshift сервису Amazon Kinesis Data Firehose требуется разблокировать IP-адреса Firehose для данного VPC. В настоящее время Firehose использует по одному блоку CIDR для каждого из доступных регионов AWS: 52.70.63.192/27 для Востока США (Сев. Вирджиния), 52.89.255.224/27 для Запада США (Орегон) и 52.19.239.192/27 для ЕС (Ирландия). Подробности о разблокировании IP-адресов для VPC см. в разделе Предоставление Firehose доступа к сервису Amazon Redshift в качестве целевого объекта «Руководства по Amazon Kinesis Data Firehose для разработчиков».

Вопрос: Зачем нужно указывать корзину Amazon S3, если в качестве целевого объекта используется Amazon Redshift?

Если в качестве целевого объекта выбран сервис Amazon Redshift, Amazon Kinesis Data Firehose доставляет данные сначала в корзину Amazon S3, а затем исполняет команду Redshift COPY для загрузки данных из корзины S3 в кластер Redshift.

Вопрос: Что такое ротация индекса Amazon Elasticsearch Service, выбранного в качестве целевого объекта?

Amazon Kinesis Data Firehose может выполнять ротацию индекса Amazon Elasticsearch Service на основе интервалов времени. Интервал времени можно настроить при создании потока доставки. Подробнее см. в разделе Ротация индекса для Amazon ES в качестве целевого объекта «Руководства по Amazon Kinesis Data Firehose для разработчиков».

Вопрос: Зачем нужно указывать корзину Amazon S3, если в качестве получателя выступает Amazon Elasticsearch Service?

При загрузке данных в Amazon Elasticsearch Service Amazon Kinesis Data Firehose может создавать резервную копию всех данных или только тех данных, которые не удалось доставить получателю. Чтобы воспользоваться этой возможностью и предотвратить потерю данных, необходимо выделить резервную корзину Amazon S3.

Вопрос: Можно ли изменять конфигурацию потока доставки после его создания?
Конфигурацию потока доставки после его создания можно изменять в любое время. Это можно сделать с помощью консоли Firehose или операции UpdateDestination. В процессе обновления конфигурации поток доставки будет оставаться в АКТИВНОМ состоянии, поэтому вы можете продолжать отправку данных в поток доставки. Обновленные конфигурации обычно вступают в действие в течение нескольких минут.

Вопрос: Как подготовить и преобразовать необработанные данные в Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose позволяет использовать функцию AWS Lambda для подготовки и преобразования необработанных входных данных в потоке доставки перед их загрузкой на целевые объекты. Настроить функцию AWS Lambda для преобразования данных можно при создании нового потока доставки или при изменении существующего потока доставки.

Вопрос: Как вернуть подготовленные и преобразованные данные из функции AWS Lambda назад, в Amazon Kinesis Data Firehose?

Все преобразованные записи из Lambda должны возвращаться в Firehose с указанными ниже тремя параметрами, иначе сервис Firehose будет отклонять эти записи и обрабатывать их как сбой, произошедший во время преобразования данных.

  • recordId. Firehose передает параметр recordId вместе с каждой записью в Lambda во время вызова функции. Каждая преобразованная запись должна быть возвращена с точно таким же параметром recordId. Любое несоответствие между исходным параметром recordId и возвращенным параметром recordId будет рассматриваться как сбой при преобразовании данных. 
  • result. Статус результата преобразования каждой записи. Для этого параметра допустимы следующие значения. «Ok», если запись была успешно преобразована в штатном режиме. «Dropped», если в используемом алгоритме обработки запись была намеренно пропущена в штатном режиме. «ProcessingFailed», если не удалось преобразовать запись в штатном режиме. Сервис Firehose рассматривает возвращенные записи со статусами «Ok» и «Dropped» как успешно обработанные записи, а записи со статусом «ProcessingFailed» – как неудачно обработанные записи, когда он генерирует метрики SucceedProcessing.Records и SucceedProcessing.Bytes. 
  • data. Преобразованные полезные данные после кодирования по схеме Base64. 

Вопрос: Какие схемы Lambda доступны для подготовки и преобразования данных?

Сервис Firehose предоставляет следующие схемы Lambda, которые можно использовать для создания функции Lambda для преобразования данных.

  • General Firehose Processing. Эта схема содержит модель преобразования данных и состояния, как описано выше. Используйте эту схему для любого пользовательского алгоритма преобразования.
  • Apache Log to JSON. Эта схема используется для анализа и преобразования строк журнала Apache в объекты JSON с предварительно определенными названиями полей JSON.
  • Apache Log to CSV. Эта схема используется для анализа и преобразования строк журнала Apache в формат CSV.
  • Syslog to JSON. Эта схема используется для анализа и преобразования строк системного журнала в объекты JSON с предварительно определенными названиями полей JSON.
  • Syslog to CSV. Эта схема используется для анализа и преобразования строк системного журнала в формат CSV.

Вопрос: Можно ли хранить копию всех необработанных данных в своей корзине S3?

Да. Сервис Firehose может создавать резервную копию всех непреобразованных записей в корзине S3 параллельно с доставкой преобразованных записей на целевые объекты. Резервное копирование исходной записи можно включить при создании или обновлении потока доставки.

Вопрос: Как добавить данные в поток доставки Amazon Kinesis Data Firehose?

Добавить данные в поток доставки Amazon Kinesis Data Firehose можно с помощью агента Amazon Kinesis или операций PutRecord и PutRecordBatch сервиса Firehose. Кроме того, Kinesis Data Firehose интегрирован с другими источниками данных AWS, такими как Kinesis Data Streams, AWS IoT, Amazon CloudWatch Logs и Amazon CloudWatch Events.

Вопрос: Что такое агент Amazon Kinesis?

Агент Amazon Kinesis – это встроенное приложение Java, позволяющее легко собирать и отправлять данные в поток доставки. Агент можно устанавливать в серверных средах Linux, таких как веб-серверы, лог-серверы и серверы баз данных. Агент отслеживает определенные файлы и непрерывно отправляет данные в поток доставки. Дополнительные сведения см. на странице Запись с помощью агентов.

Вопрос: Какие платформы поддерживаются агентом Amazon Kinesis?

В настоящее время агент Amazon Kinesis поддерживает Amazon Linux и Red Hat Enterprise Linux.

Вопрос: Как загрузить агент Amazon Kinesis?

Чтобы загрузить и установить агент Amazon Kinesis, необходимо использовать следующую команду.

В Amazon Linux: sudo yum install -y aws-kinesis-agent

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

Загрузка из GitHub: awlabs/amazon-kinesis-agent

Вопрос: Как использовать агент Amazon Kinesis?

После установки агента Amazon Kinesis на серверах его можно настроить для мониторинга отдельных файлов на диске и непрерывной передачи новых данных в поток доставки. Дополнительные сведения см. на странице Запись с помощью агентов.

Вопрос: В чем разница между операциями PutRecord и PutRecordBatch?

Операция PutRecord позволяет одним вызовом API добавить одну запись данных, а операция PutRecordBatch позволяет одним вызовом API добавить несколько записей данных. Дополнительные сведения см. по ссылкам PutRecord и PutRecordBatch.

Вопрос: Какие языки программирования или платформы можно использовать для работы с API Amazon Kinesis Data Firehose?

API Amazon Kinesis Data Firehose доступны в пакетах SDK Amazon Web Services. Перечень языков и платформ программирования, поддерживаемых SDK Amazon Web Services, см. на странице Инструменты для Amazon Web Services.

Вопрос: Как добавить данные в поток доставки Firehose из потока Kinesis?

При создании или обновлении потока доставки данных через консоль AWS или API Firehose можно настроить поток Kinesis в качестве источника потока доставки. После настройки Firehose будет автоматически считывать данные из потока Kinesis и загружать их в указанные пункты назначения.

Вопрос: Как часто Kinesis Data Firehose считывает данные из потока Kinesis?

Kinesis Data Firehose выполняет вызов GetRecords() к Kinesis Data Streams один раз в секунду для каждого сегмента Kinesis.

Вопрос: С какого момента Kinesis Data Firehose начинает считывать данные, если настроить поток Kinesis как источник потока доставки данных?

Если поток Kinesis настроен как источник потока доставки данных, Kinesis Data Firehose начинает считывать данные с ПОСЛЕДНЕЙ позиции потока. Для получения дополнительной информации о позиции в потоке Kinesis см. раздел GetShardIterator в справке по API сервиса Kinesis Data Streams.

Вопрос: Можно ли настроить поток данных Kinesis в качестве источника для нескольких потоков доставки данных Firehose?

Да, можно. Однако имейте в виду, что вызов GetRecords() от Kinesis Data Firehose учитывается при сравнении параметров потока с установленными лимитами для сегмента Kinesis, поэтому следует планировать работу потока доставки данных с учетом других приложений Kinesis, чтобы убедиться, что лимиты не превышены. Дополнительную информацию см. в разделе Лимиты Kinesis Data Streams «Руководства по Kinesis Data Streams для разработчиков».

Вопрос: Можно ли добавить данные в поток доставки с помощью агента Kinesis или операций Firehose PutRecord/PutRecordBatch, если в качестве источника настроен поток данных Kinesis?

Нет, нельзя. Если в качестве источника потока доставки Firehose настроен поток данных Kinesis, операции PutRecord и PutRecordBatch сервиса Firehose отключаются. Добавлять данные в поток данных Kinesis следует через операции PutRecord и PutRecords сервиса Kinesis Data Streams.

Вопрос: Как добавить в поток доставки данные сервиса AWS IoT?

Добавление в поток доставки данных из AWS IoT выполняется созданием действия AWS IoT, с помощью которого события отправляются в поток доставки данных. Дополнительная информация. См. раздел Запись в Amazon Kinesis Data Firehose с использованием AWS IoT «Руководства по Kinesis Data Firehose для разработчиков».

Вопрос: Как добавить в поток доставки данные журналов CloudWatch Logs?

Добавить в поток доставки Firehose данные журналов CloudWatch Logs можно, создав фильтр подписки на журналы CloudWatch Logs, который отправляет события в поток доставки. Дополнительную информацию см. в разделе Использование фильтров подписки на журналы CloudWatch Logs Руководства пользователя Amazon CloudWatch.

Вопрос: Как добавить в поток доставки Amazon Kinesis Data Firehose данные CloudWatch Events?

Чтобы добавить в поток доставки Firehose данные CloudWatch Events, требуется создать правило CloudWatch Events с потоком доставки в качестве цели. Дополнительную информацию см. в разделе Запись в Amazon Kinesis Data Firehose с помощью CloudWatch Events «Руководства по Kinesis Data Firehose для разработчиков».

 

Вопрос: Как часто Amazon Kinesis Data Firehose доставляет данные в корзину Amazon S3?

Частота доставки данных в Amazon S3 определяется значениями размера и интервала буфера корзины S3, настроенными для потока доставки. Прежде чем доставить входящие данные в Amazon S3, Amazon Kinesis Data Firehose выполняет их буферизацию. Можно настроить размер буфера корзины S3 (от 1 до 128 МБ) или интервал буферизации (от 60 до 900 секунд), в результате условие, выполненное первым, будет инициировать доставку данных в Amazon S3. Обратите внимание, что если доставка данных в целевой объект отстает от записи в поток доставки, Amazon Kinesis Data Firehose динамически увеличивает размер буфера, чтобы ликвидировать отставание и обеспечить доставку в целевой объект всех данных.

Вопрос: Как часто сервис Amazon Kinesis Data Firehose доставляет данные в кластер Amazon Redshift?

Если в качестве целевого объекта выбран сервис Amazon Redshift, Amazon Kinesis Data Firehose доставляет данные сначала в корзину Amazon S3, а затем исполняет команду Redshift COPY для загрузки данных из корзины S3 в кластер Redshift. Частота операций копирования данных из Amazon S3 в Amazon Redshift определяется скоростью исполнения команды COPY кластером Redshift. При наличии данных для копирования сервис Firehose начнет исполнение новой команды COPY, как только кластер Redshift успешно завершит исполнение предыдущей команды COPY.

Вопрос: Как часто сервис Amazon Kinesis Data Firehose доставляет данные в домен Amazon Elasticsearch?

Частота доставки данных в Amazon Elasticsearch Service определяется значениями размера и интервала буфера Elasticsearch, заданными для потока доставки. Firehose выполняет буферизацию входящих данных, прежде чем выполнить их доставку в Amazon Elasticsearch Service. Можно настроить величину буфера при доставке в Elasticsearch (от 1 до 100 МБ) или интервал буферизации (от 60 до 900 секунд), и условие, исполненное первым, будет инициировать передачу данных в Amazon Elasticsearch Service. Обратите внимание, что если доставка данных в целевой объект отстает от записи в поток доставки, Amazon Kinesis Data Firehose динамически увеличивает размер буфера, чтобы ликвидировать отставание и обеспечить доставку в целевой объект всех данных.

Вопрос: Как организованы данные в корзине Amazon S3?

Перед размещением объектов в корзину Amazon S3 сервис Amazon Kinesis Data Firehose добавляет к ним префикс времени UTC в формате ГГГГ/ММ/ДД/ЧЧ. Префикс также отражается в структуре папок Amazon S3, где каждая метка, разделенная косой чертой (/), становится подпапкой. Эту структуру папок можно изменить, добавив собственную папку верхнего уровня с уровня с помощью косой черты (например myApp/ГГГГ/ММ/ДД/ЧЧ) или добавив текст к имени папки верхнего уровня ГГГГ (например myApp ГГГГ/ММ/ДД/ЧЧ). Это можно сделать, указав префикс S3 на этапе создания потока доставки.

Вопрос: Какова схема наименования объектов Amazon S3, доставляемых сервисом Amazon Kinesis Data Firehose?

Наименования объектов Amazon S3 следуют схеме НазваниеПотокаДоставки-ВерсияПотокаДоставки-ГГГГ-ММ-ДД-ЧЧ-ММ-СС-СлучайнаяСтрока, где ВерсияПотокаДоставки начинается с 1 и увеличивается на 1 при каждом изменении конфигурации потока доставки. Конфигурацию потока доставки (например название корзины S3, буферизацию, сжатие и шифрование) можно изменить с помощью консоли Firehose или операции UpdateDestination.

Вопрос: Зачем нужна папка manifests в корзине Amazon S3?

Если в качестве целевого объекта используется сервис Amazon Redshift, Amazon Kinesis Data Firehose создает файлы манифеста, чтобы выполнить пакетную загрузку объектов Amazon S3 в кластер Redshift. В папке manifests хранятся файлы манифеста, созданные Firehose.

Вопрос: В каком формате хранится в корзине Amazon S3 резервная копия документов Elasticsearch?

Если используется режим «все документы», Amazon Kinesis Data Firehose объединяет несколько входящих записей (в зависимости от настроек буферизации для потока доставки), а затем передает их в корзину S3 как объект S3. Независимо от настроек режима резервного копирования, документы, при доставке которых произошел сбой, передаются в корзину S3 в определенном формате JSON, который предоставляет дополнительную информацию, например код ошибки и время попытки доставки. Подробности см. в разделе Резервное копирование в Amazon S3 при использовании Amazon ES в качестве целевого объекта «Руководства по Amazon Kinesis Data Firehose для разработчиков».

Вопрос: Можно ли доставлять данные в несколько корзин Amazon S3 с помощью одного потока доставки?

В настоящее время поток доставки может доставлять данные только в одну корзину Amazon S3. Если вам необходимо доставить данные в несколько корзин S3, можно создать несколько потоков доставки.

Вопрос: Можно ли доставлять данные в несколько кластеров или таблиц Amazon Redshift с помощью одного потока доставки?

В настоящее время поток доставки может доставлять данные только в один кластер и одну таблицу Amazon Redshift. Если вам необходимо доставить данные в несколько кластеров или таблиц Amazon Redshift, можно создать несколько потоков доставки.

Вопрос: Можно ли доставлять данные в несколько доменов Amazon Elasticsearch Service с помощью одного потока доставки?

В настоящее время поток доставки может доставлять данные только в один домен и один индекс Amazon Elasticsearch Service. Если вам необходимо доставить данные в несколько доменов и индексов Amazon Elasticsearch, можно создать несколько потоков доставки.

Вопрос: Почему происходит пропуск при отправке данных в поток доставки Amazon Kinesis Data Firehose?

По умолчанию каждый поток доставки может принимать до 2000 транзакций в секунду, 5000 записей в секунду и 5 МБ данных в секунду. Эти пороговые значения можно легко увеличить, отправив форму запроса на повышение ограничений.

Вопрос: Почему я вижу дублирующие записи в корзине Amazon S3, таблице Amazon Redshift или индексе Amazon Elasticsearch?

Сервис Amazon Kinesis Data Firehose использует для доставки данных по меньшей мере одну семантику. В редких случаях (например, при тайм-ауте запроса в момент попытки доставки данных) повторная попытка доставки данных сервисом Firehose может привести к дубликатам, если предыдущий запрос случайно завершился успешно. 

Вопрос: Что случится, если доставка данных в корзину Amazon S3 заканчивается сбоем?

Если доставка данных в корзину Amazon S3 заканчивается сбоем, Amazon Kinesis Data Firehose повторяет попытки доставки каждые 5 секунд на протяжении необходимого времени (до 24 часов). Если проблема остается после истечения 24-часового периода времени, то данные удаляются.

Вопрос: Что происходит, если доставка данных в кластер Amazon Redshift заканчивается сбоем?

Если доставка данных в кластер Amazon Redshift заканчивается сбоем, Amazon Kinesis Data Firehose повторяет попытки доставки каждые 5 минут на протяжении необходимого времени (до 60 минут). По истечении 60 минут Amazon Kinesis Data Firehose пропускает текущий пакет объектов S3, подготовленных для копирования, и переходит к следующему пакету. Информация о пропущенных объектах будет доставлена в корзину S3 в виде файла манифеста, сохраненного в папке ошибок; его можно использовать для последующей загрузки объектов вручную. Дополнительные сведения о копировании данных вручную с использованием файлов манифеста см. по ссылке Определение файлов данных с помощью манифеста.

Вопрос: Что происходит, если доставка данных в домен Amazon Elasticsearch заканчивается сбоем?

Если получателем является Amazon Elasticsearch Service, то при создании потока доставки можно задать период повторов в диапазоне от 0 до 7200 секунд. Если доставка данных в домен Amazon ES заканчивается сбоем, то Amazon Kinesis Data Firehose повторяет попытки доставки в течение заданного периода времени. После истечения периода повторных попыток Amazon Kinesis Data Firehose пропускает текущий пакет данных и переходит к следующему пакету. Подробные сведения о пропущенных документах передаются в корзину S3 в папку elasticsearch_failed; ими можно воспользоваться для загрузки документов вручную.

Вопрос: Что произойдет при сбое во время преобразования данных?

Возможны два варианта возникновения сбоя при попытке сервиса Firehose вызвать функцию Lambda для преобразования данных.

  • В первом случае сбой возникает при вызове функции из-за превышения времени ожидания сети или при достижении ограничения вызовов функции Lambda. В подобных случаях возникновения сбоя сервис Firehose по умолчанию повторит вызов три раза, а затем пропустит этот конкретный пакет записей. Пропущенные записи обрабатываются как неудачно обработанные записи. Можно настроить число попыток вызова от 0 до 300 с помощью API CreateDeliveryStream и UpdateDeliveryStream. Для подобных случаев возникновения сбоя можно также использовать функцию регистрации ошибок Firehose для передачи данных об ошибках в журналы CloudWatch. Подробнее см. в разделе Мониторинг с помощью журналов Amazon CloudWatch.
  • Во втором случае сбой возникает, когда в результате преобразования записи устанавливается статус «ProcessingFailed» после возвращения данных из функции Lambda. Firehose обрабатывает эти записи как неудачно обработанные записи. В подобном случае возникновения сбоя можно использовать функцию регистрации Lambda для передачи логов с информацией об ошибках в журналы CloudWatch. Подробнее см. в разделе Доступ к журналам Amazon CloudWatch для AWS Lambda.

В обоих случаях возникновения сбоя неудачно обработанные записи записываются в корзину S3 в папку processing_failed.

Вопрос: Почему размер доставленных объектов S3 превышает размер буфера, указанный в конфигурации потока доставки?

Размер доставленных объектов S3 в большинстве случаев должен отражать указанный размер буфера, если условие размера буфера удовлетворяется до того, как будет удовлетворено условие интервала буфера. Однако в том случае, когда доставка данных в пункт назначения отстает от записи в поток доставки, Firehose динамически увеличивает размер буфера, чтобы ликвидировать отставание и обеспечить доставку всех данных в пункт назначения. В этом случае размер доставленных объектов S3 может быть больше указанного размера буфера.

Вопрос: Зачем нужна папка errors в корзине Amazon S3?

В папку errors попадают файлы манифеста с информацией об объектах S3, не загруженных в кластер Amazon Redshift из-за возникновения сбоев. Эти объекты можно впоследствии загрузить вручную с помощью команды COPY сервиса Redshift. Дополнительные сведения о копировании данных вручную с использованием файлов манифеста см. по ссылке Определение файлов данных с помощью манифеста.

Вопрос: Зачем нужна папка elasticsearch_failed в корзине Amazon S3?

Папка elasticsearch_failed хранит документы, доставка которых в домен Amazon Elasticsearch закончилась сбоем. Эти документы можно переиндексировать для загрузки вручную.  

Вопрос: Зачем нужна папка processing_failed в корзине Amazon S3?

В папке processing_failed хранятся записи, которые не удалось преобразовать с помощью функции AWS Lambda. Можно повторить обработку этих записей вручную.

Вопрос: Как отслеживать выполнение операций и производительность потока доставки Amazon Kinesis Data Firehose?

Консоль Firehose отображает основные метрики операций и производительности, например объем входящих данных и объем доставленных данных. Помимо этого, Amazon Kinesis Data Firehose интегрирован с метриками Amazon CloudWatch, что позволяет собирать, просматривать и анализировать метрики потоков доставки. Подробнее о метриках сервиса Amazon Kinesis Data Firehose см. в разделе Мониторинг с помощью метрик Amazon CloudWatch «Руководства по Kinesis Data Firehose для разработчиков».

Вопрос: Как отслеживать сбои при преобразовании и доставке данных потоком доставки Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose интегрирован с Amazon CloudWatch Logs, поэтому при сбое преобразования или доставки данных в этих журналах можно посмотреть, какая именно ошибка произошла. При создании потока доставки можно включить регистрацию ошибок. Подробнее см. в разделе Мониторинг с помощью журналов Amazon CloudWatch «Руководства по Amazon Kinesis Data Firehose для разработчиков».

Вопрос: Как управлять доступом к потоку доставки Amazon Kinesis Data Firehose?

Amazon Kinesis Data Firehose интегрирован с сервисом AWS Identity and Access Management, который позволяет безопасно управлять доступом пользователей к сервисам и ресурсам AWS. Например, можно создать политику, которая позволит только определенному пользователю или группе пользователей добавлять данные в поток доставки Firehose. Дополнительные сведения об управлении доступом и контроле потока см. в разделе Управление доступом к Amazon Kinesis Data Firehose.

Вопрос: Как получить журналы вызовов API к потоку доставки Amazon Kinesis Data Firehose для анализа безопасности и решения операционных проблем?

Amazon Kinesis Data Firehose интегрирован с сервисом Amazon CloudTrail, который записывает вызовы API AWS в рамках аккаунта и доставляет клиенту файлы журналов. Дополнительную информацию о регистрации вызовов API, а также список поддерживаемых API Amazon Kinesis Data Firehose см. в разделе Регистрация вызовов API Amazon Kinesis Data Firehose с помощью Amazon CloudTrail.

Вопрос: Доступен ли сервис Amazon Kinesis Data Firehose на уровне бесплатного пользования AWS?

Нет. В настоящее время сервис Amazon Kinesis Data Firehose недоступен на уровне бесплатного пользования AWS. Уровень бесплатного пользования AWS – это программа, предлагающая бесплатную пробную версию ряда сервисов AWS. Подробнее см. в разделе Уровень бесплатного пользования AWS.

Вопрос: Сколько стоит использование Amazon Kinesis Data Firehose?
С Amazon Kinesis Data Firehose вы платите только за используемые ресурсы. Сервис не предусматривает авансовой оплаты или минимальных стартовых взносов. Стоимость Amazon Kinesis Data Firehose зависит от объема переданных в Firehose данных (в гигабайтах), при этом размер каждой записи округляется в большую сторону до ближайшего значения, кратного 5 КБ. Дополнительные сведения о стоимости Amazon Kinesis Data Firehose см. на странице Цены на Amazon Kinesis Data Firehose.

Вопрос: Каким образом происходит округление до ближайшего значения, кратного 5 КБ, при использовании для отправки данных в Amazon Kinesis Data Firehose операции PutRecordBatch?

Округление до ближайшего значения, кратного 5 КБ, происходит на уровне записи, а не на уровне операций API. Например, если ваш вызов PutRecordBatch содержит две записи по 1 КБ, объем данных для этого вызова составит 10 КБ. (5 КБ на каждую запись)

Вопрос: Включает ли плата за Amazon Kinesis Data Firehose стоимость использования Amazon S3, Amazon Redshift, Amazon Elasticsearch Service и AWS Lambda?

Нет. Необходимо отдельно оплачивать расходы, связанные с использованием сервисов Amazon S3, Amazon Redshift, Amazon Elasticsearch Service и AWS Lambda, включая стоимость хранилища и запросов. Подробнее см. на страницах Цены на Amazon S3, Цены на Amazon Redshift, Цены на Amazon Elasticsearch Service и Цены на AWS Lambda.