MariaDB is a popular open Source Relational DB which is available in the amazon RDS services with its community edition features. Almost every feature of MariaDB can be leveraged in the RDS platform. Below is a brief description on MariaDB’s major features in the RDS platform.
Supported Versions
The versions 10.0, 10.1,10.2 are the major versions supported in the RDS platform. If no version is mentioned during the DB creation, it defaults to the most recent version at that point in time. Below is an example of how to get all supported DB Engine versions using AWS API in a python SDK program.
import boto3 client = boto3.client('rds') response = client.describe_db_engine_versions( DBParameterGroupFamily='', DefaultOnly=True, Engine='mariadb', EngineVersion='', ListSupportedCharacterSets=False, #True, ) print(response)
When we run the above program, we get the following output −
{ "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" } ] } ] }
Database Security
The security for RDS MariaDB is managed at three layers.
Using IAM
In this approach the IAM user should have appropriate policies and permissions. Granting of such permissions is decided by the account holder or the super user who grants these permissions.
Using VPC
You either use a VPC security group or DB security group to decide which EC2 instances can open connections to the endpoint and port of a DB instance. These connections can also be made using SSL.
Using IAM Database Authentication
In this approach you use a IAM role and an authentication token. The authentication token generates a unique value which is relevant to the IAM role that is used in the access process. Here the same set of credentials are used for database as well as other aws resources, like EC2 and S3 etc.
Cache Warming
Cache warming can provide performance gains for your MariaDB DB instance by saving the current state of the buffer pool when the DB instance is shut down, and then reloading the buffer pool from the saved information when the DB instance starts up. This approach bypasses the need for the buffer pool to “warm up” from normal database use and instead preloads the buffer pool with the pages for known common queries.
Cache warming primarily provides a performance benefit for DB instances that use standard storage.
You can create an event to dump the buffer pool automatically and at a regular interval. For example, the following statement creates an event named periodic_buffer_pool_dump that dumps the buffer pool every hour.
CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();