Amazon RDS for MySQL

Netzwerk-Datenverkehr verschlüsseln

Looker empfiehlt dringend, den Netzwerk-Datenverkehr zwischen der Looker-Anwendung und Ihrer Datenbank zu verschlüsseln. Ziehen Sie eine der Optionen auf der Seite Zugriff auf sichere Datenbanken aktivieren in Betracht.

Weitere Informationen zur SSL-Verschlüsselung finden Sie in der MySQL RDS-Dokumentation.

Optionen

Aus Leistungsgründen ist es üblich, schreibgeschützte Replikatdatenbanken – auch Lesereplikate genannt – mit Looker zu verwenden. Dadurch wird die Produktionsdatenbank für die Ausführung ihrer primären Funktion freigegeben, ohne dass Abfragen sie verlangsamen können.

In diesem Dokument wird Folgendes beschrieben:

  • Vorhandene Replikatdatenbank für Looker ändern
  • Neue Lesereplikatdatenbank erstellen und für Looker konfigurieren

Vorhandenes Replikat ändern

Benutzer und Sicherheit

Ändern Sie <some_password_here> zu einem eindeutigen, sicheren Passwort:

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('<some_password_here>');
GRANT SELECT ON database_name.* TO 'looker'@'%';

RDS und temporäre Tabellen

Bei RDS-Lesereplikaten ist standardmäßig ein schreibgeschütztes Flag aktiviert, das verhindert, dass Looker in temporäre Tabellen schreibt. Looker ändert keine vorhandenen Daten, aber MySQL benötigt trotzdem Schreibzugriff, um temporäre Tabellen zu verwenden. Dieses Problem lässt sich beheben, indem Sie das Flag in RDS ändern. In den RDS-FAQs:

**F: Kann mein Lesereplikat nur Datenbanklesevorgänge akzeptieren?** Lesereplikate sind darauf ausgelegt, Lese-Traffic bereitzustellen. Es kann jedoch Anwendungsfälle geben, in denen fortgeschrittene Nutzer die DDL-SQL-Anweisungen (Data Definition Language) für ein Lesereplikat ausführen möchten. Beispiele können das Hinzufügen eines Datenbankindex zu einem Lesereplikat sein, das für geschäftliche Berichte verwendet wird, ohne denselben Index der entsprechenden Quelldatenbankinstanz hinzuzufügen. Wenn Sie andere Aktionen als Lesevorgänge für ein bestimmtes Lesereplikat aktivieren möchten, müssen Sie die aktive [DB Parameter Group](#aws_step_4) für das Lesereplikat ändern. Setzen Sie dazu den Parameter „read_only“ auf „0“.

Wenn Sie die DB-Parametergruppe ändern, müssen Sie das Lesereplikat neu starten, damit die Änderungen wirksam werden.

Datenbank erstellen und Berechtigungen erteilen

Erstellen Sie eine temporäre Datenbank und erteilen Sie dem looker-Nutzer die Berechtigung, darauf zu schreiben. Die CREATE TEMPORARY-Anweisung in MySQL muss aus Berechtigungsgründen mit einer Datenbank verknüpft werden.

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

Neues Replikat erstellen

Beachten Sie, dass AWS RDS Lesereplikate nur mit Datenbankinstanzen erstellen kann, für die die Sicherungsaufbewahrung aktiviert ist.

Schritte vor AWS

Schritt 1

mysql in die Datenbank, die die primäre Datenbankinstanz sein soll:

mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p

Schritt 2

Erstellen Sie einen Nutzer mit dem Namen looker (ersetzen Sie <some_password_here> durch ein eindeutiges, sicheres Passwort):

CREATE USER looker IDENTIFIED BY '<some_password_here>';

Schritt 3

Erstellen Sie eine temporäre Datenbank und erteilen Sie Looker Leseberechtigungen für andere Datenbanken und Tabellen. Looker schreibt normalerweise nicht in die looker_tmp-Datenbank, sondern verwendet sie, um CREATE TEMPORARY TABLE-Befehle auszuführen.

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

GRANT
  SELECT,
  SHOW DATABASES
ON *.* TO 'looker'@'%';

Schritt 4

Berechtigungen löschen:

FLUSH PRIVILEGES;

AWS-Schritte

Schritt 1

Melden Sie sich an und rufen Sie das AWS-Dashboard auf. Wählen Sie unter Datenbank die Option RDS aus:

Schritt 2

Wählen Sie im RDS-Dashboard die Datenbankinstanz aus, die Sie als primäre Datenbank angeben möchten. Klicken Sie auf Instanzaktionen und wählen Sie Lesereplikat erstellen aus:

Schritt 3

Konfigurieren Sie im Pop-up Lesereplikat-Datenbankinstanz erstellen die Lesereplikatdatenbank und klicken Sie auf Ja, Lesereplikat erstellen:

Schritt 4

Während Sie auf das Erstellen der Lesereplikatdatenbank warten, können Sie die DB-Parametergruppe einrichten. Diese enthält die Suchmaschinenkonfigurationswerte, die auf die Lesereplikatdatenbankdatenbank angewendet werden. Klicken Sie in der Seitenleiste auf die Seite DB-Parametergruppen und dann auf DB-Parametergruppe erstellen:

Schritt 5

Wählen Sie die DB-Parametergruppenfamilie und den DB-Parametergruppennamen aus und geben Sie eine DB-Parametergruppenbeschreibung ein. Klicken Sie dann auf Ja, erstellen.

Schritt 6

Klicken Sie in der Zeile mit der Lesereplikatdatenbank-Datenbankgruppe auf das Lupensymbol oder wählen Sie diese Zeile aus und klicken Sie auf Parameter bearbeiten.

Schritt 7

Geben Sie im Feld Filter unter Parameter den Text „"read_only"“ ein. Ändern Sie den Parameterwert in 0. Klicken Sie dann auf Änderungen speichern.

Schritt 8

Nachdem das Lesereplikat erstellt wurde, wählen Sie es aus der Liste der Datenbankinstanzen aus, klicken auf die Schaltfläche Instanzaktion und wählen in der Instanzaktion Ändern aus.

Schritt 9

Ändern Sie im Pop-up-Fenster DB-Instanz ändern die Parametergruppe der DB-Instanz in die neue Lesereplikatparametergruppe. Klicken Sie dann auf das Kästchen Sofort anwenden, dann auf Weiter und anschließend auf DB-Instanz ändern.

Schritt 10

Stellen Sie mit dem MySQL-Client eine Verbindung zur Lesereplikatdatenbankdatenbank als looker her und testen Sie, ob auf Daten zugegriffen werden kann.

Unterstützte Funktionen

Damit Looker einige Funktionen unterstützen kann, müssen diese auch von Ihrem Datenbankdialekt unterstützt werden.

In der neuesten Version von Looker unterstützt MySQL die folgenden Looker-Features:

Nächste Schritte

Nachdem Sie die Datenbankkonfiguration abgeschlossen haben, können Sie mithilfe dieser Anleitung eine Verbindung zur Datenbank herstellen.