GNU/Linux >> Tutoriales Linux >  >> Linux

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

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 el servicio AWS RDS. 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 de AWS (cree si no tiene una)
  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. Conocer 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.

qué python
/usr/bin/python --version

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.

Instalar Boto3 es muy sencillo y directo. Para instalar Boto3 usa el siguiente comando.

pip instalar boto3

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

pip muestra boto3

Conoce el método requerido

Para crear una instancia RDS, usaremos 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. Solo usaremos 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 para el 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 "region_name" también, de lo contrario, manténgalo sin cambios.

Además, asegúrese de asignar la identificación 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)

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

python create-rds-instance.py

Verás la respuesta en el terminal.

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

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.


Linux
  1. Cree una instancia EC2 en AWS usando Terraform

  2. Cómo crear una instancia RDS en AWS usando Terraform

  3. Cómo crear un rol de IAM en AWS usando Terraform

  4. Cómo rastrear scripts de Python usando trace.py

  5. Cómo crear un diccionario de Python

Cree un depósito S3 en AWS con Terraform

Cómo crear una instancia Amazon AWS EC2 usando Python Boto3

Cómo crear un depósito S3 usando Python Boto3 en AWS

Cómo crear una tabla de DynamoDB en AWS

Cómo crear una instancia Ubuntu EC2 en AWS

Cómo lanzar una instancia de OpenStack mediante Horizon Dashboard