ApsaraDB RDS for MySQL は、ストレージレイヤーで実際のデータとシステムログを含むデータを圧縮するために使用できるストレージ圧縮機能を提供します。これにより、ユニットストレージコストが削減されます。
機能の説明
デフォルトでは、ストレージ圧縮機能は無効になっています。ビジネス要件に基づいて、ApsaraDB RDS for MySQL インスタンスの機能を有効にすることができます。ストレージ圧縮機能を有効にすると、ストレージコストを最大 50% 削減できます。理論的には、ストレージ圧縮機能を有効にした後、書き込むことができるデータ量は、機能を有効にする前に書き込むことができるデータ量の最大 2.5 倍になります。たとえば、RDS インスタンスのストレージ容量が 100 GB の場合、ストレージ圧縮機能を有効にする前は 100 GB のデータを書き込むことができ、機能を有効にした後は最大 250 GB のデータを書き込むことができます。実際に書き込むことができるデータ量は、ビジネス要件によって異なります。
ストレージ圧縮機能は、データストレージのテーブルデータや、トランザクションログファイルなどのログストレージのファイルに適しています。ストレージ圧縮機能を使用して大量のデータを圧縮し、ディスクストレージを節約し、間接的にデータストレージコストを削減できます。データには、日々の運用で生成されるビジネスデータ、またはリカバリと監査に使用されるログが含まれます。
ストレージ圧縮機能を有効にしても、インスタンスのパフォーマンスへの影響は最小限です。詳細については、「付録:ストレージ圧縮パフォーマンスのストレステスト」をご参照ください。
実装
ApsaraDB RDS for MySQL は、Alibaba Cloud によって開発されたインテリジェントで透過的な圧縮ディスクと、組み込みの専用チップを活用し、zlib のレベル 6 と同等の圧縮レベルの圧縮アルゴリズムを使用して、物理ディスクのデータをリアルタイムで圧縮および展開します。データの圧縮および展開プロセスは完全に透過的で、ユーザーアプリケーションには認識されません。これにより、互換性の問題を防ぎます。透過的な圧縮により、ディスク内でのデータ移行が削減され、ディスク固有の書き込み増幅が効果的に削減されます。従来のソフト圧縮と比較して、透過的な圧縮はより効率的で、パフォーマンスに大きな影響を与えることなく、データストレージの単価を削減します。
課金ルール
ストレージ圧縮機能を有効にすると、ストレージ容量の課金ルールとストレージの無料枠が変更されます。
データが圧縮された後の物理データ量に基づいてストレージ料金が請求されます。
ストレージ容量料金
ストレージ圧縮機能を有効にすると、より多くのデータを書き込むことができます。ストレージ容量の料金を計算するために使用される式が変わります。次の表に、式を示します。
ストレージ圧縮ステータス | ストレージ容量料金の計算式 |
無効 | ストレージ容量の単価 × ストレージ容量 × 使用期間 |
有効 | 1.25 × ストレージ容量の単価 × ストレージ容量 × 使用期間 |
ストレージ圧縮機能を有効にする場合は、差額を支払う必要があります。 ApsaraDB RDS コンソールの料金が優先されます。サブスクリプション RDS インスタンスのストレージ圧縮機能を有効にする注文を行う場合、注文は 構成アップグレード 注文です。従量課金制 RDS インスタンスの機能を有効にする注文を行う場合、注文は 仕様変更 注文です。課金ロジックは、仕様変更 の課金ロジックと同じです。
バックアップストレージの無料枠
RDS インスタンスのバックアップファイルの合計サイズがバックアップストレージの無料枠を超えない場合、料金は発生しません。詳細については、「バックアップファイルのサイズを表示および管理する」をご参照ください。合計サイズが無料枠を超える場合は、超過バックアップストレージに対して時間単位の料金が発生します。時間単位の料金は、次の式を使用して計算されます。バックアップストレージの時間単位料金 = (バックアップファイルの合計サイズ - 無料枠) × バックアップストレージの単価。
定時バックアップとアーカイブバックアップの課金ルールの詳細については、「課金対象項目」をご参照ください。定時バックアップファイルとアーカイブバックアップファイルを保存するために使用されるリソースの単価の詳細については、「バックアップストレージ料金」をご参照ください。
ストレージタイプ | ストレージ圧縮ステータス | 無料枠 | 説明 |
Premium エンタープライズSSD (ESSD) | 無効 | 無料枠は、RDS インスタンス用に購入したストレージ容量の 200% に相当します。 | 無料枠を表示するには、RDS インスタンスの [基本情報] ページの [使用統計] セクションにある [バックアップの使用量] パラメータを確認できます。バックアップの使用量パラメータは、論理データの実際の量を示します。 |
有効 | 無料枠は、RDS インスタンス用に購入したストレージ容量の 400% に相当します。 | ||
Premium ローカル SSD | 無効 | 無料枠は、RDS インスタンス用に購入したストレージ容量の 50% に相当します。 | |
有効 | 無料枠は、RDS インスタンス用に購入したストレージ容量の 100% に相当します。 |
データベースのバックアップオブジェクトは、圧縮前のユーザーデータを参照します。
前提条件
RDS インスタンスは、次の要件を満たしています。
RDS インスタンスは、MySQL 8.0、MySQL 5.7、または MySQL 5.6 を実行しています。
RDS インスタンスは、RDS 高可用性エディションまたは RDS クラスタエディションを実行しています。
RDS インスタンスは、専用インスタンスタイプを使用しています。
RDS インスタンスは、Premium ESSD または Premium ローカル SSD を使用しています。
RDS インスタンスが Premium ESSD を使用している場合、ストレージ容量は 1,000 ~ 25,000 GB です。 RDS インスタンスが Premium ローカル SSD を使用している場合、ストレージ容量は 1,000 ~ 2,400 GB です。
RDS インスタンスは、サブスクリプションまたは従量課金制の課金方法を使用しています。
制限事項
ストレージ圧縮機能は、有効にした後、無効にすることはできません。
RDS インスタンスのストレージ圧縮機能を有効にすると、仕様変更 に次の 制限 が課せられます。
RDS インスタンスが専用インスタンスタイプを使用している場合、インスタンスタイプを汎用インスタンスタイプに変更することはできません。
RDS インスタンスが従量課金制を使用している場合、課金方法をサーバーレスに変更することはできません。
RDS インスタンスが Premium ローカル SSD を使用している場合、ストレージタイプをクラウドディスクに変更することはできません。
ストレージ容量を 1,000 GB より小さい値に減らすことはできません。
RDS インスタンスがクラウドディスクを使用している場合、エラスティックアップグレードを実行することはできません。
読み取り専用 RDS インスタンス:プライマリ RDS インスタンスのストレージ圧縮機能を有効にする前に、読み取り専用 RDS インスタンスの機能を有効にする必要があります。詳細については、「読み取り専用 ApsaraDB for MySQL インスタンス」をご参照ください。プライマリ RDS インスタンスのストレージ圧縮機能を有効にすると、プライマリ RDS インスタンスに接続されている新しい読み取り専用 RDS インスタンスのストレージ圧縮機能が自動的に有効になります。
バックアップとリストア:
データベースのバックアップオブジェクトは、圧縮前のユーザーデータを参照します。
ストレージ圧縮機能を有効にした後、バックアップデータを圧縮することはできません。ただし、バックアップファイルからリストアされた RDS インスタンスのストレージ圧縮機能を有効にすることはできます。詳細については、「バックアップとリストア」をご参照ください。
ごみ箱:元の RDS インスタンスのストレージ圧縮機能を有効にすると、ごみ箱からリストアされた RDS インスタンスのストレージ圧縮機能も有効になります。詳細については、「ごみ箱機能を使用する」をご参照ください。
ストレージ圧縮機能を有効にする
ApsaraDB RDS コンソールにログインし、インスタンス ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンス ID をクリックします。
[基本情報] ページの [構成情報] セクションで、[ストレージ圧縮を有効にする] をクリックします。
説明ボタンが表示されない場合は、RDS インスタンスが 前提条件 で説明されている要件を満たしているかどうかを確認する必要があります。
[ストレージ圧縮を有効にする] ダイアログボックスで、使用上の注意を読んで確認し、[OK] をクリックします。
[OK] をクリックして、ストレージ圧縮機能を有効にします。 RDS インスタンスのステータスが [アップグレード中/ダウングレード中] に変わります。構成情報セクションのストレージ圧縮機能に [有効] と表示されている場合、ストレージ圧縮機能は有効になっています。
FAQ
ストレージ圧縮機能を有効にした後、ディスク容量メトリックを表示するにはどうすればよいですか?
RDS インスタンスの [監視とアラート] ページの [標準監視] タブで、[MySQL ストレージ使用量 (MB)] [ディスク使用率 (%)]、および [MySQL 物理ストレージ使用量 (MB)] メトリックを表示して、ストレージ圧縮機能が有効になった後のストレージ使用量を分析できます。詳細については、「監視情報を表示する」をご参照ください。
付録:ストレージ圧縮パフォーマンスのストレステスト
RDS インスタンスのストレージ圧縮機能を有効にしても、インスタンスのパフォーマンスは影響を受けません。このセクションでは、ストレージ圧縮機能を有効にする前後のインスタンスのパフォーマンスを比較して、ストレージ圧縮がインスタンスのパフォーマンスに与える影響を確認します。
テスト環境
アプリケーションサーバー:Alibaba Cloud Elastic Compute Service (ECS) インスタンス
RDS インスタンスの仕様:RDS 高可用性エディション、8 コアと 32 GB のメモリを提供する専用インスタンスタイプ
ストレージタイプ:I/O パフォーマンスバーストが有効になっている Premium ESSD
ストレージ容量:1,000 GB
テストケース
sysbench は、次のテストケースを提供します。
oltp_read_only
oltp_read_write
oltp_write_only
コマンド例:
sysbench oltp_write_only --mysql-host=xxxxxx --mysql-port=xxxxxx --mysql-user=xxxxxx --mysql-password=xxxxxx --tables=12 --table_size=4000000 --report-interval=1 --mysql-db=xxxxxx --rand-type=uniform --threads=1 --time=100 runテスト結果
次の図は、12 GB のデータセットでのテスト結果を示しています。

