マルチ AZ DB クラスターの MySQL バイナリログ記録の設定 - Amazon Relational Database Service

マルチ AZ DB クラスターの MySQL バイナリログ記録の設定

Amazon RDS for MySQL マルチ AZ DB クラスターのバイナリログ記録は、レプリケーション、ポイントインタイムリカバリ、監査をサポートするために、すべてのデータベースの変更を記録します。マルチ AZ DB クラスターのバイナリログ記録では、セカンダリノードをプライマリノードと同期し、アベイラビリティーゾーン間のデータ整合性を確保して、シームレスなフェイルオーバーを可能にします。

バイナリログ記録を最適化するために、Amazon RDS ではバイナリログトランザクション圧縮をサポートしています。これにより、バイナリログのストレージ要件が軽減され、レプリケーション効率が向上します。

マルチ AZ DB クラスターのバイナリログトランザクション圧縮

バイナリログトランザクション圧縮では、zstd アルゴリズムを使用して、バイナリログに保存されるトランザクションデータのサイズを縮小します。有効にすると、MySQL データベースエンジンがトランザクションペイロードを 1 つのイベントに圧縮し、I/O とストレージのオーバーヘッドを最小限に抑えます。この機能によって、データベースのパフォーマンスが向上し、バイナリログのサイズが縮小して、マルチ AZ DB クラスターのログを管理およびレプリケートするためのリソースの使用が最適化されます。

Amazon RDS は、以下のパラメータを使用して RDS for MySQL マルチ AZ DB クラスターのバイナリログトランザクション圧縮を提供します。

  • binlog_transaction_compression – 有効にすると (1)、データベースエンジンはトランザクションペイロードを圧縮し、単一のイベントとしてバイナリログに書き込みます。これにより、ストレージの使用量と I/O オーバーヘッドが減少します。このパラメータは、デフォルトでは無効になっています。

  • binlog_transaction_compression_level_zstd – バイナリログトランザクションの zstd 圧縮レベルを設定します。値を大きくすると圧縮率が上がり、ストレージ要件はさらに軽減されますが、圧縮のための CPU とメモリの使用量が増加します。デフォルト値は 3 で、範囲は 1 ~ 22 です。

これらのパラメータを使用して、ワークロードの特性とリソースの可用性に基づいてバイナリログ圧縮を微調整できます。詳細については、MySQL ドキュメントの「Binary Log Transaction Compression」を参照してください。

バイナリログトランザクション圧縮には、主に次の利点があります。

  • 特にトランザクションが大きいワークロードや書き込みボリュームが多いワークロードでは、圧縮によってバイナリログのサイズが小さくなります。

  • バイナリログが小さいほど、ネットワークと I/O のオーバーヘッドが減少し、レプリケーションのパフォーマンスが向上します。

  • binlog_transaction_compression_level_zstd パラメータで、圧縮率とリソース消費のバランスを制御できます。

マルチ AZ DB クラスターのバイナリログトランザクション圧縮の設定

RDS for MySQL マルチ AZ DB クラスターのバイナリログトランザクション圧縮を設定するには、ワークロードの要件に合わせて関連するクラスターパラメータ設定を変更します。

バイナリログトランザクション圧縮を有効にするには
  1. DB クラスターパラメータグループを変更して、binlog_transaction_compression パラメータを 1 に設定します。

  2. (オプション) ワークロードの要件とリソースの可用性に基づいて、binlog_transaction_compression_level_zstd パラメータの値を調整します。

詳細については、「 の DB クラスターパラメータグループのパラメータの変更」を参照してください。

AWS CLI を使用してバイナリログトランザクション圧縮を設定するには、modify-db-cluster-parameter-group コマンドを使用します。

Linux、macOS、Unix の場合:

aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name your-cluster-parameter-group \ --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"

Windows の場合:

aws rds modify-db-cluster-parameter-group ^ --db-cluster-parameter-group-name your-cluster-parameter-group ^ --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"

Amazon RDS API を使用してバイナリログトランザクション圧縮を設定するには、ModifyDBClusterParameterGroup オペレーションを使用します。