DataVユーザーの強い味方!DataV Proxyについて

みなさんこんにちは。よしいです。
気がつけば2月…時が経つのは早いですね。

突然ですが、DataVにデータベース接続したウィジェットのコネクション数が原因で、
データベースに負荷が掛かって困った、という経験はないでしょうか。
今回は、そんな問題を解決してくれるDataV Proxyについてご紹介します。

DataVについては、過去に以下のような記事がありますのでぜひご参照ください。

www.sbcloud.co.jp

www.sbcloud.co.jp

本記事の目次は以下です。


DataVウィジェットのコネクションの貼られ方

前提知識として、データベースと接続したDataVウィジェットがどのようにデータベースを見にいくのか、という点についてお話しします。
DataVは、プロジェクト(DataV画面)にウィジェットを配置すると、一つのウィジェットに対して複数のコネクションを貼ってデータを
取得しに行きます。 あくまで推測ですが、以下のような挙動のイメージです。

f:id:sbc_yoshii:20200203161752p:plain

実際に、データベース接続した一つのウィジェットをDataV画面に配置して、
データベースのコネクション数を確認したところ、なんと8つも確認できました。
(自分が接続しているコネクションはカウントしていません) f:id:sbc_yoshii:20200203164120p:plain

一つのウィジェットだけでここまでコネクションが貼られるので、複数配置したらデータベースへの負荷が心配ですよね…
そこで、DataV Proxyが登場します。
DataV Proxyは、最大コネクションプール数とDBへのクエリタイムアウト時間(ms)をコントロールすることができます。
データベースとDataVの間にDataV Proxyを設置することで、データベースへの負荷を軽減させることができます。

ドキュメントは以下です。英語版の方がFAQは充実しています。

日本語:https://jp.alibabacloud.com/help/doc-detail/111123.html

英語:https://www.alibabacloud.com/help/doc-detail/111123.html

FAQ(英語):https://www.alibabacloud.com/help/doc-detail/89990.htm


DataV Proxyのデプロイ手順

流れとしては、以下の3ステップになります。

①DataV Proxyのインストールパッケージをサーバーにインストール
②DataV ProxyにIDとパスワードを登録
③DataVProxyにログインして、データベースを登録する

それぞれのステップについて、以下に記載します。

①DataV Proxyのパッケージをインストール

下記のドキュメントサイトの手順
(https://jp.alibabacloud.com/help/doc-detail/111123.html)に沿って、
インストールパッケージをサーバーにダウンロードし、Proxyサービスを有効化します。
WindowsとLinux/Mac OSの手順が記載されています。
ちなみに、パッケージの中にはPDFのドキュメント(中国語)が同封されています。

②DataV ProxyにIDとパスワードを登録

インストール後、ブラウザからProxyサービスにログインします。
http://domain name(ドメインがない場合はIPアドレス):ポート番号
でアクセスします。
①の手順でポート番号を指定していない場合は、ポート番号はデフォルトで8001となります。
アクセス後、以下の画面にUsernameとPasswordを入力することで新規登録が完了となります。
一度しか登録できないため、忘れないようにご注意ください。

f:id:sbc_yoshii:20200203163716p:plain

③DataVProxyにログインして、データベースを登録する

ログイン後は、以下のような画面が表示されてデータベースを登録・接続確認ができるようになります。
データベースはMySQL,MSSQL,Oracle,Postgresの4種類に対応しています。
f:id:sbc_yoshii:20200203163859p:plain
「add」ボタンをクリックすると、下記のようにDB情報の入力を求められるので、
ご自身のDB情報を登録して「OK」をクリックしてください。

f:id:sbc_yoshii:20200203163905p:plain
下記のように登録できたら、①の「link」ボタンで接続確認できたり、②の「SQL」ボタンでクエリのテストが出来たりします。

f:id:sbc_yoshii:20200203163920p:plain
SQLのクエリテストは、DataVと同じようにJson形式でデータの取得確認ができます。

f:id:sbc_yoshii:20200203163924p:plain

また、「logs」というメニューをクリックすると、下記のようにログを確認することができます。

f:id:sbc_yoshii:20200203163945p:plain

ログの種類は、アクセスログ、SQLログ、システムログ、userログの4種類です。

DataVProxyをDataVに接続する

では、実際にDataVProxyをDataVのデータソースに登録していきたいと思います。
DataVのコンソール画面を開き、データソースの種類のプルダウンから、DataV Proxyを選択して、認証情報を入力してください。
※DataV ProxyをインストールしたサーバーにSSL証明書がない場合は、DataVのページURLをHTTPに変更して本手順を実施してください。
f:id:sbc_yoshii:20200203163949p:plain


認証情報のうち、「key」「secret」とありますが、これらはDataVProxyで発行します。
下記のように、「secret」メニューから、「create key/secret」をクリックすると発行されます。

f:id:sbc_yoshii:20200203163954p:plain

DataVのデータソースにDataV Proxyが登録できたら、実際にウィジェットと接続をしてみましょう。
以下のような形で、RDSなど、通常のデータベースを登録する時と同様に
データソースタイプは「データベース」を選択し、登録したDataV Proxyを選択して、SQL文を入力します。
f:id:sbc_yoshii:20200203164001p:plain


DataV Proxyの効果を検証

データソースに登録したら、実際にDataV Proxyの効果を検証してみましょう!
今回作成したDataVの画面は以下です。
水色のカルーセルリストがRDSに直接接続したウィジェットを配置した画面(①)、
ピンク色のカルーセルリストがDataV Proxyを介してRDSに接続したウィジェットを配置した画面(②)です。
検証用のため、カルーセルリストはそれぞれ4つずつ配置しました。
それぞれのウィジェットの自動更新リクエスト数は1秒に設定しています。
①と、②のコネクション数を比較します。

f:id:sbc_yoshii:20200203164008p:plain
f:id:sbc_yoshii:20200203164013p:plain
結果は以下です!ちょっと頑張って手入力で10回のコネクション数をグラフにして見ました。
DataVProxy経由であれば、一つしかコネクションが貼られないことが明らかかと思います。
f:id:sbc_yoshii:20200203164023p:plain

まとめ

以上、DataV Proxyの設定手順とその効果についてのお話でした。
DataVユーザーにとっては、役立つサービスだと思いますので、
是非活用してみてください!