PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ausführen von PostgreSQL mit Amazon RDS

Cloud Computing ist mittlerweile in den meisten Unternehmen alltäglich. Es ermöglicht die On-Demand-Verfügbarkeit von Rechenleistung, Datenbank, Speicher, Anwendungen und anderen Ressourcen über das Internet.

Die Hauptvorteile der Cloud sind, dass Sie nicht viel Geld ausgeben müssen, um leistungsstarke Server zu kaufen oder eigene Rechenzentren zu bauen. Aber das ist nicht der einzige Vorteil, wenn Sie skalieren müssen, müssen Sie keinen neuen Server kaufen, sondern können einfach mit wenigen Klicks Ressourcen hinzufügen. Auf ähnliche Weise können wir auch die Anzahl der Ressourcen verringern, wenn sie nicht benötigt werden, um Kosten zu senken.

Eine Cloud-Datenbank ist eine Datenbank, die auf einem Cloud-Anbieter läuft. Es ermöglicht uns, unsere Daten über eine Cloud-Plattform zu speichern, zu verwalten, abzurufen und zu manipulieren; über das Internet zugänglich.

In diesem Blog sehen wir uns die verschiedenen Arten von Cloud-Angeboten an und konzentrieren uns dann auf den Betrieb einer PostgreSQL-Datenbank mit Amazon RDS

Angebote und Optionen für Cloud-Dienste

Wie wir im obigen Bild sehen können, gibt es verschiedene Arten von Cloud-Dienste je nach benötigter Zugriffsebene.

  • Lokal: Es wird auf Computern in den Räumlichkeiten der Person oder Organisation installiert und ausgeführt, die das System verwendet. Tatsächlich ist dies kein Cloud-Dienst, aber es ist nützlich, den Unterschied zu sehen.
  • IaaS: Es handelt sich um einen Onlinedienst, der High-Level-APIs bereitstellt, die für den Zugriff auf verschiedene Low-Level-Details der zugrunde liegenden Netzwerkinfrastruktur wie physische Computerressourcen, Standort, Datenpartitionierung, Skalierung, Sicherheit, Backup usw. verwendet werden.
  • PaaS: Es bietet eine Plattform, die es Kunden ermöglicht, Anwendungen zu entwickeln, auszuführen und zu verwalten, ohne die Komplexität des Aufbaus und der Wartung der Infrastruktur, die mit der Entwicklung und Einführung einer Anwendung verbunden ist.
  • SaaS: Es wird von Benutzern über das Internet mit einem Client (Browser) aufgerufen. Es erfordert keine Installation auf der Client-Seite.

Wenn wir über PostgreSQL sprechen, gibt es Cloud-Anbieter, die PostgreSQL in der Cloud anbieten; in verschiedenen Geschmacksrichtungen und mit verschiedenen Methoden. Wie oben erwähnt, konzentrieren wir uns auf Amazon RDS.

Was ist Amazon RDS (Relational Database Service)?

Laut der Amazon-Website bieten sie über 165 Dienste mit vollem Funktionsumfang an, darunter über 40 Dienste, die nirgendwo anders verfügbar sind. AWS ist also wahrscheinlich der weltweit fortschrittlichste Cloud-Anbieter in Bezug auf Funktionen und Dienste mit Millionen von Kunden.

Amazon RDS ermöglicht es uns, auf einfache und schnelle Weise eine relationale Datenbank in der Cloud zu erstellen, zu verwalten und zu skalieren, und es ist für verschiedene Datenbanktypen wie Amazon Aurora, PostgreSQL, MySQL und mehr verfügbar. AWS stellt ein Tool namens AWS Database Migration Service bereit, um eine vorhandene Datenbank zu Amazon RDS zu migrieren.

