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
- Account AWS (crealo se non ne hai uno)
- Comprensione di base di RDS.
- Comprensione di base di Python.
- Python è disponibile sul sistema.
Cosa faremo
- Installa dipendenze.
- Conosci il metodo richiesto.
- 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 )
- DBName: il significato di questo parametro varia a seconda del motore di database utilizzato.
- DBInstanceIdentifier: questo è un parametro obbligatorio. È un identificatore di istanza database. Questo parametro viene memorizzato come stringa minuscola.
- DBInstanceClass: questo è un parametro obbligatorio. Specifica la capacità di calcolo e di memoria dell'istanza database.
- Motore: il nome del motore di database da utilizzare per l'istanza da creare. Questo è un campo obbligatorio
- Nome utente principale: il nome dell'utente principale. Questo è l'utente del database nell'istanza
- MasterUserPassword: la password per l'utente master che creiamo nell'istanza.
- 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.
- 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.