Amazon Kinesis - jak nám cloud opět rozšířil možnosti

Amazon Kinesis je služba v rámci Amazon Web Services (AWS), která umožňuje zpracování jakýchkoliv dat v reálném čase. Aktuálně běží v neveřejném režimu a přístup k ní se schvaluje žádost po žádosti (moje žádost trvala asi 2 dny).


K čemu to je?

Zatím to zkoumám, ale nevypadá to jako něco moc revolučního. V podstatě jde o to, že Kinesis pro nás provozuje frontu na data, do které může padat cokoliv odkudkoliv a jakoukoliv rychlostí. My si musíme napsat aplikaci, která si z fronty data bere, něco s nima dělá a vrací je na výstupu (třeba zase do jiné Kinesis fronty). Kinesis samotný s psaním aplikací na zpracování dat nijak moc nepomáhá. K dispozici je SDK pro Kinesis - tedy obalené funkce typu GetNextRecords


A konkrétní příklady?

  • zpracování logů
  • analýza dat v reálném čase
  • odchycení a zpracování dat ze sociálních sítí
  • analýza finančních transakcí
  • gaming analytika
  • strojové účení


Kolik to stojí?

Kinesis se, stejně jako všechno ostatní v AWS, platí po hodině provozu za provozní jednotku (shard). Jeden shard zvládne přijímat data rychlostí 1MB/sekundu a odesílat rychlostí 2MB/sekundu. Aktuálním limitem na jeden vložený datový objekt je 50kB. Text tohohle blogpostu by jeden "shard" zvládl přijmout zhruba 500x/sekundu. Cena ze tenhle nejmenší "shard" je $0.015 za hodinu. Další a poslední cena je za vkládající operace. Jeden milion vložení (přijetí) datových objektů stojí $0.028. 

Když bych zůstal u objemu tohohle blogpostu a řekl, že má 3.5kB, pak kdyby chodil do Kinesis takovýhle text 300x/sekundu celý měsíc, stálo by to:

  • 1 shard = $11.16 / měsíc
  • vložení textu 500x/sekundu = 803.520.000 vložení za měsíc = $37,49 / měsíc (vložení = příjem jednoho blogpostu)


Suma sumárum

Největší přidanou hodnotou je tedy hlavně držení streamu dat, o který se nemusíme starat. Bude to možná poměrně konkurence pro Pusher. Pro Keboola Connection je to hlavně příležitost - de-facto na podobném principu dávno fungujeme a Kinesis nám může pomoct "zpevnit základy". 

Znovu se tedy potvrzuje to co jsem psal na konci staršího blogpostu - nejenom díky Kinesis si můžeme troufnout na náročnější projekty a cítit se v Cloudu silnější. 

K vidění na Kinesis zatím moc není, tady je promo video a odkazy na dokumentaci. Přikládám screenshoty z aktuální Management Console.

