---
title: "ClickPipes 向け Terraform および OpenAPI の一般提供 (GA) を開始"
date: "2026-09-28T08:42:22.125Z"
author: "Marta Paes"
category: "Product"
excerpt: "Terraform と OpenAPI を使用して ClickPipes リソースをコードとしてプロビジョニング・管理できるようになりました。すべてのコネクタに対応し、使いやすさも向上しています。"
---

# ClickPipes 向け Terraform および OpenAPI の一般提供 (GA) を開始

<style>
/* Expandable metric boxes */
details.metric-box {
  background: #2B2B2B;
  border-radius: 12px;
  margin: 28px 0;
  padding: 0;
  color: #E2E8F0;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.05), 0 4px 12px rgba(0,0,0,0.2);
  border-left: 5px solid rgba(255, 255, 255, 0.1);
}

/* Summary bar */
details.metric-box summary {
  cursor: pointer;
  list-style: none;
  padding: 16px 24px;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  color: #E2E8F0;
  position: relative;
  transition: background 0.2s;
}

details.metric-box summary:hover {
  background: rgba(255,255,255,0.05);
}

/* Rotating arrow */
details.metric-box summary::after {
  content: "▶";
  position: absolute;
  right: 20px;
  transition: transform 0.2s;
  font-size: 12px;
  color: #A0AEC0;
}

details.metric-box[open] summary::after {
  transform: rotate(90deg);
}

/* Inner content */
details.metric-box p {
  padding: 0 24px 12px 24px;
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
}

details.metric-box .notes {
  margin: 12px 24px 16px 24px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.05);
  border-radius: 6px;
  font-size: 14px;
}

details.metric-box a { color: inherit; text-decoration: none; }
details.metric-box code {
  background: rgba(255,255,255,0.06);
  padding: 2px 5px;
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, monospace;
}

/* Metrics table inside expandable boxes */
details.metric-box.metrics .metric-row {
  display: flex;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  font-size: 14px;
  margin: 0 24px;
}
details.metric-box.metrics .metric-row:last-child { border-bottom: none; }

details.metric-box.metrics .metric-label {
  width: 180px;
  text-align: right;
  padding-right: 16px;
  color: #A0AEC0;
  flex-shrink: 0;
}
details.metric-box.metrics .metric-value { flex: 1; }
</style>

> **TL;DR**<br/>Terraform と OpenAPI を使用して、ClickPipes リソースを「コードとして」プロビジョニングおよび管理できるようになりました。すべてのコネクタに対応し、使いやすさも向上しています。

<br/>

ClickOps(ユーザーインターフェース上のボタンをクリックする操作)は、新しい製品を使い始める際には便利ですが、本番環境への移行が進むにつれて、より自動化されバージョン管理された方法でリソースを管理するアプローチ、すなわち「Infrastructure as Code」に移行するのが一般的です。

ClickHouse Cloud を開発するにあたり、私たちの目標の 1 つは API ファーストにすることです。ユーザーインターフェースから実行できるあらゆる操作は、既存のデプロイワークフローに組み込める(そしてエージェントからも活用できる 🤖)プログラムインターフェース経由でも利用できるようにすべきだと考えています。ClickHouse Cloud のフルマネージドデータ取り込みプラットフォームである ClickPipes も例外ではありません。

---

## 今すぐ始める

今すぐ ClickHouse Cloud にサインアップして、ClickPipes によるシームレスなデータ取り込みをお試しください。

[サインアップ](https://console.clickhouse.cloud/signUp?loc=blog-cta-2366&utm_blogctaid=2366)

---

本記事の公開に合わせて、Terraform における ClickPipes リソースおよび OpenAPI におけるエンドポイントの一般提供 (GA) を発表します！[2025年にこれらのインターフェースのベータサポートを発表](https://clickhouse.com/blog/evolution-of-clickpipes)しましたが、一部の機能や使い勝手の面で不足があり、*すべての* ユーザーが ClickPipes をコードとして管理できる状態ではありませんでした。特にコネクターの対応範囲が完全ではありませんでしたが、今回のアップデートにより、CDC ClickPipes (Postgres、MySQL、MongoDB) もコードとして作成できるようになりました！

## **サポートされる内容** {#what_is_supported}

CDC ClickPipes のサポートに加えて、提供開始に合わせて両方のインターフェースに新しい ClickPipes コネクターと機能 (*例*: BigQuery および Azure Blob Storage コネクター、S3 および GCS の unordered モード) を追加しました。さらに、リバースプライベートエンドポイントの作成と管理のサポートなど、重要な機能の不足も解消しています。これにより、ClickPipes UI にあって OpenAPI や Terraform 経由で公開されていない機能はほとんどなくなりました。SSH トンネリングは例外ですが、現在[対応を進めています](#bookmark=id.uz6whn8nwd37)！

現在、すべての操作が [ClickHouse Terraform provider](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest/docs) のリソースまたは [OpenAPI エンドポイント](https://clickhouse.com/docs/ja/products/cloud/api-reference/organization/get-list-of-available-organizations) に明確に対応しています:

| アクション | Terraform | OpenAPI |
| :---- | :---- | :---- |
| 一覧取得 | `terraform state list` | `GET /clickpipes` |
| 作成 | リソース追加 + `terraform apply` | `POST /clickpipes` |
| 取得 | `terraform show / refresh` | `GET /clickpipes/{id}` |
| 更新 | 設定変更 + `terraform apply` | `PATCH /clickpipes/{id}` |
| 停止 | `stopped = true` + `terraform apply` | `PATCH /clickpipes/{id}/state {"action": "stop"}` |
| 再開 | `stopped = false` + terraform apply | `PATCH /clickpipes/{id}/state {"action": "start"}` |
| 設定の更新 | `settings` ブロック更新 + `terraform apply` | `PUT /clickpipes/{id}/settings` |
| スケール | `scaling` ブロック更新 + `terraform apply` | `PATCH /clickpipes/{id}/scaling` |
| 再同期のトリガー | `trigger_resync = true` + `terraform apply` | `PATCH /clickpipes/{id}` |
| 削除 | `terraform destroy` | `DELETE /clickpipes/{id}` |

ClickPipe をゼロからプロビジョニングする場合は、[*手順: 新しい ClickPipe の設定*](#bookmark=id.qa1u83ivk9g1) から始めてください。すでに稼働中のパイプラインがあり、それらをバージョン管理下に置きたい場合は、[*手順: 既存の ClickPipes のインポート*](#bookmark=id.1fs3jt8zn01g) を確認してください。

## 手順: 新しい ClickPipe の設定

#### Cloud API キーの作成

**1\.** ClickHouse Terraform provider は ClickHouse Cloud サービスとの連携に [Cloud API](https://clickhouse.com/docs/ja/products/cloud/features/admin-features/api/api-overview) を使用するため、認証用に有効な API キーが必要です。このプロバイダーを初めて利用する場合は、まず新しい API キーを作成します。**Organization > API keys > New API key** に移動し、表示される **Key ID** と **Key Secret** のペアを控えておくか、ダウンロードします。

![](https://clickhouse.com/uploads/terraform_clickpipes_apr2026_image2_c51c42d023.png)

**2\.** 次に、プロバイダーを設定します。認証情報をソース管理から除外するため、[Terraform 変数](https://developer.hashicorp.com/terraform/language/values/variables) と、`.gitignore` に追加できる `terraform.tfvars` ファイルの使用を推奨します:

**variables.tf**

<pre><code type='click-ui' language='bash'>
variable "organization_id" {
  description = "ClickHouse Cloud organization ID"
  type        = string
}

variable "service_id" {
  description = "ClickHouse Cloud service ID"
  type        = string
}

variable "token_key" {
  description = "ClickHouse Cloud API key ID"
  type        = string
  sensitive   = true
}

variable "token_secret" {
  description = "ClickHouse Cloud API key secret"
  type        = string
  sensitive   = true
}
...
</code></pre>

**terraform.tfvars**

<pre><code type='click-ui' language='bash'>
organization_id   = "" # your org ID from cloud.clickhouse.com
service_id        = "" # target ClickHouse service ID
token_key         = "" # API key ID
token_secret      = "" # API key secret
...
</code></pre>

#### ClickPipes リソースの設定

この例では、Postgres データベースから ClickHouse へニアリアルタイムで継続的に変更を取り込むための [Postgres CDC ClickPipe](https://clickhouse.com/docs/ja/integrations/clickpipes/postgres) リソースを設定します。注意点として、CDC ClickPipe を作成する前に、データソースの[設定ガイド](https://clickhouse.com/docs/ja/integrations/clickpipes/postgres#prerequisites)に従って、アップストリームでのレプリケーションを有効にしておいてください。

**1\.** ClickPipe を作成する準備ができたら、ソース属性に `postgres` を指定した新しい [`clickhouse_clickpipe` リソース](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest/docs/resources/clickpipe) を Terraform 設定に追加します。以下は、単一の Postgres テーブル (`public.firenibble`) を同期し、`source_table` の新しい変更 (*つまり* 挿入、更新、削除) を `cdc` を使用して ClickHouse Cloud の `target_table` に反映する単一の ClickPipe を作成する基本的な設定例です。

**main.tf**

<pre><code type='click-ui' language='bash'>
terraform {
 required_providers {
   clickhouse = {
     source  = "ClickHouse/clickhouse"
     version = ">= 3.14.0"
   }
 }
}

provider "clickhouse" {
 organization_id = var.organization_id
 token_key       = var.token_key
 token_secret    = var.token_secret
}

resource "clickhouse_clickpipe" "pg_pipe" {
 name       = "tf-postgres-clickpipe"
 service_id = var.service_id

 source = {
   postgres = {
     host     = var.postgres_host
     port     = 5432
     database = var.postgres_database

     credentials = {
       username = var.postgres_user
       password = var.postgres_password
     }

     settings = {
       replication_mode = "cdc"
     }

     table_mappings = [
       {
         source_schema_name = "public"
         source_table       = "firenibble"
         target_table       = "public_firenibble"
       }
     ]
   }
 }

 destination = {
   database = "default"
 }
}
</code></pre>

**2\.** Cloud API の認証情報とリソース設定を Terraform に渡したので、デプロイの準備が整いました。`terraform init` を実行して ClickHouse プロバイダーをインストールし、次に `terraform apply` を実行してパイプラインをプロビジョニングします。Terraform は実行計画を出力し、デプロイ前に計画された変更の確認を求めます:

<pre><code type='click-ui' language='bash'>
terraform apply

...
Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

clickhouse_clickpipe.pg_pipe: Creating...
clickhouse_clickpipe.pg_pipe: Still creating... [00m10s elapsed]
clickhouse_clickpipe.pg_pipe: Creation complete after 11s [id=10128f88-100c-4830-b480-e242fa89570f]

</code></pre>

以上で完了です！プログラムによって作成された最初の CDC ClickPipe が稼働しました。ClickHouse Cloud コンソールに移動し、(**Data sources > ClickPipes** の配下に) パイプラインが存在し、データ取り込みを順調に処理していることを確認してください。

![](https://clickhouse.com/uploads/terraform_clickpipes_apr2026_image1_1ac36961ee.png)

さまざまなパイプタイプ、取り込みモード、ネットワーク構成に応じた Terraform での ClickPipes 設定例は、[プロバイダーのリポジトリ](#bookmark=id.1fs3jt8zn01g) で確認できます。

## **手順: 既存の ClickPipes のインポート**

*以下の手順は HashiCorp Terraform v1.5+ でテストされています。インポートのワークフローは代替実装 (OpenTofu など) とも広く互換性があるはずですが、最小バージョンや基本的な手法が異なる場合があります。*

すでに ClickHouse Terraform provider を使用しているプロジェクトがある場合は、手動で設定する代わりに、既存の ClickPipes を Terraform state にインポートしてコードとして管理できます。

**1\.** Cloud API を使用して、対象の組織およびサービスに存在する ClickPipes を取得します:

```shell
curl -s \
  "https://api.clickhouse.cloud/v1/organizations/$ORG_ID/services/$SERVICE_ID/clickpipes" \
  -u "$KEY_ID:$KEY_SECRET" | jq -r '.result[] | "\(.id)\t\(.name)"'

1667855d-1646-4693-8cac-60e1c386ccb1    existing_pg_pipe
2e4c3974-025e-47a0-861b-4c200b6c0249    existing_mysql_pipe
76a42195-ef25-40fc-ae3d-31733d377f77    existing_mongo_pipe
```

**2\.** 設定ファイルを編集し、Terraform にインポートしたい ClickPipes の import ブロックを追加します:

<pre><code type='click-ui' language='bash'>
...
import {
  to = clickhouse_clickpipe.existing_pg_pipe
  id = "&lt;service_id&gt;:1667855d-1646-4693-8cac-60e1c386ccb1"
}
...
</code></pre>

**3\.** 既存のリソースから Terraform のリソース設定を生成します:

```shell
terraform plan -generate-config-out=generated.tf
```

`generated.tf` を確認し、Terraform が state から取得できない機密フィールド (認証情報など) を入力します。

<pre><code type='click-ui' language='bash'>
# __generated__ by Terraform
# Please review these resources and move them into your main configuration files.

# __generated__ by Terraform
resource "clickhouse_clickpipe" "pg_pipe" {
…
credentials    = {
username = var.postgres_user
password = var.postgres_password
}
…}
</code></pre>

**4\.** `terraform plan` を実行して予期しない差分がないことを確認し、`terraform apply` を実行して完了します。

*注: Postgres CDC ClickPipes の場合、`terraform apply` を実行する前にリソース設定で `stopped = true` を設定する必要があります。Terraform はパイプを一時停止し、1 回のパスで認証情報を state に書き込みます。完了したら、`stopped = false` に設定して再度 apply を実行し、再開します。これは [既知の制限事項](https://github.com/ClickHouse/terraform-provider-clickhouse/issues/497) です。*

## 今後の展開

ClickPipes リソースは [v3.14.0](https://github.com/ClickHouse/terraform-provider-clickhouse/releases/tag/v3.14.0) 以降の ClickHouse Terraform provider の安定版リリースで利用可能であり、OpenAPI エンドポイントもベータを終了しました ([仕様書](https://clickhouse.com/docs/ja/products/cloud/api-reference/organization/get-list-of-available-organizations))。ClickPipes の進化に伴い、私たちは Terraform と OpenAPI を「完了の定義」の一部を成すファーストクラスのインターフェースとして扱い続けます。上記のような複雑な使い勝手に関する制限事項の解消に積極的に取り組んでいるほか、要望の多い **SSH トンネリング** 設定のサポートにも取り組んでいます！

Terraform や OpenAPI を使用した ClickPipes の設定および管理についてフィードバックがある場合や問題が発生した場合は、私たちのチームまでご連絡ください。間もなく、[最近リリースされた ClickHouse CLI](https://clickhouse.com/blog/introducing-clickhousectl-official-cli-for-clickhouse-local-and-cloud) でも ClickPipes が利用できるようになります。数週間以内に詳細をお知らせします！

---

## ClickPipes を今すぐ試す

ETL の複雑さを解消し、データ移動コストを削減しませんか？今すぐ ClickPipes を試して、世界最速の分析データベースである ClickHouse Cloud との完全マネージドなネイティブ統合を体験してください。

[ClickPipes を試す](https://clickhouse.com/cloud/clickpipes?loc=blog-cta-2367-clickpipes-clickpipes&utm_blogctaid=2367)

---