sql >> Databáze >  >> NoSQL >> MongoDB

Jak nasadit ClusterControl na AWS pro správu vaší cloudové databáze


ClusterControl je nezávislý na infrastruktuře – lze jej použít ve vašem vlastním datovém centru na fyzických hostitelích i ve virtualizovaných cloudových prostředích. Vše, co potřebujete, je ssh přístup z hostitele ClusterControl k databázovým uzlům a poté můžete nasadit samostatné/replikované/klastrované MySQL/MariaDB, MongoDB (sady replik nebo sharded clustery) nebo PostgreSQL (streamingová replikace). V tomto příspěvku na blogu vás provedeme kroky k nasazení ClusterControl na EC2.

Nastavení instancí v EC2

Hardwarové požadavky pro ClusterControl jsou popsány zde. Ty jsou určeny k vytvoření výkonné platformy pro server ClusterControl. Nicméně pro naše testovací účely použijeme malou instanci (t2.micro) - to by nám mělo stačit.

Nejprve musíme vybrat AMI. ClusterControl podporuje:

  • Redhat/CentOS/Oracle Linux 6 a novější
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 a novější

Budeme používat Ubuntu 16.04.

Další krok - typ instance. Prozatím vybereme t2.micro, i když pro produkční nastavení budete chtít použít větší instance. Pro ostatní poskytovatele cloudu vyberte instance s alespoň 1 GB paměti.

Chystáme se nasadit čtyři instance najednou, jednu pro ClusterControl a tři pro Percona XtraDB Cluster. Musíte se rozhodnout, kde by měly být tyto instance nasazeny (VPC nebo ne, která podsíť atd.). Pro naše testovací účely budeme používat VPC a jednu podsíť. Rozmístění uzlů napříč podsítěmi (zóny dostupnosti) samozřejmě zvyšuje pravděpodobnost přežití vašeho nastavení, pokud by jeden z AZ přestal být dostupný.

Pro úložiště použijeme 100 GB univerzálního SSD svazku (GP2). To by mělo stačit k provedení některých testů s přiměřeným objemem dat.

Další - skupiny zabezpečení. SSH přístup je podmínkou. Kromě toho musíte otevřít porty požadované databází, kterou plánujete nasadit. Více informací o tom, které porty jsou vyžadovány, najdete na našem portálu podpory.

Nakonec musíte buď vybrat jeden ze stávajících párů klíčů, nebo můžete vytvořit nový. Po tomto kroku budou spuštěny vaše instance.

Jakmile jsou instance spuštěny, je čas nainstalovat ClusterControl. Za tímto účelem se přihlaste do jedné z instancí a stáhněte si instalační skript ClusterControl, install-cc:

[email protected]:~$ wget http://www.severalnines.com/downloads/cmon/install-cc
--2017-09-06 11:13:10--  http://www.severalnines.com/downloads/cmon/install-cc
Resolving www.severalnines.com (www.severalnines.com)... 107.154.146.155
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:10--  https://www.severalnines.com/downloads/cmon/install-cc
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:11--  https://severalnines.com/downloads/cmon/install-cc
Resolving severalnines.com (severalnines.com)... 107.154.238.155, 107.154.148.155
Connecting to severalnines.com (severalnines.com)|107.154.238.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 56913 (56K) [text/plain]
Saving to: ‘install-cc’

install-cc                                           100%[=====================================================================================================================>]  55.58K   289KB/s    in 0.2s

2017-09-06 11:13:12 (289 KB/s) - ‘install-cc’ saved [56913/56913]

Poté se před spuštěním ujistěte, že jej lze spustit:

[email protected]:~$ chmod +x install-cc
[email protected]:~$ sudo ./install-cc

Na začátku získáte nějaké informace o požadavcích na podporované distribuce Linuxu:

!!
Only RHEL/Centos 6.x|7.x, Debian 7.x|8.x, Ubuntu 12.04.x|14.04.x|16.04.x LTS versions are supported
Minimum system requirements: 2GB+ RAM, 2+ CPU cores
Server Memory: 990M total, 622M free
MySQL innodb_buffer_pool_size set to 512M

