メインコンテンツへスキップ
ClickHouse Managed Postgres サービスは、ClickHouse Terraform プロバイダーclickhouse_postgres_service リソースを使用して作成および管理できます。このページでは、このリソースと関連するデータソースについて、プロバイダーのセットアップと設定例を説明します。
このリソースはアルファ段階であり、今後のプロバイダー バージョンで動作が変更される可能性があります。通常のプロバイダー ビルドに含まれており、プロバイダー バージョン v3.17.1 以降で利用できます。詳細は プロバイダーのリリース を確認してください。

プロバイダーの設定

ClickHouse プロバイダーを Terraform の設定に追加します。
terraform {
  required_providers {
    clickhouse = {
      source  = "ClickHouse/clickhouse"
      version = ">= 3.17.1"
    }
  }
}

provider "clickhouse" {
  organization_id = var.organization_id
  token_key       = var.token_key
  token_secret    = var.token_secret
}
プロバイダーで使用するための API キーを作成する手順については、API キーの管理 を参照してください。

リソースの概要

clickhouse_postgres_service リソースでは、以下の引数を使用できます。
引数必須説明
nameはいサービスの人間が読める名前です。変更不可で、変更するとサービスは破棄されて再作成されます。
cloud_provider通常の作成時インスタンスをホストするクラウドプロバイダーです。現在サポートされているのは aws のみです。読み取りレプリカまたはポイントインタイム復元の場合は省略してください (ソースから継承されます) 。
region通常の作成時クラウドリージョンです (例: us-east-1) 。読み取りレプリカまたはポイントインタイム復元の場合は省略してください (ソースから継承されます) 。
size通常の作成時インスタンスサイズ (VM SKU) です (例: m6gd.large) 。その場でサイズ変更できます。ポイントインタイム復元の場合は省略してください (復元されたインスタンスはバックアップ時のサイズで起動します) 。
postgres_versionいいえPostgres のメジャーバージョンです (例: 18) 。メジャーバージョンを変更すると、サービスは破棄されて再作成されます。
ha_typeいいえ高可用性モード: noneasync、または sync。詳細は 高可用性 を参照してください。
passwordいいえスーパーユーザー のパスワードです。省略すると、server が生成します。(sensitive) な state に保存されます。
pg_configいいえキー・バリュー map として指定する Postgres server パラメーターです。
pgbouncer_configいいえキー・バリュー map として指定する PgBouncer connection-pooler パラメーターです。
tagsいいえキー・バリュー map として指定するリソースタグです。
read_replica_ofいいえレプリカ化するプライマリ service の ID です。詳細は 読み取りレプリカ を参照してください。restore_to_point_in_time とは同時に指定できません。
restore_to_point_in_timeいいえ別の service を特定時点に復元して service を作成します。詳細は ポイントインタイム復元 を参照してください。read_replica_of とは同時に指定できません。
以下の属性は読み取り専用で、作成後に ClickHouse Cloud によって設定されます: idstatecreated_atis_primaryhostnameportusername、および connection_string (sensitive) 。
password は Terraform の state に平文で保存されます。そのため、state file は適切に保護してください。たとえば、保存時暗号化を備えたリモート backend を使用します。password を省略すると、server が生成し、provider は refresh のたびにそれを state に読み戻します。

サービスを作成する

resource "clickhouse_postgres_service" "example" {
  name           = "my-postgres"
  cloud_provider = "aws"
  region         = "us-east-1"
  size           = "m6gd.large"

  # High-availability mode — number of standby replicas:
  #   "none"  – primary only, no standby (default)
  #   "async" – 1 standby, asynchronous replication
  #   "sync"  – 2 standbys, synchronous replication
  ha_type = "async"

  tags = {
    environment = "production"
    team        = "data"
  }
}
password を自分で管理するには、password を設定してください。12 文字以上で、少なくとも小文字 1 文字、大文字 1 文字、数字 1 文字を含める必要があります。省略すると、サーバーによって自動生成されます。

高可用性

ha_type 引数は、スタンバイ レプリカの数を制御します。
ha_typeスタンバイレプリケーション
noneなし (プライマリのみ)
asyncスタンバイ 1 台非同期 — 書き込みはスタンバイを待たずにコミットされます
syncスタンバイ 2 台同期 — プライマリは少なくとも 1 台のスタンバイからの確認応答を待ちます
ha_type は作成後も変更可能で、変更すると HA の切り替えが発生します。詳しくは 高可用性 を参照してください。

読み取りレプリカ

ストリーミング読み取りレプリカを作成するには、read_replica_of にプライマリサービスの id を設定します。レプリカはプライマリの cloud_providerregionpostgres_version、およびスーパーユーザーを継承するため、これら (および password) は指定しないでください。
resource "clickhouse_postgres_service" "replica" {
  name            = "my-postgres-replica"
  size            = "m6gd.large"
  read_replica_of = clickhouse_postgres_service.example.id
}
詳細は、読み取りレプリカを参照してください。

ポイントインタイム復元

別のサービスのバックアップを特定時点に復元してサービスを作成するには、restore_to_point_in_time を設定します。cloud_providerregionpostgres_version は元のサービスから引き継がれるため指定不要です。sizeha_type も指定できません:
resource "clickhouse_postgres_service" "restored" {
  name = "my-postgres-restored"

  restore_to_point_in_time = {
    source_id      = clickhouse_postgres_service.example.id
    restore_target = "2026-06-01T12:00:00Z"
  }
}
このブロック全体は作成時にのみ指定できます。source_id または restore_target を変更するか、ブロックを削除すると、サービスは削除されて再作成されます。詳しくは バックアップと復元 を参照してください。

データソース

既存のサービスを参照できる補助的なデータソースが3つあります:
# A single service by ID.
data "clickhouse_postgres_service" "example" {
  id = clickhouse_postgres_service.example.id
}

# All Managed Postgres services in the organization.
data "clickhouse_postgres_services" "all" {}

# The CA certificates for a service, for TLS connections.
data "clickhouse_postgres_service_ca_certificates" "certs" {
  service_id = clickhouse_postgres_service.example.id
}

既存のサービスのインポート

既存の Managed Postgres サービスは、service ID を使って Terraform state にインポートできます。インポート時にはパスワードも復元されます。これは、サーバーが GET に対してその値を返すためです。
terraform import clickhouse_postgres_service.example xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

サポート対象外の操作

以下の項目は、リソース スキーマに意図的に含まれていません。
  • 運用コマンド (restart、promote、switchover) 。
  • IP許可リスト、プライベート エンドポイント、バックアップ設定、メンテナンス ウィンドウ、顧客管理暗号化キー、BYOC。
  • ライフサイクル タイムアウトは設定できません。timeouts {} ブロックはありません。
最終更新日 2026年6月11日