Cómo crear una instancia RDS usando Python Boto3 en AWS

Instalar Boto 3

En este artículo, veremos cómo crear una instancia RDS MySql utilizando la biblioteca Boto3. Usaremos el método «create_db_instance» para crear una instancia.

Antes de continuar, asumo que está familiarizado con AWS RDS Service. Si no está familiarizado con él y qué debe aprender primero para crear una instancia RDS MySql desde la consola de AWS, busque «¿Cómo configurar una instancia RDS MySql (Relation Database MySql) en AWS?».

requisitos previos

  1. Cuenta AWS (Crear si no tienes uno)
  2. Comprensión básica de RDS.
  3. Comprensión básica de Python.
  4. Python está disponible en el sistema.

Lo que haremos

  1. Instalar dependencias.
  2. Conozca el método requerido.
  3. Cree una instancia RDS MySql usando Python Boto3.

Instalar dependencias

Python viene de forma predeterminada en Ubuntu Server, por lo que no necesita instalarlo.

Para verificar la versión de Python en su sistema, use el siguiente comando.

que pitón
/usr/bin/python –versión

O

python –versión

Si no tiene pip y está usando Ubuntu 18.04, ejecute el siguiente comando para actualizar primero el repositorio local.

sudo apt actualizar

Para instalar pip, use el siguiente comando.

sudo apt install python-pip

Para verificar la versión de Pip instalada, ejecute el siguiente comando.

pip –versión

Una vez que tenga python y pip, puede instalar Boto3.

La instalación de Boto3 es muy sencilla y directa. Para instalar Boto3 usa el siguiente comando.

pip instalar boto3

Instalar Boto 3

Para verificar si el Boto3 está instalado y su versión, ejecute el siguiente comando.

pepita mostrar boto3

pip mostrar boto

Conoce el método requerido

Para crear una instancia RDS, utilizaremos el método «create_db_instance». A continuación se muestra la sintaxis del método con todos los parámetros que acepta. No usaremos todos estos parámetros para crear una instancia, pero puede intentarlo si lo desea. Usaremos solo los parámetros requeridos y obligatorios. Si quieres saber más sobre todos los parámetros disponibles, puedes visitar la página oficial de Boto3 aquí.

Solicitud de sintaxis

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. Nombre DB: El significado de este parámetro difiere según el motor de base de datos que utilice.
  2. DBInstanceIdentifier: Este es un parámetro obligatorio. Es un identificador de instancia de base de datos. Este parámetro se almacena como una cadena en minúsculas.
  3. DBInstanceClass: Este es un parámetro obligatorio. Especifica la capacidad de cómputo y memoria de la instancia de base de datos.
  4. Motor: El nombre del motor de base de datos que se usará para crear la instancia. Este es un campo obligatorio
  5. Nombre de usuario maestro: El nombre del usuario maestro. Este es el usuario de la base de datos en la instancia
  6. Contraseña de usuario maestro: La contraseña del usuario maestro que creamos en la instancia.
  7. VpcSecurityGroupIds: Una lista de grupos de seguridad de VPC de Amazon EC2 para asociar con esta instancia de base de datos. Este grupo de seguridad tiene reglas que permiten la conexión en los puertos especificados en él.
  8. Puerto: El número de puerto en el que la base de datos acepta conexiones. Si desea permitir la conexión en este puerto, debe especificar este puerto en el grupo de seguridad.

Cree una instancia RDS MySql usando Python Boto3

Para crear una instancia de RDS, cree un archivo «create-rds-instance.py» y copie y pegue el siguiente código en él.

No olvide cambiar los valores de «aws_access_key_id_value» y «aws_secret_access_key_value» con su propio access_key_id y access_key_value respectivamente.

Si desea crear la instancia en una región de su elección, cambie el valor de «nombre_región»; de lo contrario, manténgalo sin cambios.

Además, asegúrese de asignar el ID del grupo de seguridad existente 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)

Crear instancia de RDS

Ahora, está listo para crear una instancia. Ejecute el script de python con el siguiente comando.

python crear-rds-instancia.py

Ejecutar secuencia de comandos de Python

Verás la respuesta en el terminal.

Para verificar el estado de la instancia desde la consola de AWS, vaya al panel de RDS.

Base de datos creada con éxito usando Boto3

Conclusión

Aprendimos a crear una instancia RDS MySql en este artículo usando la biblioteca Boto3 en Python. Puede personalizar el código y crear una instancia de su elección. También vimos cómo instalar las dependencias requeridas para escribir y ejecutar el código de Python.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *