GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen Sie eine RDS-Instanz mit Python Boto3 auf AWS

In diesem Artikel erfahren Sie, wie Sie mithilfe der Boto3-Bibliothek eine RDS-MySql-Instanz erstellen. 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 nicht wissen, was Sie zuerst lernen müssen, um eine RDS MySql-Instanz über die AWS-Konsole zu erstellen, suchen Sie nach „How to setup an RDS MySql (Relation Database MySql ) instance on AWS?“.

Voraussetzungen

  1. AWS-Konto (erstellen, falls Sie noch keins haben)
  2. Grundlegendes Verständnis von RDS.
  3. Grundlegendes Verständnis von Python.
  4. Python ist auf dem System verfügbar.

Was wir tun werden

  1. Installieren Sie Abhängigkeiten.
  2. Kennen Sie die erforderliche Methode.
  3. Erstellen Sie eine RDS-MySql-Instanz mit Python Boto3.

Installationsabhängigkeiten

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.

welche python
/usr/bin/python --version

ODER

python --version

Wenn Sie Pip nicht haben und Ubuntu 18.04 verwenden, führen Sie den folgenden Befehl aus, um zuerst das lokale Repo zu aktualisieren.

sudo apt update

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 direkt. Verwenden Sie den folgenden Befehl, um Boto3 zu installieren.

pip installieren boto3

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

Pip Show boto3

Kennen Sie die erforderliche Methode

Um eine RDS-Instanz zu erstellen, verwenden wir die Methode „create_db_instance“. Es folgt 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 verwenden nur die erforderlichen und obligatorischen Parameter. Wenn Sie mehr über alle verfügbaren Parameter erfahren möchten, können Sie hier die offizielle Seite von Boto3 besuchen.

Anfragesyntax

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 unterscheidet sich je nach verwendeter Datenbank-Engine.
  2. DBInstanceIdentifier:  Dies ist ein obligatorischer Parameter. Es ist eine DB-Instance-ID. Dieser Parameter wird als Kleinbuchstaben-String gespeichert.
  3. DBInstanceClass:  Dies ist ein obligatorischer Parameter. Es gibt die Rechen- und Speicherkapazität der DB-Instance 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 Hauptbenutzer. Dies ist der Benutzer der DB in der Instanz
  6. MasterUserPasswort: Das Passwort für den Master-Benutzer, den wir in der Instanz erstellen.
  7. VpcSecurityGroupIds:  Eine Liste der Amazon EC2-VPC-Sicherheitsgruppen, die dieser DB-Instance zugeordnet werden sollen. Diese Sicherheitsgruppe hat Regeln, die die Verbindung auf den darin angegebenen Ports zulassen.
  8. Port:  Die Portnummer, auf der die Datenbank Verbindungen akzeptiert. Wenn Sie die Verbindung auf 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 kopieren Sie den folgenden Code und fügen Sie ihn darin ein.

Vergessen Sie nicht, die Werte von "aws_access_key_id_value" und "aws_secret_access_key_value" durch Ihre eigene access_key_id bzw. access_key_value zu ändern.

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

Stellen Sie außerdem sicher, dass Sie „VpcSecurityGroupIds“ die bestehende Sicherheitsgruppen-ID 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 können Sie eine Instanz erstellen. Führen Sie das Python-Skript mit dem folgenden Befehl aus.

python create-rds-instance.py

Sie sehen die Antwort auf dem Terminal.

Um den Instance-Status von der AWS-Konsole aus zu überprüfen, gehen Sie zum RDS-Dashboard.

Schlussfolgerung

Wir haben in diesem Artikel gelernt, eine RDS-MySql-Instanz mit der Boto3-Bibliothek in Python zu erstellen. Sie können den Code anpassen und eine Instanz Ihrer Wahl erstellen. Wir haben auch gesehen, wie die Abhängigkeiten installiert werden, die zum Schreiben und Ausführen des Python-Codes erforderlich sind.


Linux
  1. Erstellen Sie mit Terraform eine EC2-Instance auf AWS

  2. So erstellen Sie eine RDS-Instance auf AWS mit Terraform

  3. So erstellen Sie eine IAM-Rolle in AWS mit Terraform

  4. So erstellen Sie ein Python-Wörterbuch

  5. So erstellen Sie einen Benutzer unter Linux mit Python

Erstellen Sie mit Terraform einen S3-Bucket auf AWS

So erstellen Sie eine Amazon AWS EC2-Instanz mit Python Boto3

So erstellen Sie einen S3-Bucket mit Python Boto3 auf AWS

So erstellen Sie eine DynamoDB-Tabelle in AWS

So erstellen Sie eine Ubuntu EC2-Instance auf AWS

So starten Sie eine OpenStack-Instanz mit Horizon Dashboard