Ricerca nel sito web

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 imparare prima 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 (crealo 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 le dipendenze

Python viene fornito di default in Ubuntu Server, quindi non è necessario installarlo.

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

which python
/usr/bin/python --version

O

python --versione

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

sudo apt aggiornamento

Per installare pip, utilizzare il seguente comando.

sudo apt install python-pip

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

pip --versione

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

Installare Boto3 è molto semplice e diretto. Per installare Boto3 utilizzare il seguente comando.

pip install boto3

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

pip mostra boto3

Conoscere il metodo richiesto

Per creare un'istanza RDS, useremo il metodo \create_db_instance\. Di seguito la sintassi del metodo con tutti i parametri che esso accetta. Non utilizzeremo tutti questi parametri per creare un'istanza, ma puoi fare un tentativo se lo desideri. Useremo 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 della 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. DBName: il significato di questo parametro varia a seconda del motore di database utilizzato.
  2. DBInstanceIdentifier: questo è un parametro obbligatorio. È un identificatore di istanza database. Questo parametro viene memorizzato come stringa minuscola.
  3. DBInstanceClass: questo è un parametro obbligatorio. Specifica la capacità di calcolo e di 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 database 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. Porta: il numero di porta su cui il database accetta le connessioni. Se si desidera consentire la connessione su questa porta, è necessario specificare questa porta nel gruppo di sicurezza.

Crea un'istanza RDS MySql usando Python Boto3

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

Non dimenticare di modificare i valori di \aws_access_key_id_value\ e \aws_secret_access_key_value\ rispettivamente con i propri access_key_id e access_key_value.

Se desideri creare l'istanza in una regione di tua scelta, modifica anche il valore di \nome_regione\ altrimenti mantienilo invariato.

Inoltre, assicurati 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 seguente comando.

python create-rds-instance.py

Vedrai la risposta sul terminale.

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

Conclusione

Abbiamo imparato a creare un'istanza RDS MySql in questo articolo 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.