Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Amazon RDS – DB v cloude – bottleneck?

node
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 14:19:20
Ahojte.
V cloude rozumiem tomu ze si mozem spravit neobmedzeny pocet webserverov(Amazon EC2). Pristup na ne riadi loadbalancer(amazon ELB). Perzistentne disky su sietove a neriesi sa tam prakticky nic kedze je to skor sluzba(Amazon EBS), pripadne rychle disky pre nejake lokalne operacie priamo na webserveroch(Amazon EFS).
Comu ale nerozumiem uplne je ako sa riesi databaza. Amazon ma RDS ale nie je to sluzba ako v pripade perzistentnych diskov, ale je to skor ako EC2 instancia. Cize mi z toho vychadza ze tam je obmedzenia na velkost a vykon. Pri DB riesit "load balancing" je mozne replikaciou ale nie som si tym uplne isty v tomto pripade.
Skratka mi z toho vychadza ak mam nejaku aplikaciou tak ju nemozem prevadzkovat na X webserveroch a jednej DB, nakolko narazim na limity DB a preto budem musiet rozdelit webservery do skupin, kde kazda skupina bude mat "vlastnu" DB a bude treba monitorovat kolko zataze moze ist do kazdeho bloku webserverov aby to neodfajcilo databazu.
Co mi tu unika?
27. 5. 2015 14:19:20
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115959
Tom
verified
rating uzivatele
(7 hodnocení)
27. 5. 2015 14:41:36
Cloud ale není jen o horizontálním škálování, kdy přidáváš další servery. Je i o vertikálním škálování, kdy jsi schopný přidat výkon na instanci. Takže máš možnost přidat výkon databázi.
V každém případě máš pravdu v tom, že v návrhu databáze musíš být opatrnější a záleží na použité databázi. U web serverů můžeš použít například MongoDB, která ti umožní škálovat i horizontálně - spustíš si další databázi, přidáš ji do clusteru a tím rozložíš zátěž na další servery.
27. 5. 2015 14:41:36
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115958
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 14:46:50
Přesně tak. Relační databáze obecně jsou dost problémové v cloudu. Je to ale řešitelné.
1) před databázi se může dát cachovací vrstva - třeba Elasticache nebo DynamoDB. Ta se umí škálovat a hlavně odchytne špičky
2) použít replikaci - mít jednu master databázi a k ní další replikované pro čtení. Ty čtecí se můžou spouštět dle potřeby.
Problém replikace je, že spuštění trvá dlouho (podle velikosti databáze - u nás několik hodin), takže s tím nejde zrovna moc reagovat na špičky. Amazon tohle ale řeší a vyrobil vlastní službu Aurora. Je to kompatibilní s MySQL, ale používá to místo obyčejných disků přímo cloudový disk (něco mezi EBS a S3).
Zajímavé na tom, že víc instancí může sdílet jedny data. To znamená, že místo master-slave replikace je to klidně master-master-master. Spuštění další instance je navíc mnohem rychlejší - neprobíhá tam úvodní import jako u klasického slave serveru. Místo toho jen naběhen instance a rovnou se připojí k datům - tzn třeba 1-2 minuty na spuštění.
AWS Aurora je ale zatím jen v Preview. Představili to ale koncem minulého roku, takže doufám že se toho už brzo dočkáme.
27. 5. 2015 14:46:50
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115957
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 14:47:52
Napsal double;1198073
Cloud ale není jen o horizontálním škálování, kdy přidáváš další servery. Je i o vertikálním škálování, kdy jsi schopný přidat výkon na instanci. Takže máš možnost přidat výkon databázi.
V případě AWS RDS to ale znamená instanci vypnout a znovu zapnout, což není hned. Lze to řešit přes fallback instance, ale stejně tam vždycky bude krátký výpadek.
27. 5. 2015 14:47:52
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115956
Tom
verified
rating uzivatele
(7 hodnocení)
27. 5. 2015 14:55:27
Napsal Souki;1198075
V případě AWS RDS to ale znamená instanci vypnout a znovu zapnout, což není hned. Lze to řešit přes fallback instance, ale stejně tam vždycky bude krátký výpadek.
Jasně, s tím je nutno počítat, ale je to rychlejší než synchronizovat novou instanci. Aurora je docela zajímavá, Obvzlášť Master-Master "replikace" - dík za info. Bylo by super kdyby ses, až to budeš mít odzkoušeno, napsal něco málo na blog.
27. 5. 2015 14:55:27
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115955
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 15:07:34
Napsal double;1198077
Jasně, s tím je nutno počítat, ale je to rychlejší než synchronizovat novou instanci. Aurora je docela zajímavá, Obvzlášť Master-Master "replikace" - dík za info. Bylo by super kdyby ses, až to budeš mít odzkoušeno, napsal něco málo na blog.
Aurora neskutečně zahýbe s trhem. V kombinaci s EFS půjdou najednou i nekompatibilní aplikace najednou hravě převést do cloudu a škálovat. Do teď se muselo při vývoji aplikace počítat s tím, že bude v cloudu. To je samozřejmě vždycky lepší i do budoucna, ale najednou půjde cloudově provozovat i stará aplikace, která s tím nepočítá vůbec. Samozřejmě nebude využívat cloud naplno, ale půjde migrovat.
27. 5. 2015 15:07:34
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115954
node
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 18:05:53
Prakticky sa bojim iba o to ze DB je "single point of failue". Chapem ze si mozem premigrovat DB na vecsiu instanciu s viac RAM, CPU a pod ked bude aplikacia rast, ale stale sa jedna o jednu jedinu masinu, ktora ked padne tak je uuuuplne vsetko v )x(
Ta Aurora ale znie ako obdoba EC2 pre DB, co je naozaj fajn...a popravde sa divim ze to uz davno neexistuje.
Souki: tymi Elasticache a DynamoDB si mal na mysli cachovanie sql dopytov?
Do teď se muselo při vývoji aplikace počítat s tím, že bude v cloudu. To je samozřejmě vždycky lepší i do budoucna, ale najednou půjde cloudově provozovat i stará aplikace, která s tím nepočítá vůbec.
A este jedna otazka: casto citam o tom ze aplikacia nie/je navrhnuta pre cloud. Weby robim uz nejaky ten piatok, ale stale neviem prist na to, co to v reale znamena.
27. 5. 2015 18:05:53
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115953
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 18:18:56
Napsal node;1198137
Prakticky sa bojim iba o to ze DB je "single point of failue".
Po stránce výkonu ano (havárii serveru apod AWS řeší sám). Ale v běžných případech to není zase takový problém. Stačí mít rezervu výkonu a obvykle potřebný výkon neroste úměrně návštěvností. Více návštěvníků totiž často recykluje stejné/podobné dotazy, takže už si to samo RDS ošéfuje v cache. A náročné věci se můžou cachovat na straně aplikace (třeba do DynamoDB)
Napsal node;1198137
Ta Aurora ale znie ako obdoba EC2 pre DB, co je naozaj fajn...a popravde sa divim ze to uz davno neexistuje.
Ono to není tak jednoduché. Museli vyrobit vlastní typ úložiště a zachovat kompatibilitu. Podobné řešení už vznikalo několikrát (nejblíž byla MariaDB s Galerou), ale Amazon je první, kdo to uvedl do provozu. Prý to bylo ve vývoji tři roky.
Napsal node;1198137
Souki: tymi Elasticache a DynamoDB si mal na mysli cachovanie sql dopytov?
Cachovat výsledky dotazů nebo třeba celé části stránek. Doctrine by to třeba mělo umět samo o sobě. Jen se nastaví parametry a bude si řešit samo.
Jinak nám se hodně osvědčil rozdělení alespoň na master-slave. Většině návštěv stačí jen "select", takže jdou ze slave. Pokud se pak přecijen podaří databázi nějak odstřelit, tak to bez obtíží jen přeskočí na master. Hlavně tam ale případné špičky návštěvnosti nenarušují master (vůbec o nich neví), takže je to celé stabilnější. Fungujeme takhle na RDS asi rok a půl bez sebemenšího problému.
27. 5. 2015 18:18:56
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115952
Richard Hutta
verified
rating uzivatele
(1 hodnocení)
27. 5. 2015 19:02:14
Zrovna toto nesouvisí moc s amazonem, ale můžeš pro vertikální nascalování použít Docker, ten ti dá dostatečné možnosti na to vytvořit kontiner, který budeš moc scalovat dalšíma instanceme EC2 nebo čehokoliv jiného.
27. 5. 2015 19:02:14
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115951
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 19:26:47
Napsal joker11cz;1198148
Zrovna toto nesouvisí moc s amazonem, ale můžeš pro vertikální nascalování použít Docker, ten ti dá dostatečné možnosti na to vytvořit kontiner, který budeš moc scalovat dalšíma instanceme EC2 nebo čehokoliv jiného.
Což je ale v cloudu celkem k ničemu.
27. 5. 2015 19:26:47
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115950
node
verified
rating uzivatele
(5 hodnocení)
27. 5. 2015 21:54:36
Nad dockerom som sa zamyslal ale v mojom pripade to nie je dobre riesenie. Taktiez ako Souki pise, v cloude je to trochu mimo, samozrejme zalezi na konkretnom pripade. Napr v robote nam bezia vsetky projekty na Pantheone ktory od zaciatku vyuziva kontajnery pre to co Pantheon ponuka je to idealne riesenie.
27. 5. 2015 21:54:36
https://webtrh.cz/diskuse/amazon-rds-db-v-cloude-bottleneck/#reply1115949
Pro odpověď se přihlašte.
Přihlásit