Amazon RDS Optimized Writes for MariaDB による書き込みパフォーマンスの向上 - Amazon Relational Database Service

Amazon RDS Optimized Writes for MariaDB による書き込みパフォーマンスの向上

RDS Optimized Writes for MariaDB によって、書き込みトランザクションのパフォーマンスを向上させることができます。RDS for MariaDB データベースで RDS Optimized Writes を使用すると、書き込みトランザクションのスループットが最大 2 倍向上します。

RDS Optimized Writes の概要

RDS Optimized Writes を有効にすると、RDS for MariaDB データベースは、データを耐久性のあるストレージにフラッシュするときに、二重書き込みバッファを必要とせずに一度だけ書き込みます。データベースは、ACID プロパティ保護機能の提供を継続することで、信頼性の高いデータベーストランザクションを実現するとともに、パフォーマンスを向上させます。

MariaDB のようなリレーショナルデータベースには、原子性、一貫性、分離性、耐久性という ACID 特性があり、信頼性の高いデータベーストランザクションを実現できます。これらの特性を発揮するために、MariaDB は部分的なページ書き込みエラーを防ぐ二重書き込みバッファと呼ばれるデータストレージ領域を使用しています。これらのエラーは、データベースがページを更新中に、停電時などのハードウェア障害が発生した場合に発生します。MariaDB データベースは、部分的なページ書き込みを検出し、二重書き込みバッファ内のページのコピーによって回復できます。この手法で保護が可能ですが、余分な書き込みオペレーションも必要になります。MariaDB の二重書き込みバッファの詳細については、MariaDB ドキュメントの「InnoDB Doublewrite Buffer」(InnoDB 二重書き込みバッファ) を参照してください。

RDS Optimized Writes を有効にすると、RDS for MariaDB データベースは、データを耐久性のあるストレージにフラッシュするときに、二重書き込みバッファを使用せずに一度だけ書き込みます。RDS Optimized Writes は、RDS for MariaDB データベースで書き込みの多いワークロードを実行する場合に便利です。書き込みワークロードの高いデータベースの例としては、デジタル決済、金融取引、ゲームアプリケーションに対応したデータベースなどがあります。

これらのデータベースは、AWS Nitro System を使用する DB インスタンスクラスで実行されます。これらのシステムのハードウェア構成により、データベースは 16 KiB ページを 1 ステップで確実かつ永続的にデータファイルに直接書き込むことができます。AWS Nitro System により RDS Optimized Writes が可能になります。

新しいデータベースパラメータ rds.optimized_writes を設定して、RDS for MariaDB データベースの RDS Optimized Writes 機能を制御できます。RDS for MariaDB の場合、次のバージョンの DB パラメータグループのこのパラメータにアクセスします。

  • 10.11.4 以降の 10.11 バージョン

  • 10.6.10 以降の 10.6 バージョン

次の値を使用してパラメータを設定します。

  • AUTO – データベースが RDS Optimized Writes をサポートしている場合は有効にします。データベースが RDS Optimized Writes をサポートしていない場合は無効にします。この設定はデフォルトです。

  • OFF – データベースが RDS Optimized Writes をサポートしている場合でも無効にします。

RDS Optimized Writes を使用するように設定されている RDS for MariaDB データベースを、この機能をサポートしていない DB インスタンスクラスに移行した場合、RDS はそのデータベースの RDS Optimized Writes を自動的に無効にします。

RDS Optimized Writes を無効にすると、データベースは MariaDB の二重書き込みバッファを使用します。

RDS for MariaDB データベースが RDS Optimized Writes を使用しているかどうかを判断するには、データベースの innodb_doublewrite パラメータの現在の値を表示します。データベースが RDS Optimized Writes を使用している場合、このパラメータは FALSE (0) に設定されています。

RDS Optimized Writes の使用

RDS コンソール、AWS CLI、または RDS API を使用して RDS for MariaDB データベースを作成すると、RDS Optimized Writes を有効にできます。RDS Optimized Writes は、データベース作成時に、次の条件に両方当てはまる場合、自動的に有効になります。

  • RDS Optimized Writes をサポートする DB エンジンのバージョンと DB インスタンスクラスを指定します。

    • RDS Optimized Writes は、以下の RDS for MariaDB バージョンでサポートされています。

      • 10.11.4 以降の 10.11 バージョン

      • 10.6.10 以降の 10.6 バージョン

      RDS for MariaDB のバージョンの詳細については、「Amazon RDS の MariaDB のバージョン」を参照してください。

    • RDS Optimized Writes は、次の DB インスタンスクラスを使用する RDS for MariaDB データベースでサポートされています。

      • db.m7g

      • db.m6g

      • db.m6gd

      • db.m6i

      • db.m5

      • db.m5d

      • db.r7g

      • db.r6g

      • db.r6gd

      • db.r6i

      • db.r5

      • db.r5b

      • db.r5d

      • db.x2idn

      • db.x2iedn

      DB インスタンスクラスの詳細については、「 DB インスタンスクラス」を参照してください。

      DB インスタンスクラスの可用性は AWS リージョン によって異なります。DB インスタンスクラスが特定の AWS リージョン でサポートされているかどうかを判断するには、「AWS リージョン での DB インスタンスクラスのサポートを決定する」を参照してください。

  • データベースに関連付けられたパラメータグループでは、rds.optimized_writes パラメータが AUTO に設定されます。デフォルトのパラメータグループでは、このパラメータは常に AUTO に設定されます。

