専用ログボリューム (DLV) を使用する - Amazon Relational Database Service

専用ログボリューム (DLV) を使用する

プロビジョンド IOPS (PIOPS) ストレージを使用する DB インスタンスには、専用のログボリューム (DLV) を使用できます。DLV は、PostgreSQL データベーストランザクションログと MySQL または MariaDB の REDO ログとバイナリログを、データベーステーブルが配置されたボリュームとは別のストレージボリュームに移動します。DLV を使用すると、トランザクション書き込みロギングの効率と一貫性が向上します。DLV は、割り当てられたストレージの容量が大きいデータベース、1 秒あたりの I/O (IOPS) 要件が高い、または遅延の影響を受けやすいワークロードがあるデータベースに最適です。

DLV は PIOPS ストレージ (io1 および io2 の Block Express) でサポートされており、1,000 GiB 固定サイズと 3,000 のプロビジョンド IOPS で作成されます。

Amazon RDS は、次のバージョンについて、すべての AWS リージョン の DLV でサポートします。

  • MariaDB 10.6.7 以上の 10 バージョン

  • MySQL 8.0.28 以上の 8 バージョン

  • PostgreSQL 13.10 以上の 13 バージョン、14.7 以上の 14 バージョン、15.2 以上の 15 バージョン

RDS は、マルチ AZ 配置で DLV をサポートします。マルチ AZ インスタンスを変更または作成すると、プライマリとセカンダリの両方に DLV が作成されます。

RDS はリードレプリカによる DLV をサポートします。プライマリ DB インスタンスで DLV が有効になっている場合、DLV を有効にした後に作成されたすべてのリードレプリカにも DLV が設定されます。DLV への切り替え前に作成されたリードレプリカは、明示的に変更されない限り、有効になりません。DLV を有効にする前にプライマリインスタンスにアタッチされていたすべてのリードレプリカも、DLV を使用するように手動で変更することが推奨されます。

注記

5 TiB 以上のデータベース設定には、専用のログボリュームが推奨されます。

各データベースエンジンで使用できる割り当て済みストレージ、プロビジョンド IOPS、ストレージのスループットの範囲については、「プロビジョンド IOPS SSD ストレージ」を参照してください。

DLV を有効または無効にする際の考慮事項

DLV の有効化と無効化には時間がかかり、ダウンタイムが発生する可能性があります。このプロセスでは、有効化時にすべてのトランザクションログ、または REDO ログとバイナリログ (データベースエンジンによって異なります) を新しいボリュームにコピーするか、無効化時に元のストレージに戻します。このオペレーションの期間は、いくつかの要因の影響を受けます。

  • トランザクションログの数:

    • トランザクションが多いデータベースが大きいほどログが生成され、コピーにかかる時間が長くなります。

    • レプリケーションスロットが非アクティブの場合、またはレプリケーションが遅延している場合、トランザクションログがプライマリ DB インスタンスに蓄積され、コピーに必要な時間が長くなります。レプリケーションが最新であることを確認し、不要なスロットをすべて削除します。

  • ストレージ設定:

    • DB インスタンスの EBS 帯域幅 – 帯域幅が大きいほど、データ転送が速くなります。

    • プロビジョンド IOPS の数 – 1 秒あたりの入出力オペレーション (IOPS) が増えると、コピープロセスが高速化されます。

  • データベースアクティビティ – 設定中のデータベースアクティビティのレベルが高いと、プロセスが遅くなる可能性があります。

ダウンタイムを最小限に抑えるために、アクティビティが少ない期間やメンテナンス期間中に計画とスケジュールを設定することをお勧めします。

DB インスタンス作成時に DLV を有効にする

DLV を有効にした DB インスタンスを作成するには、AWS Management Console、AWS CLI、または RDS API を使用できます。

新しい DB インスタンスで DLV を有効にするには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. [データベースの作成] を選択します。

  3. [DB インスタンスの作成] ページで、DLV をサポートする DB エンジンを選択します。

  4. ストレージ:

    1. [プロビジョンド IOPS SSD (io1)] または [プロビジョンド IOPS SSD (io2)] を選択します。

    2. 使用する [割り当て済みストレージ][プロビジョンド IOPS] を入力します。

    3. [専用ログボリューム] を展開して、[専用ログボリュームを有効にする] を選択します。

    新しい DB インスタンスで DLV を有効にする
  5. 必要に応じて、その他の設定を選択します。

  6. [データベースの作成] を選択します。

