>100 Views
March 24, 25
スライド概要
HeatWavejpは、MySQL HeatWave の良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。参加者同士のつながりを深めるため、以下の活動を行ってまいります。 COMMUNICATION *Slackやconnpassを活用したユーザー同士のコミュニケーションの場の提供 EVENT *オンライン/オフラインでのMeetupセミナーや勉強会の開催(隔月程度) SHARING *製品情報や最新アップデート、リリース情報の共有 INTERACT *参加者のコミュニティ・ネットワークやユーザー同士の交流を促進
HeatWave で MySQL Enterprise機能が 使えるのは本当か? 2025年2月26日(水) 株式会社スマートスタイル データベース部 神田 智大
自己紹介 ◼ 名前:神田 智大(かんだ ともひろ) ◼ 出身:新潟県新潟市 ◼ 所属:株式会社スマートスタイル データベース部 ◼ 最近驚いたこと: スタバで「ハチミツのトッピングが無料」だったこと 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 2
01 MySQL Enterprise機能 について 1. MySQL Enterprise機能とは 2. HeatWaveで使えるMySQL Enterprise機能 3. HeatWaveで使えないMySQL Enterprise機能 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 3
MySQL Enterprise機能とは ◼ MySQL Enterprise Editionでのみ提供される高度な機能やツールのこと ◼ オンプレ版MySQL Enterprise機能は全12機能 ◼ 各機能はプラグインもしくはコンポーネントをインストールする必要がある インストール コンポーネント 2025/2/26 プラグイン MySQL Enterprise機能 が使用可能になる HeatWaveでは インストール作業不要 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 4
HeatWaveで使えるMySQL Enterprise機能 ◼ 以下の機能は標準で使用可能 – MySQL Enterprise Firewall機能はHeatWave on AWSでのみ利用可能 No. 機能名 概要 1 MySQL Enterprise Stored Programs JavaScriptを使用してストアドプロシージャーを定義 2 MySQL Enterprise Masking データをマスキングするための関数を提供 3 MySQL Enterprise Authentication ユーザーの認証方式に外部認証モジュールを追加 4 MySQL Enterprise Audit MySQLに対するアクセスの監査ログを取得 5 MySQL Enterprise Firewall 怪しいSQLをブロックするファイアウォール機能 6 MySQL Enterprise Encryption データを暗号化するための関数を提供 7 MySQL Enterprise Scalability 同時処理数が多い環境でも性能低下を防ぐ 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 5
OCIでマネージドサービスとして提供されている MySQL Enterprise機能 ◼ 以下の機能については、MySQL Enterprise機能としてではなくOCIマネージドサー ビスとして機能が提供されています No. 機能名 OCI上での代替機能 1 MySQL Enterprise Backup OCIの仕組みを使ったバックアップ機能 2 MySQL Enterprise High-Availability※注 グループレプリケーションとOCIの仕組みを 使った高可用性機能 3 MySQL Enterprise TDE OCIのブロックボリュームの暗号化機能 4 Oracle Enterprise Manager for MySQL OCIのDatabase ManagementとOps Insightsに よる監視機能 ※注:MySQL Enterprise High-Availability機能について、プラグインはインストールされておりグループレプリケーション機 能自体は有効だが、ユーザ側からはほとんどのシステム変数が変更できず、インスタンス追加などの操作、シングルプライマ リからマルチプライマリへのモード切り替えも不可。 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 6
HeatWaveで使えないMySQL Enterprise機能 ◼ MySQL Enterprise Telemetry機能は使えません No. 機能名 OCI上での代替機能 1 なし MySQL Enterprise Telemetry 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 7
02 使える機能紹介 1 プログラミング機能 2 セキュリティ機能 3 スレッドプール機能 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 8
プログラミング機能 1. MySQL Enterprise Stored Programs 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 9
1. MySQL Enterprise Stored Programs(オンプレ版)
◼ JavaScriptでストアドプログラム(プロシージャ / ファンクション)を記述できる
◼ MySQL Enterprise Edition 9.0より使用可能
参照:https://dev.mysql.com/doc/refman/9.0/en/stored-routines-js.html
CREATE PROCEDURE proc1(p1 INT)
LANGUAGE JAVASCRIPT AS
$$
do {
p1 += Math.random();
} while(p1 < 10);
$$
;
2025/2/26
LANGUAGE JAVASCRIPT
で明示的に宣言
ドル引用符で囲まれた領域に
JavaScriptの構文で記述できる
Javascriptの組み込みオブジェクト
が使用可能
デリミタの変更が不要
Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved.
10
1. HeatWave MySQL での注意事項 ◼ 特になし – HeatWave MySQL でも同様に利用可能 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 11
セキュリティ機能 2. MySQL Enterprise Masking 3. MySQL Enterprise Audit 4. MySQL Enterprise Authentication 5. MySQL Enterprise Encryption 6. MySQL Enterprise Firewall 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 12
2. MySQL Enterprise Masking (オンプレ版) ◼ 機密データをマスキングもしくは匿名化できる ◼ ランダムデータを生成できる 参照:https://dev.mysql.com/doc/refman/9.2/en/data-masking-plugin-functions.html ①データのマスキング ②ランダムデータの生成 SELECT gen_rnd_email(); SELECT id, mask_inner(address,3,0) FROM user; MySQL ユーザ MySQL ユーザ id address id address 1 東京都xxxxx 1 東京都港区北青山 2025/2/26 プラグイン関数 関数による ランダムデータの生成 user表 関数による データのマスキング [email protected] SELECT gen_dictionary(‘e-mail’); MySQL ユーザ [email protected] 辞書データから 値をランダムに返却する Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 辞書データ ファイル 13
2. HeatWave MySQL との差分① ◼ 一部プラグイン関数がサポートされていない – 辞書データに関する関数がサポートされていないため、辞書データファイルを 使ったランダムデータの生成はできない ①データのマスキング ②ランダムデータの生成 SELECT gen_rnd_email(); SELECT id, mask_inner(address,3,0) FROM user; MySQL ユーザ MySQL ユーザ [email protected] 辞書データに関する関数が 使用できない user表 id address id address 1 東京都xxxxx 1 東京都港区北青山 SELECT gen_dictionary(‘e-mail’); MySQL ユーザ 2025/2/26 プラグイン関数 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. [email protected] 辞書データ ファイル 14
2. HeatWave MySQL との差分② ◼ インストールされているのは「プラグイン」 – オンプレ版ではコンポーネントとしてもインストールでき、コンポーネントの方 が使用できる関数が多い – コンポーネントのみに実装されている関数はすべて使用できない インストール プラグイン 2025/2/26 プラグインが インストールされている Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. コンポーネント 15
3. MySQL Enterprise Audit (オンプレ版) ◼ 「ユーザによるどのイベントを監査ログに出力するか」を定義するフィルタを作成 し、ユーザに適用することでフィルタに該当する操作を監査ログとして保存する 参照:https://dev.mysql.com/doc/refman/9.2/en/audit-log.html ①クエリ実行 ③該当したら出力 ②フィルタでチェック ファイルフォーマット MySQL ユーザ ・新しい形式のXML フィルタ 監査ログ ・古い形式のXML ・JSON SELECT audit_log_read(audit_log_read_bookmark();) MySQL ユーザ 2025/2/26 ④JSON形式のみ SELECT文で抽出できる Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 16
3. HeatWave MySQL との差分 ◼ 監査ログにはJSON形式のみ – ファイル形式を指定する変数(audit_log_format)が変更できない ◼ 監査ログに直接アクセスできない(OSにアクセスできないため) ファイルフォーマット ・新しい形式のXML MySQL ユーザ フィルタ 監査ログ SELECT audit_log_read(audit_log_read_bookmark();) MySQL ユーザ 2025/2/26 ・古い形式のXML XML形式は 使用できない (JSON形式のみ) ・JSON(デフォルト) 監査ログへのアクセスは SELECT文のみに限定 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 17
4. MySQL Enterprise Authentication(オンプレ版) ◼ 外部認証によるMySQLユーザーの認証を行うことで、シングルサインオンを導入し、 資格証明を一元管理できる – 外部認証プラグインは5つある(PAM/Windows/LDAP/Kerberos/WebAuthn) 参照:https://dev.mysql.com/doc/refman/9.2/en/authentication-plugins.html MySQL 送信されたクライアントユーザの 認証情報を使ってユーザ認証 マッピング ユーザ認証 クライアントユーザ MySQLユーザ サーバに接続 (ユーザ名、パスワードなど認証情報) 2025/2/26 外部認証 プラグイン 外部の資格情報 クライアントユーザとマッピングした MySQLユーザとして接続できる Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 18
4. HeatWave MySQL との差分 ◼ 外部認証はauthentication_ociプラグインのみ使用できる – オンプレ版にはない認証方式 – OCIのIAM認証を利用した認証方式(APIキー・ペア認証/IAMセキュリティトークン認証) 参照:https://docs.oracle.com/ja-jp/iaas/mysql-database/doc/authenticating-using-authentication_oci-plugin.html コンピュートインスタンス またはローカルPC MDS サーバ接続 接続元ユーザ マッピング IAMユーザ 秘密鍵 公開鍵 2025/2/26 MySQLユーザ IAMユーザとMySQLユーザを マッピングする IAM 構成情報 秘密鍵 セキュリティ トークン IAMユーザに紐づけたAPIキーや IAMセキュリティトークンで認証 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 19
5. MySQL Enterprise Encryption(オンプレ版) ◼ SQLレベルでOpenSSLライブラリに基づく一連の暗号化機能を使用できる 参照:https://dev.mysql.com/doc/refman/9.2/en/enterprise-encryption-functions.html ②データの暗号化 / 復号 ①秘密鍵 / 公開鍵の生成 平文 create_asymmetric_priv_key(‘RSA’, 2048 ); MySQL ユーザ asymmetric_encrypt(‘RSA’, ‘text’, @pub); MySQL ユーザ 秘密鍵 暗号文 暗号文 create_asymmetric_pub_key(‘RSA’, @priv); MySQL ユーザ 2025/2/26 公開鍵 asymmetric_decrypt(@alg, @chiphertext, @priv); MySQL ユーザ 平文 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 20
5. MySQL Enterprise Encryption(オンプレ版) ◼ SQLレベルでOpenSSLライブラリに基づく一連の暗号化機能を使用できる 参照:https://dev.mysql.com/doc/refman/9.2/en/enterprise-encryption-functions.html ③ハッシュ関数によるダイジェスト生成 ④電子署名の生成 / 検証 ダイジェスト 平文 create_digest( 'SHA512', 'text’ ); MySQL ユーザ ダイジェスト asymmetric_sign(‘RSA’, @dig, @priv, 'SHA512’); MySQL ユーザ 電子署名 ダイジェスト 電子署名 asymmetric_verify(‘RSA', @dig, @sig, @pub, 'SHA512'); MySQL ユーザ 2025/2/26 検証結果 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 21
5. HeatWave MySQL との差分 ◼ 特になし – HeatWave MySQL でも同様に利用可能 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 22
6. MySQL Enterprise Firewall (オンプレ版) ◼ ユーザに紐づくプロファイルを作成し、SQLステートメントパターンの許可リストに 基づいてクエリの実行を許可または拒否する 参照:https://dev.mysql.com/doc/refman/9.2/en/firewall.html ①クエリ実行 ②許可リストで判断 ③判断ごとに処理 ④ステータス変数で管理 ステータス変数 MySQL ユーザ プロファイル クエリ実行 ◎ 許可したステートメント数:10 拒否したステートメント数:5 ? 疑わしいステートメント数:1 ✐ 記録したステートメント数:30 SELECT * FROM tb1 WHERE id = ? : 許可リスト 2025/2/26 エラーログ Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. ログなどから SQLインジェクションの 兆候を検知できる 23
6. HeatWave on AWS との差分 ◼ HeatWave on AWSでのみ利用可能(2025/2月現在) ◼ エラーログへの出力ができない – エラーログ出力を有効化する変数(mysql_firewall_trace)が変更できない – error_logテーブルへの出力もできない ステータス変数 MySQL ユーザ プロファイル クエリ実行 SELECT * FROM tb1 WHERE id = ? : エラーログ 許可リスト 2025/2/26 ◎ 許可したステートメント数:10 拒否したステートメント数:5 ? 疑わしいステートメント数:1 ✐ 記録したステートメント数:30 拒否したクエリを エラーログ出力できない Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 24
スレッドプール機能 7. MySQL Enterprise Scalability 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 25
7. MySQL Enterprise Scalability(オンプレ版) ◼ スレッド処理モデルをスレッドプールモデルに変更し、ユーザ接続数の増加に伴う トランザクション同時実行のパフォーマンス低下を防ぐ。 参照:https://dev.mysql.com/doc/refman/9.2/en/thread-pool.html クライアント スレッドプール スレッドグループ 接続ごとにOSスレッドが 生成されない 接続リクエスト クエリーワーカースレッド THDs レシーバースレッド … クエリーワーカースレッド THDs 同時実行されるスレッド数 を制限できる 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 26
7. HeatWave MySQL との差分 ◼ チューニングできるシステム変数が12個から5個に限定される 参照:https://dev.mysql.com/doc/refman/9.2/en/server-system-variables.html チューニングできる変数 チューニングできない変数 thread_pool_transaction_delay thread_pool_algorithm thread_pool_query_threads_per_group thread_pool_max_transactions_limit thread_pool_dedicated_listeners thread_pool_size thread_pool_high_priority_connection thread_pool_longrun_trx_limit thread_pool_max_active_query_threads thread_pool_max_unused_threads thread_pool_prio_kickup_timer thread_pool_stall_limit 8つの変数はデフォルト 値から変更できない 2025/2/26 thread_pool_connection_report_interval (HeatWave固有のシステム変数) Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 27
7. HeatWave on AWS との差分 ◼ チューニングできるシステム変数が12個から4個に限定される 参照:https://dev.mysql.com/doc/refman/9.2/en/server-system-variables.html チューニングできる変数 チューニングできない変数 ★thread_pool_longrun_trx_limit ★thread_pool_size thread_pool_query_threads_per_group thread_pool_max_transactions_limit ★thread_pool_transaction_delay thread_pool_algorithm thread_pool_high_priority_connection thread_pool_dedicated_listeners ★はHeatWave MySQL との差分がある変数 thread_pool_max_active_query_threads thread_pool_max_unused_threads thread_pool_prio_kickup_timer 9つの変数はデフォルト値 から変更できない thread_pool_stall_limit thread_pool_connection_report_interval (HeatWave固有のシステム変数) 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 28
7. HeatWave MySQL とHeatWave on AWS 間の差分 ◼ チューニングできない変数のうち初期値が異なる変数がある – thread_pool_algorithm変数 • HeatWave MySQL は同時実行性の低いアルゴリズム • HeatWave on AWS は同時実行性の高いアルゴリズム チューニングできない変数 オンプレ版 (すべて変更可能) thread_pool_algorithm 0 0 1 thread_pool_max_unused_threads 0 0 2 thread_pool_size 24 シェイプ により変動 (変更可) シェイプ により変動 (変更不可) 2025/2/26 HeatWave MySQL Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. HeatWave on AWS 29
03 最後に 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 30
ちなみにAlways Freeでは動くの? ◼MySQL Enterprise Firewall機能を除き、紹介した機能は全て使えます! – Firewall機能はHeatWave on AWSのみの実装のため – 注意すべき点も変わらず 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 31
HeatWaveでMySQL Enterprise機能が使えるのは本当か? ◼結論:本当!!! ただし、一部機能で制限があるので注意が必要です。 さらなるHeatWaveの進化に期待ですね!!! 2025/2/26 Copyright © 2025. SmartStyle Co.,Ltd . All Rights Reserved. 32
ご清聴ありがとうございました MySQL & OCI に関するすべてを、私たちにおまかせ下さい。 Database & Cloud Technology Company [お問い合わせ] Tel:0120-429-223 Mail:[email protected] www.s-style.co.jp