クラウドディスクを使用する ApsaraDB RDS for PostgreSQL (RDS PostgreSQL) インスタンスは、すべてのテーブルファイルを拡張 SSD (ESSD) に保存します。データ量が増加するにつれて、ストレージコストが大きな課題となることがあります。通常、RDS PostgreSQL インスタンス内のデータには、コールドデータとホットデータの両方が含まれます。データアーカイブ機能は、Object Storage Service (OSS) をコールドデータのストレージ媒体として使用し、ストレージコストを大幅に削減します。
概要
RDS PostgreSQL は、テーブル空間と外部ファイルシステムを使用して OSS にアクセスし、DDL ステートメントで ESSD と OSS の間でデータを移動できます。データアーカイブを有効にすると、インスタンスはメインデータディレクトリの外部にコールドストレージディレクトリ /cold-data を追加し、対応するテーブル空間 rds_oss を作成します。rds_oss テーブル空間のデータは OSS に配置され、pg_default テーブル空間のデータは ESSD に残ります。
RDS PostgreSQL のデータアーカイブを有効にした後、次の DDL ステートメントを実行して、ESSD と OSS の間でデータを移動します (標準テーブルとパーティション化されたテーブルの子テーブルに適用されます) 。転送中は、テーブルデータとインデックスデータを個別に処理します。
-- アーカイブ
ALTER TABLE $tableName SET tablespace rds_oss;
ALTER INDEX $indexName SET tablespace rds_oss;
-- 取得
ALTER TABLE $tableName SET tablespace pg_default;
ALTER INDEX $indexName SET tablespace pg_default;
現在、RDS PostgreSQL のデータアーカイブは読み取り専用クエリのみをサポートしています。
メリット
データアーカイブを有効にすると、OSS の大規模なスケール、セキュリティ、低コスト、高信頼性を活用して、RDS PostgreSQL でアクセス頻度の低いデータに対し、ほぼゼロコストで容量無制限のアーカイブストレージを実現できます。PL1 ESSD と比較して、ストレージコストは 80% 削減されます。
Object Storage Service (OSS) にデータをアーカイブした後、データベースインスタンスのクラウドディスクに大幅な空き容量がある場合は、クラウドディスクのスケールダウンを検討することで、ストレージコストをさらに削減できます。
前提条件
-
エンジン:RDS PostgreSQL
-
メジャーバージョン:12 以降
-
マイナーバージョン:20240530 以降。マイナーエンジンバージョンをアップグレードする方法については、「マイナーエンジンバージョンのアップグレード」をご参照ください。
説明メジャーバージョン 15 の場合、データアーカイブはマイナーバージョン 20240229 からサポートされます。
-
エディション:Basic Edition、高可用性シリーズ、クラスター版
-
インスタンスタイプ:Standard Edition、Yitian Edition
-
ストレージタイプ:高性能 ESSD
説明ストレージクラスがエンタープライズ SSD の場合は、エンタープライズ SSD から高性能 ESSD に変更できます。
-
課金方法:サブスクリプション、従量課金
-
インスタンスタイプ:8 CPU コア以上
-
リージョン:タイ (バンコク)、韓国 (ソウル)、アラブ首長国連邦 (ドバイ)、イギリス (ロンドン) ではサポートされていません。
制限事項
-
データアーカイブを有効にすると、バックアップと特定の機能に影響します:
-
秒単位のバックアップはサポートされていません。
-
クロスリージョンバックアップはサポートされていません。
-
データベースまたはテーブルの復元中、選択したデータベース内のアーカイブされていないデータのみを復元できます。
-
ダウンロードしたバックアップセットには、アーカイブされていないデータのみが含まれます。
説明データアーカイブが有効なインスタンスでは、バックアップと復元の操作に通常より時間がかかります。これは、復元対象がアーカイブされていないデータのみであっても、操作の一環としてアーカイブ済みデータも処理する必要があるためです。
-
-
システムがテーブルまたはインデックスのデータを OSS ストレージにアーカイブする前に、データクリーンアップを実行する必要があります。OSS のストレージパフォーマンスは ESSD よりも大幅に低いため、OSS テーブル空間での
autovacuum効率が低くなります。長時間のautovacuum操作がインスタンス全体のパフォーマンスに悪影響を与えるのを防ぐため、設計上、アーカイブされたテーブル空間でautovacuumがトリガーされないように、転送されるアーカイブ済みテーブルのすべてのページをall_visibleおよびall_frozenに設定する必要があります。アーカイブされたデータをクリーンアップするには、次の方法を使用することをお勧めします。VACUUM (FREEZE) table_name;VERBOSEオプションを追加すると、詳細なクリーンアップ情報が出力され、問題の特定や完全なクリーンアップの達成に役立ちます。-
長時間実行トランザクションやレプリケーションスロットが存在する場合、一部のトランザクション ID を保持する必要があるため、完全なクリーンアップが不可能になることがあります。
-
RDS PostgreSQL のバージョンによって最適化戦略が異なります。詳細な出力を利用して分析し、完全なクリーンアップのためのパラメーターを指定してください。例:
VACUUM (FREEZE, INDEX_CLEANUP on) table_name;-
RDS PostgreSQL 14 以降では、TOAST テーブルのクリーンアップを有効にするには、
PROCESS_TOASTを設定します。 -
RDS PostgreSQL 16 以降では、
PROCESS_MAINを設定してメインテーブルのクリーンアップを有効にします。
-
VACUUM の詳細については、「VACUUM」をご参照ください。
-
注意事項
-
データアーカイブを実行する前に、ターゲットテーブルで VACUUM を実行してください。
-
OSS のアクセスレイテンシーにより、コールドデータテーブルのクエリは ESSD ストレージと比較してレイテンシーが高くなります (約 10 ms)。
説明OSS にアーカイブされたテーブルの応答が速く見える場合、これはデータベースのバッファープールまたはオペレーティングシステムのページキャッシュにキャッシュされていることが原因と考えられます。
-
OSS の読み取りは Elastic Compute Service (ECS) インスタンスのメモリとネットワーク帯域幅を消費します。データ転送とクエリの速度と頻度を適宜調整してください。
課金
料金詳細
課金は従量課金制でのみ利用可能です。料金はリージョンとエディションによって次のように異なります:
|
課金対象リージョン |
Basic Edition の料金 |
高可用性シリーズの料金 |
クラスター版の料金 (ノード数に基づく) |
|
中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (ウランチャブ) 、中国 (深圳) 、中国 (河源) 、中国 (広州) 、中国 (成都) |
0.000032 USD/GB/時間 |
0.000065 USD/GB/時間 |
0.000032 USD/GB/時間 |
|
中国 (香港) 、日本 (東京) 、シンガポール、インドネシア (ジャカルタ) 、ドイツ (フランクフルト) |
0.000034 USD/GB/時間 |
0.000068 USD/GB/時間 |
0.000034 USD/GB/時間 |
|
フィリピン (マニラ) 、米国 (シリコンバレー) |
0.000058 USD/GB/時間 |
0.000117 USD/GB/時間 |
0.000058 USD/GB/時間 |
|
マレーシア (クアラルンプール) |
0.000057 USD/GB/時間 |
0.000114 USD/GB/時間 |
0.000057 USD/GB/時間 |
|
米国 (バージニア) |
0.000054 USD/GB/時間 |
0.000108 USD/GB/時間 |
0.000054 USD/GB/時間 |
サポートされていないリージョン:タイ (バンコク) 、韓国 (ソウル) 、イギリス (ロンドン) 、アラブ首長国連邦 (ドバイ) 。
データアーカイブの有効化と無効化
データアーカイブの有効化
-
RDS インスタンス ページに移動します。上部でリージョンを選択し、対象インスタンスの ID をクリックします。
-
インスタンス詳細ページの 基本情報 タブで、基本情報 をクリックし、ユニバーサルクラウドディスクスイッチの设定 をオンに切り替えて、データアーカイブ 機能を有効にします。
重要OSS データアーカイブを有効にすると、約 30 秒間の瞬断が発生します。この操作はオフピーク時に実行し、アプリケーションに自動再接続メカニズムがあることを確認してください。
データアーカイブの無効化
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
-
インスタンス詳細ページの 基本情報 タブで、基本情報 をクリックし、ユニバーサルクラウドディスクスイッチの设定 をオフに切り替えて、データアーカイブ 機能を無効にします。
重要-
OSS データアーカイブの無効化は無停止の操作ではなく、約 30 秒間の瞬断が発生します。
-
OSS にアーカイブされたテーブルデータが存在する場合、OSS データアーカイブを無効にすることはできません。まず、DDL を使用してアーカイブされたテーブルをオンラインストレージに戻すか、削除してから機能を無効にしてください。
-
アーカイブされたデータの表示
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
-
左側メニューで、コールドストレージ管理 をクリックします。
-
アーカイブレイヤーの設定 ページで、アーカイブされたデータを表示します。
このページには 360.00 KB の [データサイズ] が表示されます。[データベースの選択] ドロップダウンから対象のデータベースを選択すると、以下のテーブルに [データベース名] 、[テーブル名] 、[テーブル空間] 、[テーブルスキーマサイズ] などのアーカイブ情報が表示されます。
関連ドキュメント
-
RDS PostgreSQL でサポートされている他のストレージタイプについては、「ストレージタイプ」をご参照ください。
-
高性能 ESSD の詳細については、「高性能 ESSD」をご参照ください。
-
ワークロードが大幅に変動し、頻繁にピークが発生する場合は、高性能 ESSD の I/O バーストパフォーマンス機能を有効にできます。これにより、ピーク時に IOPS が最大制限を超えることができ、突然の需要に対応できます。詳細については、「I/O バーストパフォーマンス」をご参照ください。
-
データベースのディスク I/O ボトルネックに直面している場合、高性能 ESSD のバッファープール拡張機能 (BPE) は、重いまたは頻繁な読み書きワークロード下での I/O パフォーマンスを大幅に向上させることができます。詳細については、「バッファー プール拡張機能 (BPE)」をご参照ください。
関連 API
|
API |
説明 |
|
高性能 ESSD のデータアーカイブを設定する場合:
|