Severalnines would like your help improving our installation process.
Information such as OS, memory and install success helps us improve how we onboard our users.
None of the collected information identifies you personally.
!!
=> Would you like to help us by sending diagnostics data for the installation? (Y/n):

This script will add Severalnines repository server for deb and rpm packages and
install the ClusterControl Web Applicaiton and Controller.
An Apache and MySQL server will also be installed. An existing MySQL Server on this host can be used.

V určitém okamžiku budete muset odpovědět na některé otázky týkající se názvů hostitelů, portů a hesel.

=> The Controller hostname will be set to 172.30.4.20. Do you want to change it? (y/N):
=> Creating temporary staging dir s9s_tmp

=> Setting up the ClusterControl Web Application ...
=> Using web document root /var/www/html
=> No running MySQL server detected
=> Installing the default distro MySQL Server ...
=> Assuming default MySQL port is 3306. Do you want to change it? (y/N):

=> Enter the MySQL root password:
=> Enter the MySQL root password again:
=> Importing the Web Application DB schema and creating the cmon user.

=> Importing /var/www/html/clustercontrol/sql/dc-schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Set a password for ClusterControl's MySQL user (cmon) [cmon]
=> Enter a CMON user password:
=> Enter the CMON user password again: => Creating the MySQL cmon user ...
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Creating UI configuration ...

Nakonec obdržíte potvrzení, že ClusterControl byl nainstalován. Instalační skript se také pokusí zjistit vaši veřejnou IP a vytisknout odkaz, který lze použít ve vašem prohlížeči pro přístup k ClusterControl.

=> ClusterControl installation completed!
Open your web browser to http://172.30.4.20/clustercontrol and
enter an email address and new password for the default Admin User.

Determining network interfaces. This may take a couple of minutes. Do NOT press any key.
Public/external IP => http://34.230.71.40/clustercontrol
Installation successful. If you want to uninstall ClusterControl then run install-cc --uninstall.

Po dokončení instalace je stále potřeba postarat se o jednu věc – přístup SSH z ClusterControl ke zbývajícím hostitelům. Pokud již nemáte přístup SSH mezi uzly (a můžete použít ssh-copy-id), bude to ruční proces. Nejprve a především musíme vygenerovat nový ssh klíč:

[email protected]:~# ssh-keygen -C 'galera_cluster' -f id_rsa_galera -t rsa -b 4096
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_galera.
Your public key has been saved in id_rsa_galera.pub.
The key fingerprint is:
SHA256:2tWOGXbrtc0Qh45NhNPzUSVdDzE9ANV1TJ0QBE5QrQY galera_cluster
The key's randomart image is:
+---[RSA 4096]----+
|         .o=**X*&|
|         Eo  + BO|
|          ..+ +.o|
|           + o +.|
|        S = o + o|
|       o o * * o |
|      . . o + =  |
|           . . = |
|            . . o|
+----[SHA256]-----+
[email protected]:~#

Můžeme ověřit, že byl vytvořen správně. Budete také chtít zkopírovat obsah veřejného klíče – použijeme jej k vytvoření jeho kopií na zbývajících uzlech.

