Spuštění MySQL Galera Cluster (buď sestavení Percona, MariaDB nebo Codership) bohužel není podporováno (ani součástí) databází podporovaných Amazon RDS. Většina databází podporovaných RDS používá asynchronní replikaci, zatímco Galera Cluster je řešení synchronní multi-master replikace. Galera také vyžaduje InnoDB jako svůj úložný modul, aby správně fungoval, a i když můžete používat jiné úložné moduly, jako je MyISAM, nedoporučujeme používat tento úložný modul kvůli nedostatku zpracování transakcí.
Vzhledem k nedostatku nativní podpory v RDS se tento blog zaměří na nabídky dostupné při výběru a hostování clusteru založeného na Galera pomocí prostředí AWS.
Určitě existuje mnoho důvodů, proč byste si vybrali nebo nezvolili cloudovou platformu AWS, ale pro toto konkrétní téma se podíváme na výhody a výhody toho, co můžete využít, spíše než proč zvolí platformu AWS.
Virtuální servery (elastické výpočetní instance)
Jak již bylo zmíněno dříve, MySQL Galera není součástí RDS a InnoDB je transakční úložiště, pro které potřebujete správné zdroje pro požadavky vaší aplikace. Musí mít kapacitu k tomu, aby uspokojila požadavky provozu vašich požadavků klientů. V době psaní tohoto článku je vaší jedinou volbou pro spuštění Galera Cluster použití EC2, cloudové instance výpočetní instance společnosti Amazon.
Protože máte tu výhodu, že svůj systém provozujete na několika uzlech na instancích EC2, provozování Galera Cluster na verzích EC2 on-prem se příliš neliší. K serveru můžete přistupovat vzdáleně přes SSH, instalovat požadované softwarové balíčky a vybrat si typ sestavy Galera Cluster, který chcete používat.
S EC2 je navíc tato nabídka pružnější a flexibilnější, což vám umožňuje poskytovat a nabízet jednodušší, podrobnější nastavení. Webové služby můžete využít k automatizaci nebo sestavení řady uzlů, pokud potřebujete škálovat své prostředí nebo například automatizovat vytváření pracovního nebo vývojového prostředí. Poskytuje vám také výhodu rychlého vytvoření požadovaného prostředí, výběru a nastavení požadovaného OS a vyzvednutí správných výpočetních zdrojů, které vyhovují vašim požadavkům (jako je CPU, paměť a diskové úložiště.) EC2 eliminuje čas čekání na hardware , protože to můžete dělat za běhu. Můžete také využít jejich nástroj AWS CLI k automatizaci nastavení clusteru Galera.
Ceny pro instance Amazon EC2
EC2 nabízí řadu možností, které jsou velmi flexibilní pro spotřebitele, kteří by chtěli hostovat své prostředí Galera Cluster na výpočetních uzlech AWS. AWS Free Tier zahrnuje 750 hodin instancí Linuxu a Windows t2.micro každý měsíc po dobu jednoho roku. V rámci bezplatné úrovně můžete zůstat pouze pomocí instancí EC2 Micro, ale to nemusí být to nejlepší pro produkční použití.
Existuje několik typů instancí EC2, pro které můžete nasadit při zřizování uzlů Galera. V ideálním případě jsou tato rodina r4/r5/x1 (optimalizována pro paměť) a rodina c4/c5 (optimalizována pro výpočetní výkon) ideální volbou a tyto ceny se liší v závislosti na tom, jak velké jsou požadavky na zdroje vašeho serveru a typ operačního systému.
Toto jsou typy placených instancí, které si můžete vybrat...
On Demand
Plaťte podle výpočetní kapacity (za hodinu nebo za sekundu), závisí na typu spuštěných instancí. Ceny se mohou například lišit při poskytování instancí Ubuntu a instance RHEL kromě typu instance. Nemá žádné dlouhodobé závazky ani nutné platby předem. Má také flexibilitu pro zvýšení nebo snížení vaší výpočetní kapacity. Tyto instance se doporučují pro potřeby nízkého a flexibilního prostředí, jako jsou aplikace s krátkodobou, ostrou nebo nepředvídatelnou pracovní zátěží, kterou nelze přerušit, nebo aplikace vyvíjené nebo testované poprvé na Amazon EC2. Více informací naleznete zde.
Vyhrazení hostitelé
Pokud hledáte požadavky na shodu a regulační požadavky, jako je potřeba pořídit si vyhrazený server, který běží na vyhrazeném hardwaru, pak tento typ nabídky vyhovuje vašim potřebám. Dedikovaní hostitelé vám mohou pomoci splnit požadavky na shodu a snížit náklady tím, že vám umožní používat vaši stávající softwarovou licenci vázanou na server, včetně Windows Server, SQL Server, SUSE Linux Enterprise Server, Red Hat Enterprise Linux nebo jiných softwarových licencí, které jsou vázány na virtuální počítače. , sockety nebo fyzická jádra v souladu s vašimi licenčními podmínkami. Lze jej zakoupit na vyžádání (hodinu) nebo jako rezervaci se slevou až 70 % z ceny na vyžádání. Více informací naleznete zde.
Přímé instance
Tyto instance vám umožňují požádat o náhradní výpočetní kapacitu Amazon EC2 až s 90% slevou z ceny na vyžádání. To je doporučeno pro aplikace, které mají flexibilní časy zahájení a ukončení, aplikace, které jsou proveditelné pouze za velmi nízké výpočetní ceny, nebo uživatele s naléhavými potřebami výpočetní techniky pro velké množství dodatečné kapacity. Více informací naleznete zde.
Vyhrazené instance
Tento typ platební nabídky vám poskytuje možnost získat až 75% slevu a v závislosti na instanci, kterou byste chtěli rezervovat, můžete získat rezervaci kapacity, která vám dodá větší důvěru ve své schopnosti spouštět instance, když je potřebujete. To se doporučuje, pokud mají vaše aplikace ustálený stav nebo předvídatelné využití, aplikace, které mohou vyžadovat vyhrazenou kapacitu, nebo zákazníci, kteří se mohou zavázat používat EC2 po dobu 1 nebo 3 let, aby snížili své celkové výpočetní náklady. Více informací naleznete zde.
Poznámka k ceně
A poslední věc s EC2, nabízí také účtování po sekundách, což také snižuje náklady na nevyužité minuty a sekundy za hodinu z účtu. To je výhodné, pokud škálujete na minimální dobu, jen abyste zpracovali požadavek na provoz z uzlu Galera nebo v případě, že chcete vyzkoušet a otestovat na konkrétním uzlu pouze po omezenou dobu.
Šifrování databáze na AWS
Pokud se obáváte o důvěrnost svých dat nebo o dodržování zákonů vyžadovaných pro dodržování bezpečnostních předpisů a předpisů, AWS nabízí šifrování dat v klidu. Pokud používáte MariaDB Cluster verze 10.2+, mají vestavěnou podporu zásuvných modulů pro rozhraní s rozhraním API služby správy klíčů Amazon Web Services (AWS) (KMS). To vám umožní využít službu správy klíčů AWS-KMS k usnadnění oddělení odpovědností a vzdáleného protokolování a auditu požadavků na přístup ke klíčům. Spíše než ukládání šifrovacího klíče do místního souboru tento plugin uchovává hlavní klíč v AWS KMS.
Při prvním spuštění MariaDB se plugin AWS KMS připojí ke službě správy klíčů AWS a požádá ji o vygenerování nového klíče. MariaDB uloží tento klíč na disk v zašifrované podobě. Klíč uložený na disku nelze použít k dešifrování dat; spíše se při každém spuštění MariaDB připojí k AWS KMS a nechá službu dešifrovat lokálně uložené klíče. Dešifrovaný klíč je uložen v paměti, dokud běží proces serveru MariaDB, a tento dešifrovaný klíč v paměti se používá k šifrování místních dat.
Alternativně můžete při nasazování instancí EC2 zašifrovat objem úložiště dat pomocí EBS (Elastic Block Storage) nebo zašifrovat samotnou instanci. Šifrování pro svazky typu EBS je podporováno, i když to může mít dopad, ale latence je velmi minimální nebo dokonce není pro koncové uživatele viditelná. Pro šifrování typu instance EC2 je podporována většina velkých instancí. Pokud tedy používáte výpočetně nebo paměťově optimalizované uzly, můžete využít jejich šifrování.
Níže je uveden seznam podporovaných typů instancí...
- Všeobecné použití:A1, M3, M4, M5, M5a, M5ad, M5d, T2, T3 a T3a
- Optimalizováno pro výpočet:C3, C4, C5, C5d a C5n
- Optimalizována paměť:cr1.8xlarge, R3, R4, R5, R5a, R5ad, R5d, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, X1, X1e a z1d
- Optimalizováno úložiště:D2, h1.2xlarge, h1.4xlarge, I2 a I3
- Zrychlené výpočty:F1, G2, G3, P2 a P3
Svůj účet AWS můžete nastavit tak, aby při nasazení instancí typu EC2 vždy povolil šifrování. To znamená, že AWS zašifruje nové svazky EBS při spuštění a zašifruje nové kopie nezašifrovaných snímků.
Multi-AZ/Multi-Region/Multi-Cloud Deployment
Bohužel v době psaní tohoto článku neexistuje žádná přímá podpora v konzole AWS (ani žádné z jejich AWS API), která podporuje nasazení Multi-AZ/-Region/-Cloud pro clustery uzlů Galera.
Vysoká dostupnost, škálovatelnost a redundance
Chcete-li dosáhnout nasazení ve více oblastech AZ, doporučujeme zřídit uzly galerie v různých zónách dostupnosti. To zabrání tomu, aby klastr přešel dolů nebo selhal kvůli nedostatku kvora.
Můžete také nastavit automatické škálování AWS a vytvořit skupinu automatického škálování pro monitorování a kontrolu stavu, takže váš cluster bude vždy redundantní, škálovatelný a vysoce dostupný. Automatické škálování by mělo vyřešit váš problém v případě, že váš uzel z nějakého neznámého důvodu selže.
Pro nasazení ve více regionech nebo více cloudech má Galera svůj vlastní parametr nazvaný gmcast.segment, u kterého to můžete nastavit při spuštění serveru. Tento parametr je navržen tak, aby optimalizoval komunikaci mezi uzly Galera a minimalizoval množství provozu odesílaného mezi segmenty sítě, včetně přenosové sady zápisů a výběru dárců IST a SST.
Tento typ nastavení vám umožňuje nasadit více uzlů v různých oblastech pro váš cluster Galera. Kromě toho můžete své uzly Galera nasadit také u jiného dodavatele, například pokud je hostován v Google Cloud a chcete redundanci v Microsoft Azure.
Doporučuji vám, abyste se podívali na náš blog Nastavení více datových center pomocí Galera Cluster pro MySQL nebo MariaDB a migrace sítě s nulovým výpadkem s MySQL Galera Cluster pomocí Relay Node, abyste získali další informace o implementaci těchto typů nasazení.
Výkon databáze na AWS
V závislosti na požadavcích vaší aplikace, pokud vaše dotazy spotřebovávají paměť, jsou vaší ideální volbou instance optimalizované pro paměť. Pokud má vaše aplikace vyšší transakce, které vyžadují vysoký výkon pro webové servery nebo dávkové zpracování, zvolte instance optimalizované pro výpočet. Pokud se chcete dozvědět více o optimalizaci vašeho Galera Cluster, můžete se podívat na tento blog Jak zlepšit výkon Galera Cluster pro MySQL nebo MariaDB.
Zálohování databáze na AWS
Vytváření záloh může být obtížné, protože v rámci AWS neexistuje žádná přímá podpora, která by byla specifická pro technologii MySQL Galera. AWS vám však poskytuje řešení katastrofy a obnovy pomocí EBS Snapshots. Můžete pořídit snímky svazků EBS připojených k vaší instanci a poté provést zálohu podle plánu pomocí CloudWatch nebo pomocí Amazon Data Lifecycle Manager (Amazon DLM) k automatizaci snímků.
Uvědomte si, že pořízené snímky jsou přírůstkové zálohy, což znamená, že se uloží pouze bloky na zařízení, které se změnily po posledním snímku. Tyto snímky můžete uložit do AWS S3, abyste ušetřili náklady na úložiště. Případně můžete použít externí nástroje jako Percona Xtrabackup a Mydumper (pro logické zálohy) a uložit je do AWS EFS -> AWS S3 -> AWS Glacier.
Můžete také nastavit Lifecycle Management v AWS, pokud potřebujete, aby byla vaše zálohovaná data uložena efektivněji. Pokud máte velké soubory a chystáte se využít AWS EFS, můžete využít jejich řešení AWS Backup, protože je to také jednoduché, ale nákladově efektivní řešení.
Na druhou stranu můžete využít i externí služby (stejně jako ClusterControl), které vám poskytují řešení pro monitorování i zálohování. Pokud se chcete dozvědět více, podívejte se na toto.
Monitorování databáze na AWS
AWS nabízí kontroly stavu a některé kontroly stavu, které vám zajistí viditelnost vašich uzlů Galera. To se provádí prostřednictvím CloudWatch a CloudTrail.
CloudTrail vám umožňuje povolit a prohlížet protokoly a provádět audity na základě provedených akcí a trasování.
CloudWatch vám umožňuje shromažďovat a sledovat metriky, shromažďovat a monitorovat soubory protokolů a nastavovat vlastní budíky. Můžete jej nastavit podle vlastních potřeb a získat přehled o využití zdrojů, výkonu aplikací a provozním stavu v celém systému. CloudWatch přichází s bezplatnou úrovní, pokud stále spadáte do jejích limitů (viz snímek obrazovky níže.)
CloudWatch také přichází s cenou v závislosti na objemu distribuovaných metrik. Aktuální ceník naleznete zde.
Upozornění:používání CloudWatch má i jednu nevýhodu. Není navržen tak, aby se staral o stav databáze, zejména pro monitorování uzlů clusteru MySQL Galera. Případně můžete použít externí nástroje, které nabízejí grafy s vysokým rozlišením nebo grafy, které jsou užitečné při vytváření sestav a snáze se analyzují při diagnostice problematického uzlu.
K tomu můžete použít PMM od Percona, DataDog, Idera, VividCortex nebo náš vlastní ClusterControl (protože monitorování je v komunitě ClusterControl ZDARMA.) Doporučil bych vám použít monitorovací nástroj, který vám vyhovuje potřeby na základě vašich individuálních požadavků aplikace. Je velmi důležité, aby vás váš monitorovací nástroj dokázal agresivně upozornit nebo vám poskytl integraci se systémy pro rychlé zasílání zpráv, jako je Slack, PagerDuty, nebo vám dokonce posílal SMS při eskalaci vážného zdravotního stavu.
Zabezpečení databáze na AWS
Zabezpečení instancí EC2 je jednou z nejdůležitějších součástí nasazení databáze do veřejného cloudu. Můžete nastavit soukromou podsíť a nastavit požadované skupiny zabezpečení, které budou preferovány pouze pro povolení portu nebo zdrojové IP v závislosti na vašem nastavení. Můžete nastavit své databázové uzly s nevzdáleným přístupem a pouze nastavit skokového hostitele nebo internetovou bránu, pokud uzly vyžadují přístup k internetu pro přístup nebo aktualizaci softwarových balíčků. Jak jsme to nastavili, si můžete přečíst v našem předchozím blogu Deploying Secure Multicloud MySQL Replication on AWS a GCP with VPN.
Kromě toho můžete svá data během přenosu zabezpečit pomocí připojení TLS/SSL nebo šifrovat data, když jsou v klidu. Pokud používáte ClusterControl, nasazení zabezpečeného přenosu dat je jednoduché a snadné. Pokud si to chcete vyzkoušet, můžete se podívat na náš blog Správa klíčů SSL a šifrování dat MySQL v Transitu. Pro data v klidu lze ukládání dat přes S3 zašifrovat pomocí AWS Server-Side Encryption nebo použít AWS-KMS, o kterém jsem hovořil dříve. Podívejte se na tento externí blog o tom, jak nastavit a využít klastr MariaDB pomocí AWS-KMS, abyste mohli svá data bezpečně ukládat v klidu.
Odstraňování problémů s clusterem Galera na AWS
AWS CloudWatch může pomoci zejména při zkoumání a kontrole systémových metrik. Můžete zkontrolovat síť, CPU, paměť, disk a její využití a rovnováhu instance nebo výpočtu. To však nemusí splňovat vaše požadavky, když se vrtáte do konkrétního případu.
CloudTrail může provádět spolehlivé stopy akcí, které byly řízeny na základě vašeho konkrétního účtu AWS. To vám pomůže určit, zda výskyty nepocházejí z MySQL Galera, ale může jít o nějakou chybu nebo problémy v prostředí AWS (například Hyper-V má problémy s hostitelským počítačem, kde se vaše instance jako host nachází). hostováno.)
Pokud používáte ClusterControl, přejděte do Logs -> System Logs a budete moci procházet zachycené protokoly chyb převzaté ze samotného uzlu MySQL Galera. Kromě toho ClusterControl poskytuje monitorování v reálném čase, které by zesílilo váš poplachový a oznamovací systém v případě nouze nebo pokud je váš uzel MySQL Galera kaput.
Závěr
AWS nemá čistou podporu pro nastavení MySQL Galera Cluster, na rozdíl od AWS RDS, který má kompatibilitu s MySQL. Z tohoto důvodu je většina doporučení nebo názorů provozujících Galera Cluster pro produkční použití v prostředí AWS založena na zkušených a dobře otestovaných prostředích, která běží velmi dlouho.
MariaDB Cluster přichází s velkou produktivitou, protože neustále poskytuje stručnou podporu pro řešení zásobníku technologií AWS. V nadcházející verzi MariaDB 10.5 nabídnou podporu pro S3 Storage Engine, na což se možná vyplatí počkat.
Externí nástroje vám mohou pomoci spravovat a ovládat váš MySQL Galera Cluster běžící na AWS Cloud, takže není velký problém, pokud máte nějaké dilemata a FUD ohledně toho, proč byste měli spustit nebo přejít na AWS Cloud Platforma.
AWS nemusí být v některých případech univerzálním řešením, ale poskytuje širokou škálu řešení, která si můžete přizpůsobit a přizpůsobit svým potřebám.
V další části našeho blogu se podíváme na jinou veřejnou cloudovou platformu, zejména Google Cloud, a uvidíme, jak můžeme využít, pokud se rozhodneme spustit náš Galera Cluster na jejich platformě.