Amazon RDS ist die Datenbank, "um die sich Amazon kümmert": Sie wählen Engine und Größe, und Amazon übernimmt Installation, Updates, Backups und Überwachung. Es ist der natürliche Schritt, wenn eine Website wächst oder wenn die Datenbank nicht auf derselben Maschine wie die Website leben soll. Das Formular hat viele Optionen und eine Falle: das Kästchen Öffentlicher Zugriff. Wenn Sie es ankreuzen, ist die Datenbank dem Internet ausgesetzt; wenn Sie es nicht ankreuzen und den Rest nicht richtig machen, verbindet sich die Website nicht, und Sie wissen nicht, warum. Diese Anleitung geht den richtigen Weg Schritt für Schritt durch.
Bevor Sie anfangen: was die Begriffe bedeuten
- RDS
- Relational Database Service, der Dienst für verwaltete Datenbanken von Amazon. Unterstützt MySQL, PostgreSQL, MariaDB und weitere.
- Datenbankinstanz
- Jede Datenbank, die Sie in RDS anlegen, mit ihrer Größe und ihrer Adresse.
- Engine
- Das Datenbanksystem: MySQL ist das übliche für Websites; PostgreSQL für viele maßgeschneiderte Anwendungen.
- Endpunkt (endpoint)
- Die Adresse, mit der sich Ihre Website verbindet, anstelle von "localhost".
- Öffentlicher Zugriff
- Ob die Datenbank eine Adresse im Internet hat. Muss deaktiviert sein: nur Ihre AWS-Maschinen sollen sie erreichen.
- Sicherheitsgruppe
- Die Firewall von AWS. Die Datenbank bekommt eine, die den Zugang aus der Gruppe Ihrer Web-Maschine erlauben muss.
- Multi-AZ
- Option für ein Replikat in einem anderen Rechenzentrum, das übernimmt, wenn das Haupt-Rechenzentrum ausfällt. Kostet das Doppelte; für den Anfang nicht nötig.
- Master-Benutzer
- Der Hauptbenutzer der Datenbank. Sein Passwort legen Sie fest oder lassen es von AWS verwalten.
Schritt für Schritt
Bereiten Sie die Sicherheitsgruppe der Datenbank vor
Vor dem Formular, in EC2, Sicherheitsgruppen, Erstellen: Name
bd-interna, eine Eingangsregel vom Typ MYSQL/Aurora (Port 3306) mit der Sicherheitsgruppe Ihrer Web-Maschine als Quelle (wählen Sie die Gruppe im Dropdown statt einer IP). So können sich nur die Maschinen verbinden, die diese Gruppe tragen. Wenn Sie möchten, gibt es im RDS-Formular eine Abkürzung, die das für Sie erledigt ("Mit einer EC2-Instance verbinden"), aber es von Hand zu können wird Ihnen später nützen.Öffnen Sie das RDS-Formular
RDS-Konsole, dieselbe Region wie Ihre Maschine, Datenbank erstellen. Wählen Sie Standarderstellung (die einfache Variante versteckt das Kästchen für den öffentlichen Zugriff), Engine MySQL, die empfohlene Version. Bei den Vorlagen Kostenloses Kontingent, wenn Ihr Konto es hat und es zum Ausprobieren ist, oder Entwicklung/Test für eine kleine Website; Produktion aktiviert Multi-AZ und kostet mehr.
Name, Benutzer und Größe
Kennung
bd-web. Master-Benutzeradminoder ein eigener; Passwort: lassen Sie es von AWS Secrets Manager verwalten, wenn Ihnen geringe Kosten nichts ausmachen, oder legen Sie ein eigenes, langes fest und bewahren Sie es in einem Passwort-Manager auf. Instanzklasse: die kleinste der Familie t (db.t4g.microoderdb.t3.micro) für den Anfang; sie lässt sich später ändern. Speicher gp3, 20 GB, mit aktivierter automatischer Skalierung und einer vernünftigen Obergrenze (zum Beispiel 100 GB), damit er nicht volläuft.Konnektivität: der Teil, auf den es ankommt
Unter Konnektivität: Datenverarbeitungsressource Nicht verbinden (das erledigen Sie über die Sicherheitsgruppe), die Standard-VPC, Öffentlicher Zugriff: Nein. Bei der Sicherheitsgruppe Vorhandene auswählen und
bd-internawählen; entfernen Siedefault. Lassen Sie Port 3306. Weiter unten, unter Zusätzliche Konfiguration, geben Sie einen Namen der ursprünglichen Datenbank ein (tienda), damit Sie sie nicht von Hand anlegen müssen, lassen Sie die automatischen Backups mit 7 Tagen und einem Fenster in der Nacht aktiviert und aktivieren Sie die Verschlüsselung. Erstellen. Es dauert etwa 5 bis 10 Minuten.Testen Sie die Verbindung von der Web-Maschine aus
Sobald der Status "Verfügbar" ist, öffnen Sie die Datenbank und kopieren Sie den Endpunkt aus der Registerkarte Konnektivität. Melden Sie sich per SSH an Ihrer Web-Maschine an und testen Sie:
mysql -h tu-endpoint.eu-west-1.rds.amazonaws.com -u admin -p tiendaWenn Sie hineinkommen, ist alles in Ordnung. Bleibt der Befehl ohne Antwort hängen, liegt es an der Sicherheitsgruppe (Schritt 1); meldet er "Access denied", liegt es an Benutzer oder Passwort.
Verbinden Sie die Website und legen Sie ein Backup an
Ändern Sie in der Konfiguration Ihrer Anwendung den Server auf diesen Endpunkt, mit Benutzer und Passwort. Wenn Sie Daten aus einer anderen Datenbank mitbringen, exportieren Sie sie mit
mysqldumpund importieren Sie sie mitmysql, wie bei jeder Migration. Sobald alles läuft, legen Sie in RDS einen manuellen Snapshot an: Ihr erster sicherer Rückkehrpunkt. Die automatischen Backups laufen weiterhin täglich.
Was schiefgehen kann
Die Website verbindet sich nicht, obwohl die Datenbank "Verfügbar" ist
In 95 % der Fälle die Sicherheitsgruppe: die Eingangsregel für 3306 hat nicht die Gruppe Ihrer Web-Maschine als Quelle, oder die Web-Maschine trägt diese Gruppe nicht. Prüfen Sie beide Seiten.
Ich möchte mich von meinem Computer aus mit einem grafischen Programm verbinden
Ohne öffentlichen Zugriff geht das nicht direkt. Der richtige Weg ist ein SSH-Tunnel über die Web-Maschine (grafische Programme haben das meist eingebaut). Den öffentlichen Zugriff "mal kurz" zu aktivieren wird vergessen und bleibt dann so.
Die Rechnung ist höher als gedacht
Prüfen Sie, ob Multi-AZ aktiviert wurde (Vorlage Produktion), ob der Speicher von selbst skaliert hat oder ob Secrets Manager und Performance Insights aktiv sind. Und denken Sie daran, dass RDS stundenweise berechnet wird, auch wenn niemand die Datenbank nutzt: es gibt eine Anleitung zum Stoppen.
Es wird ein Passwort verlangt, das ich nicht habe
Wenn Sie das Passwort im Secrets Manager gelassen haben, liegt es dort (Konsole von Secrets Manager, das Geheimnis der Datenbank). Haben Sie es selbst festgelegt und verloren, können Sie in RDS die Instanz Ändern und ein neues setzen, ohne Neustart.
In Simplio
In Simplio legen Sie die RDS-Datenbank über ein kurzes Formular an und wählen, welche Maschine sich verbinden können soll: Simplio erstellt die richtige Sicherheitsgruppe, lässt den öffentlichen Zugriff geschlossen und die Backups aktiv und zeigt Ihnen den Endpunkt fertig zum Einfügen in die Website. Die Datenbanken erscheinen neben ihren Maschinen mit Status, Backups und einer Snapshot-Schaltfläche, und jede Person sieht nur die, die Sie ihr zugewiesen haben.
Dasselbe, in AWS und in Simplio
| In der AWS-Konsole | In Simplio | |
|---|---|---|
| Die Datenbank richtig anlegen | Sicherheitsgruppe in EC2 plus RDS-Formular mit 8 Blöcken: 30 Minuten und wissen, was öffentlicher Zugriff ist | Formular mit 4 Feldern, öffentlicher Zugriff geschlossen und Firewall nur für die gewählte Maschine offen |
| Verbindung testen | SSH zur Web-Maschine und mysql-Befehl | Schaltfläche "Verbindung testen" von der gewählten Maschine aus |
| Backups und Status | Registerkarten in RDS | In derselben Karte wie die Maschine, mit Hinweis, wenn ein Backup fehlt |