GridDBクラウドの紹介

はじめに

GridDBは時間の経過とともに管理や使用が容易になってきましたが、開発チームは時系列データベースをさらに合理的に使用する方法を生み出しました。このブログでは、便利なオンラインポータルを通じてデータベースをクラウドサービスとして提供するサービス、GridDB Cloudを紹介します。このブログは基本的な紹介として、いくつかの基本的な機能を紹介し、これから利用するユーザーにセットアップと使用方法を説明します。

例として、クラスター内のすべての稼働中のノードを示すポータルを示します。

また、ボーナスとして、Grafanaをクラウドのインスタンスと連動させる方法も紹介しています。

使い方

今回のブログでは、MicrosoftのAzureに仮想プライベートネットワークを設定し、それを使ってクラウドインスタンスに接続する方法をご紹介します。この方法は、データを転送する最も安全な方法であるだけでなく、非常に簡単です。

その仕組みは、Azureサブスクリプションに仮想プライベートネットワークを設定し、そのネットワークに仮想マシンを接続します。その後、Azureネットワークへのリモート接続を可能にするピア接続を設定します。この設定が完了すると、ネットワーク内からGridDBクラウドへの通信が可能になります(つまり、仮想ネットワーク内の仮想マシンは、GridDBクラウドと直接通信することができます)。

Peer Networkを設定する

まず、このプロジェクトのために、Azureサブスクリプションにリソースグループを作成してください。

また、使用しているAzureユーザーがAzure AD Roles Directoryで管理者権限を持っていることを確認してください。こちらの手順に沿って追加することができます。https://docs.microsoft.com/en-us/azure/active-directory/roles/manage-roles-portal

その上で、Azure Subscription ID(リソースグループにあります)とDirectory/Tenant ID(Azure Active Directoryにあります)をメモしておいてください。

これらの2つの重要なIDを準備した上で、GridDB Cloudウィザードに従ってAzureクラウドプロバイダーとのピアリング接続を作成します。

ウィザードに情報を入力したら、コマンドラインに切り替えてAzure CLIを使用します。(Azure Cloud Shellを使用することもできます。)

また、最初のコマンドを実行する際に問題がある場合は、

az ad sp create --id RESOURCE-ID

ウィザードの手順を進めるために、アクティブユーザーが適切な管理者権限を持っていることを確認してください。完了したら、「検証 (Validate)」をクリックして、接続が正常であることを確認してください。

問題がなければ、ピアリング接続ページに表示されます。

DB ユーザーを作成する

クラウドインスタンスにデータをロードする前に、データベースユーザを作成します。セキュリティタブをクリックして、Create Database Userをクリックします。このユーザー(およびその認証情報)は、クラウドインスタンスと通信する際に使用されます。

GridDBクラウドへデータを読み込む

GridDB クラウドのインスタンスに接続するには、現在のところ唯一の方法である Notification Provider methodを使用します。クラウドポータルの[概要]セクションには、固有の通知プロバイダURLがあります。したがって、クラウド・インスタンスにデータをロードするには、前のステップで作成したクレデンシャルと一緒にプロバイダのURLを使用してください。

例えば、上記の手順で「test_user1」というユーザーを作り、「test_user1」というパスワードを設定した場合、同じネットワーク内の仮想マシンからクラウドのインスタンスに接続する方法は以下の通りです。(pythonスクリプトスニペット)

gridstore = factory.get_store(notification_provider='http://dbaassharegssta.blob.core.windows.net/dbaas-share-griddb-blob/<cloudName>.json', 
cluster_name='gs_clustertrial002', 
username='test_user1',
password='test_user1')

簡単に説明すると、Azureクラウドの仮想マシンにSSHで接続し、その仮想マシンはクラウド・インスタンスとピアリング接続された仮想ネットワークの中にあったので、データベースのクラウド・インスタンスと直接通信することができました。そのため、上記のpythonスニペットを使って、クラウド・インスタンスに直接データを読み込むことができます。

これで、リモートのGridDB Cloudインスタンスを、ローカルのデータベースのように使うことができるようになります。

オンラインポータルでデータを閲覧する

このブログの準備のために、前回のブログで紹介したデータセットをクラウド・インスタンスに読み込みました。

ポータルからデータを見るには、メインページのDATABASESヘッダーに移動してください。このページの下部には、カラムやインデックスの完全なリストが表示されます。

すべてのデータとその構成要素を簡単に見ることができるだけでなく、オンラインポータルには、オンラインクエリエディタ、ビューアが含まれています。つまり、ポータルから直接複雑なクエリを作成し、その出力を同じページで見ることができます。これを行うには、サイドメニューのQueryナビゲーションボタンをクリックします。

もちろん、GridDBは時系列データベースなので、ポータルにはチャートビューアもあります。サイドバーのメニューからChartsボタンをクリックすると、時間範囲を選択して、折れ線グラフや棒グラフでデータを表示することができます。

Grafana

Grafanaは、オープンソースの分析・監視ソリューションであり、これについてはこちらで紹介しています。クラウドインスタンスで使用するためには、「Grafana」21をダウンロードし、「GridDB Web API」22を設定した上で、「GridDB Grafana Plugin」23をインストールする必要があります。

設定する

そのため、バックエンドとしてGridDB Cloudインスタンスをうまく使えるようにするには、仮想マシン上でGrafanaを実行してインストールします。(また、ローカルでアクセスするためにAzureファイアウォールで特定のポートを開いておくことも必要です。)その方法は以下の通りです。Azureポータルで仮想マシンにポートを開く方法を参照してください。

3000番ポートを開放したことが重要です。これで、VMのパブリックアドレスを取得してブラウザにアクセスすると、Grafanaのインスタンスhttp://<yourVMIP:3000>が表示されます。

アクセスできるようになった後、GridDB Grafana Pluginを追加したら、GridDB Web APIをデータソースとして利用できるようになります。

Web APIをインストールして使用するには、GitHubのページまたは以前のブログ のいずれかの指示に従ってください。また、webapi-2.2.0/conf/repository.jsonファイルを編集して、お使いのGridDBクラウドインスタンスを指すようにしてください。例えば、以下のようになります。

{
  "clusters" : [
    {
      "name" : "gs_clustertrial002",
      "mode" : "PROVIDER",
      "providerUrl": "http://dbaassharegssta.blob.core.windows.net/<cloud instance name>/trial002.json"
    }
  ]
}

簡単に説明すると、別の端末でWeb APIを実行し、ポータルのデータソースとしてGridDBを追加したら、データホストをlocalhost、ポートを8080に設定します。

データソースが完全に統合されると、このように美しく詳細なチャートを作成することができます。

まとめ

GridDBクラウドを利用することで、作業を効率化し、より早く実用的な概念実証アプリケーションを作成することができます。GridDBクラウドの利用を開始するには、こちらを参照してください。

If you have any questions about the blog, please create a Stack Overflow post here https://stackoverflow.com/questions/ask?tags=griddb .
Make sure that you use the “griddb” tag so our engineers can quickly reply to your questions.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください