AmazonRDS-MariaDBの機能

MariaDBは、コミュニティエディション機能を備えたAmazonRDSサービスで利用できる人気のあるオープンソースリレーショナルDBです。MariaDBのほぼすべての機能は、RDSプラットフォームで活用できます。以下は、RDSプラットフォームにおけるMariaDBの主な機能の簡単な説明です。

バージョン10.0、10.1、10.2は、RDSプラットフォームでサポートされているメジャーバージョンです。DBの作成中にバージョンが指定されていない場合、デフォルトでその時点の最新バージョンになります。以下は、PythonSDKプログラムでAWSAPIを使用してサポートされているすべてのDBエンジンバージョンを取得する方法の例です。

import boto3

client = boto3.client('rds')

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

print(response)

上記のプログラムを実行すると、次の出力が得られます-

{ 
   "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"
            }
         ]
      }
   ]
}

RDS MariaDBのセキュリティは、3つのレイヤーで管理されます。

IAMの使用

このアプローチでは、IAMユーザーは適切なポリシーと権限を持っている必要があります。このようなアクセス許可の付与は、アカウント所有者またはこれらのアクセス許可を付与するスーパーユーザーによって決定されます。

VPCの使用

VPCセキュリティグループまたはDBセキュリティグループのいずれかを使用して、DBインスタンスのエンドポイントとポートへの接続を開くことができるEC2インスタンスを決定します。これらの接続は、SSLを使用して行うこともできます。

IAMデータベース認証の使用

このアプローチでは、IAMロールと認証トークンを使用します。認証トークンは、アクセスプロセスで使用されるIAMロールに関連する一意の値を生成します。ここでは、同じ資格情報のセットがデータベースだけでなく、EC2やS3などの他のawsリソースにも使用されます。

キャッシュウォーミングは、DBインスタンスのシャットダウン時にバッファプールの現在の状態を保存し、DBインスタンスの起動時に保存された情報からバッファプールを再ロードすることで、MariaDBDBインスタンスのパフォーマンスを向上させることができます。このアプローチは、バッファプールが通常のデータベースの使用から「ウォームアップ」する必要性を回避し、代わりに既知の一般的なクエリのページをバッファプールにプリロードします。

キャッシュウォーミングは、主に、標準ストレージを使用するDBインスタンスにパフォーマンス上の利点を提供します。

バッファプールを自動的かつ定期的にダンプするイベントを作成できます。たとえば、次のステートメントは、1時間ごとにバッファプールをダンプするperiodic_buffer_pool_dumpという名前のイベントを作成します。

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