Amazon RDS の MariaDB - Amazon Relational Database Service

Amazon RDS の MariaDB

Amazon RDS では、MariaDB の複数のバージョンを実行する DB インスタンスがサポートされています。以下のメジャーバージョンを使用できます。

  • MariaDB 10.6

  • MariaDB 10.5

  • MariaDB 10.4

  • MariaDB 10.3

  • MariaDB 10.2 (2022 年 10 月 15 日に予定されている終了)

マイナーバージョンのサポートの詳細については、「Amazon RDS の MariaDB のバージョン」を参照してください。

まず、Amazon RDS の管理ツールまたはインターフェイスを使用して MariaDB DB インスタンスを作成します。その後、Amazon RDS のツールを使用して、DB インスタンスの再設定やサイズ変更、DB インスタンスへの接続の許可、バックアップやスナップショットの作成や復元、マルチ AZ セカンダリの作成、リードレプリカの作成、DB インスタンスのパフォーマンスのモニタリングなど、管理アクションを実行できます。スタンダード的な MariaDB のユーティリティとアプリケーションを使用して、DB インスタンスに対してデータを保存したりデータにアクセスしたりします。

MariaDB がすべての AWS リージョンで利用可能になりました。AWS リージョンの詳細については、「リージョン、アベイラビリティーゾーン、および Local Zones」を参照してください。

Amazon RDS for MariaDB 用の Amazon RDS を使用して、HIPAA 準拠のアプリケーションを構築できます。AWS との事業提携契約 (BAA) に基づいて、保護されるべき医療情報 (PHI) を含め、医療関連の情報を保存できます。詳細については、「HIPAA コンプライアンス」を参照してください。AWS対象範囲内のサービスは、サードパーティーの監査人によって十分に評価され、認定、コンプライアンスの証明、または Authority to Operate (ATO) が与えられます。詳細については、コンプライアンスプログラムによる対象範囲内の AWS のサービスを参照してください。

初期の DB インスタンスを作成する前に、このガイドの「セットアップ」セクションのステップを完了してください。詳細については、「Amazon RDS のセットアップ」を参照してください。

Amazon RDS での MariaDB の一般的な管理タスク

以下に示しているのは、MariaDB を実行する Amazon RDS DB インスタンスで行う一般的な管理タスクと、各タスクの関連ドキュメントへのリンクです。

タスク領域 関連資料

インスタンスクラス、ストレージ、PIOPS

本稼働用に DB インスタンスを作成する場合、インスタンスクラス、ストレージタイプ、およびプロビジョンド IOPS が Amazon RDS でどのように機能するか理解する必要があります。

DB インスタンスクラス

Amazon RDS ストレージタイプ

マルチ AZ 配置

別のアベイラビリティーゾーンにおけるスタンバイの同期レプリケーション、自動フェイルオーバー、マルチ AZ 配置を使用する DB インスタンスの耐障害性、およびリードレプリカで高可用性を提供します。

高可用性を重視したマルチ AZ 配置

Amazon Virtual Private Cloud (VPC)

AWS アカウントにデフォルト VPC がある場合、DB インスタンスがデフォルト VPC 内に自動的に作成されます。アカウントにデフォルト VPC がない場合、DB インスタンスを VPC に作成する必要があるときは、DB インスタンスを作成する前に VPC とサブネットグループを作成する必要があります。

EC2-VPC または EC2-Classic のどちらのプラットフォームを使用しているかを確認する

VPC 内の DB インスタンスの使用

セキュリティグループ

デフォルトでは、DB インスタンスが作成されると、アクセスを禁止するファイアウォールが設定されます。したがって、DB インスタンスにアクセスするために、正しい IP アドレスとネットワーク構成を備えたセキュリティグループを作成する必要があります。作成するセキュリティグループは、どの Amazon EC2 プラットフォームで DB インスタンスが稼働しているか、Amazon EC2 インスタンスから DB インスタンスにアクセスするかどうかによって異なります。

一般的に、DB インスタンスが EC2-Classic プラットフォームにある場合は、DB セキュリティグループを作成する必要があります。DB インスタンスが EC2-VPC プラットフォームにある場合は、VPC セキュリティグループを作成する必要があります。

EC2-VPC または EC2-Classic のどちらのプラットフォームを使用しているかを確認する

セキュリティグループによるアクセス制御

パラメータグループ

DB インスタンスに特定のデータベースパラメータが必要になる場合は、DB インスタンスを作成する前にパラメータグループを作成する必要があります。

パラメータグループを使用する

データのインポートとエクスポート

データをインポートまたはエクスポートする手順を確定します。

MariaDB DB インスタンスへのデータのインポート

レプリケーション

リードレプリカを作成することで、ソース MariaDB DB インスタンスから読み取りトラフィックをオフロードできます。

リードレプリカの使用

DB インスタンスへの接続

スタンダード SQL クライアントアプリケーションを使用して DB インスタンスに接続します。

MariaDB データベースエンジンを実行している DB インスタンスへの接続

バックアップと復元

DB インスタンスを作成するとき、自動バックアップが作成されるように設定できます。完全バックアップファイル (.bak ファイル) を使用することで、データベースを手動でバックアップおよび復元することもできます。

バックアップの使用

モニタリング

Amazon CloudWatch RDS メトリクス、イベント、および拡張モニタリングを使用して、MariaDB DB インスタンスをモニタリングします。MariaDB DB インスタンスのログファイルを確認します。