[email protected]:~# cat id_rsa_galera.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYKil17MzTrNc70GIQlVoK6xLop9acfT3W6kBUGO4ybsvIA5Fss+WvT/DLsYMtukq2Eih93eO4amLRYQIeyWSjJ/bBwIF/LXL4v04GF8+wbDgCyiV/t9dSuXna9qFeawkUVcPjnmWnZqUoaP5QeovXTluxl54xEwbFm1oLT+fgWbaim5w9vVUK4+hAHaZ7wVvTPVsIt1B3nJgWJF0Sz+TJN87vSUg7xdshgzhapUotXlguFGVzmNKWLnEFDCK7RT41oh4y4rkKP7YLc+wFfRHYTnKyMIcf0/0VMyL+2AdwQp8RThbBommf2HGimF1hSyA9/fc+tLi7FVTg1bKKeXj4hwexeFAJZwoy3HyD3wQ/NwadpDVk5Pg7YYzdN2aCZfvo27qp3gdQQ2H+LF6LvDyQEkgRpFN+pHoWQvPjJJasjfIcfdaC9WmDiL4s5fXyCTQz/x0NaTXVkLBS9ibfOUw8AGdd36FvdqnNOFOlMLKLa359JhdpqXnH7ksiThcotQuFmV5Dc8M66vTDz9rvVZhNC0nME478RNBP0Bgj1BM26XdQlzozeaRmHGoZXcSQVJTXBC93+QN4+bRmWmxhhj5G5M7bFiQyal1VtugoUt8ZV4NiiG+KDd6yj5um8+CffD/BASGrv3vffH+AK7xtjchIv5su40+unecfSOtO98TiQw== galera_cluster

Nyní na každém zbývajícím uzlu musíte přidat tento veřejný klíč do souboru author_keys. U ubuntu možná budete chtít nejprve vyčistit jeho obsah, pokud chcete použít přihlášení root. Ve výchozím nastavení lze pro připojení přes SSH použít pouze uživatele ubuntu. Takové nastavení (běžný uživatel a sudo) je také možné použít s ClusterControl, ale zde se podíváme na uživatele root.

[email protected]:~# vim ~/.ssh/authorized_keys

Jakmile soubory autorizovaných_klíčů na všech uzlech obsahují náš veřejný klíč, zkopírujeme náš veřejný klíč do adresáře .ssh a provedeme nezbytné změny v přístupových právech:

[email protected]:~# cp id_rsa_galera /root/.ssh/
[email protected]:~# chmod 600 /root/.ssh/id_rsa_galera

Nyní můžeme otestovat, zda přístup SSH funguje podle očekávání:

[email protected]:~# ssh -i /root/.ssh/id_rsa_galera 172.30.4.46
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1022-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


[email protected]:~# logout
Connection to 172.30.4.46 closed.

Všechno je dobré. Je čas nakonfigurovat ClusterControl.

Vyplňte některé registrační údaje.

Jakmile se přihlásíte, objeví se průvodce s možností buď nasadit nový cluster, nebo importovat existující.

Chceme nasadit Percona XtraDB Cluster, takže přejdeme na „Deploy Database Cluster“ a vybereme kartu „MySQL Galera“. Zde musíme vyplnit přístupové údaje potřebné pro připojení SSH. Nastavíme SSH User na root a vyplníme cestu k našemu SSH klíči.

Dále definujeme dodavatele, verzi, heslo a IP adresy pro hostitele naší databáze. Mějte prosím na paměti, že ClusterControl zkontroluje připojení SSH k hostitelům cílové databáze. Pokud vše funguje dobře, uvidíte zelené zaškrtnutí. Pokud zjistíte, že se ověření SSH nezdařilo, budete to muset prozkoumat, protože server ClusterControl nemá přístup k hostitelům vaší databáze.

Poté kliknutím na Deploy spusťte proces nasazení.

Průběh nasazení můžete sledovat v monitoru aktivity.

Pamatujte, že nasazení je pouze prvním krokem. Provoz databáze vyžaduje, abyste monitorovali výkon svých hostitelů, instancí databáze, dotazů a spravovali zálohy, opravovali selhání a další anomálie, spravovali proxy, upgrady atd. ClusterControl může všechny tyto aspekty spravovat za vás, takže to vyzkoušejte a dejte nám vědět, jak se vám daří.


  1. Průvodce MongoDB s Java

  2. Redis / Získejte všechny klíče a hodnoty z redis s předponou

  3. E-Commerce API vytvořené pomocí Node-Js, Typescript, PostgreSQL, Redis a Kafka

  4. Nasazení MongoDB pomocí Dockeru