Chcete začít s nejpopulárnější open source databází na světě a přemýšlíte, jak byste si měli nastavit hosting MySQL? Tolik výchozí Amazon RDS, když MySQL funguje výjimečně dobře v Azure Cloud. Přestože Microsoft Azure nabízí spravované řešení, Azure Database, toto řešení má některá velká omezení, o kterých byste měli vědět před migrací nasazení MySQL. V tomto příspěvku nastíníme nejlepší způsob hostování MySQL v Azure, včetně spravovaných řešení, typů instancí, replikace s vysokou dostupností, zálohování a typů disků, které lze použít k optimalizaci výkonu cloudové databáze.
MySQL DBaaS vs. Self-Managed MySQL
První věc, kterou je třeba zvážit při zvažování mezi samosprávou a řešením MySQL Database-as-a-Service (DBaaS), jsou interní zdroje, které máte k dispozici. Pokud toto čtete, pravděpodobně již znáte rozsah provozních úkolů souvisejících s údržbou produkčního nasazení, ale pro rychlou rekapitulaci je zde zřizování, zrušení zabezpečení, konfigurace master-slave, zálohování, škálování, upgrady, rotace protokolů, záplatování OS. a monitorování, abychom jmenovali alespoň některé.
Interní odborník na MySQL nebo tým DBA v závislosti na velikosti vaší aplikace to jistě zvládne ve vaší organizaci za vás, ale otázkou je, kam chcete, aby se úsilí vašeho týmu zaměřilo . Mnozí se rozhodnou přejít na MySQL DBaaS, aby zautomatizovali tyto časově náročné úkoly, aby se mohli více soustředit na vývoj a optimalizaci databází svých aplikací. Dobrým příkladem by byla pomalá analýza dotazů. Zatímco téměř každý DBaaS nabízí nástroj MySQL Slow Query Analyzer, který pomáhá identifikovat problémové dotazy, tento úkol stále vyžaduje lidské dovednosti a intuici, aby bylo možné určit, jak optimalizovat tyto dotazy ovlivňující výkon jejich aplikací.
Ať už jste začínající společnost nebo firma z 500 Fortune, zjistíte, že mnoho organizací se rozhodlo využít DBaaS k optimalizaci času jejich DBA, a to při stejných typech a velikostech také se rozhodnout zůstat u interní samosprávy. Pro mnoho podnikových podniků rozhodnutí do značné míry závisí na přizpůsobení a kontrole. To je důvod, proč varujeme před výchozím nastavením Azure Database nebo jeho konkurenta AWS, Amazon RDS, protože vám neumožňují zachovat přístup superuživatele MySQL nebo dokonce SSH přístup k vašim počítačům. Schopnost přizpůsobit nastavení nasazení je navíc značně omezená, například typy instancí, RAM, velikost disku nebo IOPS, které můžete použít. Níže se dozvíte více o nejlepších typech instancí a discích k použití a můžete se podívat na toto srovnání poskytovatelů MySQL, abyste viděli výhody a omezení čtyř nejlepších spravovaných řešení MySQL, ScaleGrid, Compose, Azure Database a Amazon RDS.
Nasazení vysoké dostupnosti
Pokud nasazujete v produkčním prostředí, měli byste vždy nastavit MySQL jako master-slave nasazení. Samostatná nasazení jsou jediným uzlem bez jakékoli replikace a měla by se skutečně používat pouze pro vývojová nebo testovací prostředí. Díky nasazení master-slave můžete nakonfigurovat vysokou dostupnost, takže pokud jeden z vašich uzlů selže, můžete přepnout na podřízený systém s nulovými prostoji. Toto je obvykle nastaveno buď jako kvorum 3-uzlový master-slave-slave, nebo 2+1 uzlové kvorum master-slave. Výhodou použití kvora je to, že jde o levnější alternativu, ale nevýhodou je, že máte pouze 2 uzly nesoucí data, protože ostatní fungují jako uzel kvora pro určení nejlepšího kurzu převzetí služeb při selhání. Pokud je vaše aplikace schopna číst z podřízeného zařízení, musíte provést škálování čtení, aby vracela stejná data z clusteru s minimálním zpožděním.
Nejlepší způsob, jak hostovat MySQL v Azure CloudClick To Tweet
Při použití konfigurace MySQL master-slave doporučujeme nastavit semisynchronní replikaci, abyste zlepšili integritu vašich dat pomocí redundance dat. To zajišťuje, že když se odevzdání úspěšně vrátí, data existují v hlavním i podřízeném zařízení, takže v případě výpadku datového centra může váš hlavní server MySQL převzít selhání na podřízené zařízení bez ztráty dat. Můžete to provést pomocí asynchronní nebo semisynchronní replikace a více se o tom dozvíte v našem příspěvku na blogu MySQL High Availability Explained – Part II.
Jak tedy nakonfigurujeme vysokou dostupnost pro MySQL v Azure? Potřebujeme distribuovat naše podřízené instance napříč různými zónami dostupnosti Azure (AZ). Chceme se tedy ujistit, že vybereme oblast Azure, která má alespoň 3 AZ, přičemž každou instanci vložíme do jiného AZ. Děláme to proto, že záruky dostupnosti jsou napříč AZ, takže pokud dojde k výpadku 1 zóny, vaše databáze aplikací může stále zůstat online prostřednictvím ostatních 2 AZ. Zóny dostupnosti jsou pro Azure docela nové, takže pokud pracujete v oblasti, která nenabízí AZ, máte možnost použít sady dostupnosti. Ty jsou o něco slabší než AZ, ale zajistěte, abyste byli nasazeni v různých doménách a stojanech, abyste byli chráněni před potenciálním výpadkem. K dispozici je také možnost nasazení napříč regiony, ale jde o komplikovanější nastavení, proto doporučujeme oslovit a prodiskutovat před implementací.
Virtuální sítě Azure
Nejlepším způsobem, jak chránit databázi před internetem, je její nasazení v soukromé podsíti, abyste zajistili, že nebude vystavena. Azure usnadňuje nastavení pomocí virtuální sítě (VNET), kterou lze nakonfigurovat pro vaše servery MySQL. S Azure VNET for MySQL můžete nastavit zabezpečenou komunikaci mezi vašimi servery, internetem a dokonce i vaší místní privátní cloudovou sítí. Ty jsou obvykle nakonfigurovány tak, aby komunikovaly přes jedinou síť, ale pokud potřebujete připojit více než jednu oblast, můžete vytvořit více virtuálních sítí pro komunikaci prostřednictvím virtuálního síťového peeringu.
Navíc můžete spravovat řízení přístupu k MySQL pomocí pravidel Network Security Groups (NSG), aniž byste se museli zabývat seznamy povolených IP adres. Toto není dostupné prostřednictvím Azure Database for MySQL, ale jak VNET, tak NSG lze nakonfigurovat prostřednictvím našich plánů MySQL Bring Your Own Cloud (BYOC) v Azure, kde můžete hostovat své clustery prostřednictvím svého vlastního cloudového účtu.
Typy instancí Azure
Dalším důležitým aspektem, který je třeba zvážit, je výkon vašich instancí MySQL ve veřejném cloudu. Cloud Azure nabízí několik typů instancí, které lze použít pro váš hosting MySQL, včetně Es2 v3, Ds2, v2 a Ls4.
Doporučujeme začít s typy instancí optimalizovaných pro paměť, protože databáze vyžadují hodně paměti RAM a hledají nejvyšší možnou rychlost disku pro nejlepší výkon. Řada Es2 je obvykle dobrým výchozím bodem pro většinu pracovních zátěží aplikací MySQL. Odtud můžete provést nějaké testování výkonu, abyste zjistili, zda potřebujete více CPU, v takovém případě by vašim potřebám MySQL mohly lépe posloužit vyvážené typy instancí nebo typy instancí náročné na CPU, jako jsou typy instancí Dv3. Vaše testy výkonu mohou také ukázat, že potřebujete více I/O (vstup/výstup), můžete přejít na typ instance náročné na disk.
Pokud plánujete využívat Azure jako poskytovatele cloudu MySQL na příští 1–3 roky a udržovat poměrně konzistentní konfigurace nasazení, můžete také zvážit vyhrazené instance. Jedná se v podstatě o předplacené instance, které vám umožňují dosáhnout značných úspor nákladů na hosting MySQL. V průměru můžete ušetřit přibližně 20 % až 30 % u jednoročních rezervovaných instancí a 40 % až 50 % u 3letých rezervovaných instancí.
Typy disků Azure
První rozhodnutí, které musíte učinit, pokud jde o výběr typu disku Azure pro vaše nasazení MySQL, je, zda použít spravovaný nebo nespravovaný disk. Nespravované disky jsou starší disky, které Azure nabízí, kde musíte nastavit účet úložiště, namapovat disk k účtu úložiště a sledovat využití IOPS a limity pro tento účet úložiště. Důrazně doporučujeme používat spravované disky, a pokud stále nasazujete s nespravovanými disky, měli byste zvážit přechod na spravované.
Prostředí pro vývojáře/testování MySQL:Standardní disky
V Azure je k dispozici několik typů spravovaných disků, výchozí jsou standardní disky. Standardní disky mohou podporovat až 500 IOPS (vstupních/výstupních operací za sekundu) a jsou dobré pro vývojové a testovací operace, protože jejich velikost lze dynamicky měnit, ale neměly by být používány pro produkční nasazení MySQL.
Produkční nasazení MySQL:prémiové disky
Pro vaše produkční servery MySQL důrazně doporučujeme využít prémiové disky Azure. Existuje široká škála prémiových disků, ze kterých si můžete vybrat. Pro každý prémiový disk si můžete vybrat nejlepší velikost a každá velikost je dodávána s různými zřízenými IOPS, takže si můžete vybrat ten, který nejlépe vyhovuje potřebám vaší aplikace.
Produkční nasazení MySQL:místní SSD
SSD Azure Local jsou vysoce výkonnou alternativou k prémiovým diskům, obvykle nejvhodnější pro velké clustery. Místní SSD poskytují mnohem vyšší I/O výkon a nejlepší propustnost v Azure. Mají však nevýhodu v tom, že se jedná o pomíjivé disky, nikoli o trvalé úložiště, takže pokud instanci zastavíte, data zmizí. Doporučujeme řadu Ls v2, která je velmi rychlá, ale pozor, CPU je opravdu slabý, což může způsobit úzká hrdla stroje.
Zálohy MySQL v Azure
Nejlepším způsobem zálohování dat MySQL v Azure je použití spravovaných snímků disku. Snímek je verze disku v časovém okamžiku pouze pro čtení. Tyto zálohy lze číst, kopírovat nebo mazat, ale mějte na paměti, že je nelze upravovat. Je dobré provádět úplné zálohy, aby byly všechny vaše databáze, uživatelé a nastavení zálohovány na instanci pro případ, že byste někdy potřebovali obnovit databázi MySQL. Je také dobré zašifrovat snímky zálohy, aby bylo možné zálohu obnovit pouze na počítači, ve kterém byla záloha pořízena.
Vaše zálohy MySQL povedou k dalším poplatkům za úložiště dat Azure, pokud nevyužíváte komplexní řešení MySQL v Azure, jako jsou naše plány Dedicated Hosting na ScaleGrid. Abyste měli náklady pod kontrolou, je dobré zálohování automatizovat pomocí přizpůsobitelného plánu, který vám umožní nakonfigurovat frekvenci zálohování, maximální počet záloh, které se mají uchovávat, a cíl zálohování. To vám samozřejmě také pomůže zajistit, že vaše data MySQL budou pravidelně zálohována pro případ ztráty dat ve vašem produkčním nasazení, abyste je mohli rychle obnovit pomocí nedávné zálohy.
Pokud máte nějaké dotazy ohledně nejlepšího způsobu hostování MySQL v Azure, zanechte nám komentář níže nebo nás kontaktujte na adrese support@scalegrid. io. Můžete také zahájit bezplatnou 30denní zkušební verzi a prozkoumat výhody využití plně spravované služby MySQL ke zlepšení výkonu vašich nasazení.