Amazon RDS: interfaces

Las interfaces RDS son una forma de acceder al servicio RDS que creamos. Después de la creación y configuración del servicio RDS, es necesario acceder a los datos, cargar datos en esta base de datos y ejecutar algún otro programa que debería poder conectarse a la base de datos. Estos requisitos de acceso y manipulación de datos por parte de los usuarios finales de la base de datos y no necesariamente el titular de la cuenta de AWS que creó la base de datos necesita estas interfaces.

Hay tres interfaces principales de este tipo.

Esta es la interfaz más simple en la que el usuario puede iniciar sesión a través de un navegador web y comenzar a utilizar los servicios de base de datos. La desventaja de dicho acceso es que necesita un ser humano para interactuar con los servicios RDS y no podemos ejecutar un programa de base de datos para realizar algunas tareas regulares como: hacer una copia de seguridad o analizar la base de datos, etc.

También se denomina acceso CLI, donde puede ejecutar el comando DB a través de la pantalla del símbolo del sistema de AWS que debería haberse instalado en la computadora cliente que está utilizando. A continuación, se muestran los pasos para instalar CLI en su sistema local mediante el cual accederá a los servicios de AWS.

Los pasos para instalar AWS CLI son los siguientes.

Paso 1

Compruebe la versión de Python en su entorno.

ubuntu@ubuntu:~$ python -V
ubuntu@ubuntu:~$ python3 -V

Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:

Python 2.7.12 
Python 3.5.2

Si la versión es menor que 2.6 o 3.3, entonces necesita actualizar la versión de Python en su sistema.

Paso 2

Verifique la disponibilidad del paquete de Python llamado pip. Será necesario para instalar AWS CLI.

Pip -V

Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:

pip 10.0.1 from /home/ubuntu/.local/lib/python3.5/site-packages/pip (python 3.5)

Paso 3

Emita el siguiente comando para instalar la AWS CLI.

pip install awscli –upgrade –user
aws --version

Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:

Aws-cli/1.11.84 Python/3.6.2 Linux/4.4.0

Etapa 4

A continuación, configuramos la CLI de AWS con credenciales. Emitimos este comando y luego ingresamos los valores requeridos uno por uno.

aws configure

Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:

AWS Access Key ID [None]: ****PLE
AWS Secret Access Key [None]: ********8
Default region name [None]: us-west-2
Default output format [None]: json

Con la configuración anterior en su lugar, ahora está listo para usar CLI para comunicarse con los entornos de AWS para configurar y usar amazon RDS. En los próximos capítulos veremos cómo podemos hacer eso.

Amazon Relational Database Service (Amazon RDS) también proporciona una interfaz de programación de aplicaciones (API). Las API se utilizan cuando la información se intercambia entre los sistemas en lugar de que un humano emita los comandos y reciba el resultado. Por ejemplo, si desea automatizar la adición de instancias de base de datos a un servicio RDS cuando el número de transacciones alcanza cierto umbral, entonces utiliza un SDK de AWS para escribir un programa que supervisará el número de transacciones de la base de datos y derivará un RDS. instancia cuando se cumple la condición requerida.

A continuación, se muestra un ejemplo de código API que crea una copia de una instantánea de base de datos. Es un programa de Python que usa AWS sdk llamado boto3. La biblioteca cliente en boto3 tiene un método llamado copy_db_snapshot que es llamado por el programa Python para crear una copia de la instantánea de la base de datos con los parámetros requeridos como se muestra.

import boto3

client = boto3.client('rds')

response = client.copy_db_snapshot(
    SourceDBSnapshotIdentifier='mydbsnapshot',
    TargetDBSnapshotIdentifier='mydbsnapshot-copy',
)

print(response)

Cuando se ejecuta el programa anterior, obtenemos la respuesta que describe las diversas propiedades del evento de copia. Aquí, el término cadena representa los diversos nombres de parámetros definidos por el usuario para su entorno. Por ejemplo, VpcID representa el ID del vpc en el que se realiza la acción de copia.

{
    'DBSnapshot': {
        'DBSnapshotIdentifier': 'string',
        'DBInstanceIdentifier': 'string',
        'SnapshotCreateTime': datetime(2015, 1, 1),
        'Engine': 'string',
        'AllocatedStorage': 123,
        'Status': 'string',
        'Port': 123,
        'AvailabilityZone': 'string',
        'VpcId': 'string',
        'InstanceCreateTime': datetime(2015, 1, 1),
        'MasterUsername': 'string',
        'EngineVersion': 'string',
        'LicenseModel': 'string',
        'SnapshotType': 'string',
        'Iops': 123,
        'OptionGroupName': 'string',
        'PercentProgress': 123,
        'SourceRegion': 'string',
        'SourceDBSnapshotIdentifier': 'string',
        'StorageType': 'string',
        'TdeCredentialArn': 'string',
        'Encrypted': True|False,
        'KmsKeyId': 'string',
        'DBSnapshotArn': 'string',
        'Timezone': 'string',
        'IAMDatabaseAuthenticationEnabled': True|False,
        'ProcessorFeatures': [
            {
                'Name': 'string',
                'Value': 'string'
            },
        ]
    }
}