Amazon RDS コンソールでのメトリクスの表示

Amazon RDS イベントの表示

ログファイル

MariaDB DB インスタンスのログファイルにアクセスできます。

Amazon RDS ログファイルのモニタリング

MariaDB データベースのログファイル

また、MariaDB を実行する DB インスタンスを使用するための高度な管理タスクもあります。詳細については、次のドキュメントを参照してください。

Amazon RDS の MariaDB のバージョン

MariaDB の場合、バージョン番号は「バージョン X.Y.Z 」の形式で記述されます。Amazon RDS の用法では、X.Y はメジャーバージョン番号を、Z はマイナーバージョン番号を表します。Amazon RDS 実装では、メジャーバージョン番号が変更された場合 (10.4 から 10.5 へなど)、そのバージョン変更はメジャーと考えます。マイナーバージョン番号のみが変更された場合 (10.3.20 から 10.3.23 へなど)、そのバージョン変更はマイナーと考えます。

Amazon RDS は、現在、MariaDB の以下のバージョンをサポートしています。

メジャーバージョン マイナーバージョン

MariaDB 10.6

  • 10.6.7

  • 10.6.5

MariaDB 10.5

  • 10.5.15

  • 10.5.13

  • 10.5.12

  • 10.5.9

  • 10.5.8

MariaDB 10.4

  • 10.4.24

  • 10.4.22

  • 10.4.21

  • 10.4.18

  • 10.4.13

MariaDB 10.3

  • 10.3.34

  • 10.3.32

  • 10.3.31

  • 10.3.28

  • 10.3.23

  • 10.3.20

  • 10.3.13

  • 10.3.8

MariaDB 10.2

  • 10.2.43

  • 10.2.41

  • 10.2.40

  • 10.2.39

  • 10.2.37

  • 10.2.32

  • 10.2.21

  • 10.2.15

  • 10.2.12

  • 10.2.11

新しい DB インスタンスを作成するときは、現在サポートされているいずれかの MariaDB バージョンを指定できます。メジャーバージョン (MariaDB 10.5 など) と、指定したメジャーバージョンでサポートされている任意のマイナーバージョンを指定できます。バージョンを指定しない場合、Amazon RDS では、サポートされているいずれかのバージョン (通常最新のバージョン) がデフォルトで設定されます。マイナーバージョンではなく、メジャーバージョンを指定した場合は、Amazon RDS では、お客様が指定したメジャーバージョンの最新リリースにデフォルトで設定されます。サポートされているバージョンのリストと、新しく作成された DB インスタンスのデフォルトを表示するには、AWS CLI の describe-db-engine-versions コマンドを使用します。

デフォルトの MariaDB バージョンは、AWS リージョンによって異なる場合があります。特定のマイナーバージョンで DB インスタンスを作成するには、DB インスタンスの作成中にマイナーバージョンを指定します。次の AWS コマンドを使用して、AWS CLI リージョンのデフォルトのマイナーバージョンを確認できます。

aws rds describe-db-engine-versions --default-only --engine mariadb --engine-version major-engine-version --region region --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

major-engine-version をメジャーエンジンバージョンに置き換え、リージョンを AWS リージョンに置き換えます。例えば、次の AWS CLI コマンドは、10.5 メジャーバージョンおよび米国西部 (オレゴン) AWS リージョン (us-west-2) 用の、デフォルトの MariaDB マイナーエンジンのバージョンを返します。

aws rds describe-db-engine-versions --default-only --engine mariadb --engine-version 10.5 --region us-west-2 --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

MariaDB 10.2 の終了

2022 年 10 月 15 日、Amazon RDS は、アップグレードの推奨事項を含め、以下のスケジュールで MariaDB バージョン 10.2 を終了するプロセスを開始しています。End-of-Life プロセスは、このバージョンの標準サポートを終了します。できるだけ早い時期に、すべての MariaDB 10.2 DB インスタンスを、MariaDB 10.3 以降にアップグレードすることをお勧めします。詳細については、「MariaDB DB エンジンのアップグレード」を参照してください。

アクションまたは推奨事項 日付

MariaDB 10.2 DB インスタンスを選択したバージョンに手動でアップグレードすることをお勧めします。MariaDB バージョン 10.3 または 10.6 に直接アップグレードできます。

現時点 – 2022 年 10 月 15 日

MariaDB 10.2 スナップショットを選択したバージョンに手動でアップグレードすることをお勧めします。

現時点 – 2022 年 10 月 15 日

新しい MariaDB 10.2 DB インスタンスを作成することはできません。

既存の MariaDB 10.2 DB インスタンスのリードレプリカを作成し、シングル AZ 配置からマルチ AZ 配置に変更することはできます。

2022 年 7 月 15 日

Amazon RDS は、MariaDB 10.2 DB インスタンスをバージョン 10.3 への自動アップグレードを開始します。

2022 年 10 月 15 日

Amazon RDS は、スナップショットから復元された MariaDB 10.2 DB インスタンスに対して、バージョン 10.3 への自動アップグレードを開始します。

2022 年 10 月 15 日

Amazon RDS for MariaDB 10.2 終了の詳細については、発表: MariaDB 10.2 の Amazon Relational Database Service (Amazon RDS) の終了日は 2022 年 10 月 15 日ですを参照してください。

