Website-Suche

Wie man eine RDS-Instanz mit Python Boto3 auf AWS erstellt


Wie man eine RDS-Instanz mit Python Boto3 auf AWS erstellt

Auf dieser Seite

  1. Voraussetzungen
  2. Was wir tun werden
  3. Abhängigkeiten installieren
  4. Kennt die erforderliche Methode
  5. Schlussfolgerung

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 Sie mit dem AWS RDS-Service vertraut sind. Wenn Sie damit nicht vertraut sind und zunächst lernen möchten, wie man eine RDS MySql-Instanz über die AWS-Konsole erstellt, suchen Sie nach "Wie richtet man eine RDS MySql (Relation Database MySql)-Instanz auf AWS ein?".

Voraussetzungen

  1. Grundlegendes Verständnis von RDS.
  2. Grundlegendes Verständnis von Python.
  3. Python ist auf dem System verfügbar.

Was wir tun werden

    Abhängigkeiten installieren

    Python ist standardmäßig in Ubuntu Server enthalten, sodass Sie es nicht installieren müssen.

    Um die Python-Version auf Ihrem System zu überprüfen, verwenden Sie den folgenden Befehl.

    welches Python
    /usr/bin/python --version

    ODER

    python --version

    Wenn Sie pip nicht installiert haben und Ubuntu 18.04 verwenden, führen Sie den folgenden Befehl aus, um zunächst das lokale Repository zu aktualisieren.

    sudo apt aktualisieren

    Um pip zu installieren, verwenden Sie den folgenden Befehl.

    sudo apt install python-pip

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

    pip --version

    Sobald Sie Python und pip haben, können Sie Boto3 installieren.

    Die Installation von Boto3 ist sehr einfach und unkompliziert. Um Boto3 zu installieren, verwenden Sie den folgenden Befehl.

    pip installieren boto3

    Um zu überprüfen, ob Boto3 installiert ist und welche Version, führen Sie den folgenden Befehl aus.

    pip zeigt boto3 an

    Kennt die erforderliche Methode

    Um eine RDS-Instanz zu erstellen, verwenden wir die Methode "create_db_instance". Folgendes ist die Syntax der Methode mit allen Parametern, die sie akzeptiert. Wir werden nicht alle diese Parameter verwenden, um eine Instanz zu erstellen, aber Sie können es versuchen, wenn Sie möchten. Wir werden nur die erforderlichen und obligatorischen Parameter verwenden. Wenn Sie mehr über alle verfügbaren Parameter erfahren möchten, können Sie 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 variiert je nach dem verwendeten Datenbank-Engine.
    2. DBInstanceIdentifier: Dies ist ein erforderlicher Parameter. Es handelt sich um einen DB-Instanzbezeichner. Dieser Parameter wird als Kleinbuchstabenzeichenfolge gespeichert.
    3. DBInstanceClass: Dies ist ein obligatorischer Parameter. Er gibt die Rechen- und Speicherkapazität der DB-Instanz an.
    4. Engine: Der Name des Datenbank-Engines, die für die zu erstellende Instanz verwendet werden soll. Dies ist ein Pflichtfeld.
    5. MasterBenutzername: Der Name für den Master-Benutzer. Dies ist der Benutzer der Datenbank in der Instanz.
    6. MasterBenutzerPasswort: Das Passwort für den Masterbenutzer, den wir in der Instanz erstellen.
    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 über die angegebenen Ports erlauben.
    8. Port: Die Portnummer, an der die Datenbank Verbindungen akzeptiert. Wenn Sie die Verbindung an diesem Port zulassen möchten, müssen Sie diesen Port in der Sicherheitsgruppe angeben.

    Erstellen Sie eine RDS MySQL-Instanz mit Python Boto3

    Um eine RDS-Instanz zu erstellen, erstellen Sie eine Datei "create-rds-instance.py" und fügen Sie den folgenden Code ein.

    Vergessen Sie nicht, die Werte von "aws_access_key_id_value" und "aws_secret_access_key_value" durch Ihre eigenen access_key_id und access_key_value zu ersetzen.

    Wenn Sie die Instanz in einer Region Ihrer Wahl erstellen möchten, ändern Sie den Wert von "region_name" auch, andernfalls lassen Sie ihn unverändert.

    Stellen Sie außerdem sicher, dass Sie die bestehende Sicherheitsgruppen-ID "VpcSecurityGroupIds" zuweisen.

    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 sind Sie bereit, eine Instanz zu erstellen. Führen Sie das Python-Skript mit dem folgenden Befehl aus.

    python create-rds-instance.py

    Sie werden die Antwort im Terminal sehen.

    Um den Instanzstatus über die AWS-Konsole zu überprüfen, gehen Sie zum RDS-Dashboard.

    Schlussfolgerung

    In diesem Artikel haben wir gelernt, wie man mit der Boto3-Bibliothek in Python eine RDS MySQL-Instanz erstellt. Sie können den Code anpassen und eine Instanz Ihrer Wahl erstellen. Außerdem haben wir gesehen, wie man die Abhängigkeiten installiert, die erforderlich sind, um den Python-Code zu schreiben und auszuführen.