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
- Account AWS (crea 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 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 )
- NomeDB: Il significato di questo parametro varia a seconda del motore di database utilizzato.
- DBInstanceIdentifier: Questo parametro è obbligatorio. È un identificatore di istanza database. Questo parametro è memorizzato come una stringa minuscola.
- DBInstanceClass: Questo parametro è obbligatorio. Specifica la capacità di calcolo e 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 DB 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.
- 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.