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

  1. AWS-Konto (Erstelle wenn du noch keines hast)
  2. Grundlegendes Verständnis von RDS.
  3. GrundlegendesVerständnis von Python.
  4. Python ist auf dem System verfügbar.

Was wir tun werden

  1. Abhängigkeiten installieren.
  2. Die erforderliche Methode kennen.
  3. 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

Python-Version prüfen

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

apt update

Um pip zu installieren, verwende den folgenden Befehl.

sudo apt install python-pip

python pip installieren

Um die installierte Version von Pip zu überprüfen, führe den folgenden Befehl aus.

pip –version

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

Boto 3 installieren

Um zu überprüfen, ob Boto3 installiert ist und welche Version es hat, führst du den folgenden Befehl aus.

pip show boto3

pip show boto

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
)
  1. DBName: Die Bedeutung dieses Parameters hängt von der Datenbank-Engine ab, die du verwendest.
  2. DBInstanceIdentifier: Dies ist ein Pflichtparameter. Er ist ein DB-Instanzbezeichner. Dieser Parameter wird als String in Kleinbuchstaben gespeichert.
  3. DBInstanceClass: Dies ist ein Pflichtparameter. Er gibt die Rechen- und Speicherkapazität der DB-Instanz an.
  4. Engine:Der Name der Datenbank-Engine, die für die zu erstellende Instanz verwendet werden soll. Dies ist ein Pflichtfeld
  5. MasterUsername: Der Name für den Master-Benutzer. Das ist der Benutzer der DB in der Instanz
  6. MasterUserPassword: Das Passwort für den Master-Benutzer, den wir in der Instanz anlegen.
  7. 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.
  8. 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)

RDS-Instanz erstellen

Jetzt kannst du eine Instanz erstellen. Führe das Python-Skript mit dem folgenden Befehl aus.

python create-rds-instance.py

Run Python script

Du wirst die Antwort auf dem Terminal sehen.

Um den Status der Instanz in der AWS-Konsole zu überprüfen, gehe zum RDS-Dashboard.

Erfolgreich eine Datenbank mit Boto3 erstellt

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.

Das könnte dich auch interessieren …