クラウドディスクを使用するApsaraDB RDS for PostgreSQLインスタンスのデータテーブルは、Enterprise SSD (ESSD) に保存されます。 RDSインスタンスに大量のデータを保存すると、ストレージコストが増加します。 ほとんどの場合、RDSインスタンスのデータには、ホットデータとコールドデータが含まれます。 データアーカイブ機能を使用して、コールドデータをObject Storage Service (OSS) バケットにアーカイブできます。これにより、ストレージコストを大幅に削減できます。
説明
RDSインスタンスは、テーブルスペースと外部ファイルシステムを使用してOSSバケットにアクセスします。 DDL文を実行して、ESSDとOSSバケット間でデータを転送できます。 RDSインスタンスのデータアーカイブ機能を有効にすると、/cold-dataという名前のディレクトリが生成され、新しいディレクトリのテーブルスペースはrds_ossになります。 /dataディレクトリは既存のディレクトリです。 rds_ossテーブルスペースのデータはOSSバケットに格納され、pg_defaultテーブルスペースのデータはESSDに格納されます。
RDSインスタンスのデータアーカイブ機能を有効にすると、次のDDLステートメントを実行して、ESSDとOSSバケット間でデータを転送できます。 データ転送は、標準テーブルおよび子分割テーブルに適しています。 データ転送中に、システムはテーブルデータとインデックスデータを別々に処理する必要があります。
-- Archive data.
ALTER TABLE $tableName SET tablespace rds_oss;
ALTER INDEX $indexName SET tablespace rds_oss;
-- Retrieve data.
ALTER TABLE $tableName SET tablespace pg_default;
ALTER INDEX $indexName SET tablespace pg_default;
ApsaraDB RDS for PostgreSQLのデータアーカイブ機能は、読み取り専用RDSインスタンスのクエリのみをサポートします。
メリット
RDSインスタンスのデータアーカイブ機能を有効にすると、OSSの大容量ストレージ、セキュリティ、費用対効果、および高い信頼性に基づいて、RDSインスタンスのデータをOSSバケットに低コストで保存できます。 データアーカイブ機能を使用すると、アクセス頻度の低いデータにアクセスできます。 データアーカイブ機能を有効にすると、パフォーマンスレベル1 (PL1) のESSDを使用すると、ストレージコストが80% に低くなります。
RDSインスタンスのデータがOSSバケットにアーカイブされた後、RDSインスタンスの大量のストレージが未使用の場合、RDSインスタンスのストレージ容量を削減してストレージコストを削減できます。 詳細については、「クラウドディスクを使用するApsaraDB RDS For PostgreSQLインスタンスのストレージ容量の削減」をご参照ください。
適用範囲
RDSインスタンスはPostgreSQLを実行します。
RDSインスタンスはPostgreSQL 12以降を実行します。
RDSインスタンスは、20240530以降のマイナーエンジンバージョンを実行します。 マイナーエンジンバージョンの更新方法の詳細については、「マイナーエンジンバージョンの更新」をご参照ください。
説明RDSインスタンスがPostgreSQL 15を実行していて、RDSインスタンスのデータアーカイブ機能を使用する場合は、RDSインスタンスのマイナーエンジンバージョンが20240229以降であることを確認してください。
RDSインスタンスは、RDS Basic EditionまたはRDS High-availability Editionを実行します。
RDSインスタンスは、標準またはYiTian農産物タイプを使用します。
RDSインスタンスは一般的なESSDを使用しています。
RDSインスタンスは、サブスクリプションまたは従量課金の課金方法を使用します。
RDSインスタンスのCPUコア数が8以上であること。
RDSインスタンスは、韓国 (ソウル) 、オーストラリア (シドニー) サービス終了、UAE (ドバイ) 、または英国 (ロンドン) のリージョンには存在しません。
制限事項
RDSインスタンスのデータアーカイブ機能を有効にすると、バックアップなどのRDSインスタンスの特定の機能が影響を受けます。
1桁の秒バックアップはサポートされていません。
クロスリージョンバックアップはサポートされていません。
個々のデータベースとテーブルを復元する場合、アーカイブされていないデータのみを復元できます。
バックアップセットをダウンロードすると、ダウンロードされたバックアップセットにはアーカイブされていないデータのみが含まれます。
説明データアーカイブ機能を有効にすると、アーカイブされたデータを復元する必要があるため、インスタンスのバックアップまたは復元の速度が低下します。
システムがテーブルデータとインデックスデータをOSSバケットにアーカイブする前に、データクリーンアップ操作が実行されていることを確認する必要があります。 OSSバケットのストレージパフォーマンスはESSDのストレージパフォーマンスとは大きく異なり、OSSのテーブルスペースでの
自動真空
操作の効率は低くなります。自動真空
の長期使用によるRDSインスタンスへの悪影響を避けるため、アーカイブテーブルに転送されるすべてのページにall_visibleフラグとall_frozenフラグを追加することを推奨します。 これにより、アーカイブされたテーブルスペースでの自動真空
操作が回避されます。 アーカイブデータをクリーンアップするには、次の方法を使用することを推奨します。VACUUM (FREEZE) table_name;
VERBOSE
オプションを使用して、クリーンアッププロセスの詳細の表示を有効にできます。 次に、表示された詳細に基づいて完全なクリーンアップを実装できます。RDSインスタンスに長期実行トランザクションとレプリケーションスロットが含まれている場合、完全なクリーンアップを実装できないため、特定のトランザクションIDを保持する必要があります。
異なるデータベースエンジンバージョンを実行するRDSインスタンスに対して、異なるクリーンアップポリシーを使用できます。 完全なクリーンアップを実装するには、表示された詳細を照会し、必要なパラメーターを指定します。 例:
VACUUM (FREEZE、INDEX_CLEANUP on) table_name;
RDSインスタンスがPostgreSQL 14以降を実行している場合は、
PROCESS_TOAST
パラメーターを設定してTOASTテーブルをクリーンアップすることを推奨します。RDSインスタンスがPostgreSQL 16以降を実行している場合は、
PROCESS_MAIN
パラメーターを設定してプライマリテーブルをクリーンアップすることを推奨します。
VACUUMの詳細については、「VACUUM」をご参照ください。
使用上の注意
テーブルをアーカイブする前に、必要なテーブルに対してVACUUMステートメントを実行する必要があります。
OSSのアクセス遅延により、OSSバケット内のコールドテーブルのアクセス遅延は10 msに達し、ESSDのアクセス遅延よりも長くなります。
説明OSSバケットにアーカイブされたテーブルにすばやくアクセスできる場合、テーブルはRDSインスタンスのバッファプールまたはオペレーティングシステムのページキャッシュにキャッシュされている可能性があります。
OSSバケットからデータを読み取ると、メモリリソースが消費されます。 さらに、OSSバケット内のデータにアクセスすると、Elastic Compute Service (ECS) のネットワーク帯域幅リソースの特定の割合が消費されます。 データ転送とデータアクセスの速度と頻度を変更する必要があります。
課金ルール
無料のパブリックプレビュー
2024年6月20日から2024年7月20日までのパブリックプレビューでは、この機能を無料で利用できます。 パブリックプレビューが終了すると、OSSバケットにアーカイブされたデータ量に基づいて課金されます。
料金
従量課金の課金方法のみサポートしています。 次の表に、さまざまなRDSエディションを実行するRDSインスタンスの機能の料金を示します。
リージョン | RDS Basicエディション | RDS高可用性エディション | RDS Cluster Edition (ノード数に基づいて計算) |
中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (ウランカブ) 、中国 (深セン) 、中国 (河源) 、中国 (広州) 、中国 (成都) | GB時間あたりの米ドル0.000032 | GB時間あたりの米ドル0.000065 | GB時間あたりの米ドル0.000032 |
中国 (香港) 、日本 (東京) 、シンガポール、インドネシア (ジャカルタ) 、ドイツ (フランクフルト) | GB時間あたりの米ドル0.000034 | GB時間あたりの米ドル0.000068 | GB時間あたりの米ドル0.000034 |
フィリピン (マニラ) と米国 (シリコンバレー) | GB時間あたりの米ドル0.000058 | GB時間あたりの米ドル0.000117 | GB時間あたりの米ドル0.000058 |
マレーシア (クアラルンプール) | GB時間あたりの米ドル0.000057 | GB時間あたりの米ドル0.000114 | GB時間あたりの米ドル0.000057 |
米国 (バージニア) | GB時間あたりの米ドル0.000054 | GB時間あたりの米ドル0.000108 | GB時間あたりの米ドル0.000054 |
この機能は、タイ (バンコク) 、韓国 (ソウル) 、オーストラリア (シドニー) サービス終了、英国 (ロンドン) 、アラブ首長国連邦 (ドバイ) ではサポートされていません。
データアーカイブ機能の有効化と無効化
データアーカイブ機能の有効化
RDSインスタンスを作成するときに、ApsaraDB RDS購入ページでデータアーカイブ機能を有効にできます。
一般的なESSDを使用する既存のRDSインスタンスのデータアーカイブ機能を有効にする場合は、インスタンスの詳細ページでこの機能を有効にします。
ApsaraDB RDS購入ページ
に移動します。Go to theApsaraDB RDS購入ページ.
ストレージタイプパラメーターをGeneral ESSDに設定します。 [設定] セクションで、[データアーカイブ] をオンにします。
インスタンス詳細ページ
ApsaraDB RDSコンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
インスタンスの詳細ページで、[基本情報] セクションの [一般ESSDの設定] をクリックします。 表示されるダイアログボックスの [データアーカイブ] カードで、[データアーカイブ] をオンにします。
重要データアーカイブ機能を有効にすると、約30秒間持続する一時的な接続が発生します。 オフピーク時にこの機能を有効にし、アプリケーションがRDSインスタンスに自動的に再接続するように設定されていることを確認することを推奨します。
データアーカイブ機能の無効化
[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
インスタンスの詳細ページで、[基本情報] セクションの [一般的なESSDの設定] をクリックします。 表示されるダイアログボックスの [データアーカイブ] カードで、[データアーカイブ] をオフにします。
重要データアーカイブ機能を無効にすると、約30秒間持続する一時的な接続が発生します。
データアーカイブ機能を無効にする場合は、OSSバケットにアーカイブテーブルが含まれていないことを確認してください。 OSSバケットにアーカイブテーブルが含まれている場合、この機能を無効にすることはできません。 この場合、データアーカイブ機能を無効にする前に、アーカイブされたテーブルをオンラインテーブルに変換するか、アーカイブされたテーブルに対してDROP操作を実行する必要があります。
アーカイブデータの表示
[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、[コールドストレージ管理] をクリックします。
表示されるページの [アーカイブレイヤー設定] セクションで、データアーカイブ機能が有効になっているデータベースを表示します。