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 *