Wie man eine RDS-Instanz mit Python Boto3 auf AWS erstellt
In diesem Artikel werden wir sehen, wie man eine RDS MySql Instanz mit der Boto3 Bibliothek erstellt. Wir werden die Methode „create_db_instance“verwenden , um eine Instanz zu erstellen.
Bevor wir fortfahren, gehe ich davon aus, dass du mit dem AWS RDS Service vertraut bist. Wenn du damit nicht vertraut bist und erst einmal lernen möchtest, wie du eine RDS MySql Instanz von der AWS Konsole aus erstellen kannst, suche nach“Wie richte ich eine RDS MySql (Relation Database MySql ) Instanz auf AWS ein?“.
Vorraussetzungen
- AWS-Konto (Erstelle wenn du noch keines hast)
- Grundlegendes Verständnis von RDS.
- GrundlegendesVerständnis von Python.
- Python ist auf dem System verfügbar.
Was wir tun werden
- Abhängigkeiten installieren.
- Die erforderliche Methode kennen.
- Eine RDS MySql-Instanz mit Python Boto3 erstellen.
Abhängigkeiten installieren
Python ist standardmäßig in Ubuntu Server enthalten, du brauchst es also nicht zu installieren.
Um die Python-Version auf deinem System zu überprüfen, verwende den folgenden Befehl.
welches python
/usr/bin/python –version
ODER
python –version
Wenn du pip nicht hast und Ubuntu 18.04 verwendest, führe den folgenden Befehl aus, um zunächst das lokale Repo zu aktualisieren.
sudo apt update
Um pip zu installieren, verwende den folgenden Befehl.
sudo apt install python-pip
Um die installierte Version von Pip zu überprüfen, führe den folgenden Befehl aus.
pip –version
Sobald du python und pip installiert hast, kannst du Boto3 installieren.
Die Installation von Boto3 ist sehr einfach und unkompliziert. Um Boto3 zu installieren, verwende den folgenden Befehl.
pip install boto3
Um zu überprüfen, ob Boto3 installiert ist und welche Version es hat, führst du den folgenden Befehl aus.
pip show boto3
Kenne die erforderliche Methode
Um eine RDS-Instanz zu erstellen, verwenden wir die Methode „create_db_instance“.Im Folgenden findest du die Syntax der Methode mit allen Parametern, die sie akzeptiert. Wir werden nicht alle Parameter verwenden, um eine Instanz zu erstellen, aber du kannst es ausprobieren, wenn du möchtest. Wir werden nur die erforderlichen und obligatorischen Parameter verwenden. Wenn du mehr über alle verfügbaren Parameter erfahren möchtest, kannst du die offizielle Seite von Boto3 hier besuchen.
Anfrage-Syntax
response = client.create_db_instance( DBName='string', DBInstanceIdentifier='string', AllocatedStorage=123, DBInstanceClass='string', Engine='string', MasterUsername='string', MasterUserPassword='string', DBSecurityGroups=[ 'string', ], VpcSecurityGroupIds=[ 'string', ], AvailabilityZone='string', DBSubnetGroupName='string', PreferredMaintenanceWindow='string', DBParameterGroupName='string', BackupRetentionPeriod=123, PreferredBackupWindow='string', Port=123, MultiAZ=True|False, EngineVersion='string', AutoMinorVersionUpgrade=True|False, LicenseModel='string', Iops=123, OptionGroupName='string', CharacterSetName='string', PubliclyAccessible=True|False, Tags=[ { 'Key': 'string', 'Value': 'string' }, ], DBClusterIdentifier='string', StorageType='string', TdeCredentialArn='string', TdeCredentialPassword='string', StorageEncrypted=True|False, KmsKeyId='string', Domain='string', CopyTagsToSnapshot=True|False, MonitoringInterval=123, MonitoringRoleArn='string', DomainIAMRoleName='string', PromotionTier=123, Timezone='string', EnableIAMDatabaseAuthentication=True|False, EnablePerformanceInsights=True|False, PerformanceInsightsKMSKeyId='string', PerformanceInsightsRetentionPeriod=123, EnableCloudwatchLogsExports=[ 'string', ], ProcessorFeatures=[ { 'Name': 'string', 'Value': 'string' }, ], DeletionProtection=True|False, MaxAllocatedStorage=123 )
- DBName: Die Bedeutung dieses Parameters hängt von der Datenbank-Engine ab, die du verwendest.
- DBInstanceIdentifier: Dies ist ein Pflichtparameter. Er ist ein DB-Instanzbezeichner. Dieser Parameter wird als String in Kleinbuchstaben gespeichert.
- DBInstanceClass: Dies ist ein Pflichtparameter. Er gibt die Rechen- und Speicherkapazität der DB-Instanz an.
- Engine:Der Name der Datenbank-Engine, die für die zu erstellende Instanz verwendet werden soll. Dies ist ein Pflichtfeld
- MasterUsername: Der Name für den Master-Benutzer. Das ist der Benutzer der DB in der Instanz
- MasterUserPassword: Das Passwort für den Master-Benutzer, den wir in der Instanz anlegen.
- VpcSecurityGroupIds:Eine Liste von Amazon EC2 VPC Sicherheitsgruppen, die mit dieser DB-Instanz verknüpft werden sollen. Diese Sicherheitsgruppe hat Regeln, die die Verbindung zu den angegebenen Ports erlauben.
- Port:Die Nummer des Ports, auf dem die Datenbank Verbindungen annimmt. Wenn du die Verbindung über diesen Port erlauben willst, musst du diesen Port in der Sicherheitsgruppe angeben.
Eine RDS MySql-Instanz mit Python Boto3 erstellen
Um eine RDS-Instanz zu erstellen, erstelle eine Datei „create-rds-instance.py“ und füge den folgenden Code darin ein.
Vergiss nicht, die Werte von“aws_access_key_id_value“ und „aws_secret_access_key_value“ durch deine eigene access_key_id bzw. access_key_valuezu ersetzen.
Wenn du die Instanz in einer Region deiner Wahl erstellen willst, ändereauchden Wert von“region_name“, ansonsten lass ihn unverändert.
Stelle außerdem sicher, dass du die bestehende Sicherheitsgruppen-ID an „VpcSecurityGroupIds“.
import boto3 conn = boto3.client('rds', aws_access_key_id='ACCESS-KEY-OF-THE-AWS-ACCOUNT', aws_secret_access_key='SECRETE-KEY-OF-THE-AWS-ACCOUNT', region_name='eu-west-3') response = conn.create_db_instance( AllocatedStorage=10, DBName="test", DBInstanceIdentifier="my-first-rds-instance", DBInstanceClass="db.t2.micro", Engine="mysql", MasterUsername="root", MasterUserPassword="pass1234", Port=3306, VpcSecurityGroupIds=["sg-7fa4d512"], ) print (response)
Jetzt kannst du eine Instanz erstellen. Führe das Python-Skript mit dem folgenden Befehl aus.
python create-rds-instance.py
Du wirst die Antwort auf dem Terminal sehen.
Um den Status der Instanz in der AWS-Konsole zu überprüfen, gehe zum RDS-Dashboard.
Fazit
In diesem Artikel haben wir gelernt, wie man mit der Boto3-Bibliothek in Python eine RDS MySql-Instanz erstellt. Du kannst den Code anpassen und eine Instanz deiner Wahl erstellen. Wir haben auch gesehen, wie man die Abhängigkeiten installiert, die zum Schreiben und Ausführen des Python-Codes erforderlich sind.