メインコンテンツまでスキップ
バージョン: 3.17

ScalarDB Analytics サーバーをデプロイする

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このドキュメントでは、ローカル環境または本番環境で ScalarDB Analytics サーバーをデプロイする方法について説明します。

ステップ 1. ScalarDB Analytics の課金プランを決定する

ScalarDB Analytics サーバーは複数の方法で取得できます。

ScalarDB Analytics を従量制課金プランで使用できます。この場合、クエリの使用量に基づいてライセンス料を支払います。

AWS Marketplace で従量制課金プランで ScalarDB Analytics を使用できます。

AWS Marketplace から従量制課金プランで ScalarDB Analytics サーバーをデプロイするには:

  1. AWS Marketplace ページ ScalarDB Analytics サーバー にアクセスします。
  2. ScalarDB Analytics サーバーをサブスクライブします。
    1. View purchase options を選択します。
    2. Subscribe を選択します。
ヒント

サブスクライブ後、以下のコンテナレジストリから ScalarDB Analytics サーバーのコンテナイメージをプルする権限が得られます。後のステップでこのコンテナレジストリを指定してコンテナイメージをプルするので、メモしておいてください。

709825985650.dkr.ecr.us-east-1.amazonaws.com/scalar/scalardb-analytics-server-aws-payg

ステップ 2. Kubernetes クラスターをデプロイする

以下の要件とチェックポイントに基づいて、お好みの Kubernetes プラットフォームにクラスターをデプロイしてください。

  1. 課金プランと目的に基づいて使用する Kubernetes プラットフォームを決定してください。

    • ステップ 1. ScalarDB Analytics の課金プランを決定する従量制課金 (コンテナオファー - AWS Marketplace) を選択した場合は、サポートされているリージョンで Amazon Elastic Kubernetes Service (EKS) をデプロイする必要があります。サポートされているリージョンは後のステップで参照されます。

    • ステップ 1. ScalarDB Analytics の課金プランを決定する固定価格 (ライセンス持参) (コンテナオファー - サポートされている任意の Kubernetes プラットフォーム) を選択した場合は、サポートされている任意の Kubernetes プラットフォームを使用できます。

      注記

      minikube は、テストまたは開発目的でのみ使用してください。minikube は本番環境での使用は推奨されません。

  2. ScalarDB Analytics サーバー用の Kubernetes クラスターの一般的な推奨事項と要件を確認してください。

    • 推奨事項
      • 少なくとも 2 つの CPU と 4 GB のメモリを持つワーカーノードを使用することを推奨します。
        • 現在、ScalarDB Analytics サーバーにはクラスタリング機能がありません。そのため、ワーカーノードは 1 つで十分です。
        • Kubernetes クラスター自体を高可用性にしたい場合は、複数のワーカーノードでデプロイできます。
    • 要件
      • Spark アプリケーションが Kubernetes クラスターにデプロイされた ScalarDB Analytics サーバーにネットワーク的に接続できるようにする必要があります。ScalarDB Analytics サーバーが使用するポートについては、要件を参照してください。
      • ScalarDB Analytics サーバーがカタログ情報を保存するためのバックエンドデータベースに対して読み書きできるようにする必要があります。これらの手順は ステップ 3. バックエンドデータベースをデプロイするで詳しく説明されます。
      • ScalarDB Analytics サーバーがメータリング情報を保存するためのオブジェクトストレージに対して読み書きできるようにする必要があります。これらの手順は ステップ 4. オブジェクトストレージをデプロイするで詳しく説明されます。
  3. ScalarDB Analytics サーバー用の Kubernetes クラスターをデプロイしてください。

    テストまたは開発目的では、ローカル Kubernetes クラスターとして minikube を使用できます。minikube のインストールと開始方法の詳細については、minikube の公式ドキュメントを参照してください。

ステップ 3. バックエンドデータベースをデプロイする