データベースが作成されると、専用ログボリュームの値がデータベースの詳細ページの [設定] タブに表示されます。

プロビジョンド IOPS ストレージを使用して DB インスタンスを作成する際に DLV を有効にするには、AWS CLI コマンド create-db-instance を使用します。以下のパラメータを設定します。

  • --dedicated-log-volume – 専用ログボリュームを有効にします。

  • --storage-type – プロビジョンド IOPS には io1 または io2 を指定します。

  • --allocated-storage - DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。

  • --iops – DB インスタンスのプロビジョンド IOPS の量 (1 秒あたりの I/O オペレーション数単位)。

プロビジョンド IOPS ストレージを使用して DB インスタンスを作成する際に DLV を有効または無効にするには、Amazon RDS API オペレーション CreateDBInstance を使用します。以下のパラメータを設定します。

  • DedicatedLogVolumetrue に設定して、専用のログボリュームを有効にします。

  • StorageType – プロビジョンド IOPS には io1 または io2 を指定します。

  • AllocatedStorage - DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。

  • Iops – この DB インスタンスの新しい IOPS レート (1 秒あたりの I/O オペレーション数単位)。

既存の DB インスタンスで DLV を有効にする

DB インスタンスを更新して DLV を有効にするには、AWS Management Console、AWS CLI、または RDS API を使用できます。

DB インスタンスの DLV 設定を変更したら、DB インスタンスを再起動する必要があります。

既存の DB インスタンスで DLV を有効にするには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

    DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] に、結果をフィルターするために使用する Amazon RDS のテキスト文字列を入力します。その文字列を名前に含む DB インスタンスのみが表示されます。

  3. 変更するプロビジョンド IOPS ストレージを使用する DB インスタンスを選択します。

  4. Modify を選択します。

  5. [DB インスタンスを変更] ページで、以下を実行します。

    1. [ストレージ] では、[専用ログボリューム] を展開して、[専用ログボリュームを有効にする] を選択します。

  6. [Continue] (続行) をクリックします。

  7. DB インスタンスへの変更を直ちに適用するには、[すぐに適用] をクリックします。または、[次に予定されるメンテナンスウィンドウ中に適用します] を選択して、次のメンテナンスウィンドウ中に変更を適用します。

  8. 変更するパラメータを確認し、[Modify DB instance] (DB インスタンスの変更) を選択して変更を完了します。

専用ログボリュームの新しい値がデータベースの詳細ページの [設定] タブに表示されます。

プロビジョンド IOPS ストレージを使用して既存の DB インスタンスで DLV を有効または無効にするには、AWS CLI コマンド modify-db-instance を使用します。以下のパラメータを設定します。

  • --dedicated-log-volume – 専用ログボリュームを有効にします。

    --no-dedicated-log-volume (デフォルト) を使用して、専用ログボリュームを無効にします。

  • --apply-immediately--apply-immediately を使用して、すぐに変更を適用します。

    --no-apply-immediately (デフォルト) を使用して、次のメンテナンスウィンドウ中に変更を適用します。

プロビジョンド IOPS ストレージを使用して既存の DB インスタンスで DLV を有効または無効にするには、Amazon RDS API オペレーション ModifyDBInstance を使用します。以下のパラメータを設定します。

  • DedicatedLogVolume - このオプションを true に設定して、専用ログボリュームを有効にします。

    このオプションを false に設定して、専用ログボリュームを無効にします。これは、デフォルト値です。

  • ApplyImmediately – このオプションを True に設定して、すぐに変更を適用します。

    または False (デフォルト) を設定して、次のメンテナンスウィンドウ中にストレージの変更を適用します。

DLV ストレージのモニタリング

CloudWatch の FreeStorageSpaceLogVolume メトリクスを使用して、DLV ストレージの使用状況をモニタリングできます。

RDS for PostgreSQL の次のクエリを使用して、トランザクションログが占めるサイズを確認することができます。

SELECT pg_size_pretty(COALESCE(sum(size), 0)) AS total_wal_generated_size FROM pg_catalog.pg_ls_waldir();

DLV のストレージが不足すると、DB インスタンスは storage-full 状態になり、ダウンタイムが発生します。