AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie kann ich eine unverschlüsselte Amazon RDS DB-Instance für MySQL oder MariaDB mit minimalen Ausfallzeiten verschlüsseln?
Ich habe versucht, eine verschlüsselte Read Replica meiner unverschlüsselten Amazon Relational Database Service (Amazon RDS) -Instance für MySQL oder MariaDB zu erstellen. Ich habe jedoch eine Fehlermeldung erhalten.
Kurzbeschreibung
Amazon RDS hat die folgenden Einschränkungen für verschlüsselte DB-Instances:
- Sie können eine bestehende unverschlüsselte Amazon RDS-DB-Instance nicht ändern, um die Instance zu verschlüsseln.
- Sie können keine verschlüsselte Read Replica aus einer unverschlüsselten Instance erstellen.
Da Sie eine bestehende Amazon RDS-Instance nicht verschlüsseln können, müssen Sie eine neue verschlüsselte Instance erstellen. Andernfalls erhalten Sie beim Erstellen einer verschlüsselten Read Replica einer unverschlüsselten Amazon RDS for MySQL-Instance die folgende Fehlermeldung:
„Sie können keine verschlüsselte Read Replica aus einer unverschlüsselten Instance erstellen. (Service: AmazonRDS; Statuscode: 400; Fehlercode: InvalidParameterCombination; Anfrage-ID:)“
Gehen Sie wie folgt vor, um eine unverschlüsselte DB-Instance mit minimaler Ausfallzeit zu verschlüsseln:
- Verschlüsseln Sie einen unverschlüsselten Snapshot, den Sie aus einer unverschlüsselten Read Replica der DB-Instance erstellen.
- Stellen Sie eine neue DB-Instance aus dem verschlüsselten Snapshot wieder her, um eine neue verschlüsselte DB-Instance bereitzustellen.
- Verwenden Sie die MySQL-Replikation, um Änderungen von der Quelle zur neuen verschlüsselten DB-Instance zu synchronisieren.
- Stellen Sie sicher, dass die neue, verschlüsselte DB-Instance mit der Quell-DB-Instance synchronisiert ist.
- Wechseln Sie Ihre Verbindungen und leiten Sie dann Ihren Traffic an die neue DB-Instance weiter.
Lösung
Verschlüsseln eines unverschlüsselten Snapshots
Befolgen Sie die folgenden Schritte, um einen unverschlüsselten Snapshot zu verschlüsseln, den Sie aus einer unverschlüsselten Read Replica erstellen:
-
Erstellen Sie eine temporäre Read Replica für die unverschlüsselte Amazon RDS-DB-Instance als Quelle. In diesem Beispiel heißt die unverschlüsselte Quell-DB-Instance QUELLE-EU und die temporäre Read Replica heißt TEMP-RR.
-
Stellen Sie eine Verbindung zu TEMP-RR her und beobachten Sie die Replikatverzögerung, bis Seconds_Behind_Master stabil auf dem Wert 0 ist. Der stabile Wert zeigt an, dass TEMP-RR mit SOURCE-EU synchronisiert ist.
mysql> SHOW SLAVE STATUS \G Seconds_Behind_Master: 0 -
Stoppen Sie den Replikations-Prozess auf TEMP-RR:
MySQL > call mysql.rds_stop_replication; +---------------------------+ | Message | +---------------------------+ | Slave is down or disabled | +---------------------------+ -
Notieren Sie sich die Werte für Relay_Master_Log_File und Exec_Master_Log_Pos von TEMP-RR:
mysql> SHOW SLAVE STATUS \G Relay_Master_Log_File: mysql-bin-changelog.000012 Exec_Master_Log_Pos: 123 -
Stellen Sie in QUELLE-EU den Parameter Binlog-Aufbewahrungszeiten ein, um Binärprotokolle für die Zeit aufzubewahren, die für den Abschluss des Vorgangs erforderlich ist. Im folgenden Beispiel sind die Binlog-Aufbewahrungszeiten auf 24 Stunden festgelegt:
mysql> call mysql.rds_set_configuration('binlog retention hours', 24); -
Machen Sie einen Snapshot von TEMP-RR. Löschen Sie optional TEMP-RR, nachdem Sie den Snapshot erstellt haben.
-
Kopieren Sie den Snapshot von TEMP-RR und setzen Sie Enable Encryption auf Ja.
Eine neue DB-Instance aus dem verschlüsselten Snapshot wiederherstellen
Gehen Sie wie folgt vor, um eine neue DB-Instance aus dem verschlüsselten Snapshot wiederherzustellen:
- Stellen Sie eine neue DB-Instance aus dem kopierten Snapshot wieder her, für den die Verschlüsselung aktiviert ist. In diesem Beispiel heißt die neue verschlüsselte DB-Instance NEU-RR-EN.
- Ändern Sie die eingehenden Regeln in der Sicherheitsgruppe QUELLE-EU, um den Datenverkehr von NEU-RR-EN zuzulassen. Wenn Sie dieselbe Sicherheitsgruppe auf beiden DB-Instances verwenden, können Sie dieselbe Sicherheitsgruppen-ID-Referenz wie QUELLE-EU verwenden.
Hinweis: Achten Sie darauf, ausgehenden Datenverkehr von NEU-RR-EN nach QUELLE-EU zuzulassen.
Synchronisieren Sie Änderungen von der Quell-Instance mit der neuen verschlüsselten Instance
Gehen Sie wie folgt vor, um mithilfe der MySQL-Replikation Änderungen von der Quelle auf die neue verschlüsselte DB-Instance zu synchronisieren:
- Loggen Sie sich bei SOURCE-EU ein.
- Richten Sie einen Replikationsbenutzer ein und gewähren Sie dem Benutzer dann die erforderlichen Berechtigungen:
Hinweis: Ersetzen Sie repl_user durch Ihren eigenen Replikationsbenutzernamen und password123 durch Ihr eigenes Passwort.mysql> create user 'repl_user'@'%' identified by 'password123'; mysql> grant replication slave, replication client on *.* to 'repl_user'@'%'; mysql> show grants for 'repl_user'@'%'; - Stellen Sie eine Verbindung zu NEU-RR-EN her und stellen Sie eine Replikationsverbindung zu QUELLE-EU her:
Hinweis: Ersetzen Sie den rds-Endpunkt mit dem DB-Instance-Endpunkt für QUELLE-EU. Ersetzen Sie repl\ _user und password123 durch den Benutzernamen und das Passwort, die Sie erstellt haben. Verwenden Sie die Werte Relay\ _Master\ _Log\ _File und Exec\ _Master\ _Log\ _Pos, um die Replikation mit der mysql.rds\ _set\ _external\ _master-Prozedur einzurichten. Wenn QUELLE-EUöffentlich zugänglich ist und NEU-RR-EN auf „privat“ gesetzt ist, verwenden Sie die private IP-Adresse (von QUELLE-EU) anstelle des rds-Endpunkts.mysql> CALL mysql.rds_set_external_master ( 'rds-endpoint' , 3306 , 'repl_user' , 'password123' , 'mysql-bin.000012' , 123 , 0 ); - Starten Sie von NEU-RR-EN aus die Replikation:
mysql > CALL mysql.rds_start_replication;
Sicherstellen, dass die verschlüsselte Instance mit der Quell-Instance synchronisiert ist
Befolgen Sie die folgenden Schritte, um zu überprüfen, ob die neue verschlüsselte DB-Instance mit der Quell-DB-Instance synchronisiert ist:
-
Vergewissern Sie sich von NEU-RR-EN aus, dass die Replikation erfolgreich und synchron zwischen QUELLE-EU und NEU-RR-EN war:
mysql> SHOW SLAVE STATUS \GWenn Ihre Verbindung zwischen der Quell-DB-Instance und der Read Replica erfolgreich ist, sieht Ihre Ausgabe ähnlich der folgenden aus:
Slave_IO_State: Waiting for master to send eventSeconds Behind master: 0 -
Nachdem Seconds_Behind_Master stabil auf dem Wert 0 ist, stoppen Sie den Datenverkehr und schließen Sie die Verbindungen auf QUELLE-EU.
**Hinweis:**Stoppen Sie alle Anwendungsserver und Clients, die eine Verbindung zu QUELLE-EU herstellen, um sicherzustellen, dass keine neuen Änderungen an QUELLE-EU vorgenommen werden. Optional können Sie die von QUELLE-EU verwendete Sicherheitsgruppe vorübergehend sperren. Dadurch wird eingehender Datenverkehr von jeder Anwendung oder jedem Client verhindert, mit Ausnahme von NEU-RR-EN und dem Host, von dem aus der Benutzer diese Aktionen ausführt.
Wechseln Sie Ihre Verbindungen und leiten Sie Ihren Traffic an die neue DB-Instance weiter
Befolgen Sie folgende Schritte, um Ihre Verbindungen zu wechseln und Ihren Datenverkehr auf die neue DB-Instance umzuleiten:
-
Stellen Sie als Datenbank-Leader-Benutzer eine Verbindung zu NEU-RR-EN her und beenden Sie dann die Replikation:
MySQL > call mysql.rds_stop_replication;**Wichtig:**Nachdem Sie diesen Befehl ausgeführt haben, repliziert NEU-RR-EN keine Daten mehr aus QUELLE-EU.
-
Machen Sie NEU-RR-EN zu einem eigenständigen Server, indem Sie die Replikationsbeziehung zwischen QUELLE-EU und NEU-RR-EN beenden:
MySQL > call mysql.rds_reset_external_master; -
Verweisen Sie alle Anwendungen, Clients und Datenbankverbindungen auf NEU-RR-EN, indem Sie den DNS-Endpunkt NEU-RR-EN in allen Verbindungszeichenfolgen angeben. Oder benennen Sie QUELLE-EU um und ändern Sie dann NEU-RR-EN, sodass es denselben Namen verwendet, den QUELLE-EU verwendet.
-
Vergewissern Sie sich, dass die Sicherheitsgruppenregeln auf NEU-RR-EN eingehenden Datenverkehr von den entsprechenden Anwendungen und Clients zulassen.
-
Löschen Sie SOURCE-EU.
Hinweis: Es hat sich bewährt, diesen Vorgang auf einer Test-Instance zu testen, bevor dieser Vorgang in einer Produktionsumgebung angewendet wird
Weitere Informationen
Arbeiten mit Read Replicas von DB-Instances
Wie verschlüssele ich Amazon RDS-Snapshots mit einem KMS-Schlüssel?
Problembehandlung bei der Replikation auf der MySQL-Website
Konfiguration der Positionsreplikation von binären Logdateien mit einer externen Quell-Instance
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 4 Jahren
AWS OFFICIALAktualisiert vor 3 Jahren