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 クラスターのバイナリログトランザクション圧縮を設定するには、ワークロードの要件に合わせて関連するクラスターパラメータ設定を変更します。
バイナリログトランザクション圧縮を有効にするには
-
DB クラスターパラメータグループを変更して、
binlog_transaction_compression
パラメータを1
に設定します。 -
(オプション) ワークロードの要件とリソースの可用性に基づいて、
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
オペレーションを使用します。