MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Сравняване на облачните предложения на Galera Cluster:Част първа Amazon AWS

Изпълнението на MySQL Galera Cluster (било то Percona, MariaDB или Codership) за съжаление не е  поддържана (нито част от) базите данни, поддържани от Amazon RDS. Повечето от базите данни, поддържани от RDS, използват асинхронна репликация, докато Galera Cluster е решение за синхронно мулти-мастер репликация. Galera също така изисква InnoDB като своя механизъм за съхранение, за да функционира правилно и въпреки че можете да използвате други машини за съхранение, като MyISAM, не се препоръчва да използвате този двигател за съхранение поради липсата на обработка на транзакции.

Поради липсата на естествена поддръжка в RDS, този блог ще се съсредоточи върху предлаганите предложения, когато избирате и хоствате вашия базиран на Galera клъстер с помощта на AWS среда.

Със сигурност има много причини да изберете или да не изберете облачната платформа на AWS, но за тази конкретна тема ще разгледаме предимствата и предимствата на това, което можете да използвате, вместо защо ще избере платформата AWS.

Виртуалните сървъри (Elastic Compute Instances)

Както споменахме по-рано, MySQL Galera не е част от RDS и InnoDB е транзакционна машина за съхранение, за която се нуждаете от правилните ресурси за изискванията на вашето приложение. Той трябва да има капацитет да обслужва търсенето на трафика на заявката на вашия клиент. Към момента на тази статия единственият ви избор за стартиране на Galera Cluster е да използвате EC2, облачното предложение на Amazon за изчислителни инстанции.

Тъй като имате предимството да стартирате системата си на редица възли на EC2 екземпляри, стартирането на Galera Cluster на EC2 стихове on-prem не се различава много. Можете да получите достъп до сървъра отдалечен чрез SSH, да инсталирате желаните от вас софтуерни пакети и да изберете вида на Galera Cluster build, който искате да използвате.

Освен това с EC2 това предложение е по-еластично и гъвкаво, което ви позволява да доставяте и предлагате по-проста,  детайлна настройка. Можете да се възползвате от уеб услугите за автоматизиране или изграждане на редица възли, ако трябва да мащабирате вашата среда, или например да автоматизирате изграждането на вашата среда за създаване или разработка. Освен това ви дава предимство бързо да изградите желаната от вас среда, да изберете и настроите желаната от вас ОС и да вземете правилните изчислителни ресурси, които отговарят на вашите изисквания (като процесор, памет и дисково съхранение). EC2 елиминира времето за чакане на хардуер. , тъй като можете да направите това в движение. Можете също да използвате техния AWS CLI инструмент, за да автоматизирате настройката на клъстера на Galera.

Ценообразуване за екземпляри на Amazon EC2

EC2 предлага редица възможности за избор, които са много гъвкави за потребителите, които биха искали да хостват своята среда Galera Cluster на изчислителни възли на AWS. Безплатното ниво на AWS включва 750 часа екземпляри на Linux и Windows t2.micro всеки месец за една година. Можете да останете в рамките на безплатното ниво, като използвате само EC2 Micro инстанции, но това може да не е най-доброто нещо за производствена употреба.

Има няколко типа EC2 екземпляри, за които можете да внедрите, когато осигурявате своите възли на Galera. В идеалния случай тези семейства r4/r5/x1 (оптимизирани за паметта) и c4/c5 (оптимизирани за изчисления) са идеален избор и тези цени се различават в зависимост от това колко големи са нуждите на сървъра ви от ресурси и вида на ОС.

Това са типовете платени екземпляри, които можете да изберете...

При поискване 

Плащане чрез изчислителен капацитет (на час или секунда) зависи от типа на екземпляри, които изпълнявате. Например, цените може да се различават при предоставяне на екземпляр на Ubuntu спрямо екземпляр на RHEL, освен вида на екземпляра. Не са необходими дългосрочни ангажименти или авансови плащания. Той също така има гъвкавостта да увеличи или намали вашия изчислителен капацитет. Тези екземпляри се препоръчват за нуждите на ниска цена и гъвкава среда, като приложения с краткосрочни, резки или непредвидими натоварвания, които не могат да бъдат прекъснати, или приложения, които се разработват или тестват на Amazon EC2 за първи път. Вижте го тук за повече информация.

Специализирани хостове

Ако търсите съответствие и регулаторни изисквания, като например необходимостта от придобиване на специален сървър, който работи на специален хардуер за използване, този тип оферта отговаря на вашите нужди. Специализираните хостове могат да ви помогнат да отговорите на изискванията за съответствие и да намалите разходите, като ви позволяват да използвате съществуващия си свързан със сървър софтуерен лиценз, включително Windows Server, SQL Server, SUSE Linux Enterprise Server, Red Hat Enterprise Linux или други софтуерни лицензи, които са обвързани с виртуални машини , гнезда или физически ядра, в зависимост от вашите лицензионни условия. Може да бъде закупен при поискване (почасово) или като резервация за до 70% отстъпка от цената при поискване. Вижте го тук за повече информация.

