Какие преимущества дают Потоки данных Kinesis?

Потоки данных Amazon Kinesis – это полностью управляемый бессерверный сервис потоковой передачи данных, который обеспечивает гибкий прием и хранение журналов, событий, маршрутов перемещения по сети и других форм потоковой передачи данных в реальном времени. В Kinesis Data Streams вы платите только за используемые ресурсы. Авансовые и минимальные платежи отсутствуют, а потребляемые ресурсы оплачиваются по факту использования. В Kinesis Data Streams есть два потоковых режима – режим предоставления ресурсов по требованию и по распределению, – и у каждого свои способы оплаты. Нажмите следующие вкладки, чтобы узнать больше об этих способах.

Калькулятор цен AWS

Посчитайте затраты на Amazon Kinesis Data Streams и архитектуру в единой смете.

Создайте персонализированную смету прямо сейчас.

  • Режим предоставления ресурсов по требованию
  • В режиме предоставления ресурсов по требованию вы платите за гигабайт данных, записанных и прочитанных из ваших потоков данных. Вам не нужно указывать, какую пропускную способность для чтения и записи вы ожидаете от вашего приложения. Kinesis Data Streams мгновенно обрабатывает вашу нагрузку по мере ее увеличения или снижения.

    В режиме предоставления ресурсов по требованию цена зависит от объема данных, принятых и извлеченных, а также почасовой оплаты за каждый поток данных в вашей учетной записи. Дополнительная плата взимается за использование дополнительных функций, а именно: расширенное хранение данных (более первых 24 часов и в течение первых семи дней), долгосрочное хранение данных (более семи дней и до одного года) и дополнительные копии данных. С вас также взимается почасовая плата за каждый поток, работающий в режиме предоставления ресурсов по требованию, в вашем аккаунте.

    Если вы создаете новые потоки данных, рабочая нагрузка которых неизвестна, имеете непредсказуемый трафик приложений или предпочитаете не управлять производительностью потока, режим предоставления ресурсов по требованию может быть для вас лучшим вариантом.

    Ключевые понятия

    Входящие данные: плата за данные, принимаемые в Kinesis Data Streams, взимается за каждый гигабайт, вписанный в ваш поток передачи данных. Они рассчитываются как количество записей данных, которые вы отправляете в сервис, умноженное на размер каждой записи, округленное до ближайшего 1 КБ (1 024 байта). Например, если размер каждой записи данных составляет 4,5 КБ, то размер принятой записи в Kinesis Data Streams будет учитываться как 5 КБ. Все данные, принятые в Kinesis Data Streams, по умолчанию хранятся в течение 24 часов без дополнительной платы.

    Исходящие данные: плата за данные, полученные из Kinesis Data Streams, взимается за каждый гигабайт, прочитанный из вашего потока передачи данных. Она рассчитывается как количество полученных записей, умноженное на размер каждой записи. Для этого расчета округление не применяется. Если размер каждой записи составляет 4,5 КБ, то ее размер в Kinesis Data Streams будет учитываться как 4,5 КБ.

    За поток: с вас взимается почасовая плата за каждый поток, работающий в режиме предоставления ресурсов по требованию, в вашем аккаунте.

    Расширенный срок хранения данных: по умолчанию Kinesis Data Streams хранит данные в течение 24 часов. Расширенный срок хранения данных дает возможность продлить хранение до семи дней. Плата за данные, хранящиеся от 24 часов до семи дней, взимается в зависимости от количества ГБ в месяц.

    Долговременное хранение данных: долговременное хранение данных дает возможность хранить поток данных до 365 дней. За первые семь дней взимается плата по тарифам на расширенный срок хранения данных, а затем за хранение данных, которым более семи дней, до окончания указанного периода хранения взимается плата по более низкому тарифу за ГБ-месяц.

    Дополнительные копии данных: дополнительные копии данных улучшают работу процессов с использованием параллельных операций чтения за счет предоставления каждому потребителю данных выделенной пропускной способности – до 2 МБ/с на каждый сегмент. При использовании дополнительных копий данных начисляется дополнительная плата за каждый гигабайт полученных данных.

    Цены по регионам

    Пример расчета стоимости

    Предположим, вы отправляете 1 000 записей потоковых данных в секунду, каждая размером 3 КБ, в Amazon Kinesis Data Stream, работающий в режиме распределения ресурсов по требованию в регионе Восток США. Вы хотите хранить данные в течение одного дня и обрабатывать их с помощью одного потребителя. Месячные расходы рассчитываются следующим образом.

    Размер записи 3 КБ округляется в большую сторону до ближайшего значения, кратного 1 КБ, т. е. до 3 КБ.

    Принятые данные (ГБ/с) = (1000 записей/с * 3 КБ/запись) / 1 048 576 КБ/ГБ = 0,00286 ГБ/с.

    Принятые данные (ГБ/месяц) = 30 дней/месяц * 86 400 с/день * 0,00286 ГБ/с = 7413,12 ГБ/месяц.

    Если у вас один потребитель:
    Получение данных (ГБ/с) = 1 (потребитель) * (1 000 запись/с * 3 КБ/запись) / 1 048 576 КБ/ГБ = 0,00286 ГБ/с.

    Получение данных (ГБ/месяц) = 30 дней/месяц * 86 400 с/день * 0,00286 ГБ/с = 7413,12 ГБ/месяц.

    Однодневное хранение включено в стоимость принятия данных.

    Цена принятия данных в регионе «Восток США» составляет 0,08 USD за ГБ

    Ежемесячные расходы на входящие данные = 7413,12 ГБ * 0,08 USD/ГБ = 593,04 USD

    Цена получения данных в регионе «Восток США» составляет 0,040 USD за ГБ

    Ежемесячные расходы на исходящие данные = 7413,12 ГБ * 0,040 USD/ГБ = 296,50 USD

    Когда поток используется 30 дней в месяце:
    Плата за поток = 30 * 24 * 0,040 (ставка) = 28,80 USD.

    Общая стоимость за месяц = 593,04 USD + 296,50 USD + 28,80 USD = 918,34 USD.

  • Режим предоставления ресурсов по распределению
  • В режиме предоставления ресурсов по распределению вы указываете количество сегментов, необходимых для вашего приложения, в зависимости от частоты запросов на запись и чтение. Сегмент – единица скорости потока, которая обеспечивает производительность записи 1 МБ/с и чтения – 2 МБ/с.

    Возможно, вам больше подойдет режим предоставления ресурсов по распределению, если у вас есть прогнозируемый трафик приложений, вы запускаете приложения с согласованным трафиком или трафиком, который постепенно увеличивается, или вы можете прогнозировать требования к производительности с целью контроля затрат.

    Ключевые понятия

    Час работы сегментов.Сегмент – это основная единица пропускной способности для потока данных Amazon Kinesis. Вы задаете число сегментов потока, исходя из текущих требований пропускной способности. Каждый сегмент оплачивается на почасовой основе.

    Один сегмент обеспечивает скорость приема данных 1 МБ/с, или 1000 записей в секунду.

    Если для потребителей данных настроено создание дополнительных копий данных, каждый сегмент обеспечивает передачу данных на скорости до 2 МБ/с для каждого потребителя, использующего копии данных.

    Если для потребителей данных не настроено создание дополнительных копий данных, каждый сегмент обеспечивает передачу данных на скорости до 2 МБ/с, независимо от количества параллельно работающих с сегментом получателей.

    Единица полезной нагрузки PUT (25 КБ). Запись – это единица данных, передаваемая источником данных в поток Amazon Kinesis. Единица полезной нагрузки PUT рассчитывается на основе фрагментов по 25 КБ, составляющих запись. Например, запись размером 5 КБ содержит одну единицу полезной нагрузки PUT, запись размером 45 КБ – две единицы полезной нагрузки PUT, а запись размером 1 МБ – 40 единиц полезной нагрузки PUT. Использование единиц полезной нагрузки PUT оплачивается по тарифу за каждый миллион единиц полезной нагрузки PUT.

    Дополнительные копии данных: дополнительные копии данных улучшают процессы с использованием параллельных операций чтения за счет предоставления каждому потребителю данных выделенной пропускной способности (до 2 МБ/с) на каждый сегмент. При использовании дополнительных копий данных начисляется плата за каждый час работы потребителя с сегментами и за каждый гигабайт полученных данных.

    Продленный срок хранения данных: по умолчанию Kinesis Data Streams хранит данные в течение 24 часов. Продленный срок хранения данных дает возможность продлить хранение до семи дней. При использовании расширенного срока хранения данных начисляется дополнительная плата за каждый час работы сегментов для потока данных.

    Долговременное хранение данных: долговременное хранение данных дает возможность хранить поток данных до 365 дней. За первые семь дней взимается плата по тарифам за продленный срок хранения данных, а затем за хранение данных, которым более семи дней, до окончания указанного периода хранения взимается плата по тарифу за ГБ-месяц.

    Получение данных при долговременном хранении: за получение данных, которые хранятся дольше семи дней, с помощью API GetRecords взимается плата за каждый полученный ГБ. Плата за получение данных, которые хранятся в течение стандартного периода (24 часа) или продленного периода (семь дней), не взимается. За получение данных при долговременном хранении плата не взимается, если используется потребитель дополнительных копий (API SubscribeToShard).

    Цены по регионам

    Пример расчета стоимости

    Предположим, что всего от источников данных поступает 100 записей в секунду, а размер каждой записи – 35 КБ. В этом случае общая скорость передачи входных данных составляет 3,4 МБ/с (100 записей в секунду умножить на 35 КБ на запись и разделить на 1024 = 3,4 МБ/с). Для простоты предположим, что пропускная способность и размер данных каждой записи стабильны и постоянны на протяжении дня. Обратите внимание, что пропускную способность потока Amazon Kinesis можно динамически регулировать в любой момент.

    Сначала мы подсчитаем число сегментов потока для достижения необходимой пропускной способности. Поскольку один сегмент обеспечивает передачу входных данных со скоростью 1 МБ/с и поддерживает 1000 записей в секунду, четыре сегмента обеспечат передачу входных данных со скоростью 4 МБ/с и будут поддерживать 4000 записей в секунду. Таким образом, поток из четырех сегментов удовлетворяет нашему требованию в отношении передачи данных со скоростью 3,4 МБ/с при 100 записях в секунду.

    Подсчитаем месячные расходы на использование Kinesis Data Streams с учетом цен в регионе «Восток США».

    Час работы сегментов. Один сегмент стоит 0,015 USD в час, или 0,36 USD в день (0,015 USD * 24). Наш поток имеет четыре сегмента, поэтому он стоит 1,44 USD в день (0,36 USD х 4). За месяц (31 день) стоимость часов работы сегментов составит 44,64 USD (1,44 USD х 31).

    Единица полезной нагрузки PUT (25 КБ). Поскольку запись имеет размер 35 КБ, каждая такая запись содержит две единицы полезной нагрузки PUT. Суммарно источники данных передают 100 записей, или 200 единиц полезной нагрузки PUT, в секунду. Это соответствует 267 840 000 записей, или 535 680 000 единиц полезной нагрузки PUT, в месяц. Поскольку стоимость 1 миллиона единиц полезной нагрузки PUT составляет 0,014 USD, то за месяц использования указанного количества единиц полезной нагрузки PUT стоимость составит 7,499 USD (0,014 USD * 535,68).

    Дополнительно срок хранения данных потока (24 часа) можно продлить до семи дней. В этом примере предполагается, что для потока данных используется продленный срок хранения данных на протяжении всего месяца. В качестве альтернативы вы можете выбрать продленный срок хранения данных только в тех случаях, когда это критически важно для предотвращения потери данных, что позволяет сэкономить на расширенном сроке хранении.

    Продленный срок хранения данных (до семи дней). Стоимость продленного срока хранения данных составляет 0,020 USD за час работы сегментов. Поскольку поток задействует 2976 часов работы сегментов в месяц (4 сегмента х 24 ч/день х 31 день/месяц), стоимость продленного срока хранения данных за месяц составит 59,52 USD (0,020 USD х 2976).

    Сложив стоимость работы сегмента и стоимость единиц полезной нагрузки PUT, получаем общую сумму расходов на использование сервиса Amazon Kinesis Data Streams, которая составит 1,68 USD в день, или 52,14 USD в месяц. Таким образом, за 1,68 USD в день вы получаете полностью управляемую инфраструктуру потоковой передачи данных, позволяющую непрерывно принимать 4 МБ данных в секунду, или 337 ГБ данных в день, с обеспечением надежности и эластичности. Кроме того, срок хранения можно увеличить с 24 часов до семи дней за дополнительные 59,52 USD в месяц.

    Также вы можете решить хранить данные дольше, чем семь дней и использовать дополнительные копии данных. 

    Долговременное хранение данных (дольше семи дней). Предположим, что вы хотите хранить поток данных 30 дней. За период, наступающий через 24 часа и длящийся до семи дней, с вас будет взиматься плата за продленный срок хранения данных (сегмент-час, см. расчеты выше), а за период, наступающий через семь дней и длящийся до 30 дней (23 дня), будет взиматься плата по тарифу за долговременное хранение. При долговременном хранении в течение 23 дней будет взиматься дополнительная сумма 0,023 USD/ГБ-месяц за хранение и 0,021 USD/ГБ за получение данных, если используется потребитель по умолчанию (API GetRecords). Если скорость приема данных составляет 3,4 МБ/с, вы будете накапливать 3,4 (скорость приема) * 1 024 * 1 024 * 3 600 = 12 902 400 000 байт в час.

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

    3 565 158 * 23 дня * 24 часов/день = 7 122 124 800 000 байт-час

    Переведем это в ГБ-месяц:
    7 122 124 800 000 байт-час / 1 073 741 824 байтов за ГБ = 6 633 ГБ в месяц

    В итоге общие затраты на хранение данных за 23 дня составят = 6633 * 0,023 USD = 152,56 USD в месяц.

    Получение данных при долговременном хранении (дольше семи дней): если вы получаете все данные, которые хранятся долго, посредством одного потребителя, использующего API GetRecords для извлечения записей, то плата за получение будет взиматься только за данные, которые хранятся дольше первых семи дней. Поскольку вы получаете 6 623 ГБ данных, плата в конце месяца составит 6 623 * 0,021 = 139,08 USD. Получение данных посредством потребителей дополнительных копий данных при долговременном хранении тарифицируется указанным ниже способом.

    Часы работы потребителей с сегментами дополнительных копий данных. За дополнительные копии данных начисляется плата по тарифу 0,015 USD за каждый сегмент для каждого потребителя данных. Поскольку ваш поток предусматривает 2976 часов работы сегментов в месяц (4 сегмента х 24 ч/день х 31 день/месяц), за каждого потребителя, использующего дополнительные копии данных, будет начисляться 44,64 USD (2976 х 0,015 USD). Стоимость двух таких потребителей за тот же период составит 89,28 USD.

    Получение данных с использованием дополнительных копий. За получение потребителем данных из потока с использованием дополнительных копий данных начисляется плата по тарифу 0,013 USD за гигабайт. Если в течение месяца поток, состоящий из двух сегментов, принял 50 000 МБ данных, при этом два потребителя данных использовали дополнительные копии данных и получили за месяц полный их объем, общий объем полученных данных составляет 100 000 МБ (50 000 МБ * 2 получателя) или 97,6 ГБ. Поскольку каждый ГБ стоит 0,013 USD, общая стоимость использования дополнительных копий составляет 1,26 USD (97,6 * 0,013 USD).