Amazon RDS での MariaDB 機能のサポート

次のセクションでは、Amazon RDS for MariaDB のメジャーバージョンでの MariaDB 機能のサポートを見ていきます。

Amazon RDS for MariaDB のサポートされているマイナーバージョンについては、「Amazon RDS の MariaDB のバージョン」を参照してください。

Amazon RDS での MariaDB 10.6 のサポート

Amazon RDS は、MariaDB バージョン 10.6 以降を実行する DB インスタンスで以下の新しい機能をサポートしています。

  • MyRocks ストレージエンジン – MyRocks ストレージエンジンを RDS for MariaDB とともに使用して、書き込み負荷の高い高性能ウェブアプリケーションのストレージ消費を最適化できます。詳細については、「Amazon RDS の MariaDB でサポートされているストレージエンジン」と「MyRocks」を参照してください。

  • IAM DB authentication – IAM DB 認証を使用して、MariaDB DB インスタンスへの接続のセキュリティを強化し、一元管理できます。詳細については、「MariaDB、MySQL、および PostgreSQL の IAM データベース認証」を参照してください。

  • アップグレードオプション – 以前のメジャーリリース (10.2、10.3、10.4、10.5) から RDS for MariaDB バージョン 10.6 にアップグレードできるようになりました。既存の MySQL 5.6 または 5.7 DB インスタンスのスナップショットを作成し、そのスナップショットを MariaDB 10.6 インスタンスに復元することもできます。詳細については、「MariaDB DB エンジンのアップグレード」を参照してください。

  • レプリケーションの遅延 – リードレプリカがソースデータベースより遅延する時間を設定できるようになりました。標準の MariaDB レプリケーション設定では、ソースとレプリカ間のレプリケーション遅延は最小限に抑えられます。レプリケーションの遅延では、災害対策用の戦略として意図的に遅延を設定できます。詳細については、「MariaDB での遅延レプリケーションの設定」を参照してください。

  • Oracle PL/SQL の互換性 – RDS for MariaDB バージョン 10.6 を使用すると、レガシー Oracle アプリケーションを Amazon RDS にさらに簡単に移行できます。詳細については、「SQL_MODE=ORACLE」を参照してください。

  • アトミック DDL – RDS for MariaDB バージョン 10.6 では、動的データ言語 (DDL) ステートメントは比較的クラッシュセーフです。CREATE TABLEALTER TABLERENAME TABLEDROP TABLEDROP DATABASE、および関連する DDL ステートメントがアトミックになりました。ステートメントは連続するか、完全に反転するかのどちらかです。詳細については、「Atomic DDL」(アトミック DDL) を参照してください。

  • その他の機能強化 – SQL 内で JSON データをリレーショナル形式に変換する JSON_TABLE 関数や、Innodb による空のテーブルデータのロードの高速化などの機能強化が行われました。また、分析とトラブルシューティングのための新しい sys_schema、未使用のインデックスを無視するためのオプティマイザの機能強化、およびパフォーマンスの向上も行いました。詳細については、「JSON_TABLE」を参照してください。

  • パラメータの新しいデフォルト値 – 次のパラメータには、MariaDB バージョン 10.6 DB インスタンスの新しいデフォルト値があります。

    • 次のパラメータのデフォルト値が utf8 から utf8mb3 に変更されました。

      これらのパラメータのデフォルト値は変更されていますが、機能の変更はありません。詳細については、「Supported Character Sets and Collations」(サポートされている文字セットと照合順序) を参照してください。

    • collation_connection パラメータのデフォルト値が utf8_general_ci から utf8mb3_general_ci に変更されました。このパラメータのデフォルト値は変更されていますが、機能の変更はありません。

    • old_mode パラメータのデフォルト値が未設定から UTF8_IS_UTF8MB3 に変更されました。このパラメータのデフォルト値は変更されていますが、機能の変更はありません。

MariaDB 10.6 のすべての機能と関連ドキュメントのリストについては、MariaDB ウェブサイトで「Changes and improvements in MariaDB 10.6」(MariaDB 10.6 の変更点と改善点) および「Release notes - MariaDB 10.6 series」(リリースノート - MariaDB 10.6 シリーズ) を参照してください。

サポートされない機能の一覧については、「サポートされていない機能」を参照してください。

Amazon RDS での MariaDB 10.5 のサポート