同時実行数
oltp_read_only
oltp_read_write
oltp_write_only
圧縮前
圧縮後
増加率
圧縮前
圧縮後
増加率
圧縮前
圧縮後
増加率
1
6738.05
6534.69
-3%
4698.92
4620.96
-2%
3296.62
3151.49
-4%
8
49446.32
48834.86
-1%
30464.41
29389.79
-4%
17935.94
17371.47
-3%
16
79411.76
78639.35
-1%
47852.25
46415.14
-3%
27851.15
27257.97
-2%
32
100070.48
100314.49
0%
68408.67
68521.4
0%
40468.31
39921.37
-1%
64
113637.5
112402.16
-1%
82387.07
82751.29
0%
57843.89
57267.82
-1%
128
113871.22
112133.53
-2%
90124.61
89783.53
0%
69850.39
68477.59
-2%
256
108770.33
107001.19
-2%
88390.16
88001.18
0%
79330.67
79290.03
0%
512
104325.11
102797.59
-1%
85701.04
84782.41
-1%
77186.74
76983.98
0%
次の図は、48 GB のデータセットでのテスト結果を示しています。

同時実行数
oltp_read_only
oltp_read_write
oltp_write_only
圧縮前
圧縮後
増加率
圧縮前
圧縮後
増加率
圧縮前
圧縮後
増加率
1
1945.09
1902.89
-2%
1700.04
1748.47
3%
1639.68
1722.17
5%
8
15934.45
15155.32
-5%
13049.89
13230.25
1%
12203.44
12518.78
3%
16
32436.32
31072.3
-4%
23130.89
23727.46
3%
20668.33
21196.57
3%
32
56018.88
55409.98
-1%
38182.38
39864.06
4%
30498.33
31356.85
3%
64
72838.53
73459.99
1%
Web アプリの 構成 セクションで、全般設定 を選択します。スタック設定 を PHP 8.0 に設定します。
51888.1
1%
41560.41
42073.77
1%
128
80598.87
80788.34
0%
58943.65
58837.55
詳細については、「PHP を使用して BLOB ストレージの使用を開始する」をご参照ください。
50755.55
51526.62
2%
256
80500.57
80369.96
0%
58969.94
59222.25
0%
56874.2
56512.52
-1%
512
74476.62
74758.1
0%
58756.28
58347.02
-1%
アプリケーションのデプロイ
58565.04
1%