Terraform Provider
VeloDB Terraform providerは、VeloDB Cloud Management APIを通じてVeloDB Cloudウェアハウス、コンピュートクラスター、ネットワークアクセス、PrivateLink登録、および接続メタデータを管理します。
はじめに
ステップ1: APIキーを作成する
VeloDB CloudコンソールでOrganization → API Keysに移動するか、https://www.velodb.cloud/organization/api-keysに直接アクセスしてください。
Create API Keyをクリックし、ロールと有効期限を選択してから、すぐにキーをコピーしてください。キーは一度だけ表示されます。
キーは環境変数に保存し、Terraformファイルやソース管理には保存しないでください:
export VELODB_API_KEY='key-...'
ステップ2: APIホストを設定する
VeloDB Cloud Management APIホストはapi.velodb.cloudです。環境変数として設定してください:
export VELODB_HOST='api.velodb.cloud'
注記
hostは単純なホスト名です。https:// を含めないでください。プロバイダーが自動的に追加します。
ステップ3: Terraformの設定
Terraform設定でプロバイダーを宣言します:
terraform {
required_providers {
velodb = {
source = "velodb/velodb"
version = "~> 1.1"
}
}
}
provider "velodb" {
host = var.velodb_host
api_key = var.velodb_api_key
}
variable "velodb_host" {
type = string
description = "VeloDB Cloud Management API host, without https://."
default = "api.velodb.cloud"
}
variable "velodb_api_key" {
type = string
description = "VeloDB Cloud API key."
sensitive = true
}
変数を宣言せずに、環境変数を通じて直接認証情報を渡すこともできます:
export VELODB_HOST='api.velodb.cloud'
export VELODB_API_KEY='key-...'
terraform plan
使用例
初期コンピュートクラスターを持つSaaSウェアハウスを作成する:
resource "velodb_warehouse" "analytics" {
name = "analytics"
deployment_mode = "SaaS"
cloud_provider = "aws"
region = "us-east-1"
admin_password = var.admin_password
initial_cluster {
zone = "us-east-1a"
compute_vcpu = 4
cache_gb = 100
auto_pause {
enabled = true
idle_timeout_minutes = 30
}
}
}
compute クラスターを追加する:
resource "velodb_cluster" "etl" {
warehouse_id = velodb_warehouse.analytics.id
name = "etl"
cluster_type = "COMPUTE"
zone = "us-east-1a"
compute_vcpu = 8
cache_gb = 200
desired_state = "running"
}
アプリケーションと自動化のための接続情報を読み取る:
data "velodb_warehouse_connections" "analytics" {
warehouse_id = velodb_warehouse.analytics.id
}
output "jdbc_urls" {
value = [
for ep in data.velodb_warehouse_connections.analytics.public_endpoints :
ep.url if ep.protocol == "jdbc"
]
}
既存のBYOCウェアハウスをインポート:
import {
to = velodb_warehouse.byoc
id = "AWVA7PYB"
}
resource "velodb_warehouse" "byoc" {
name = "test_cli"
deployment_mode = "BYOC"
cloud_provider = "aws"
region = "us-east-1"
}
リソース
| リソース | 目的 |
|---|---|
velodb_warehouse | SaaS ウェアハウスの作成、更新、削除、および既存の BYOC ウェアハウスのインポートと読み取り。 |
velodb_cluster | ウェアハウス内の COMPUTE クラスターの管理(リサイズ、一時停止、再開、再起動を含む)。 |
velodb_warehouse_public_access_policy | パブリックエンドポイントアクセスポリシーと CIDR 許可リストの管理。 |
velodb_warehouse_private_endpoint | ウェアハウスアクセス用のインバウンド PrivateLink エンドポイントの登録と記述。 |
velodb_private_link_endpoint_service | VeloDB Cloud が PrivateLink 経由でアクセスできる外部エンドポイントサービスの登録。 |
データソース
| データソース | 目的 |
|---|---|
velodb_warehouses | ID、名前、クラウドプロバイダー、リージョン、またはデプロイメントモードによるウェアハウスの一覧表示。 |
velodb_clusters | ID、名前、ステータス、タイプ、または課金モデルによるウェアハウス内のクラスターの一覧表示。 |
velodb_warehouse_connections | パブリック/プライベートエンドポイント、コンピュートクラスター、オブザーバーグループ、および PrivateLink サービス名の読み取り。 |
velodb_warehouse_versions | 有効なウェアハウスアップグレード対象バージョン ID の一覧表示。 |
velodb_private_link_endpoint_services | アウトバウンド PrivateLink エンドポイントサービスと接続されたエンドポイントの一覧表示。 |
既知の制限事項
- BYOC ウェアハウスはインポートと読み取りが可能ですが、このプロバイダーは新しい BYOC ウェアハウスを作成しません。VeloDB Cloud で BYOC ウェアハウスを作成してから、ウェアハウス ID を Terraform にインポートしてください。
velodb_clusterはCOMPUTEクラスターのみを管理します。SQLおよびOBSERVERクラスタータイプはプラン時にブロックされます。- CPU とキャッシュのリサイズは一度に一つの次元で適用されます。
compute_vcpuを増加させる場合は、cache_gbを新しい CPU サイズの最小値に設定し、その後の実行で追加のキャッシュのみの変更を適用してください。 admin_passwordは API では書き込み専用であり、Terraform がパスワードローテーションを検出できるよう、機密値として Terraform state に格納されます。