

# マルチ AZ DB クラスターの MySQL バイナリログ記録の設定
<a name="USER_Binlog.MultiAZ"></a>

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

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

**Topics**
+ [マルチ AZ DB クラスターのバイナリログトランザクション圧縮](#USER_Binlog.MultiAZ.compression)
+ [マルチ AZ DB クラスターのバイナリログトランザクション圧縮の設定](#USER_Binlog.MultiAZ.configuring)

## マルチ AZ DB クラスターのバイナリログトランザクション圧縮
<a name="USER_Binlog.MultiAZ.compression"></a>

バイナリログトランザクション圧縮では、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](https://dev.mysql.com/doc/refman/8.4/en/binary-log-transaction-compression.html)」を参照してください。

バイナリログトランザクション圧縮には、主に次の利点があります。
+ 特にトランザクションが大きいワークロードや書き込みボリュームが多いワークロードでは、圧縮によってバイナリログのサイズが小さくなります。
+ バイナリログが小さいほど、ネットワークと I/O のオーバーヘッドが減少し、レプリケーションのパフォーマンスが向上します。
+ `binlog_transaction_compression_level_zstd` パラメータで、圧縮率とリソース消費のバランスを制御できます。

## マルチ AZ DB クラスターのバイナリログトランザクション圧縮の設定
<a name="USER_Binlog.MultiAZ.configuring"></a>

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

### コンソール
<a name="USER_Binlog.MultiAZ.configuring-console"></a>

**バイナリログトランザクション圧縮を有効にするには**

1. DB クラスターパラメータグループを変更して、`binlog_transaction_compression` パラメータを `1` に設定します。

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

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

### AWS CLI
<a name="USER_Binlog.MultiAZ.configuring-cli"></a>

AWS CLI を使用してバイナリログトランザクション圧縮を設定するには、[modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) コマンドを使用します。

**Example**  
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"
```

### RDS API
<a name="USER_Binlog.MultiAZ.configuring-api"></a>

Amazon RDS API を使用してバイナリログトランザクション圧縮を設定するには、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html) オペレーションを使用します。