Спонтанни екземпляри

Тези екземпляри ви позволяват да заявите резервен изчислителен капацитет на Amazon EC2 за до 90% отстъпка от цената при поискване. Това се препоръчва за приложения, които имат гъвкаво начално и крайно време, приложения, които са осъществими само при много ниски изчислителни цени, или потребители с спешни изчислителни нужди за големи количества допълнителен капацитет. Вижте го тук за повече информация.

Запазени екземпляри

Този тип оферта за плащане ви дава възможност да вземете до 75% отстъпка и в зависимост от това кой екземпляр искате да резервирате, можете да придобиете резервация на капацитет, което ви дава допълнителна увереност във вашите способности за стартиране на екземпляри, когато имате нужда от тях. Това се препоръчва, ако вашите приложения имат стабилно състояние или предвидимо използване, приложения, които може да изискват запазен капацитет, или клиенти, които могат да се ангажират да използват EC2 за срок от 1 или 3 години, за да намалят общите си изчислителни разходи. Вижте го тук за повече информация.

Бележка за цените

Последно нещо с EC2, те също предлагат таксуване за секунда, което също отнема разходите за неизползвани минути и секунди за един час от сметката. Това е изгодно, ако мащабирате за минимален период от време, само за да обработвате заявка за трафик от възел на Galera или в случай, че искате да опитате и тествате на конкретен възел само за ограничено време.

Криптиране на база данни на AWS

Ако сте загрижени за поверителността на вашите данни или спазването на законите, необходими за спазването на изискванията и разпоредбите ви за сигурност, AWS предлага криптиране на данни в покой. Ако използвате MariaDB Cluster версия 10.2+, те имат вградена поддръжка на плъгини за взаимодействие с API на услугата за управление на ключове (KMS) на Amazon Web Services (AWS). Това ви позволява да се възползвате от услугата за управление на ключове AWS-KMS, за да улесните разделянето на отговорностите и дистанционното регистриране и одит на заявки за достъп до ключове. Вместо да съхранява ключа за криптиране в локален файл, този плъгин запазва главния ключ в AWS KMS.

Когато за първи път стартирате MariaDB, приставката AWS KMS ще се свърже с услугата за управление на ключове на AWS и ще я помоли да генерира нов ключ. MariaDB ще съхранява този ключ на диска в криптирана форма. Ключът, съхранен на диска, не може да се използва за декриптиране на данните; по-скоро при всяко стартиране MariaDB се свързва с AWS KMS и има услугата да декриптира локално съхранения(ите) ключ(ове). Декриптираният ключ се съхранява в паметта, докато работи сървърният процес на MariaDB, и този декриптиран ключ в паметта се използва за криптиране на локалните данни.

Алтернативно, когато разгръщате вашите EC2 екземпляри, можете да шифровате обема си за съхранение на данни с EBS (Elastic Block Storage) или да шифровате самия екземпляр. Поддържа се криптиране за обеми от тип EBS, въпреки че може да има влияние, но латентността е много минимална или дори не се вижда от крайните потребители. За криптиране от тип екземпляр EC2 повечето от големите екземпляри се поддържат. Така че, ако използвате възли, оптимизирани за изчисления или памет, можете да използвате неговото криптиране.

По-долу е даден списъкът с поддържани типове екземпляри...

  • Общо предназначение:A1, M3, M4, M5, M5a, M5ad, M5d, T2, T3 и T3a
  • Оптимизиран за изчисление:C3, C4, C5, C5d и C5n
  • Оптимизирана памет:cr1.8xlarge, R3, R4, R5, R5a, R5ad, R5d, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, X1, X1e и z1d
  • Оптимизирано съхранение:D2, h1.2xlarge, h1.4xlarge, I2 и I3
  • Ускорено изчисление:F1, G2, G3, P2 и P3

Можете да настроите акаунта си в AWS така, че винаги да активирате криптиране при внедряване на вашите екземпляри от тип EC2. Това означава, че AWS ще криптира нови EBS томове при стартиране и ще криптира нови копия на некриптирани моментни снимки.

Разгръщания в няколко AZ/Multi-Region/Multi-Cloud

За съжаление, към момента на писането на тази статия, няма такава директна поддръжка в AWS Console (нито който и да е от техния AWS API), която да поддържа внедряване на Multi-AZ/-Region/-Cloud за клъстери на възли Galera.

