Database Support Blog

  • EDB
2023.06.22

EPAS15の新機能TDE(Transparent Data Encryption)を徹底解剖【後編】

はじめに

EPAS15の新機能TDE(Transparent Data Encryption)を徹底解剖【前編】 」では下記項目 1.~4. についてご紹介しました。後編では項目 5.~7. についてご紹介します。



5. パフォーマンスへの影響

TDEを有効化すると、データの暗号化・復号を行うことでシステムに追加の負荷(オーバーヘッド)が発生します。そのため、TDEを使用するとパフォーマンスに影響が出ることが予想されます。実際にどの程度パフォーマンスに影響が出るのか、ベンチマークソフトウェア(HammerDB)を使い、次の2種類のベンチマークを行ってみました。


5-1. 検証環境

ベンチマークの実行にあたり「EPAS15 の実行環境」、「HammerDB の実行環境」をそれぞれ次の構成で用意しました。


EPAS実行環境:

項目
インスタンスタイプ m6a.2xlarge
vCPU 8
メモリ 32 GiB
ストレージ Amazon EBS gp2 1024 GiB

HammerDB実行環境:

項目
インスタンスタイプ m6a.2xlarge
vCPU 8
メモリ 32 GiB
ストレージ Amazon EBS gp2 50 GiB

また、検証環境の構成に合わせて EPAS15 のパラメータを次のとおり変更しています。checkpoint_timeout と max_wal_size の設定を初期値より大きくしているのは、checkpoint によるスコアへの影響を排除するためです。また、SSDボリュームを利用するためランダムページアクセスのプランナコスト定数(random_page_cost)を調整しています。


パラメータ 初期値 調整後
shared_buffers 8GB 16GB
maintenance_work_mem 64MB 1GB
checkpoint_timeout 5min 60min
max_wal_size 1GB 150GB
effective_cache_size 4GB 16GB
random_page_cost 4 1.1


5-2. TPROC-C

まずは、スケールファクター 50 (データベースサイズ:約5GB)のデータで TPROC-C ベンチマークを行っていきます。ベンチマークの計測時間は20分、負荷を掛ける並列実行ユーザー数は 2、4、6、8 の4パターンで行います。

項目
スケールファクター 50
データベースサイズ 約5GB
ベンチマーク計測時間 20分
並列実行ユーザー数 4パターン(2,4,6,8)

結果は次のグラフで示すとおりになりました。 青軸がTDEを使っていない環境オレンジ軸がTDEが有効な環境 の NOPM(New Orders per Minute)を表しています。 各環境のスコア差は 2% 未満に収束しており、パフォーマンスに大きな差が無いことが確認できます。


各環境のスコア差_1


続いて、I/O の発生機会を増やした場合にどうなるのかを確認するため、以下の変更を加えてベンチマークを行いました。


項目
スケールファクター 200
データベースサイズ 約20GB
ベンチマーク計測時間 60分
並列実行ユーザー数
4パターン(2,4,6,8)
PostgreSQLのパラメータ
checkpoint_timeout を 10min に変更
計測中にチェックポイント(メモリ上のダーティバッファ
をディスクに書き込む処理)が発生するように変更

ベンチマークの結果は次のグラフで示すとおり、こちらも NOPMの差が2%未満に収束することが確認できました!


NOPMの差が2%未満_2

以上のベンチマーク結果から、TPRO-C(OLTP)における影響は非常に軽微であると言えます。


※ HammerDB には、EDB 向けのオプション pg_oracompat があります。これを有効にして生成されたデータでは適切なベンチマーク結果が得られないことが判明したため今回は使用していません。皆さんも HammerDB 利用時にはご注意ください。



5-3. TPROC-H

スケールファクターは 10 (データベースサイズ:約10GB)でデータベースを準備して TPROC-H を実行してみました。


項目
スケールファクター 10
データベースサイズ 約10GB
ベンチマーク計測時間 ― 秒
実行クエリ数 22パターン(1~ 22)

22本のクエリの実行時間は下記グラフで示すとおりの結果になりました。縦軸がクエリの実行時間(秒数)です。青軸がTDEを使っていない環境オレンジ軸がTDEが有効な環境の結果ですが、22本全てにおいて実行時間に大きな差異はありませんでした。


この結果から、データウェアハウス(DWH)分野における、データの集計、分析、検索のパフォーマンスに関しても影響が非常に小さいことが伺えます。


6. 周辺ツールへの影響

TDEを有効化すると周辺ツールにも影響が出ることが懸念されるため、主要な機能・周辺ツールについても検証を行いました。その結果、次の機能については影響がないことを確認済みです。


Streaming Replication スタンバイDBを作成できるレプリケーション機能
Postgres Enterprise Manager DBの監視、管理ができるWEBコンソールを提供する機能
EDB Postgres Replication Server EPASやその他の商用DB間でテーブルデータを複製する機能
Barman バックアップの取得・管理を行う機能

弊社検証の中で影響が確認できた周辺ツールは EDB*Loader です。 従来型パス(通常のINSERT処理と同様にキャッシュを経由してデータの挿入を行う方法)でロードする場合は特に問題ありませんが、ダイレクトパス(直接リレーションファイルにデータを書き込む方法)でロードすると、リレーションファイルが破損することを確認しました。