Vorteile von Amazon RDS

  • Einfach zu verwenden: Wir können die Amazon RDS-Managementkonsole, die AWS RDS-Befehlszeilenschnittstelle oder API-Aufrufe verwenden, um auf die relationale Datenbank zuzugreifen. Wir brauchen keine Infrastrukturbereitstellung oder Installation und Wartung von Datenbanksoftware.
  • Skalierbar: Wir können die Rechen- und Speicherressourcen unserer Datenbank mit nur wenigen Klicks skalieren. Viele Amazon RDS-Engine-Typen ermöglichen es uns, eine oder mehrere Read Replicas zu starten, um den Leseverkehr von unserer primären Datenbankinstanz zu entlasten.
  • Verfügbarkeit: Wenn wir eine Multi-AZ-DB-Instance bereitstellen, repliziert Amazon RDS die Daten synchron auf eine Standby-Instance in einer anderen Availability Zone (AZ). Amazon RDS verfügt über viele weitere Funktionen, die die Zuverlässigkeit kritischer Produktionsdatenbanken verbessern, einschließlich automatisierter Sicherungen, Datenbank-Snapshots und automatischer Hostersetzung.
  • Leistung: Wir können zwischen zwei SSD-gestützten Speicheroptionen wählen:eine optimiert für leistungsstarke OLTP-Anwendungen und die andere für den kostengünstigen Allzweckeinsatz.
  • Sicher: Mit Amazon RDS können wir die Datenbankinstanzen in Amazon VPC (Virtual Private Cloud) ausführen, wodurch wir unsere Datenbankinstanzen isolieren und uns über ein VPN mit unserer bestehenden IT-Infrastruktur verbinden können. Außerdem bieten viele Amazon RDS-Engine-Typen Verschlüsselung im Ruhezustand und Verschlüsselung während der Übertragung.

Dies wird zwar nicht offiziell auf der AWS-Website erwähnt, aber wenn wir DBaaS (Database as a Service) als einen Datenbankdienst betrachten, der in der Infrastruktur des externen Anbieters verwaltet und bereitgestellt wird (gemäß unserer Liste im obigen Abschnitt) können wir sagen, dass Amazon RDS eine Art DBaaS ist, irgendwo zwischen einem PaaS- und einem SaaS-Dienst.

Ein Leitfaden für PostgreSQL auf Amazon RDS

Zuerst müssen wir uns bei der AWS-Konsole anmelden. (Wenn Sie kein AWS-Konto haben, können Sie hier kostenlos eines erstellen.)

Gehen Sie dann zum Abschnitt Dienste -> Datenbank -> RDS und Datenbank erstellen.

Jetzt müssen wir wählen, ob wir der normalen oder einfachen Erstellung folgen möchten , die Engine und die Version, die wir bereitstellen werden.

Wählen wir die einfache Erstellung, müssen wir nur die Datenbankinstanz hinzufügen Name, Benutzer und Passwort.

In diesem Fall wählen wir PostgreSQL 10 und die normale Erstellung, um die Erstellungsdetails sehen zu können, daher erfordert dies etwas mehr Arbeit als die einfache.

In diesem Fall wählen wir PostgreSQL 10 und die normale Erstellung, um die Erstellungsdetails sehen zu können, daher wird dies etwas dauern mehr Arbeit als die einfache.

Bei der normalen Erstellung wählen wir zuerst eine Vorlage aus, es könnte sich um eine Produktions-, Dev/Test- oder Free-Tarif-Option handeln.

Im nächsten Schritt fügen wir den Namen der Datenbankinstanz user hinzu , und Passwort.

Der nächste Schritt ist die Größe der Datenbankinstanz, wo wir mehrere Optionen in drei verschiedenen Kategorien haben:Standardklassen, speicheroptimierte Klassen und Burstable-Klassen.

Im Speicherbereich können wir den Festplattentyp, die Größe und die Größe auswählen Speicherverhalten.

Eine der wichtigsten AWS-Funktionen ist die Multi-AZ-Bereitstellung, bei der Wir können eine Standby-Instanz in einer anderen Verfügbarkeitszone erstellen, um Redundanz bereitzustellen.

Über die Konnektivität können wir uns für eine Virtual Private Cloud (VPC) entscheiden Verbinden Sie die neue Datenbank. Hier können wir zusätzliche Optionen wie öffentlicher Zugriff, Verfügbarkeitszone und Datenbankport auswählen.

Dann haben wir eine zusätzliche Konfiguration, in der wir den Datenbanknamen, database Authentifizierung, Sicherungsdetails, Verschlüsselung, Überwachung, Protokollierung und Wartungsdienst (automatische kleinere Upgrades).

Schließlich haben wir die Möglichkeit, die geschätzten monatlichen Kosten zu überprüfen.

 

Weitere Details zu den Kosten finden Sie hier oder nutzen Sie sogar AWS Monatlicher Rechner.

Nachdem wir all diese Informationen hinzugefügt haben, müssen wir warten, bis der Erstellungsprozess abgeschlossen ist.

Wenn sich der Status auf „Verfügbar“ ändert, ist unsere Datenbankinstanz bereit verwenden.

Wenn wir auf die DB-Kennung (in unserem Beispiel „pg1“) drücken, greifen wir auf unseren Datenbankbereich zu, wo wir eine Zusammenfassung mit Informationen wie CPU-Auslastung, Verbindungen, Status und Typ sehen können . Hier können wir auch unsere Instanzkonfiguration ändern oder verschiedene Aktionen wie Neustart, Löschen, Lesereplikat erstellen, Snapshots erstellen und vieles mehr.

An derselben Stelle können wir auch detailliertere Informationen in verschiedenen Abschnitten sehen .

​Konnektivität und Sicherheit

Wir können die Sicherheitsregeln konfigurieren und die Netzwerkinformationen überprüfen.

Überwachung

Wir haben einige Metriken, um unseren Datenbankstatus zu überprüfen.

Protokolle und Ereignisse 

Wir haben Alarme, Ereignisse und Protokolle aus unserer Datenbank.

Konfiguration 

Wir können unsere Instanzkonfiguration sehen, aber auch eine Liste mit Empfehlungen zur Verbesserung, wie z. B. die Aktivierung der erweiterten Überwachung.

Wartung und Backups 

Wir können Informationen über Wartungsaufgaben, Sicherungen und Snapshot-Prozesse sehen.

Jetzt sollten wir mithilfe des Endpunktnamens auf unsere Datenbank zugreifen können zugewiesen von AWS („pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com “ in unserem Beispiel). Stellen Sie dazu sicher, dass Sie den Zugriff aus dem Sicherheitsgruppenabschnitt zugelassen und den öffentlichen Zugriff aus der Instanzkonfiguration aktiviert haben (Öffentlicher Zugriff:Ja). In unserem Beispiel lassen wir den gesamten Datenverkehr von allen Quellen zu, aber aus Sicherheitsgründen möchten Sie wahrscheinlich den Zugriff von einer oder wenigen Quellen einschränken.

Lassen Sie uns nun versuchen, über die Befehlszeile eine Verbindung zu unserer Amazon RDS-Instance herzustellen :

[[email protected] ~]# psql -U postgres -h pg1.cibqq2gl0qof.us-east-1.rds.amazonaws.com

Password for user postgres:

psql (11.5, server 10.6)

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

Type "help" for help.



postgres=> \l

                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 rdsadmin  | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin

 template0 | rdsadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin          +

           |          | |             | | rdsadmin=CTc/rdsadmin

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

(4 rows)



postgres=> select version();

                                                version

--------------------------------------------------------------------------------------------------------

 PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit

(1 row)

Auf die gleiche Weise können wir uns von unserer bevorzugten GUI (falls wir eine haben) damit verbinden.

Ein Hinweis zu Amazon Aurora

Amazon Aurora ist eine MySQL- und PostgreSQL-kompatible relationale Datenbank, die für die Cloud entwickelt wurde. Laut der AWS-Website ist Amazon Aurora dreimal schneller als standardmäßige PostgreSQL-Datenbanken und bietet die Sicherheit, Verfügbarkeit und Zuverlässigkeit kommerzieller Datenbanken zu einem Zehntel der Kosten. Unabhängig von der Behauptung ist dies keine echte PostgreSQL-Instanz, sondern nur eine kompatible Engine. Wenn Sie jedoch erwägen, PostgreSQL auf Amazon auszuführen, sollten Sie dies auf jeden Fall als mögliche Alternative in Betracht ziehen. Hier erfahren Sie mehr über Aurora und seine Beziehung zu PostgreSQL.

Fazit

Die Wolke ist überall. Wir können es sowohl für kleine als auch für große Projekte verwenden. In diesem Blog haben wir uns die verschiedenen Arten von Clouds angesehen und erklärt, wie PostgreSQL auf Amazon RDS ausgeführt wird. Teilen Sie uns in den Kommentaren unten Ihre Gedanken mit.