Amazon RDS は、MariaDB バージョン 10.5 以降を実行する DB インスタンスで以下の新しい機能をサポートしています。

  • InnoDB の強化 - MariaDB バージョン 10.5 には、InnoDB の機能強化が含まれています。詳細については、「 InnoDB: パフォーマンスの改善など」を参照してください。

  • Performance Schemaの更新 - MariaDB バージョン 10.5 には、Performance Schemaの更新が含まれています。詳細については、「MySQL 5.7 インストルメンテーションとテーブルと一致するPerformance Schemaの更新」を参照してください。

  • InnoDB 再実行ログ内の 1 つのファイル - MariaDB のバージョン 10.5 より前のバージョンでは、innodb_log_files_in_group パラメータの値が 2 に設定されていました。MariaDB バージョン 10.5 では、このパラメータの値は 1 に設定されます。

    以前のバージョンから MariaDB バージョン 10.5 にアップグレードし、パラメータを変更しない場合、innodb_log_file_size パラメータ値は変更されません。ただし、2 つのログファイルではなく 1 つのログファイルに適用されます。その結果、アップグレードされた MariaDB バージョン 10.5 DB インスタンスは、アップグレード前に使用していた再実行ログサイズの半分を使用します。この変更は、パフォーマンスに顕著な影響を与える可能性があります。この問題に対処するには、innodb_log_file_size パラメータの値を 2 倍にします。パラメータの変更については、「DB パラメータグループのパラメータの変更」を参照してください。

  • SHOW SLAVE STATUS コマンドはサポートされていません。- MariaDB のバージョン 10.5 より前のバージョンでは、SHOW SLAVE STATUSコマンドに REPLICATION SLAVE 特権が必要でした。MariaDB バージョン 10.5 では、同等の SHOW REPLICA STATUS コマンドに REPLICATION REPLICA ADMIN 権限が必要です。この新しい特権は RDS マスターユーザーに付与されません。

    SHOW REPLICA STATUS コマンドを使用する代わりに、新しい mysql.rds_replica_status 保存済み手順を実行して、同様の情報を返します。詳細については、「mysql.rds_replica_status」を参照してください。

  • SHOW RELAYLOG EVENTS コマンドはサポートされていません。-MariaDB のバージョン 10.5 より前のバージョンでは、SHOW RELAYLOG EVENTS コマンドには REPLICATION SLAVE 特権が必要でした。MariaDB バージョン 10.5 では、このコマンドには REPLICATION REPLICA ADMIN 特権が必要です。この新しい特権は RDS マスターユーザーに付与されません。

  • パラメータの新しいデフォルト値 - 次のパラメータには、MariaDB バージョン 10.5 DB インスタンスの新しいデフォルト値があります。

MariaDB 10.5 のすべての機能と関連ドキュメントのリストについては、MariaDB ウェブサイトで「MariaDB 10.5 の変更点と改善点」および「リリースノート - MariaDB 10.5 シリーズ」を参照してください。

サポートされない機能の一覧については、「サポートされていない機能」を参照してください。

Amazon RDS での MariaDB 10.4 のサポート

Amazon RDS は、MariaDB バージョン 10.4 以降を実行する DB インスタンスで以下の新しい機能をサポートしています。

MariaDB 10.4 のすべての機能と関連ドキュメントのリストについては、MariaDB ウェブサイトで「MariaDB 10.4 の変更点と改善点」および「リリースノート - MariaDB 10.4 シリーズ」を参照してください。

サポートされない機能の一覧については、「サポートされていない機能」を参照してください。

Amazon RDS での MariaDB 10.3 のサポート

Amazon RDS は、MariaDB バージョン 10.3 以降を実行する DB インスタンスで以下の新しい機能をサポートしています。

  • Oracle 互換機能 - PL/SQL 互換性パーサ、シーケンス、UNION を補完する INTERSECT と EXCEPT、新しい TYPE OF と ROW TYPE OF 宣言、および非表示のコラム

  • テンポラリデータ処理 - データベースの過去および現在の状態を照会するためのシステムバージョンテーブル

  • 柔軟性 - ユーザー定義による定義、ストレージから独立したコラム圧縮、プロキシがクライアント IP アドレスをサーバーへ中継するプロキシプロトコルのサポート。

  • 管理しやすさ - ADD COLUMN の即時オペレーション、ファストフェイルなデータ定義言語 (DDL) オペレーション。

MariaDB 10.3 のすべての機能と関連ドキュメントのリストについては、MariaDB ウェブサイトで「MariaDB 10.3 の変更点と改善点」および「リリースノート - MariaDB 10.3 シリーズ」を参照してください。

サポートされない機能の一覧については、「サポートされていない機能」を参照してください。

Amazon RDS での MariaDB 10.2 のサポート

Amazon RDS は、MariaDB バージョン 10.2 以降を実行する DB インスタンスで以下の新しい機能をサポートしています。

  • ALTER USER

  • テーブル共通表現

  • イベントの圧縮によるバイナリログのサイズ縮小

  • CREATE USER — リソース使用量と TLS/SSL を制限するための新しいオプション

  • EXECUTE IMMEDIATE

  • フラッシュバック

  • InnoDB — XtraDB に代わる新しいデフォルトストレージエンジン

  • InnoDB — バッファプールサイズの動的設定

  • JSON 関数

  • ウィンドウ関数

  • WiTH

MariaDB 10.2 のすべての機能と関連ドキュメントのリストについては、MariaDB ウェブサイトで「MariaDB 10.2 の変更点と改善点」および「リリースノート - MariaDB 10.2 シリーズ」を参照してください。

サポートされない機能の一覧については、「サポートされていない機能」を参照してください。

サポートされていない機能

以下の MariaDB 機能は、Amazon RDS ではサポートされていません。

  • S3 ストレージエンジン

  • 認証用プラグイン - GSSAPI

  • 認証用プラグイン - Unix ソケット

  • AWS Key Management 暗号化プラグイン

  • 10.6 より前のバージョンの MariaDB の遅延レプリケーション

  • InnoDB および Aria で保管時のネイティブ MariaDB 暗号化。

    MariaDB DB インスタンス用に保管時の暗号化を有効にするには、「Amazon RDS リソースの暗号化」の指示に従います。

  • HandlerSocket

  • 10.6 より前のバージョンの MariaDB の JSON テーブルタイプ

  • MariaDB ColumnStore

  • MariaDB Galera クラスター

  • マルチ出典レプリケーション

  • 10.6 より前のバージョンの MariaDB の MyRocks ストレージエンジン

  • パスワード検証プラグイン、simple_password_check、および cracklib_password_check

  • Spider ストレージエンジン

  • Sphinx ストレージエンジン

  • TokuDB ストレージエンジン

  • MariaDB ドキュメントの「エンジン定義の新しいテーブル/フィールド/インデックス属性」で説明されている、ストレージエンジン固有のオブジェクト属性。

  • テーブルとテーブルスペースの暗号化