以下の要件とチェックポイントに基づいて、お好みのバックエンドデータベースをデプロイしてください。

  1. 使用するバックエンドデータベースを決定してください。

    • ScalarDB Analytics サーバーでサポートされているバックエンドデータベースは要件で確認できます。
    • 特別な理由がない限り、慣れ親しんだデータベースを使用することをお勧めします。
  2. ScalarDB Analytics サーバー用のバックエンドデータベースの要件を確認してください。

    • 各バックエンドデータベースの要件は要件ページで確認できます。
  3. 環境にバックエンドデータベースをデプロイしてください。

    テストまたは開発目的では、Kubernetes クラスター内にポッドとしてバックエンドデータベースをデプロイできます。例えば、PostgreSQL を使用する場合は、以下のようにデプロイできます:

    1. 以下のコマンドを実行して Bitnami Helm リポジトリを追加してください:

      helm repo add bitnami https://charts.bitnami.com/bitnami
    2. 以下のコマンドを実行して PostgreSQL をデプロイしてください:

      helm install postgresql-scalardb-cluster bitnami/postgresql \
      --set auth.postgresPassword=postgres \
      --set primary.persistence.enabled=false
    3. 以下のコマンドを実行して PostgreSQL コンテナが実行されているかどうかを確認してください:

      kubectl get pod

      以下の出力が表示されます:

      NAME                            READY   STATUS    RESTARTS   AGE
      postgresql-scalardb-cluster-0 1/1 Running 0 17s

ステップ 4. オブジェクトストレージをデプロイする

以下の要件とチェックポイントに基づいてオブジェクトストレージをデプロイしてください。

  1. 使用するオブジェクトストレージを決定してください。

  2. ScalarDB Analytics サーバー用のオブジェクトストレージの要件を確認してください。

    • ScalarDB Analytics サーバーがオブジェクトストレージに対して読み書きできるようにする必要があります。
  3. 環境にオブジェクトストレージをデプロイしてください。

    テストまたは開発目的では、ScalarDB Analytics サーバーコンテナ内のファイルシステムにメータリング情報を保存できます。つまり、オブジェクトストレージを使用する必要はありません。この場合、プロパティファイルで scalar.db.analytics.server.metering.storage.provider=filesystem を設定する必要があります。詳細については、ステップ 5. カスタム値ファイルを作成するを参照してください。

ステップ 5. カスタム値ファイルを作成する

環境と前のステップでの決定に基づいて、カスタム値ファイル scalardb-analytics-server.yaml を作成してください。

