ScalarDB Analytics サーバーをデプロイする
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、ローカル環境または本番環境で ScalarDB Analytics サーバーをデプロイする方法について説明します。
ステップ 1. ScalarDB Analytics の課金プランを決定する
ScalarDB Analytics サーバーは複数の方法で取得できます。
- PAYG
- BYOL
ScalarDB Analytics を pay-as-you-go (PAYG) プランで使用できます。この場合、クエリの使用量に基づいてライセンス料を支払います。
- AWS Marketplace
AWS Marketplace で PAYG プランで ScalarDB Analytics を使用できます。
- コンテナオファー
AWS Marketplace から PAYG プランで ScalarDB Analytics サーバーをデプロイするには:
- AWS Marketplace ページ ScalarDB Analytics サーバー にアクセスします。
- ScalarDB Analytics サーバーをサブスクライブします。
- View purchase options を選択します。
- Subscribe を選択します。
サブスクライ ブ後、以下のコンテナレジストリから ScalarDB Analytics サーバーのコンテナイメージを取得する権限が得られます。後のステップでこのコンテナレジストリを指定してコンテナイメージを取得するので、メモしておいてください。
709825985650.dkr.ecr.us-east-1.amazonaws.com/scalar/scalardb-analytics-server-aws-payg
ScalarDB Analytics を bring-your-own-license (BYOL) プランで使用できます。この場合、契約に基づいて固定ライセンス料を支払い、実行できるクエリ数に上限があります。
- サポートされている Kubernetes プラットフォーム
- その他のプラットフォーム
BYOL プランの ScalarDB Analytics をサポートされている Kubernetes プラットフォーム上で使用できます。サポートされている Kubernetes プラットフォームは要件で確認できます。
ScalarDB Analytics サーバー を使用するには、ライセンスキー (試用ライセンスまたは商用ライセンス) が必要です。ライセンスキーをお持ちでない場合は、お問い合わせください。
BYOL プランで提供されるライセンスキーを使用して ScalarDB Analytics サーバーのコンテナイメージをデプロイできます。以下のコンテナレジストリから ScalarDB Analytics サーバーのコンテナイメージを取得できます。
後のステップでこのコンテナレジストリを指定するので、メモしておいてください。
ghcr.io/scalar-labs/scalardb-analytics-server-byol
その他のプラットフォームをご希望の場合は、お問い合わせください。
ステップ 2. Kubernetes クラスターをデプロイする
以下の要件とチェックポイントに基づいて、お好みの Kubernetes プラットフォームにクラスターをデプロイしてください。
-
課金プランと目的に基づいて使用する Kubernetes プラットフォームを決定してください。
-
ステップ 1. ScalarDB Analytics の課金プランを決定するで PAYG (コンテナオファー - AWS Marketplace) を選択した場合は、サポートされているリージョンで Amazon Elastic Kubernetes Service (EKS) をデプロイする必要があります。サポートされているリージョンは後のステップで参照されます。
-
ステップ 1. ScalarDB Analytics の課金プランを決定するで BYOL (コンテナオファー - サポートされている Kubernetes プラットフォーム) を選択した場合は、サポートされている Kubernetes プラットフォームを使用できます。
注記minikube は、テストまたは開発目的でのみ使用してください。minikube は本番環境での使用は推奨されません。
-
-
ScalarDB Analytics サーバー用の Kubernetes クラスターの一般的な推奨事項と要件を確認してください。
- 推奨事項
- 少なくとも2つの CPU と 4 GB のメモリを持つワーカーノードを使用することを推奨します。
- 現在、ScalarDB Analytics サーバーにはクラスタリン グ機能がありません。そのため、ワーカーノードは1つで十分です。
- Kubernetes クラスター自体を高可用性にしたい場合は、複数のワーカーノードでデプロイできます。
- 少なくとも2つの CPU と 4 GB のメモリを持つワーカーノードを使用することを推奨します。
- 要件
- Spark アプリケーションが Kubernetes クラスターにデプロイされた ScalarDB Analytics サーバーにネットワーク的に接続できるようにする必要があります。ScalarDB Analytics サーバーが使用するポートについては、要件を参照してください。
- ScalarDB Analytics サーバーがカタログ情報を保存するためのバックエンドデータベースに対して読み書きできるようにする必要があります。これらの手順は ステップ 3. バックエンドデータベースをデプロイするで詳しく説明されます。
- ScalarDB Analytics サーバーがメータリング情報を保存するためのオブジェクトストレージに対して読み書きできるようにする必要があります。これらの手順は ステップ 4. オブジェクトストレージをデプロイするで詳しく説明されます。
- 推奨事項
-
ScalarDB Analytics サーバー用の Kubernetes クラスターをデプロイしてください。
- テスト/開発環境
- 本番/ステージング環境
テストまたは開発目的では、ローカル Kubernetes クラスターとして minikube を使用できます。minikube のインストールと開始方法の詳細については、minikube の公式ドキュメントを参照してください。
本番環境では、上記の ScalarDB Analytics サーバーの要件とシステムの要件 (セキュリティ、可用性、バックアップ/復旧、コスト、スケーラビリティなど) に基づいて Kubernetes クラスターをデプロイしてください。
- EKS
- minikube
- BYOL (コンテナオファー - サポートされている Kubernetes プラットフォーム) を選択した場合は、Amazon Elastic Kubernetes Service (EKS) を使用できます。
- ステップ 1. ScalarDB Analytics の課金プランを決定するで PAYG (コンテナオファー - AWS Marketplace) を選択した 場合は、以下を行う必要があります:
- AWS ドキュメント MeterUsage Region support for Amazon ECS and Amazon EKS に記載されているサポートされているリージョンで EKS をデプロイします。
- EKS をデプロイした後、以下の2つのコマンドを実行します:
-
eksctl utils associate-iam-oidc-providereksctl utils associate-iam-oidc-provider --region <REGION> --cluster <EKS_CLUSTER_NAME> --approve -
eksctl create iamserviceaccounteksctl create iamserviceaccount \
--name <SERVICE_ACCOUNT_NAME> \
--namespace <NAMESPACE> \
--region <REGION> \
--cluster <EKS_CLUSTER_NAME> \
--attach-policy-arn arn:aws:iam::aws:policy/AWSMarketplaceMeteringFullAccess \
--approve \
--override-existing-serviceaccountsKubernetes リソース命名規則に基づいて、
SERVICE_ACCOUNT_NAMEに任意の名前を設定できます。注記後のステップでこのサービスアカウント名を指定するので、
SERVICE_ACCOUNT_NAMEに設定した値をメモしておいてください。
-
important本番環境では、サポートされている Kubernetes プラットフォームを使用する必要があります。サポートされている Kubernetes プラットフォームは要件で確認できます。
ステップ 3. バックエンドデータベースをデプロイする
以下の要件とチェックポイントに基づいて、お好みのバックエンドデータベースをデプロイしてください。
-
使用するバックエンドデータベースを決定してください。
- ScalarDB Analytics サーバーでサポートされているバックエンドデータベースは要件で確認できます。
- 特別な理由がない限り、慣れ親しんだデータベースを使用することをお勧めします。
-
ScalarDB Analytics サーバー用のバックエンドデータベースの要件を確認してください。
- 各バックエンドデータベースの要件は要件ページで確認できます。
-
環境にバックエンドデータベースをデプロイしてください。
- テスト/開発環境
- 本番/ステージング環境
テストまたは開発目的では、Kubernetes クラスター内にポッドとしてバックエンドデータベースをデプロイできます。例えば、PostgreSQL を使用する場合は、以下のようにデプロイできます:
-
以下のコマンドを実行して Bitnami Helm リポジトリを追加してください:
helm repo add bitnami https://charts.bitnami.com/bitnami -
以下のコマンドを実行して PostgreSQL をデプロイしてください:
helm install postgresql-scalardb-cluster bitnami/postgresql \
--set auth.postgresPassword=postgres \
--set primary.persistence.enabled=false -
以下のコマンドを実行して PostgreSQL コンテナが実行されているかどうかを確認してください:
kubectl get pod以下の出力が表示されます:
NAME READY STATUS RESTARTS AGE
postgresql-scalardb-cluster-0 1/1 Running 0 17s
本番環境では、上記の ScalarDB Analytics サーバーの要件とシステムの要件 (セキュリティ、可用性、バックアップ/復旧、コスト、スケーラビリティなど) に基づいてバックエンドデータベースをデプロイしてください。
ステップ 4. オブジェクトストレージをデプロイする
以下の要件とチェックポイントに基づいてオブジェクトストレージをデプロイしてください。
-
使用するオブジェクトストレージを決定してください。
- ScalarDB Analytics サーバーのメータリング情報のデータストアとして Amazon S3、Azure Blob Storage、または Google の Cloud Storage を使用できます。
- ステップ 2. Kubernetes クラスターをデプロイするで選択した Kubernetes クラスターと同じクラウドサービスプロバイダーが提供するオブジェクトストレージを使用することをお勧めします。例えば、EKS を選択した場合は、Amazon S3 を使用してください。
-
ScalarDB Analytics サーバー用のオブジェクトストレージ の要件を確認してください。
- ScalarDB Analytics サーバーがオブジェクトストレージに対して読み書きできるようにする必要があります。
-
環境にオブジェクトストレージをデプロイしてください。
- テスト/開発環境
- 本番/ステージング環境
テストまたは開発目的では、ScalarDB Analytics サーバーコンテナ内のファイルシステムにメータリング情報を保存できます。つまり、オブジェクトストレージを使用する必要はありません。この場合、プロパティファイルで
scalar.db.analytics.server.metering.storage.provider=filesystemを設定する必要があります。詳細については、ステップ 5. カスタム値ファイルを作成するを参照してください。本番環境では、上記の ScalarDB Analytics サーバーの要件とシステムの要件 (セキュリティ、可用性、バックアップ/復旧、コスト、スケーラビリティなど) に基づいてオブジェクトストレージをデプロイしてください。