マネージド型サービスの操作性を実現するために、Amazon RDS では DB インスタンスへのシェルアクセスはできません。また、上位の権限を必要とする特定のシステムプロシージャやシステムテーブルへのアクセスが制限されます。Amazon RDS は、任意のスタンダード SQL クライアントアプリケーションによる、DB インスタンス上のデータベースへのアクセスがサポートされています。Amazon RDS では、Telnet、Secure Shell (SSH)、または Windows のリモートデスクトップ接続を使用しての、DB インスタンスに対するダイレクトホストアクセスは行えません。

Amazon RDS の MariaDB でサポートされているストレージエンジン

RDS for MariaDB では、次のストレージエンジンがサポートされています。

他のストレージエンジンは現在、RDS for MariaDB ではサポートされていません。

InnoDB ストレージエンジン

MariaDB では様々な機能を持つ複数のストレージエンジンがサポートされていますが、それらすべてがリカバリとデータ耐久性に最適化されているわけではありません。InnoDB は、Amazon RDS での MariaDB DB インスタンスについて推奨されているストレージエンジンです。Amazon RDS でのポイントインタイムの復元やスナップショット復元などの機能には、回復可能なストレージエンジンが必要であり、MariaDB バージョンで推奨された ストレージエンジンのみがサポートされています。

詳細については、「InnoDB」を参照してください。

MyRocks ストレージエンジン

MyRocks ストレージエンジンは RDS で MariaDB バージョン 10.6 以降で使用可能です。MyRocks ストレージエンジンを本番データベースで使用する前に、徹底したベンチマークとテストを実行して、ユースケースに対する InnoDB の潜在的な利点を検証することをお勧めします。

MariaDB バージョン 10.6 のデフォルトのパラメータグループには MyRocks パラメータが含まれています。詳細については、「MariaDB のパラメータ」および「パラメータグループを使用する」を参照してください。

MyRocks ストレージエンジンを使用するテーブルを作成するには、CREATE TABLE ステートメントに ENGINE=RocksDB を指定します。次の例では、MyRocks ストレージエンジンを使用するテーブルを作成します。

CREATE TABLE test (a INT NOT NULL, b CHAR(10)) ENGINE=RocksDB;

InnoDB テーブルと MyRocks テーブルの両方にまたがるトランザクションを実行しないことを強くお勧めします。MariaDB は、ストレージエンジン間のトランザクションに対して ACID (不可分性、整合性、分離性、耐久性) を保証するものではありません。DB インスタンスに InnoDB テーブルと MyRocks テーブルの両方を含めることは可能ですが、一方のストレージエンジンから別のストレージエンジンへの移行中を除き、この方法はお勧めしません。InnoDB テーブルと MyRocks テーブルの両方が DB インスタンスに存在する場合、各ストレージエンジンには独自のバッファプールがあり、パフォーマンスが低下する可能性があります。

MyRocks では SERIALIZABLE アイソレーションまたはギャップロックはサポートされていません。したがって、一般的に MyRocks をステートメントベースのレプリケーションで使用することはできません。詳細については、「MyRocks and Replication」(MyRocks とレプリケーション) を参照してください。

現在、次の MyRocks パラメータのみ変更できます。

MyRocks ストレージエンジンと InnoDB ストレージエンジンは、rocksdb_block_cache_size および innodb_buffer_pool_size パラメータの設定により競合する可能性があります。場合によっては、特定の DB インスタンスで MyRocks ストレージエンジンのみを使用したいことがあります。その場合は、innodb_buffer_pool_size minimal パラメータを最小値に設定し、rocksdb_block_cache_size をできる限り高く設定することをお勧めします。

DescribeDBLogFiles および DownloadDBLogFilePortion オペレーションを使用して MyRocks ログファイルにアクセスできます。

MyRocks の詳細については、MariaDB のウェブサイトの「MyRocks」を参照してください。

Amazon RDS での MariaDB のファイルサイズ制限

MariaDB DB インスタンスの場合、InnoDB file-per-table テーブルスペースを使用するとき、テーブルのサイズは最大 16 TB です。また、システムのテーブルスペースも最大 16 TB に制限されています。InnoDB file-per-table テーブルスペース (各テーブルが独自のテーブルスペースに存在) が、デフォルトで MariaDB DB インスタンスに設定されます。この制限は MariaDB DB インスタンスの最大ストレージ制限とは関係ありません。ストレージの制限の詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。

InnoDB file-per-table テーブルスペースの使用は、アプリケーションにより長所と短所があります。アプリケーションに最適な方法を判断するには、MySQL ドキュメントの「File-Per-Table テーブルスペース」を参照してください。

テーブルを最大ファイルサイズまで拡張可能にすることはお勧めしません。一般的に望ましいのは、データを小さなテーブルにパーティショニングすることです。これにより、パフォーマンスと復旧時間が改善される可能性があります。

