GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare un'istanza RDS utilizzando Python Boto3 su AWS

In questo articolo, vedremo come creare un'istanza RDS MySql utilizzando la libreria Boto3. Useremo il metodo "create_db_instance" per creare un'istanza.

Prima di procedere, presumo che tu abbia familiarità con il servizio AWS RDS. Se non hai familiarità con esso e cosa devi imparare per creare un'istanza RDS MySql dalla Console AWS, cerca "Come configurare un'istanza RDS MySql (Relation Database MySql ) su AWS?".

Prerequisiti

  1. Account AWS (crea se non ne hai uno)
  2. Comprensione di base di RDS.
  3. Comprensione di base di Python.
  4. Python è disponibile sul sistema.

Cosa faremo

  1. Installa dipendenze.
  2. Conosci il metodo richiesto.
  3. Crea un'istanza RDS MySql utilizzando Python Boto3.

Installa dipendenze

Python viene fornito per impostazione predefinita in Ubuntu Server, quindi non è necessario installarlo.

Per verificare la versione di Python sul tuo sistema, usa il comando seguente.

quale python
/usr/bin/python --version

O

python --versione

Se non hai pip e stai utilizzando Ubuntu 18.04, esegui il comando seguente per aggiornare prima il repository locale.

sudo apt update

Per installare pip, usa il comando seguente.

sudo apt install python-pip

Per verificare la versione di Pip installata, esegui il comando seguente.

pip --versione

Una volta che hai python e pip, puoi installare Boto3.

L'installazione di Boto3 è molto semplice e diretta. Per installare Boto3 usa il seguente comando.

pip installa boto3

Per verificare se il Boto3 è installato e la sua versione, eseguire il comando seguente.

pip mostra boto3

Conosci il metodo richiesto

Per creare un'istanza RDS, utilizzeremo il metodo "create_db_instance". Di seguito è riportata la sintassi del metodo con tutti i parametri che accetta. Non utilizzeremo tutti questi parametri per creare un'istanza, ma puoi provare se lo desideri. Utilizzeremo solo i parametri obbligatori e obbligatori. Se vuoi saperne di più su tutti i parametri disponibili, puoi visitare la pagina ufficiale di Boto3 qui.

Sintassi di richiesta

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. NomeDB: Il significato di questo parametro varia a seconda del motore di database utilizzato.
  2. DBInstanceIdentifier:  Questo parametro è obbligatorio. È un identificatore di istanza database. Questo parametro è memorizzato come una stringa minuscola.
  3. DBInstanceClass:  Questo parametro è obbligatorio. Specifica la capacità di calcolo e memoria dell'istanza database.
  4. Motore:  Il nome del motore di database da utilizzare per l'istanza da creare. Questo è un campo obbligatorio
  5. Nome utente principale: Il nome dell'utente principale. Questo è l'utente del DB nell'istanza
  6. MasterUserPassword: La password per l'utente master che creiamo nell'istanza.
  7. VpcSecurityGroupIds:  Un elenco di gruppi di sicurezza VPC Amazon EC2 da associare a questa istanza database. Questo gruppo di sicurezza ha regole che consentono la connessione sulle porte specificate al suo interno.
  8. Porto:  Il numero di porta su cui il database accetta le connessioni. Se vuoi consentire la connessione su questa porta, devi specificare questa porta nel gruppo di sicurezza.

Crea un'istanza RDS MySql utilizzando Python Boto3

Per creare un'istanza RDS, crea un file "create-rds-instance.py" e copia e incolla il codice seguente.

Non dimenticare di modificare i valori di "aws_access_key_id_value" e "aws_secret_access_key_value" rispettivamente con il tuo access_key_id e access_key_value.

Se vuoi creare l'istanza in una regione a tua scelta, cambia anche il valore di "region_name" altrimenti mantienilo invariato.

Assicurati inoltre di assegnare l'ID del gruppo di sicurezza in uscita a "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)

Ora sei pronto per creare un'istanza. Esegui lo script python usando il comando seguente.

python create-rds-instance.py

Vedrai la risposta sul terminale.

Per verificare lo stato dell'istanza dalla Console AWS, vai a RDS Dashboard.

Conclusione

In questo articolo abbiamo imparato a creare un'istanza RDS MySql utilizzando la libreria Boto3 in Python. Puoi personalizzare il codice e creare un'istanza a tua scelta. Abbiamo anche visto come installare le dipendenze necessarie per scrivere ed eseguire il codice Python.


Linux
  1. Crea un'istanza EC2 su AWS utilizzando Terraform

  2. Come creare un'istanza RDS su AWS utilizzando Terraform

  3. Come creare un ruolo IAM in AWS utilizzando Terraform

  4. Come tracciare gli script Python usando trace.py

  5. Come creare un utente in Linux usando Python

Crea un bucket S3 su AWS utilizzando Terraform

Come creare un'istanza Amazon AWS EC2 utilizzando Python Boto3

Come creare un bucket S3 utilizzando Python Boto3 su AWS

Come creare una tabella DynamoDB in AWS

Come creare un'istanza EC2 Ubuntu su AWS

Come avviare un'istanza OpenStack utilizzando Horizon Dashboard