Висока наличност, мащабируемост и излишък

За да постигнете внедряване с няколко AZ, препоръчително е да предоставите своите възли на galera в различни зони за наличност. Това предотвратява срива на клъстера или неизправност на клъстера поради липса на кворум.

Можете също да настроите автоматично мащабиране на AWS и да създадете група за автоматично мащабиране, за да наблюдавате и извършвате проверки на състоянието, така че вашият клъстер винаги да има излишък, мащабируем и висока наличност. Автоматичното мащабиране би трябвало да реши проблема ви в случай, че възелът ви изпадне по някаква неизвестна причина.

За внедряване в няколко региона или в няколко облака, Galera има свой собствен параметър, наречен gmcast.segment, за който можете да зададете това при стартиране на сървъра. Този параметър е предназначен да оптимизира комуникацията между възлите на Galera и да минимизира количеството трафик, изпратен между мрежовите сегменти, включително препредаване на набор за запис и избор на донор на IST и SST.

Този тип настройка ви позволява да разгръщате множество възли в различни региони за вашия клъстер Galera. Освен това, можете също да разположите своите възли на Galera на друг доставчик, например, ако се хоства в Google Cloud и искате излишък в Microsoft Azure.

Бих ви препоръчал да разгледате нашия блог Настройки на множество центрове за данни с помощта на Galera Cluster за MySQL или MariaDB и нулева миграция на мрежа по време на престой с MySQL Galera Cluster Използване на Relay Node, за да съберете повече информация за това как да внедрите тези типове на разполагания.

Ефективност на базата данни в AWS

В зависимост от търсенето на вашето приложение, ако вашите заявки памет консумират оптимизираните за памет екземпляри, вашият идеален избор. Ако вашето приложение има по-високи транзакции, които изискват висока производителност за уеб сървъри или пакетна обработка, тогава изберете оптимизирани за изчисление екземпляри. Ако искате да научите повече за оптимизирането на вашия Galera Cluster, можете да разгледате този блог Как да подобрите производителността на Galera Cluster за MySQL или MariaDB.

Архивиране на бази данни в AWS

Създаването на резервни копия може да бъде трудно, тъй като в AWS няма директна поддръжка, която е специфична за MySQL Galera технологията. Въпреки това, AWS ви предоставя решение при бедствия и възстановяване с помощта на EBS Snapshots. Можете да правите моментни снимки на томовете EBS, прикачени към вашия екземпляр, след което или да направите резервно копие по график с помощта на CloudWatch или като използвате Amazon Data Lifecycle Manager (Amazon DLM), за да автоматизирате моментните снимки.

Обърнете внимание, че направените моментни снимки са инкрементални резервни копия, което означава, че се запазват само блоковете на устройството, които са се променили след последната ви моментна снимка. Можете да съхранявате тези моментни снимки в AWS S3, за да спестите разходи за съхранение. Като алтернатива  можете да използвате външни инструменти като Percona Xtrabackup и Mydumper (за логически архиви) и да ги съхранявате в AWS EFS -> AWS S3 -> AWS Glacier.

Можете също да настроите управление на жизнения цикъл в AWS, ако имате нужда от вашите архивни данни да се съхраняват по по-рентабилен начин. Ако имате големи файлове и ще използвате AWS EFS, можете да използвате тяхното AWS Backup решение, тъй като това също е просто, но рентабилно решение.

От друга страна, можете да използвате и външни услуги (както и ClusterControl), които ви предоставят решения за наблюдение и архивиране. Вижте това, ако искате да научите повече.

Наблюдение на бази данни в AWS

AWS предлага проверки на състоянието и някои проверки на състоянието, за да ви осигури видимост във вашите възли на Galera. Това става чрез CloudWatch и CloudTrail.

CloudTrail ви позволява да активирате и инспектирате регистрационните файлове и да извършвате одити въз основа на извършените действия и проследявания.

CloudWatch ви позволява да събирате и проследявате показатели, да събирате и наблюдавате регистрационни файлове и да задавате персонализирани аларми. Можете да го настроите според вашите потребителски нужди и да получите видимост в цялата система за използването на ресурсите, производителността на приложението и работното състояние. CloudWatch се предлага с безплатно ниво, стига да попадате в неговите граници (Вижте екранната снимка по-долу.)

CloudWatch също се предлага с цена в зависимост от обема на разпределените показатели. Проверете текущата му цена, като проверите тук.

Обърнете внимание:използването на CloudWatch има недостатък. Той не е проектиран да се грижи за здравето на базата данни, особено за наблюдение на възли на клъстер на MySQL Galera. Като алтернатива можете да използвате външни инструменти, които предлагат графики или диаграми с висока разделителна способност, които са полезни при отчитането и са по-лесни за анализ при диагностициране на проблемен възел.