大きなテーブルを小さなテーブルに分ける方法の 1 つはパーティション化です。パーティション化では、指定したルールに基づいて、大きなテーブルの各部分を個別のファイルに分散します。例えば、トランザクションを日付ごとに保存する場合、パーティション化を使用して古いトランザクションを別々のファイルに分散させるパーティションルールを作成できます。また、定期的に、アプリケーションですぐに使用する必要のない履歴トランザクションデータをアーカイブできます。詳細については、MySQL ドキュメントの「Partitioning」を参照してください。

テーブルのファイルサイズを確認するには

次の SQL コマンドを使用して、パーティション化の対象になる過度に大きなテーブルがあるか判断します。テーブル統計を更新するには、各テーブルに ANALYZE TABLE コマンドを発行します。詳細については、MySQL ドキュメントの「ANALYZE TABLE 構文」を参照してください。

SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)", DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

InnoDB file-per-table テーブルスペースを有効にするには

  • InnoDB file-per-table テーブルスペースを有効にするには、DB インスタンスのパラメータグループで innodb_file_per_table パラメータを 1 に設定します。

InnoDB file-per-table テーブルスペースを無効にするには

  • InnoDB file-per-table テーブルスペースを無効にするには、DB インスタンスのパラメータグループで innodb_file_per_table パラメータを 0 に設定します。

パラメータグループの更新については、「パラメータグループを使用する」を参照してください。

InnoDB file-per-table テーブルスペースを有効または無効にした場合は、ALTER TABLE コマンドを発行できます。このコマンドを使用して、テーブルをグローバルテーブルスペースからテーブル独自のテーブルスペースに移動できます。または、テーブルを独自のテーブルスペースからグローバルテーブルスペースに移動できます。次に例を示します。

ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Amazon RDS での MariaDB のセキュリティ

MariaDB DB インスタンスのセキュリティは以下の 3 つのレベルで管理されます。

  • AWS Identity and Access Management では、どのユーザーが DB インスタンスに対して Amazon RDS の管理アクションを実行できるかを制御します。IAM 認証情報を使用して AWS に接続している場合、IAM アカウントには、Amazon RDS の管理オペレーションを実行するためのアクセス許可を付与する IAM ポリシーが必要です。詳細については、「Amazon RDS での Identity and Access Management」を参照してください。

  • DB インスタンスを作成するときは、VPC セキュリティグループまたは DB セキュリティグループのいずれかを使用して、どのデバイスまたは Amazon EC2 インスタンスが DB インスタンスのエンドポイントとポートへの接続を開くことができるかを制御します。これらの接続は、Secure Sockets Layer (SSL) を使用して作成できます。さらに、会社のファイアウォールルールでも、社内のどのデバイスが DB インスタンスへの接続を開くことができるかを制御できます。

  • MariaDB DB インスタンスへの接続が開かれたら、ログイン認証とアクセス許可は MariaDB のスタンドアロンインスタンスの場合と同じ方法で適用されます。CREATE USERRENAME USERGRANTREVOKESET PASSWORD などのコマンドは、スタンドアロンデータベースの場合と同じ方法で、データベーススキーマテーブルを直接変更します。

Amazon RDS DB インスタンスを作成すると、マスターユーザーには以下のデフォルト権限が付与されます。

  • alter

  • alter routine

  • create

  • create routine

  • create temporary tables

  • create user

  • create view

  • delete

  • drop

  • event

  • execute

  • grant option

  • index

  • insert

  • lock tables

  • process

  • references

  • reload

    この権限は MariaDB DB インスタンスに限定されます。また、FLUSH LOGS または FLUSH TABLES WITH READ LOCK 操作へのアクセスは許可されません。

  • replication client

  • replication slave

  • select

  • show databases

  • show view

  • trigger

  • update

これらの権限の詳細については、MariaDB ドキュメントの「User Account Management」を参照してください。

注記

DB インスタンスのマスターユーザーを削除することはできますが、お勧めはしません。マスターユーザーを再作成するには、ModifyDBInstance API または modify-db-instance AWS CLI を使用して、新しいマスターユーザーのパスワードを該当するパラメータで指定します。インスタンスに既存のマスターユーザーがない場合、指定したパスワードを使用してマスターユーザーが作成されます。

各 DB インスタンスに管理サービスを提供するために、DB インスタンスの作成時に rdsadmin ユーザーが作成されます。rdsadmin アカウントの権限をドロップ、名前変更、パスワード変更、または変更しようとするとエラーになります。

DB インスタンスの管理を可能にするために、スタンダード的なコマンド killkill_query の使用は制限されています。Amazon RDS コマンド mysql.rds_killmysql.rds_kill_querymysql.rds_kill_query_id が MariaDB と MySQL 用に用意されており、DB インスタンスのユーザーセッションやクエリを終了できます。

MariaDB DB インスタンスで SSL を使用する

Amazon RDS では、MariaDB データベースエンジンを実行する DB インスタンスとの Secure Sockets Layer (SSL) 接続がサポートされています。MariaDB は、セキュアな接続に OpenSSL を使用します。

Amazon RDS によって、Amazon RDS によるインスタンスのプロビジョニング時、SSL 証明書が作成され、DB インスタンスにインストールされます。これらの証明書は認証局によって署名されます。SSL 証明書には、なりすまし攻撃から保護するために、SSL 証明書の共通名 (CN) として DB インスタンスのエンドポイントが含まれています。

