MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So stellen Sie ClusterControl auf AWS bereit, um Ihre Cloud-Datenbank zu verwalten


ClusterControl ist infrastrukturunabhängig - es kann in Ihrem eigenen Rechenzentrum auf physischen Hosts sowie in virtualisierten Cloud-Umgebungen verwendet werden. Alles, was Sie brauchen, ist ein SSH-Zugriff vom ClusterControl-Host auf die Datenbankknoten, und Sie können dann eigenständige/replizierte/geclusterte MySQL/MariaDB, MongoDB (Replikatsätze oder fragmentierte Cluster) oder PostgreSQL (Streaming-Replikation) bereitstellen. In diesem Blogbeitrag führen wir Sie durch die Schritte zur Bereitstellung von ClusterControl auf EC2.

Instanzen in EC2 einrichten

Die Hardwarevoraussetzungen für ClusterControl sind hier beschrieben. Diese sollen eine performante Plattform für den ClusterControl-Server schaffen. Allerdings werden wir für unsere Testzwecke eine kleine Instanz (t2.micro) verwenden - das sollte uns reichen.

Zuerst müssen wir ein AMI auswählen. ClusterControl unterstützt:

  • Redhat/CentOS/Oracle Linux 6 und höher
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 und höher

Wir werden Ubuntu 16.04 verwenden.

Nächster Schritt – Instanztyp. Wir werden vorerst t2.micro auswählen, obwohl Sie größere Instanzen für Produktions-Setups verwenden möchten. Wählen Sie für andere Cloud-Anbieter Instanzen mit mindestens 1 GB Arbeitsspeicher aus.

Wir werden vier Instanzen gleichzeitig bereitstellen, eine für ClusterControl und drei für Percona XtraDB Cluster. Sie müssen entscheiden, wo diese Instanzen bereitgestellt werden sollen (VPC oder nicht, welches Subnetz usw.). Für unsere Testzwecke verwenden wir eine VPC und ein einzelnes Subnetz. Durch die Bereitstellung von Knoten in den Subnetzen (Availability Zones) ist es natürlich wahrscheinlicher, dass Ihr Setup überlebt, wenn einer der AZs nicht mehr verfügbar ist.

Für die Speicherung verwenden wir 100 GB Allzweck-SSD-Volume (GP2). Dies sollte ausreichen, um einige Tests mit einem angemessenen Datenvolumen durchzuführen.

Weiter - Sicherheitsgruppen. SSH-Zugang ist Voraussetzung. Abgesehen davon müssen Sie Ports öffnen, die für die Datenbank erforderlich sind, die Sie bereitstellen möchten. Weitere Informationen zu den erforderlichen Ports finden Sie in unserem Support-Portal.

Schließlich müssen Sie entweder eines der vorhandenen Schlüsselpaare auswählen oder ein neues erstellen. Nach diesem Schritt werden Ihre Instanzen gestartet.

Sobald die Instanzen betriebsbereit sind, ist es an der Zeit, ClusterControl zu installieren. Melden Sie sich dazu bei einer der Instanzen an und laden Sie das ClusterControl-Installationsskript install-cc:

herunter
[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]

Stellen Sie dann sicher, dass es ausgeführt werden kann, bevor Sie es ausführen:

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

Zu Beginn erhalten Sie einige Informationen zu den Anforderungen an unterstützte Linux-Distributionen:

!!
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.

Irgendwann müssen Sie einige Fragen zu Hostnamen, Ports und Passwörtern beantworten.

=> 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 ...

Abschließend erhalten Sie die Bestätigung, dass ClusterControl installiert wurde. Das Installationsskript wird auch versuchen, Ihre öffentliche IP-Adresse zu ermitteln und einen Link auszugeben, der in Ihrem Browser verwendet werden kann, um auf ClusterControl zuzugreifen.

=> 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.

Ist die Installation abgeschlossen, bleibt noch eines zu erledigen – der SSH-Zugriff von ClusterControl auf die verbleibenden Hosts. Sofern Sie nicht bereits SSH-Zugriff zwischen den Knoten haben (und Sie ssh-copy-id verwenden können), ist dies ein manueller Vorgang. Als erstes müssen wir einen neuen SSH-Schlüssel generieren:

[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]:~#

Wir können überprüfen, ob es korrekt erstellt wurde. Sie sollten auch den Inhalt des öffentlichen Schlüssels kopieren - wir werden ihn verwenden, um seine Kopien auf den verbleibenden Knoten zu erstellen.

[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

Jetzt müssen Sie diesen öffentlichen Schlüssel auf jedem verbleibenden Knoten in die Datei "authorized_keys" einfügen. Bei Ubuntu möchten Sie möglicherweise zuerst den Inhalt bereinigen, wenn Sie eine Root-Anmeldung verwenden möchten. Standardmäßig kann nur der Ubuntu-Benutzer verwendet werden, um eine Verbindung über SSH herzustellen. Ein solches Setup (regulärer Benutzer und sudo) kann auch mit ClusterControl verwendet werden, aber hier entscheiden wir uns für einen Root-Benutzer.

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

Sobald die „authorized_keys“-Dateien auf allen Knoten unseren öffentlichen Schlüssel enthalten, kopieren wir unseren öffentlichen Schlüssel in das .ssh-Verzeichnis und nehmen die erforderlichen Änderungen an den Zugriffsrechten vor:

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

Jetzt können wir testen, ob der SSH-Zugriff wie erwartet funktioniert:

[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.

Alles ist gut. Es ist an der Zeit, ClusterControl zu konfigurieren.

Geben Sie einige Registrierungsdetails ein.

Sobald Sie sich angemeldet haben, erscheint ein Assistent mit der Option, entweder einen neuen Cluster bereitzustellen oder einen vorhandenen zu importieren.

Wir möchten Percona XtraDB Cluster bereitstellen, also gehen wir zu „Deploy Database Cluster“ und wählen die Registerkarte „MySQL Galera“. Hier müssen wir die für die SSH-Konnektivität erforderlichen Zugangsdaten eingeben. Wir setzen den SSH-Benutzer auf root und füllen den Pfad zu unserem SSH-Schlüssel aus.

Als Nächstes definieren wir einen Anbieter, eine Version, ein Passwort und IP-Adressen für unsere Datenbankhosts. Bitte beachten Sie, dass ClusterControl die SSH-Konnektivität zu den Zieldatenbankhosts prüft. Wenn alles funktioniert, sehen Sie grüne Häkchen. Wenn Sie feststellen, dass die SSH-Authentifizierung fehlgeschlagen ist, müssen Sie dies untersuchen, da der ClusterControl-Server nicht auf Ihre Datenbankhosts zugreifen kann.

Klicken Sie dann auf Bereitstellen, um den Bereitstellungsprozess zu starten.

Sie können den Bereitstellungsfortschritt im Aktivitätsmonitor verfolgen.

Denken Sie daran, dass die Bereitstellung nur der erste Schritt ist. Der Betrieb einer Datenbank erfordert, dass Sie die Leistung Ihrer Hosts, Datenbankinstanzen und Abfragen überwachen und Backups verwalten, Fehler und andere Anomalien beheben, Proxys, Upgrades usw. verwalten. ClusterControl kann all diese Aspekte für Sie verwalten, also probieren Sie es aus lass uns wissen, wie es dir geht.