За това можете да използвате PMM от Percona, DataDog, Idera, VividCortex или нашия собствен ClusterControl (тъй като наблюдението е БЕЗПЛАТНО с общността на ClusterControl.) Бих ви препоръчал да използвате инструмент за наблюдение, който отговаря на вашите нужди. нужди въз основа на вашите индивидуални изисквания за приложение. Много е важно вашият инструмент за наблюдение да може да ви уведомява агресивно или да ви осигури интеграция за системи за незабавни съобщения като Slack, PagerDuty или дори да ви изпраща SMS, когато ескалира тежко здравословно състояние.

Сигурност на базата данни в AWS

Обезопасяването на вашите EC2 екземпляри е една от най-важните части от внедряването на вашата база данни в публичния облак. Можете да настроите частна подмрежа и да настроите необходимите групи за защита, които се предпочитат само за разрешаване на порта  или IP адреса на източника в зависимост от вашата настройка. Можете да настроите възлите на базата си данни с неотдалечен достъп и просто да настроите хост за прескачане или интернет шлюз, ако възлите изискват достъп до интернет за достъп или актуализиране на софтуерни пакети. Можете да прочетете предишния ни блог Разгръщане на защитена мултиоблачна MySQL репликация на AWS и GCP с VPN за това как настроихме това.

В допълнение към това можете да защитите данните си по време на пренос, като използвате TLS/SSL връзка или да шифровате данните си, когато са в покой. Ако използвате ClusterControl, внедряването на защитени данни при пренос е лесно и лесно. Можете да разгледате нашия блог SSL Key Management и криптиране на MySQL данни в транзит, ако искате да изпробвате. За данни в състояние на покой съхраняването на вашите данни чрез S3 може да бъде криптирано с помощта на AWS Server-Side Encryption или да използвате AWS-KMS, което обсъдих по-рано. Вижте този външен блог за това как да настроите и използвате MariaDB клъстер с помощта на AWS-KMS, за да можете да съхранявате данните си сигурно в състояние на покой.

Отстраняване на неизправности в клъстера на Galera на AWS

AWS CloudWatch може да помогне особено при проучване и проверка на системните показатели. Можете да проверите мрежата, процесора, паметта, диска и използването и баланса на екземпляра или изчисленията. Това обаче може да не отговаря на вашите изисквания, когато се копае в конкретен случай.

CloudTrail може да извършва солидни следи от действия, които са били управлявани въз основа на вашия конкретен акаунт в AWS. Това ще ви помогне да определите дали събитията не идват от MySQL Galera, но може да са някаква грешка или проблеми в средата на AWS (като Hyper-V има проблеми в хост машината, където вашият екземпляр, като гост, се намира хостван.)

Ако използвате ClusterControl, отидете на Регистри -> Системни регистри, ще можете да преглеждате заснетите регистрационни файлове за грешки, взети от самия възел на MySQL Galera. Освен това, ClusterControl осигурява наблюдение в реално време, което би усилило вашата система за аларма и уведомяване в случай на спешност или ако вашият възел(и) на MySQL Galera е капут.

Заключение

AWS няма чиста поддръжка за настройка на MySQL Galera Cluster, за разлика от AWS RDS, който има съвместимост с MySQL. Поради това повечето препоръки или мнения за използване на Galera Cluster за производствена употреба в средата на AWS се основават на опитни и добре тествани среди, които работят от много дълго време.

MariaDB Cluster се предлага с голяма производителност, тъй като постоянно предоставя кратка поддръжка за решението за технологичен стек на AWS. В предстоящото издание на версията MariaDB 10.5 те ще предложат поддръжка за S3 Storage Engine, което може да си струва чакането.

Външните инструменти могат да ви помогнат да управлявате и контролирате вашия MySQL Galera Cluster, работещ в AWS Cloud, така че не е голям проблем, ако имате някои дилеми и FUD защо трябва да стартирате или да преминете към AWS Cloud Платформа.

AWS може да не е универсалното решение в някои случаи, но предоставя широк спектър от решения, които можете да персонализирате и персонализирате според нуждите си.

В следващата част на нашия блог ще разгледаме друга публична облачна платформа, особено Google Cloud, и ще видим как можем да използваме, ако изберем да стартираме нашия Galera Cluster в тяхната платформа.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB CURRENT_TIME() Обяснено

  2. 2 начина за връщане на редове, които съдържат само буквено-цифрови знаци в MariaDB

  3. MariaDB JSON_SET() Обяснено

  4. Автоматично управление на версиите на данни в MariaDB Server 10.3

  5. Как да замените междинен MySQL или MariaDB Master с Binlog сървър с помощта на MaxScale