証明書のダウンロードについては、SSL/TLS を使用した DB インスタンスへの接続の暗号化 を参照してください。

Amazon RDS for MariaDB は、Transport Layer Security (TLS) バージョン 1.0、1.1、1.2、および 1.3 をサポートしています。次の表は、MySQL バージョンの TLS サポートを示しています。

MariaDB バージョン TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3

MariaDB 10.6

サポート対象

サポート対象

サポート対象

サポート対象

MariaDB 10.5

サポート対象

サポート対象

サポート対象

サポート対象

MariaDB 10.4

サポート対象

サポート対象

サポート対象

サポート対象

MariaDB 10.3

サポート対象

サポート対象

サポート対象

サポート対象

MariaDB 10.2

サポート対象

サポート対象

サポート対象

サポート対象

重要

MySQL 5.7 バージョン、MySQL 8.0 バージョン、または MariaDB バージョンを使用している場合は、mysql クライアントプログラムのパラメータが若干異なります。

使用しているバージョンを確認するには、--version オプションを指定しながら mysql コマンドを実行します。次の例の出力では、MariaDB のクライアントプログラムが使用されていることが確認できます。

$ mysql --version mysql Ver 15.1 Distrib 10.5.9-MariaDB, for osx10.15 (x86_64) using readline 5.1

Amazon Linux、CentOS、SUSE、Debianなど、ほとんどのLinux ディストリビューションでは、MySQL をMariaDB に置き換えており、mysql バージョンは MariaDB と同じものを使用しています。

デフォルトの mysql クライアントを使用して接続を暗号化するには、以下の例のように、--ssl-ca パラメータを使用して mysql クライアントを起動し、公開鍵を参照します。

次の例は、MySQL 5.7 以降で --ssl-ca パラメータを使用しながら、クライアントを起動する方法を示しています。

mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=[full path]global-bundle.pem --ssl-mode=REQUIRED

次の例は、MariaDB で --ssl-ca パラメータを使用しながら、クライアントを起動する方法を示しています。

mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=[full path]global-bundle.pem --ssl

証明書バンドルのダウンロードについては、「SSL/TLS を使用した DB インスタンスへの接続の暗号化」 を参照してください。

特定のユーザーアカウントに対して SSL 接続を要求できます。例えば、MariaDB バージョンに応じて以下のいずれかのステートメントを使用し、ユーザーアカウント encrypted_user で SSL 接続を要求できます。

次のステートメントを使用します。

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

MariaDB による SSL 接続の詳細については、MariaDB ドキュメントの「SSL の概要」を参照してください。

キャッシュウォームアップ

InnoDB キャッシュウォームアップでは、DB インスタンスがシャットダウンされたときのバッファプールの最新の状態を保存し、DB インスタンスが起動されたときに保存された情報からバッファプールを再ロードすることによって、MariaDB DB インスタンスのパフォーマンスを向上させることができます。このアプローチにより、通常のデータベースの使用からバッファプールを「ウォームアップする」必要がなくなり、既知の一般的なクエリのページを使用してバッファプールを事前にロードします。キャッシュウォームアップの詳細については、MariaDB ドキュメントの「バッファプールのダンプと復元」を参照してください。

MariaDB 10.2 以上の DB インスタンスでは、キャッシュウォームアップはデフォルトで有効になっています。有効にするには、DB インスタンスのパラメータグループで innodb_buffer_pool_dump_at_shutdown および innodb_buffer_pool_load_at_startup パラメータを 1 に設定します。パラメータグループのこれらのパラメータ値を変更すると、パラメータグループを使用するすべての MariaDB DB インスタンスに影響します。特定の MariaDB DB インスタンスの キャッシュウォームアップを有効にするには、それらの DB インスタンスの新しいパラメータグループを作成することが必要になる場合があります。パラメータグループについては、「パラメータグループを使用する」を参照してください。

キャッシュウォームアップは、主に、スタンダードストレージを使用する DB インスタンスにパフォーマンス上のメリットをもたらします。PIOPS ストレージを使用する場合、一般的に大きなパフォーマンス上のメリットは見られません。

重要

フェイルオーバー時など、MariaDB DB インスタンスが正常にシャットダウンしなかった場合、バッファプールの状態はディスクに保存されません。この場合、DB インスタンスが再開されるときに、MariaDB は利用可能なバッファプールファイルをロードします。特に害はありませんが、復元済みバッファプールは、再起動前のバッファプールの最新の状態を反映していない可能性があります。スタートアップ時に キャッシュをウォームアップするために、バッファプールの最新の状態を利用できるように、定期的に「オンデマンド」でバッファプールをダンプすることをお勧めします。バッファプールをオンデマンドでダンプまたはロードできます。

自動で定期的にバッファプールをダンプするイベントを作成できます。例えば、次のステートメントは、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();

詳細については、MariaDB のドキュメントの「イベント」を参照してください。

オンデマンドでのバッファプールのダンプとロード

次のストアドプロシージャを使用して、 キャッシュをオンデマンドで格納しロードできます。

MariaDB のデータベースパラメータ