7 responses
Ten výkon jednoho shardu (1MB/s) mi přijde absurdně malý. Do redisu nacpu třeba 100 000 věcí za sekundu, s bandwidthem 3,2Gbit/s. Viz http://redis.io/topics/benchmarks (je to na silnějším stroji, ale stejně to efektivně vyjde levněji). RabbitMQ, Resque a další frontové softy budou kvůli režii asi o něco pomalejší, ale i tak budou řádově rychlejší než Kinesis.
Michale, ty jsi mistr srovnávání jablek s hruškama. Je jedno, jak výkonej je shard Kinesisu, podstatný je, kolik mě to vyjde a jak "durable" si to postavím. Samozřejmě to klidně může přijímat 3GB/s. Pointa je, že ty do toho nepočítáš náklady na 25TB přijatých dat denně do tvýho Redis serveru, ani na další režijí. Vezmeš benchmark, vytrženej z kontaxtu a plácneš ho do komentáře. Postav super odolnou frontu, která škáluje jako zuřivá. Udělej to na svym železe a dej tomu konektivitu 3GBit/s. Já to samé udělám na AWS a pak si to navzájem shodíme. OK? :) ... Takže u Redisu hodíme oko na https://addons.heroku.com/redistogo a zjistíme, že je to dražší (měřeno přes palec). Když hledám v Google "hosted redis", tak první odpověď (redistogo.com) například nejede vůbec (http://note.io/1fURFEV). Řekl bych, že mi to na Redisu levnejc a líp neuděláš. Nicméně, krom toho, že Redis je single-threaded server a postavit ho adekvátně "durable" bude netriviální, bych ho asi srovnával s AWS SQS (http://eric.lubow.org/2012/architecture/pros-an...) a ne Kinesisem. Otázka je, jaký je funkční rozdíl mezi AWS SQS a AWS Kinesis. Zatím na to nemám úplně jasnou odpověď. Nicméně v chování fronty, garanci pořadí, aj.
Takze je to neco jako trychtyr pro prijem vselijakych dat, ktery to umi frontovat a po "jednom" plivat na druhym konci, kde je zpracovava nejaka moje apikace/parser? Umi to prioritizaci treba na aplikacni urovni nebo treba dle webove sluzby z ktere data jsou? A co treba buffering pokud je nestiham zpracovavat na vystupu? Predstavuju si pouziti prave treba na ohromne mnozstvi textovych nestrukturovanych dat v kterych neco hledam. Takovej cloudovej SED. Nebo jsem uplne mimo a nevim jak a k cemu to pouzit? :-)
Představuješ si to správně a všechno co píšeš, by to mělo mít vyřešený a implementovaný. Zatím o tom ale moc nevím a čekám ještě na vpuštění do uzavřenýho fóra. Dám pak vědět :-)
Nesrovnávám jablka s hruškami. Srovnávám dva způsoby, jak vyřešit problém. Znám výkon Redisu, tak si cvičně spočtěme, kolik by stál ekvivalent na Kinesisu: 3,2Gbit/s jsou 400 MB/s, což je 400 shardů - to by stálo $4400 měsíčně jenom za shardy. A těch 100 000 vložení za sekundu by za jeden měsíc stálo... (100000⋅60⋅60⋅24)⋅30/1000000⋅$0.028 dalších $7250. Tentýž výkon zvládne na Redisu jediný stroj. To jsem myslel tím že "to efektivně vyjde levněji". PS: I ty TB dat pořídám levněji než za ty miliardy :)
PS: PS u předchozího komentáře ignoruj, ten tam zbyl omylem a komentář už bohužel nejde editovat.
A k tomu stroji potřebuješ 10Gbit/s switch, samozřejmě redundantní na L2 + hromadu dalších věcí, abys dostál stejný kvality a jelo ti to pořád dobře, i když budeš v budoucnu upgradovat firmware. Ty si koupíš v "Alze" komp, na něm si to zkonfiguruješ, zapneš a... za měsíc ti odejde voltage regulator a budeš dělat co? Kdyby šlo jen o cenu materiálu, tak já pronajímám (SPOT) cr1.8xlarge za $0.34/hrs ($252/měsíc, příchozí 10Gbit/s konektivita v ceně). Btw, pořád jsi neodpověděl, kam dáš těch 25TB/den, co uděláš, když ti chvilku nebude z tý fronty backend data odebírat a kolik tě to bude stát. P.S. Postavit tu frontu není o tom vzít server a na něj dát Redis... až mě bude chodit 3Gbit/s dat, rád za to dám $11k/měs, protože se o to nebudu muset starat a zákazníkům to i tak prodám se ziskem a budu v klidu spát. Až mě ale bude chodit 3Gbit/s nedůležitejch dat, pak to asi taky dám do Casablanky na vlastní server. P.P.S. Editování komentářu je tu pitomý! Můžeš komentář mazat? Pokud jo, pak asi copy&paste :(