必須設定を設定する

  1. コンテナイメージとライセンス設定を設定してください

    ステップ 1. ScalarDB Analytics の課金プランを決定するで選択した課金プランに基づいて、scalarDbAnalyticsServer.image.repository にコンテナイメージ設定を設定してください。以下の課金プランのいずれかを選択して、この設定の例を参照してください。

    scalarDbAnalyticsServer:
    image:
    repository: 709825985650.dkr.ecr.us-east-1.amazonaws.com/scalar/scalardb-analytics-server-aws-payg
  2. サービスアカウント設定を設定してください

    ステップ 1. ScalarDB Analytics の課金プランを決定するで選択した課金プランに基づいて、scalarDbAnalyticsServer.serviceAccount にサービスアカウント設定を設定してください。以下の課金プランのいずれかを選択して、この設定の例を参照してください。

    scalarDbAnalyticsServer:
    serviceAccount:
    serviceAccountName: <SERVICE_ACCOUNT_NAME>
    automountServiceAccountToken: true
    注記

    <SERVICE_ACCOUNT_NAME>ステップ 2. Kubernetes クラスターをデプロイするeksctl create iamserviceaccount コマンドを使用して作成したサービスアカウントの名前に変更してください。

  3. データベース設定を設定してください

    ステップ 3. バックエンドデータベースをデプロイするで選択したバックエンドデータベースに基づいて、scalarDbAnalyticsServer.properties にデータベース設定を設定してください。以下のデータベースのいずれかを選択して、これらの設定の例を参照してください。

    scalarDbAnalyticsServer:
    properties: |
    scalar.db.analytics.server.db.url=jdbc:postgresql://<POSTGRESQL_SERVER_HOSTNAME>:<POSTGRESQL_SERVER_PORT>/<POSTGRESQL_DATABASE_NAME>
    scalar.db.analytics.server.db.username=<POSTGRESQL_USERNAME>
    scalar.db.analytics.server.db.password=<POSTGRESQL_PASSWORD>
  4. オブジェクトストレージ設定を設定してください

    ステップ 4. オブジェクトストレージをデプロイするで選択したオブジェクトストレージに基づいて、scalarDbAnalyticsServer.properties にオブジェクトストレージ設定を設定してください。以下のオブジェクトストレージのいずれかを選択して、これらの設定の例を参照してください。

    scalarDbAnalyticsServer:
    properties: |
    scalar.db.analytics.server.metering.storage.provider=aws-s3
    scalar.db.analytics.server.metering.storage.accessKeyId=<YOUR_ACCESS_KEY>
    scalar.db.analytics.server.metering.storage.secretAccessKey=<YOUR_SECRET_ACCESS_KEY>
  5. サービス設定を設定してください

    ScalarDB Analytics サーバーの接続性に基づいて、scalarDbAnalyticsServer.service.type を設定する必要があります。以下の接続タイプのいずれかを選択して、この設定の例を参照してください。

    Spark アプリケーションが Kubernetes クラスター外から ScalarDB Analytics サーバーにアクセスする場合は、scalarDbAnalyticsServer.service.typeLoadBalancer に設定してください。

    scalarDbAnalyticsServer:
    service:
    type: "LoadBalancer"
  6. 必須設定を確認してください

    上記のステップを完了した後、例えば、環境に応じて以下の設定が必要です:

    注記

    これらの設定は単なる例です。実際の設定はこれらの例と異なる場合があります。環境に基づいて設定を行ってください。

    scalarDbAnalyticsServer:
    image:
    repository: ghcr.io/scalar-labs/scalardb-analytics-server-byol
    properties: |
    # ライセンス設定
    scalar.db.analytics.server.licensing.license_key=<YOUR_LICENSE_KEY>
    scalar.db.analytics.server.licensing.license_check_cert_pem=-----BEGIN CERTIFICATE-----\nMIID...certificate content...\n-----END CERTIFICATE-----
    # データベース設定
    scalar.db.analytics.server.db.url=jdbc:postgresql://<POSTGRESQL_SERVER_HOSTNAME>:<POSTGRESQL_SERVER_PORT>/<POSTGRESQL_DATABASE_NAME>
    scalar.db.analytics.server.db.username=<POSTGRESQL_USERNAME>
    scalar.db.analytics.server.db.password=<POSTGRESQL_PASSWORD>
    # オブジェクトストレージ設定
    scalar.db.analytics.server.metering.storage.provider=azureblob
    scalar.db.analytics.server.metering.storage.accessKeyId=<YOUR_ACCESS_KEY>
    scalar.db.analytics.server.metering.storage.secretAccessKey=<YOUR_SECRET_ACCESS_KEY>
    service:
    type: "LoadBalancer"

オプション設定を設定する

オプションの設定でオプション設定を確認できます。必要に応じて環境に基づいてオプション設定を設定してください。

ステップ 6. Helm Chart を使用して ScalarDB Analytics サーバーをデプロイする

ステップ 5. カスタム値ファイルを作成するで作成したカスタム値ファイル scalardb-analytics-server.yaml を使用して、helm コマンドで ScalarDB Analytics サーバーデプロイメントをデプロイ、アップグレード、またはアンインストールしてください。