TDE環境では、メモリ上からディスクにデータを書き出す時にデータの暗号化が行われます。しかし、ダイレクトパスロードでは、データの暗号化処理がバイパスされてしまい、暗号化されていないデータがリレーションファイルに書き込まれます。その結果、暗号化データと非暗号化データがリレーションファイルに混在してしまいます。

この振る舞いについてはEDB社にも報告を行い、不具合と判断されています。将来的には修正されることが想定されますが、ベースリリース(ver 15.2.0)で EDB*Loader のダイレクトロード機能を利用する場合には、次期修正バージョンまでTDEのご利用はお控えください。

また、TDE環境で次のコマンドを実行する場合、TDE固有のオプション指定が必要です。コマンドの影響は公式ドキュメント( EDB Docs - Transparent Data Encryption )で解説されています。

  • pg_waldump
  • pg_resetwal
  • pg_verifybackup
  • pg_rewind
  • pg_upgrade
  • postgres

7. 運用時の注意事項

7-1. TDEを有効化するとWALサイズが増える

TDEを有効化するとWALサイズが増える可能性があります。

TDEを有効にすると、各タプルレコードのヘッダーに存在するタプル状態を保持するビットであるヒントビットのロギングが自動的に有効になります。ヒントビットが有効な環境では、SELECT文の実行でもヒントビットの更新が行われるため、チェックポイント後のSELECT処理でFull Page Writesが働き、WALのサイズが増加する傾向があります。

上記の理由から、wal_log_hints をデフォルトの off で運用されている環境の場合、TDE を有効化することで WAL の生成量が増える可能性があるため注意が必要です。


7-2. 一時ファイルの書き出しサイズが増える

TDEを有効にした環境ではディスクに書き出される一時ファイルも暗号化されます。

暗号化によって一時ファイルのサイズは約2.5倍に肥大化することが確認できています。そのため、一時ファイルの書き出しが起きる処理では、ディスクI/Oによる負荷が高くなり、パフォーマンスが劣化する可能性があります。

TDE を有効化にする場合、log_temp_files を 0 に設定した上で負荷テスト(ストレステスト、ロードテスト)を行い、どの程度の一時ファイル書き出しが行われるかを確認しておくことをお勧めします。一時ファイル書き出しによるパフォーマンスの低下が許容できない程度の場合、work_mem を増やして一時ファイルの書き出しを削減することをご検討ください。


7-3. 定期的な暗号化キーの変更

TDEは「マスターキー」のローテーションに対応しています。

一般的なキー管理ソリューションと同様、データの暗号化を行う「データ暗号化キー」のローテーションはできませんが、「データ暗号化キー」の暗号化を行う「マスターキー」のローテーションが可能です。マスターキーのローテーションは、定期的に暗号化キーを変更するメンテナンスや、万が一、マスターキーが漏洩した場合の対処に必要なプロセスです。

2023年5月11日にマイナーリリース(v15.3.0)がリリースされたタイミングで公式ドキュメント( EDB Docs - Transparent Data Encryption )にもキーローテーションの手順が更新されました。


まとめ

EPAS15に追加されたTDEについて、アーキテクチャ、有効化の方法、暗号化方式、パフォーマンス、および周辺ツールへの影響を前編・後編の2回にわたって解説しました。周辺ツールの利用や運用に関する注意点はいくつかありますが、ディスクに書き出されるユーザーデータが透過的に世界標準のAESで暗号化されるメリットは非常に大きいと思います。また、最も懸念していたパフォーマンスへの影響も驚くほど軽微なものでした。当記事がこれからTDEの利用を検討される方々の一助になれば幸いです。


執筆者情報

やすだこうき プロフィール画像

2017年に中途入社。Oracle Database、EDB Postgres/PostgreSQL のサポート経験を経て、2020年からバックサポートを担当。DBとアプリケーションを繋ぐミドルウェア製品のスペシャリスト。トレンドな技術は積極的に触れるほど好奇心旺盛。最近はプロアクティブなサポートを目指して粉骨砕身。趣味はボードゲーム。...show more


■本記事の内容について
 本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。

■商標に関して
 ・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
 ・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
  文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • EDB
  • PostgreSQL
2024.01.16

EDBがもたらすデータベースの新たな価値 ~ EDB社Field CTO Ajit Gadge氏来日、セミナー講演レポート ~

EDB社のAjit Gadge氏を招き「PostgreSQLユーザーに捧ぐ、EDBを使ったDB機能向上とコスト削減の両立」セミナーを開催しました。DB市場の現状やトレンド、EDBの最新動向について紹介しております。アシストセッションのアーカイブ配信の視聴申し込みも可能です。ぜひご覧ください。

  • PostgreSQL
  • EDB
2023.12.20

PostgreSQLのSQLチューニングを体験してみよう!

35年以上教育事業を展開しているアシストが新たに取り組み始めた「ポスグレ学園」。連載最終回となる9回目の記事では、「PostgreSQL SQLチューニング実践」のワークショップ主管である 田中 健一朗 にインタビューしました。

  • PostgreSQL
  • EDB
2023.10.30

データベースの健康診断! ~ PostgreSQL DB稼働分析体験 ~

35年以上教育事業を展開しているアシストが新たに取り組み始めた「ポスグレ学園」。連載8回目となる今回の記事では、PostgreSQL DB稼働分析ワークショップの主管である保田 公貴にインタービューしました。

ページの先頭へ戻る