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();