RDS Optimized Writes をサポートする DB エンジンバージョンと DB インスタンスクラスを使用し、この機能は使用しない場合は、データベースの作成時に、カスタムパラメータグループを指定します。このパラメータグループで、rds.optimized_writes パラメータを OFF に設定します。その後、データベースで RDS Optimized Writes を使用するには、パラメータを AUTO に設定して有効にすることができます。カスタムパラメータグループの作成とパラメータの設定については、「「パラメータグループを使用する」 」を参照してください。

DB インスタンスの作成については、「Amazon RDS DB インスタンスの作成」を参照してください。

RDS コンソールを使用して RDS for MariaDB データベースを作成すると、RDS Optimized Writes をサポートする DB エンジンバージョンと DB インスタンスクラスをフィルタリングできます。フィルタリングを有効にすると、利用可能な DB エンジンのバージョンと DB インスタンスクラスから選択できるようになります。

RDS Optimized Writes をサポートする DB エンジンバージョンを選択するには、エンジンバージョンをサポートする RDS for MariaDB DB のエンジンバージョンをフィルタリングして、バージョンを選択します。


                        RDS Optimized Writes の DB エンジンバージョンのフィルタリング。

[インスタンスの設定] セクションで、RDS Optimized Writes をサポートする DB インスタンスクラスをフィルタリングして、DB インスタンスクラスを選択します。


                        RDS Optimized Writes の DB インスタンスクラスのフィルタリング。

これらの選択を行った後、要件を満たす他の設定を選択し、コンソールで RDS for MariaDB データベースの作成を完了します。

AWS CLI を使用して DB インスタンスを作成するには、create-db-instance コマンドを使用します。--engine-version--db-instance-class の値が RDS Optimized Writes をサポートしていることを確認してください。また、DB インスタンスに関連付けられたパラメータグループでは、rds.optimized_writes パラメータがAUTO に設定されていることを確認します。この例では、デフォルトパラメータグループを DB インスタンスに関連付けます。

例 RDS Optimized Writes を使用する DB インスタンスの作成

Linux、macOS、Unix の場合:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --engine mariadb \ --engine-version 10.6.10 \ --db-instance-class db.r5b.large \ --manage-master-user-password \ --master-username admin \ --allocated-storage 200

Windows の場合:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --engine mariadb ^ --engine-version 10.6.10 ^ --db-instance-class db.r5b.large ^ --manage-master-user-password ^ --master-username admin ^ --allocated-storage 200

CreateDBInstance オペレーションを使用して、DB インスタンスを作成できます。このオペレーションを使用する際は、EngineVersionDBInstanceClass の値が RDS Optimized Writes をサポートしていることを確認してください。また、DB インスタンスに関連付けられたパラメータグループでは、rds.optimized_writes パラメータがAUTO に設定されていることを確認します。

既存のデータベースで RDS Optimized Writes を有効にする

RDS Optimized Writes を有効にするために既存の RDS for MariaDB データベースを変更するには、サポート対象の DB エンジンバージョンと DB インスタンスクラスでデータベースを作成する必要があります。さらに、必要な基盤となるファイルシステム設定は、リリース前に作成されたデータベースの設定と互換性がないため、データベースは 2023 年 3 月 7 日に RDS Optimized Writes がリリースされたに作成されたものでなければなりません。これらの条件が満たされている場合は、rds.optimized_writes パラメータを AUTO に設定して RDS Optimized Writes を有効にできます。

データベースが、サポートされているエンジンバージョン、インスタンスクラス、またはファイルシステム設定で作成されていない場合、RDS ブルー/グリーンデプロイを使用して、サポートされている設定に移行できます。ブルー/グリーンデプロイを作成して、以下の操作を行います。

  • [グリーンデータベースで Optimized Writes を有効にする] を選択し、RDS Optimized Writes をサポートするエンジンバージョンと DB インスタンスクラスを指定します。サポートされているエンジンバージョンとインスタンスクラスのリストについては、「RDS Optimized Writes の使用」を参照してください。

  • [ストレージ] で、[ストレージファイルシステム設定のアップグレード] を選択します。このオプションは、データベースを互換性のある基本ファイルシステム設定にアップグレードします。

ブルー/グリーンデプロイを作成すると、rds.optimized_writes パラメータが AUTO に設定されている場合、RDS Optimized Writes がグリーン環境で自動的に有効になります。その後、ブルー/グリーンデプロイを切り替えて、グリーン環境を新しい本番環境に昇格できます。

詳細については、「ブルー/グリーンデプロイの作成」を参照してください。

RDS Optimized Writes についての制限事項

RDS for MariaDB データベースをスナップショットから復元する場合、次の条件がすべて当てはまる場合のみ、データベースの RDS Optimized Writes を有効にできます。

  • スナップショットが RDS Optimized Writes をサポートするデータベースから作成された。

  • スナップショットは、RDS Optimized Writes のリリース後に作成されたデータベースから作成されました。

  • スナップショットが RDS Optimized Writes をサポートするデータベースに復元された。

  • 復元されたデータベースは、AUTO に設定された rds.optimized_writes パラメータに関連付けられています。