Amazon RDS – Funciones de MariaDB

MariaDB es una popular base de datos relacional de código abierto que está disponible en amazon RDS junto con las características de Community Edition. Casi todas las funciones de MariaDB se pueden utilizar en la plataforma RDS. A continuación se muestra una breve descripción de las principales características de MariaDB en la plataforma RDS.

Versiones compatibles

Las versiones 10.0, 10.1, 10.2 son las versiones principales compatibles con la plataforma RDS. Si no se menciona ninguna versión durante la creación de la base de datos, la versión predeterminada es la más reciente en ese momento. A continuación, se muestra un ejemplo de cómo obtener todas las versiones de DB Engine compatibles con la API de AWS en el SDK de Python.

import boto3

client = boto3.client('rds')

response = client.describe_db_engine_versions(
    DBParameterGroupFamily='',
    DefaultOnly=True,
    Engine="mariadb",
    EngineVersion='',
    ListSupportedCharacterSets=False, #True,
)

print(response)

Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:

{ 
   "ResponseMetadata": { 
      "RetryAttempts": 0,
      "HTTPStatusCode": 200,
      "RequestId": "16179fbd-9d07-425b-9b86-cc61359ce7b4",
      "HTTPHeaders": { 
         "x-amzn-requestid": "16179fbd-9d07-425b-9b86-cc61359ce7b4",
         "date": "Fri, 14 Sep 2018 06:45:52 GMT",
         "content-length": "1658",
         "content-type": "text/xml"
      }
   },
   "u'DBEngineVersions'": [ 
      { 
         "u'Engine'": "mariadb",
         "u'DBParameterGroupFamily'": "mariadb10.2",
         "u'SupportsLogExportsToCloudwatchLogs'": true,
         "u'SupportsReadReplica'": true,
         "u'DBEngineDescription'": "MariaDb Community Edition",
         "u'EngineVersion'": "10.2.12",
         "u'DBEngineVersionDescription'": "mariadb 10.2.12",
         "u'ExportableLogTypes'": [ 
            "audit",
            "error",
            "general",
            "slowquery"
         ],
         "u'ValidUpgradeTarget'": [ 
            { 
               "u'Engine'": "mariadb",
               "u'IsMajorVersionUpgrade'": false,
               "u'AutoUpgrade'": false,
               "u'Description'": "MariaDB 10.2.15",
               "u'EngineVersion'": "10.2.15"
            }
         ]
      }
   ]
}

Seguridad de la base de datos

La seguridad de MariaDB RDS se gestiona en tres niveles.

Usando IAM

Con este enfoque, el usuario de IAM debe tener las políticas y los permisos adecuados. La decisión de otorgar estos permisos queda a discreción del propietario de la cuenta o del superusuario que otorga los permisos.

Usando VPC

Puede utilizar un grupo de seguridad de VPC o un grupo de seguridad de base de datos para decidir qué instancias EC2 pueden abrir conexiones al punto final y al puerto de la instancia de base de datos. Estas conexiones también se pueden realizar mediante SSL.

Uso de la autenticación de la base de datos de IAM

En este enfoque, utiliza una función de IAM y un token de autenticación. El token de autenticación genera un valor único correspondiente al rol de IAM que se utiliza en el proceso de acceso. Aquí se utiliza el mismo conjunto de credenciales para la base de datos, así como para otros recursos de AWS como EC2, S3, etc.

Calentamiento de caché

Calentar la memoria caché puede aumentar el rendimiento de su instancia de base de datos MariaDB al almacenar el estado actual del grupo de búfer cuando la instancia de base de datos se apaga y luego volver a cargar el grupo de búfer a partir de la información almacenada cuando se inicia la instancia de base de datos. Este enfoque evita la necesidad de «calentar» el grupo de búfer del uso normal de la base de datos y, en su lugar, carga previamente el grupo de búfer con páginas para consultas comunes conocidas.

El calentamiento de la caché proporciona principalmente mejoras de rendimiento para las instancias de bases de datos que utilizan almacenamiento estándar.

Puede crear un evento para vaciar automáticamente el grupo de búferes a intervalos regulares. Por ejemplo, la siguiente declaración genera un evento llamado period_buffer_pool_dump que vacía el grupo de búfer cada hora.

CREATE EVENT periodic_buffer_pool_dump 
   ON SCHEDULE EVERY 1 HOUR 
   DO CALL mysql.rds_innodb_buffer_pool_dump_now();

🚫