前提条件

  1. helm repo add コマンドと helm repo update コマンドを使用して、Scalar Helm Chart リポジトリを追加し、最新バージョンに更新してください。

    helm repo add scalar-labs https://scalar-labs.github.io/helm-charts
    helm repo update
  2. デプロイまたはアップグレードする ScalarDB 製品のバージョン(厳密には、対応するチャートバージョン)を決定してください。以下のコマンドを実行してバージョンを確認できます。

    helm search repo scalar-labs/<CHART_NAME> -l
    ヒント

    このドキュメントでは(ScalarDB Analytics サーバー をデプロイする場合)、以下のコマンドを実行してください。

    helm search repo scalar-labs/scalardb-analytics-server -l

    例えば、以下のような出力が表示されます。

    NAME                        CHART VERSION   APP VERSION
    scalar-labs/<CHART_NAME> 1.9.0 3.16.1
    scalar-labs/<CHART_NAME> 1.8.1 3.16.1
    scalar-labs/<CHART_NAME> 1.8.0 3.16.0
    scalar-labs/<CHART_NAME> 1.7.6 3.15.5
    scalar-labs/<CHART_NAME> 1.7.5 3.15.5
    scalar-labs/<CHART_NAME> 1.7.4 3.15.5
    scalar-labs/<CHART_NAME> 1.7.3 3.15.4
    scalar-labs/<CHART_NAME> 1.7.2 3.15.3
    scalar-labs/<CHART_NAME> 1.7.1 3.15.2
    scalar-labs/<CHART_NAME> 1.7.0 3.15.1
    scalar-labs/<CHART_NAME> 1.6.4 3.14.4
    scalar-labs/<CHART_NAME> 1.6.3 3.14.3
    scalar-labs/<CHART_NAME> 1.6.2 3.14.2
    scalar-labs/<CHART_NAME> 1.6.1 3.14.1
    scalar-labs/<CHART_NAME> 1.6.0 3.14.0
    注記
    • APP VERSION は ScalarDB 製品自体のバージョンを意味します。まず、このバージョンを確認して、デプロイまたはアップグレードする ScalarDB 製品のバージョンを決定してください。
    • APP VERSION でバージョンを確認し、デプロイまたはアップグレードする ScalarDB 製品のバージョンを決定した後、CHART VERSION の対応するバージョンをメモしてください。
    • APP VERSION で同じバージョンが複数ある場合は、CHART VERSION の最新バージョンをメモしてください。
    • 例:
      • ScalarDB 製品 3.16.1 をデプロイしたい場合は、CHART VERSION として 1.9.0 をメモしてください。
      • ScalarDB 製品 3.15.5 をデプロイしたい場合は、CHART VERSION として 1.7.6 をメモしてください。
      • ScalarDB 製品 3.14.4 をデプロイしたい場合は、CHART VERSION として 1.6.4 をメモしてください。

デプロイ、アップグレード、またはアンインストール

以下のように helm install コマンドを使用して ScalarDB Analytics サーバー をデプロイしてください。

helm install <RELEASE_NAME> scalar-labs/scalardb-analytics-server -f scalardb-analytics-server.yaml --namespace <KUBERNETES_NAMESPACE> --version <CHART_VERSION>
注記
  • <RELEASE_NAME> をデプロイメントの任意の(一意の)名前に変更してください。
  • --namespace オプションについては、<KUBERNETES_NAMESPACE>ScalarDB Analytics サーバー をデプロイしたい Kubernetes 名前空間の名前に変更してください。
  • --version オプションについては、<CHART_VERSION> を前のステップでメモしたバージョンに変更してください。

ステップ 7. デプロイメントを確認する

ScalarDB Analytics サーバーをデプロイまたはアップグレードした後、以下のポイントを確認してください。

  1. 以下のコマンドを実行して、ポッドのステータスが Running であることを確認してください:

    kubectl get pod --namespace <KUBERNETES_NAMESPACE>
    注記

    --namespace オプションについては、<KUBERNETES_NAMESPACE> を ScalarDB Analytics サーバーをデプロイした Kubernetes 名前空間の名前に変更してください。

    例えば、以下のように STATUS 列に RunningREADY 列に 1/1 と表示されます:

    $ kubectl get pod
    NAME READY STATUS RESTARTS AGE
    scalardb-analytics-server-86767fff4c-p6nkq 1/1 Running 0 22m
  2. サービスがエクスポートされているかどうかを確認してください。

    kubectl get svc --namespace <KUBERNETES_NAMESPACE>
    注記

    --namespace オプションについては、<KUBERNETES_NAMESPACE> を ScalarDB Analytics サーバーをデプロイした Kubernetes 名前空間の名前に変更してください。

    ステップ 5. カスタム値ファイルを作成するscalarDbAnalyticsServer.service.typeLoadBalancer に設定した場合、以下のように EXTERNAL-IP 列に IP アドレスまたは FQDN (Kubernetes クラスターによって異なる) が表示されます:

    $ kubectl get svc
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4h54m
    scalardb-analytics-server LoadBalancer 10.98.116.121 127.0.0.1 11051:32619/TCP,11052:32598/TCP 2m43s
    注記

    テストまたは開発目的で minikube を使用している場合は、LoadBalancer サービスを公開するために minikube tunnel コマンドを実行する必要があります。