デフォルトでは、MariaDB DB インスタンスは MariaDB データベースに固有の DB パラメータグループを使用します。このパラメータグループには、MySQL データベースエンジンの Amazon RDS DB パラメータグループに含まれるいくつかのパラメータがありますが、すべてのパラメータがあるわけではありません。また、いくつかの新しい MariaDB 固有のパラメータも含まれます。RDS for MariaDB DB エンジンで使用できるパラメータの詳細については、「MariaDB のパラメータ」を参照してください。

MariaDB の一般的な DBA タスク

セッションやクエリの終了、レプリケーションエラーのスキップ、InnoDB テーブルスペースを使用したクラッシュリカバリ時間の短縮、グルーバルなステータス履歴の管理は、MariaDB DB インスタンスで実行する一般的な DBA タスクです。「MySQL DB インスタンスの一般的な DBA タスク」で説明されているように、これらのタスクは、MySQL DB インスタンスの場合と同様に処理できます。このドキュメントのクラッシュ回復手順では、MySQL InnoDB エンジンが参照されていますが、InnoDB を実行している MariaDB DB インスタンスにも適用できます。

MariaDB DB インスタンスのローカルタイムゾーン

デフォルトでは、MariaDB DB インスタンスのタイムゾーンは協定世界時 (UTC) です。代わりに、DB インスタンスのタイムゾーンをアプリケーションのローカルタイムゾーンに設定できます。

DB インスタンスのローカルタイムゾーンを設定するには、DB インスタンスのパラメータグループの time_zone パラメータを、このセクションで後述するサポートされている値のいずれかに設定します。パラメータグループの time_zone パラメータを設定すると、そのパラメータグループを使用しているすべての DB インスタンスとリードレプリカは、新しいローカルタイムゾーンを使用するように変更されます。パラメータグループのパラメータの設定については、「パラメータグループを使用する」を参照してください。

ローカルタイムゾーンを設定した後、データベースへのすべての新しい接続にその変更が反映されます。ローカルタイムゾーンを変更するときにデータベースへの接続を開いている場合、その接続を閉じて新しい接続を開くまで、ローカルタイムゾーンは更新されません。

DB インスタンスとそのリードレプリカには異なるローカルタイムゾーンを設定できます。そのためには、DB インスタンスとレプリカに異なるパラメータグループを使用し、各パラメータグループの time_zone パラメータを異なるローカルタイムゾーンに設定します。

AWS リージョン間のレプリケーションを実行する場合は、ソース DB インスタンスとリードレプリカに異なるパラメータグループ (パラメータグループは AWS リージョンに固有のもの) を使用します。各インスタンスに同じローカルタイムゾーンを使用するには、インスタンスとリードレプリカのパラメータグループの time_zone パラメータを設定する必要があります。

DB スナップショットから DB インスタンスを復元すると、ローカルタイムゾーンが UTC に設定されます。復元が完了したら、タイムゾーンをローカルタイムゾーンに更新できます。DB インスタンスをある時点まで復元する場合、復元された DB インスタンスのローカルタイムゾーンは、復元された DB インスタンスのパラメータグループに設定されているタイムゾーンです。

ローカルタイムゾーンは以下のいずれかの値に設定できます。

Africa/Cairo

Asia/Riyadh

Africa/Casablanca

Asia/Seoul

Africa/Harare

Asia/Shanghai

Africa/Monrovia

Asia/Singapore

Africa/Nairobi

Asia/Taipei

Africa/Tripoli

Asia/Tehran

Africa/Windhoek

Asia/Tokyo

America/Araguaina

Asia/Ulaanbaatar

America/Asuncion

Asia/Vladivostok

America/Bogota

Asia/Yakutsk

America/Buenos_Aires

Asia/Yerevan

America/Caracas

Atlantic/Azores

America/Chihuahua

Australia/Adelaide

America/Cuiaba

Australia/Brisbane

America/Denver

Australia/Darwin

America/Fortaleza

Australia/Hobart

America/Guatemala

Australia/Perth

America/Halifax

Australia/Sydney

America/Manaus

Brazil/East

America/Matamoros

Canada/Newfoundland

America/Monterrey

Canada/Saskatchewan

America/Montevideo

Canada/Yukon

America/Phoenix

Europe/Amsterdam

America/Santiago

Europe/Athens

America/Tijuana

Europe/Dublin

Asia/Amman

Europe/Helsinki

Asia/Ashgabat

Europe/Istanbul

Asia/Baghdad

Europe/Kaliningrad

Asia/Baku

Europe/Moscow

Asia/Bangkok

Europe/Paris

Asia/Beirut

Europe/Prague

Asia/Calcutta

Europe/Sarajevo

Asia/Damascus

Pacific/Auckland

Asia/Dhaka

Pacific/Fiji

Asia/Irkutsk

Pacific/Guam

Asia/Jerusalem

Pacific/Honolulu

Asia/Kabul

Pacific/Samoa

Asia/Karachi

US/Alaska

Asia/Kathmandu

US/Central

Asia/Krasnoyarsk

US/Eastern

Asia/Magadan

US/East-Indiana

Asia/Muscat

US/Pacific

Asia/Novosibirsk

UTC

InnoDB 予約語

InnoDB は MariaDB の RDS の予約語です。MariaDB データベースにこの名前を使用することはできません。

Amazon RDS for MariaDB の非推奨バージョン

Amazon RDS for MariaDB バージョン 10.0 および 10.1 は非推奨です。

MariaDB の Amazon RDS 廃止ポリシーについては、「Amazon RDS​ についてのよくある質問」を参照してください。