* Плата за получение записей из потока данных Amazon Kinesis не взимается, когда данные хранятся в течение стандартного периода 24 часа или продленного периода 7 дней. За извлечение данных, которые хранятся долговременно, то есть, более 7 и максимум до 365 дней, взимается оплата за каждый ГБ.

* Если вы решили использовать дополнительные копии данных, то начисляется плата за каждый час работы потребителя с сегментами и за каждый гигабайт полученных данных.

* AWS не начисляет плату за передачу входящих данных от источников в Amazon Kinesis Data Streams или исходящих данных сервиса приложениям-получателям, если все ресурсы используются в одном регионе.

* AWS не начисляет плату за передачу входящих данных, если ваши источники пишут в Kinesis Data Stream в другом регионе. Однако в режиме распределения ресурсов по требованию с вас взимается дополнительная плата, если ваши приложения-получатели считывают данные из потока данных в другом регионе AWS. С вас будет взиматься стандартная плата за передачу данных AWS.

* Обратите внимание, что на данный момент сервис Amazon Kinesis Data Streams НЕ ВХОДИТ в уровень бесплатного пользования AWS. Уровень бесплатного пользования AWS – это программа, в рамках которой можно бесплатно воспользоваться пробной версией ряда сервисов AWS. Подробнее об Уровне бесплатного пользования AWS указано в разделе Уровень бесплатного пользования AWS.

Соглашение об уровне обслуживания

Подробнее о Соглашении об уровне обслуживания для Потоков данных Amazon Kinesis см. на странице вопросов и ответов.